177 lines
4.1 KiB
HTML
177 lines
4.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>DX 실행 체계 구축 방안</title>
|
|
<style>
|
|
/* Design Agent — 디자인 토큰 */
|
|
/* CLAUDE.md에 정의된 디자인 원칙을 CSS 변수로 구현 */
|
|
|
|
:root {
|
|
/* 색상 */
|
|
--color-primary: #1e293b;
|
|
--color-accent: #2563eb;
|
|
--color-neutral: #64748b;
|
|
--color-bg: #ffffff;
|
|
--color-bg-subtle: #f8fafc;
|
|
--color-border: #e2e8f0;
|
|
--color-danger: #dc2626;
|
|
--color-success: #16a34a;
|
|
--color-text: #1e293b;
|
|
--color-text-secondary: #64748b;
|
|
--color-text-light: #94a3b8;
|
|
|
|
/* 폰트 크기 */
|
|
--font-title: 2rem;
|
|
--font-subtitle: 1.25rem;
|
|
--font-body: 0.95rem;
|
|
--font-caption: 0.8rem;
|
|
--font-small: 0.7rem;
|
|
|
|
/* 폰트 두께 */
|
|
--weight-normal: 400;
|
|
--weight-medium: 500;
|
|
--weight-bold: 700;
|
|
--weight-black: 900;
|
|
|
|
/* 여백 */
|
|
--spacing-page: 40px;
|
|
--spacing-block: 20px;
|
|
--spacing-inner: 16px;
|
|
--spacing-small: 8px;
|
|
|
|
/* 기타 */
|
|
--radius: 6px;
|
|
--border-width: 1px;
|
|
--accent-border: 3px;
|
|
--line-height-ko: 1.7;
|
|
}
|
|
|
|
/* Design Agent — 기본 슬라이드 스타일 */
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 슬라이드 컨테이너: 16:9 고정 비율 */
|
|
.slide {
|
|
width: 1280px;
|
|
height: 720px;
|
|
aspect-ratio: 16 / 9;
|
|
overflow: hidden;
|
|
background: var(--color-bg);
|
|
font-family: 'Pretendard Variable', 'Pretendard', 'Noto Sans KR', sans-serif;
|
|
color: var(--color-text);
|
|
font-size: var(--font-body);
|
|
line-height: var(--line-height-ko);
|
|
word-break: keep-all;
|
|
padding: var(--spacing-page);
|
|
display: grid;
|
|
gap: var(--spacing-block);
|
|
}
|
|
|
|
/* 슬라이드 제목 */
|
|
.slide-title {
|
|
font-size: var(--font-title);
|
|
font-weight: var(--weight-black);
|
|
color: var(--color-primary);
|
|
border-bottom: var(--accent-border) solid var(--color-accent);
|
|
padding-bottom: var(--spacing-small);
|
|
}
|
|
|
|
/* 섹션 제목 */
|
|
.section-title {
|
|
font-size: var(--font-subtitle);
|
|
font-weight: var(--weight-bold);
|
|
color: var(--color-primary);
|
|
margin-bottom: var(--spacing-small);
|
|
}
|
|
|
|
/* 본문 */
|
|
.body-text {
|
|
font-size: var(--font-body);
|
|
color: var(--color-text);
|
|
line-height: var(--line-height-ko);
|
|
}
|
|
|
|
/* 캡션/출처 */
|
|
.caption {
|
|
font-size: var(--font-caption);
|
|
color: var(--color-text-light);
|
|
font-style: italic;
|
|
}
|
|
|
|
/* 강조 텍스트 */
|
|
.highlight {
|
|
color: var(--color-accent);
|
|
font-weight: var(--weight-bold);
|
|
}
|
|
|
|
/* 경고/문제 강조 */
|
|
.danger {
|
|
color: var(--color-danger);
|
|
font-weight: var(--weight-bold);
|
|
}
|
|
|
|
/* ── 컨테이너 레이아웃 ── */
|
|
/* grid area: flex 축소 허용. overflow는 프레임(.slide)에서만 hidden. */
|
|
/* A-1(Sonnet 디자인 조정)이 텍스트 양에 맞게 CSS를 사전 조정하므로,
|
|
area 레벨에서는 overflow: visible로 텍스트 잘림을 방지한다. */
|
|
.slide > div {
|
|
overflow: visible;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
/* area 안에서 flex-column 그룹핑된 블록들의 축소 허용 */
|
|
.slide > div > div {
|
|
min-height: 0;
|
|
flex-shrink: 1;
|
|
}
|
|
|
|
|
|
.slide-1 {
|
|
grid-template-areas: 'header header' 'body sidebar' 'footer footer';
|
|
grid-template-columns: 65fr 35fr;
|
|
grid-template-rows: auto auto auto;
|
|
}
|
|
.slide-1 .area-body { grid-area: body; }
|
|
.slide-1 .area-sidebar { grid-area: sidebar; }
|
|
.slide-1 .area-footer { grid-area: footer; }
|
|
|
|
.slide + .slide { margin-top: 40px; }
|
|
@media print {
|
|
.slide { page-break-after: always; }
|
|
.slide + .slide { margin-top: 0; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="slide slide-1">
|
|
<div class="slide-title" style="grid-area: header;">DX 실행 체계 구축 방안</div>
|
|
|
|
<div class="area-body" style="overflow:hidden;">
|
|
|
|
</div>
|
|
|
|
<div class="area-sidebar" style="overflow:hidden;">
|
|
|
|
</div>
|
|
|
|
<div class="area-footer" style="overflow:hidden;">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
window.onbeforeprint = function() {
|
|
document.querySelectorAll('details').forEach(function(d) { d.open = true; });
|
|
};
|
|
window.onafterprint = function() {
|
|
document.querySelectorAll('details').forEach(function(d) { d.open = false; });
|
|
};
|
|
</script>
|
|
</body>
|
|
</html> |