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.
This commit is contained in:
231
Front/standard_slide_preview.html
Normal file
231
Front/standard_slide_preview.html
Normal file
@@ -0,0 +1,231 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user