Files
C.E.L_Slide_test2/Front/standard_slide_preview.html
kyeongmin 0f0d3fa91f feat(frontend): add Front/ — Vite/React frontend with backend pipeline integration
Mirror of design_agent_front/design-agent/ for shipping alongside backend.

Vite plugin (vitePluginPhaseZApi) endpoints :
  - POST /api/run   — spawn `python -m src.phase_z2_pipeline` with overrides
  - GET  /api/sample-mdx?mdx=03/04/05 — fixed sample MDX
  - GET  /frame-preview/{n} — figma preview thumbnails
  - GET  /data/runs/{run_id}/{path} — pipeline artifacts (final.html, step*.json, ...)

Env toggle forward (보고용) :
  PHASE_Z_ALLOW_RESTRUCTURE / PHASE_Z_ALLOW_REJECT / PHASE_Z_MAX_RANK=32

Components :
  - LeftMdxPanel (03/04/05 fix list + section tree)
  - SlideCanvas (iframe + slideOverrideCss prop for inline CSS inject)
  - FramePanel (label priority + confidence sort)
  - LayoutPanel

README with mermaid diagrams covering the 5-step demo flow.
node_modules / dist / .manus-logs / .env excluded via .gitignore.
2026-05-14 14:48:42 +09:00

232 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Standard Slide Base & Body Layouts</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&display=swap');
body {
font-family: 'Inter', sans-serif;
background-color: #f1f5f9;
padding: 50px;
display: flex;
flex-direction: column;
align-items: center;
}
/* 16:9 Base Slide Container */
.slide-base {
width: 1280px;
height: 720px;
background: white;
box-shadow: 0 40px 100px -20px rgba(0,0,0,0.2);
border-radius: 16px;
overflow: hidden;
display: flex;
flex-direction: column;
position: relative;
margin-bottom: 80px;
}
/* 1. Header Area: Fixed 80px */
.header {
height: 80px;
min-height: 80px;
border-bottom: 1px solid #f1f5f9;
display: flex;
align-items: center;
padding: 0 40px; /* 제목 좌우 여백 */
}
.header h1 {
font-size: 32px; /* 하드코딩된 제목 크기 */
font-weight: 900;
color: #0f172a;
margin: 0;
}
/* 2. Footer Area: Fixed 100px */
.footer {
height: 100px;
min-height: 100px;
background: #0f172a;
display: flex;
align-items: center;
padding: 0 40px; /* footer 좌우 여백 */
color: white;
}
.footer-label {
padding: 4px 12px;
background: #2563eb;
font-size: 12px;
font-weight: 900;
text-transform: uppercase;
border-radius: 4px;
margin-right: 24px;
}
.footer-text {
font-size: 20px; /* 하드코딩된 하단 요약 크기 */
font-weight: 700;
font-style: italic;
opacity: 0.9;
margin: 0;
}
/* 3. Body Area: Flexible, but width matches footer's inner width */
.body-container {
flex: 1;
padding: 30px 40px; /* 상하 30px, 좌우 40px (footer와 정렬) */
display: flex;
flex-direction: column;
overflow: hidden;
}
.layout-label {
align-self: flex-start;
margin-bottom: 20px;
font-size: 14px;
font-weight: 900;
color: #64748b;
text-transform: uppercase;
}
</style>
</head>
<body>
<!-- SAMPLE 1: FOCUS SPLIT -->
<div class="layout-label">Layout 01: Focus Split (Body Only)</div>
<div class="slide-base">
<!-- HEADER (Fixed) -->
<div class="header">
<h1>DX 실행 필수 요건 및 추진 로드맵</h1>
</div>
<!-- BODY AREA -->
<div class="body-container">
<div class="w-full h-full flex gap-12">
<!-- Left: Content (65%) -->
<div class="flex-[6.5] flex flex-col justify-center space-y-6">
<div class="space-y-3">
<div class="w-12 h-1.5 bg-blue-600 rounded-full"></div>
<h2 style="font-size: 38px;" class="font-black text-slate-900 leading-tight">DX 역량 내재화</h2>
</div>
<p style="font-size: 22px;" class="text-slate-600 leading-relaxed font-medium">
단순 기술 도입을 넘어, 조직 전반의 데이터 문해력(Data Literacy) 확보와
애자일 방식의 전파를 통한 구조적 변화가 선행되어야 합니다.
</p>
<div class="pt-4">
<span style="font-size: 13px;" class="px-5 py-2.5 bg-slate-100 rounded-xl font-bold text-slate-500 uppercase tracking-widest border border-slate-200">
Core Strategy 2026
</span>
</div>
</div>
<!-- Right: Visual/Detail (35%) -->
<div class="flex-[3.5] flex items-center justify-center">
<div class="w-full h-full bg-slate-50 rounded-[2.5rem] border-2 border-slate-100 flex flex-col items-center justify-center p-10 text-center relative overflow-hidden shadow-inner">
<div class="absolute -top-10 -right-10 w-40 h-40 bg-blue-500/5 rounded-full"></div>
<div class="w-20 h-20 bg-white rounded-3xl shadow-xl flex items-center justify-center mb-8">
<div class="w-10 h-10 bg-blue-600 rounded-xl"></div>
</div>
<h3 style="font-size: 24px;" class="font-black text-slate-800 mb-4">Strategic Impact</h3>
<p style="font-size: 15px;" class="text-slate-500 font-bold leading-normal">
의사결정 속도 40% 단축 및<br>신규 서비스 출시 주기 2배 가속화
</p>
</div>
</div>
</div>
</div>
<!-- FOOTER (Fixed) -->
<div class="footer">
<div class="footer-label">Summary</div>
<p class="footer-text">"기술보다 조직의 변화가 성공적인 디지털 전환의 핵심입니다."</p>
</div>
</div>
<!-- SAMPLE 2: QUADRANT GRID -->
<div class="layout-label">Layout 02: Quadrant Grid (Body Only)</div>
<div class="slide-base">
<!-- HEADER (Fixed) -->
<div class="header">
<h1>4대 핵심 추진 영역 가시화</h1>
</div>
<!-- BODY AREA -->
<div class="body-container">
<div class="w-full h-full grid grid-cols-2 grid-rows-2 gap-8">
<!-- Card 1 -->
<div class="bg-slate-50/50 rounded-[2rem] border-2 border-slate-100 p-8 flex flex-col justify-between hover:border-blue-200 hover:bg-white transition-all">
<div class="space-y-4">
<div class="flex items-center gap-4">
<span style="font-size: 14px;" class="w-9 h-9 flex items-center justify-center rounded-full bg-slate-900 text-white font-black">01</span>
<h3 style="font-size: 24px;" class="font-black text-slate-800">Governance</h3>
</div>
<p style="font-size: 16px;" class="text-slate-500 font-bold pl-12">전사 DX 추진 거버넌스 수립 및 KPI 정렬</p>
</div>
<div class="pl-12 pt-4">
<div class="w-full h-2 bg-slate-200 rounded-full overflow-hidden">
<div class="w-2/3 h-full bg-blue-600"></div>
</div>
</div>
</div>
<!-- Card 2 -->
<div class="bg-slate-50/50 rounded-[2rem] border-2 border-slate-100 p-8 flex flex-col justify-between hover:border-blue-200 hover:bg-white transition-all">
<div class="space-y-4">
<div class="flex items-center gap-4">
<span style="font-size: 14px;" class="w-9 h-9 flex items-center justify-center rounded-full bg-slate-900 text-white font-black">02</span>
<h3 style="font-size: 24px;" class="font-black text-slate-800">Platform</h3>
</div>
<p style="font-size: 16px;" class="text-slate-500 font-bold pl-12">통합 데이터 플랫폼 구축 및 클라우드 전환</p>
</div>
<div class="pl-12 pt-4">
<div class="w-full h-2 bg-slate-200 rounded-full overflow-hidden">
<div class="w-1/2 h-full bg-blue-600"></div>
</div>
</div>
</div>
<!-- Card 3 -->
<div class="bg-slate-50/50 rounded-[2rem] border-2 border-slate-100 p-8 flex flex-col justify-between hover:border-blue-200 hover:bg-white transition-all">
<div class="space-y-4">
<div class="flex items-center gap-4">
<span style="font-size: 14px;" class="w-9 h-9 flex items-center justify-center rounded-full bg-slate-900 text-white font-black">03</span>
<h3 style="font-size: 24px;" class="font-black text-slate-800">Operation</h3>
</div>
<p style="font-size: 16px;" class="text-slate-500 font-bold pl-12">비즈니스 프로세스 자동화 및 AI 비서 도입</p>
</div>
<div class="pl-12 pt-4">
<div class="w-full h-2 bg-slate-200 rounded-full overflow-hidden">
<div class="w-4/5 h-full bg-blue-600"></div>
</div>
</div>
</div>
<!-- Card 4 -->
<div class="bg-slate-50/50 rounded-[2rem] border-2 border-slate-100 p-8 flex flex-col justify-between hover:border-blue-200 hover:bg-white transition-all">
<div class="space-y-4">
<div class="flex items-center gap-4">
<span style="font-size: 14px;" class="w-9 h-9 flex items-center justify-center rounded-full bg-slate-900 text-white font-black">04</span>
<h3 style="font-size: 24px;" class="font-black text-slate-800">Training</h3>
</div>
<p style="font-size: 16px;" class="text-slate-500 font-bold pl-12">전 임직원 디지털 리터러시 강화 교육 시행</p>
</div>
<div class="pl-12 pt-4">
<div class="w-full h-2 bg-slate-200 rounded-full overflow-hidden">
<div class="w-full h-full bg-blue-600"></div>
</div>
</div>
</div>
</div>
</div>
<!-- FOOTER (Fixed) -->
<div class="footer">
<div class="footer-label">Summary</div>
<p class="footer-text">"영역별 균형 있는 추진을 통해 디지털 전환 시너지를 극대화합니다."</p>
</div>
</div>
</body>
</html>