# Prism — M2 16:9 PPT 덱 실행 명세 (Layer 3) | 버전 | 수정일 | 수정자 | 주요 변경 내용 | 비고 | | :--- | :--- | :--- | :--- | :--- | | v0.1.0 | 2026-07-29 | HMCM | 신규 제정 — 16:9 PPT·발표 슬라이드 실행 명세. EMU 좌표 전량 수록, 구조 검증 12항 통과 | `active` 등록 (modules §4.4) | | 메타 | 값 | | :--- | :--- | | 모듈 | **M2 `ppt-deck`** — 16:9 PPT 덱 | | 계층 | Layer 3 (실행 명세 · **자기완결형**) | | 대상 산출물 | PPTX·PDF·HTML 슬라이드 — 보고 덱·강연 덱·세미나 자료 | | 상위 의존 | `Design.md` 0.1.1 · foundations 0.1.2 · medium.presentation 0.1.1 · components 0.1.1 · tokens.json 0.1.1 | | 지배 조건 | 관람 환경 통제 불가 — **"대비가 씻겨서 안 보임"이 주 위험.** 최악 조건 XGA 투사(유효 배율 53.3%) 기준으로 하한 설계 | ```yaml module: id: ppt-deck name: 16:9 PPT 덱 version: 0.1.0 status: active brand: saman medium: presentation dual_medium: false format: 1920x1080 # 논리 캔버스 고정 (CV-1) columns: 12 type_set: expressive component_count: 19 variant_count: 33 patterns: [s1-cover, s2-toc, s3-divider, s4-content, s5-compare, s6-triple, s7-process, s8-data, s9-conclusion] depends_on: { foundations: 0.1.2, medium.presentation: 0.1.1, components: 0.1.1 } ``` --- ## 1. 적용 조건 | 적용 | 제외 | | :--- | :--- | | 발표용 16:9 슬라이드 (PPTX·Keynote·PDF) | 인쇄 배포 자료 → M5 (`A3/`) — 슬라이드 축소 인쇄 금지, 재조판 | | 화면 공유·투사 보고 덱 | 스크롤 문서·대시보드 → M3 (`webapp/`) | | 전시·사이니지 정지 화면 | 초와이드 3.55:1 → X1 확장 슬롯 | --- ## 2. 캔버스·그리드 (정본 값 + EMU) ### 2.1 캔버스 | 항목 | px | EMU | 비고 | | :--- | ---: | ---: | :--- | | 캔버스 | **1920 × 1080** | **12,192,000 × 6,858,000** | PowerPoint 기본 와이드스크린과 **정확 일치** | | 환산 | — | **EMU = px × 6350 (정수, 잔차 0)** | 폰트 pt = px ÷ 2 | 슬라이드 크기는 PowerPoint **기본 와이드스크린(13.3333×7.5in)**으로 설정한다. 커스텀 크기 금지 (PX-1). ### 2.2 수평 그리드 | 항목 | px | EMU | | :--- | ---: | ---: | | 좌우 마진 | 48 | 304,800 | | 콘텐츠 폭 | 1824 | 11,582,400 | | 컬럼 (12개) | 130 | 825,500 | | 거터 | 24 | 152,400 | 컬럼 X좌표: `X(i) = 48 + (i−1)×154` → 48 · 202 · 356 · 510 · 664 · 818 · 972 · 1126 · 1280 · 1434 · 1588 · 1742 ### 2.3 수직 존 | 존 | y 범위 (px) | 높이 | EMU (상단 y) | | :--- | :--- | ---: | ---: | | 헤더 존 (아이브로·제목·메타) | 48 ~ 192 | 144 | 304,800 | | 콘텐츠 밴드 | **216 ~ 960** | 744 | 1,371,600 | | 푸터 존 (출처·페이지·브랜드) — **불가침** | 984 ~ 1032 | 48 | 6,248,400 | ### 2.4 분할별 존 좌표 (x / 폭, px — EMU는 ×6350) | 분할 | 존1 | 존2 | 존3 | 존4 | | :--- | :--- | :--- | :--- | :--- | | `12` | 48 / 1824 | | | | | `6:6` | 48 / 900 | 972 / 900 | | | | `8:4` | 48 / 1208 | 1280 / 592 | | | | `4:8` | 48 / 592 | 664 / 1208 | | | | `4:4:4` | 48 / 592 | 664 / 592 | 1280 / 592 | | | `3:3:6` | 48 / 438 | 510 / 438 | 972 / 900 | | | `3:3:3:3` | 48 / 438 | 510 / 438 | 972 / 438 | 1434 / 438 | **존별 본문 가능 여부**: 6col(900px=37.5em) 이하만 연속 본문 가능. 8col(1208px)·12col(1824px)은 도판·표·단문(1~2행) 전용 (ZN-1·ZN-2). 3col(438px) 텍스트는 3행 이하 (ZN-3). --- ## 3. 타입 바인딩 (base 24px) | 역할 | px | **PPTX pt** | 행간 | 캔버스 H 비 | 웨이트 | 자간 | | :--- | ---: | ---: | :-: | :---: | :--- | :--- | | `caption` | 19 | **9.5** | 1.55 | H/57 (절대 하한) | Medium 500 | 0 | | `body-sm` | 21 | **10.5** | 1.70 | H/51 | Regular 400 | 0 | | **`body`** | **24** | **12.0** | **1.70** | **H/45 (본문 하한)** | Regular 400 | 0 | | `body-lg` | 27 | **13.5** | 1.70 | H/40 | Regular 400 | 0 | | `title-sm` | 30 | **15.0** | 1.50 | H/36 | Medium 500 | 0 | | `title` | 38 | **19.0** | 1.50 | H/28 | Bold 700 | 0 | | `title-lg` | 49 | **24.5** | 1.50 | H/22 | Bold 700 | 0 | | `display` | 69 | **34.5** | 1.25 | H/16 | Regular 400 | **−0.015em** | | `display-lg` | 99 | **49.5** | 1.25 | H/11 | Regular 400 | **−0.02em** | | ID | 규칙 | | :--- | :--- | | **TP-D1** | **19px(caption) 미만 텍스트를 슬라이드에 두지 않는다.** 출처·각주 포함 | | **TP-D2** | 본문 크기를 낮춰 정보를 더 넣지 않는다. **정보를 줄이거나 슬라이드를 나눈다** | | **TP-D3** | 서체 Pretendard **임베드 필수.** 불가 시 아웃라인 처리 또는 PDF 배포 | ## 스페이싱·획·반경 (px — EMU는 ×6350) | 토큰 | px | | 획 | px | | 반경 | px | | :--- | ---: | :-: | :--- | ---: | :-: | :--- | ---: | | `space.025` | 3 | | `hairline` | 2 | | `none` | 0 | | `space.050` | 6 | | `regular` | 3 | | `sm` | 6 | | `space.100` | 12 | | `bold` | 4 | | `md` | 12 | | `space.150` | 18 | | `icon` | 5 | | `lg` | 18 | | `space.200` | 24 | | `connector` | 7 | | | | | `space.300` | 36 | | 하한 | **2** (역상 흰 선 금지) | | | | | `space.400` | 48 | | | | | | | 수직 간격은 `space.050`(6px) 배수로 스냅한다. 베이스라인 그리드는 운용하지 않는다 (BL-P1·P2). --- ## 4. 색·테마 (등록 페어만) ### 4.1 라이트 (기본) | 용도 | 전경 / 배경 | 실측 | 판정 | | :--- | :--- | :---: | :--- | | 캔버스 | — / `sand #F4F3F0` | — | **순백 전면 금지** (BG-P1) | | 본문 | `brown #474235` / sand | 9.02 | AAA ✓ | | 제목 | `green #1F524B` / sand | 8.00 | AAA ✓ | | 카드 위 | brown·green / `white` | 10.01 · 8.87 | AAA ✓ | | 그린 면 위 | white / green | 8.87 | AAA ✓ (보조: subtle 5.93 AA) | | 대형 악센트 | `orange #D05C26` / sand·white | 3.61 · 4.01 | **대형 전용** (title-sm 30px 이상) | ### 4.2 다크 (표지·디바이더·강조 슬라이드 전용) | 용도 | 전경 / 배경 | 실측 | 판정 | | :--- | :--- | :---: | :--- | | 본문·제목 | sand / `obsidian #111111` | 17.02 | AAA ✓ | | 보조 | `subtle #D3D3D3` / obsidian | 12.61 | AAA ✓ | | 악센트 | orange / obsidian | 4.71 | AA — 대형 권장 | | **금지** | **green / obsidian** | **2.13** | **✗ 텍스트 절대 금지** — green은 다크 위에서 면·도형만 | | ID | 규칙 | | :--- | :--- | | **CL-D1** | 다크(강조) 슬라이드는 **덱 전체의 10% 이하**, 구조 전환점에만. 연속 2장 금지 (HL-1~4) | | **CL-D2** | 악센트(orange) **슬라이드당 ≤ 2** (틱·귀결 커넥터·강조어 합산). 상태색·차트색 제외 | | **CL-D3** | 그림자·알파·그라디언트·글래스모피즘 **금지.** 깊이는 보더·톤차로만 | | **CL-D4** | 차트는 직접 라벨링 원칙, 3계열 이상 패턴 병기, **적색-흑색 조합 금지** (CD-P1~P4) | | **CL-D5** | 상태색은 기호(✓✕▲▣) 필수. 다크 슬라이드에서는 반전 페어(container↔on 교환, 실측 동일)를 쓴다 | --- ## 5. 슬라이드 패턴 (9종) | ID | 분할 | 테마 | 존 구성 | 결론 존 | 적용 | | :--- | :--- | :--- | :--- | :--- | :--- | | **S1 표지** | `12` | 다크 허용 | hero(display-lg·강조어 1) + 메타(발표자·일자) | hero | 덱 시작 | | **S2 목차** | `4:8` | 라이트 | ①eyebrow+title ②toc(2단계 이내) | ② | 안내 | | **S3 디바이더** | `12` | **다크** | 장 번호(display) + 장 제목(title-lg) | 제목 | 장 전환 (HL 카운트) | | **S4 표준 콘텐츠** | `8:4` 또는 `12` | 라이트 | ①본문·도판 ②card·stat·directive | ②상단 | 일반 해설 | | **S5 비교** | `6:6` | 라이트 | 좌우 card·table (directive pair 허용) | 하단 principle | 대조 | | **S6 3요소** | `4:4:4` | 라이트 | card·stagecard ×3 | 중앙 또는 하단 | 병렬 요점 | | **S7 프로세스** | `3:3:3:3` | 라이트 | stagecard×4 + connector(귀결만 악센트) | 최종 단계 | 절차 | | **S8 데이터** | `8:4` | 라이트 | ①chartframe·table ②stat·해설 | ② | 수치 근거 | | **S9 결론** | `12` 또는 `3:3:6` | 라이트/다크 | principle 전폭 (+근거 2존) | principle | 마무리·지침 | | ID | 규칙 | | :--- | :--- | | **PT-D1** | 슬라이드당 결론 존 1개 (PD-1). `principle`·`hero` 슬라이드당 1개 | | **PT-D2** | 콘텐츠 하단 ≤ 960px — 푸터 존(984~1032) 불가침 (VZ-1·VZ-2) | | **PT-D3** | 밴드를 위→아래로 채운다. 하단 공백 > 25% 금지 (VZ-4) | | **PT-D4** | 애니메이션은 **최종 상태만으로 슬라이드가 성립**해야 한다 (MO-3). 전환은 페이드, 장식 모션 금지 | --- ## 6. 컴포넌트 선별 (19종 / 변형 33종) `eyebrow`(2) · `header`(1) · `hero`(1) · `rule`(1) · `footer`(1) · `card`(4) · `stagecard`(3) · `connector`(1) · `principle`(1) · `table`(4) · `stat`(1) · `chartframe`(1) · `directive`(3) · `badge`(4) · `scope`(1) · `toc`(1) · `stepper`(1) · `xref`(1) · `mediaframe`(1) **미선별**: `specsheet`(presentation 비적용), screen 전용 5종(button·input·modal·toast·disclosure). 주요 사용 규정: header 메타는 **2필드로 축약** · footer 우측 = 브랜드·버전·페이지 · xref 형식 `(→ 3.4)` · table 헤더는 슬라이드마다 반복 · 표 분할 시 "(계속)" 표기. --- ## 7. 분량 예산 | 슬롯 | 권장 | 최대 | 근거 | | :--- | :-: | :-: | :--- | | 슬라이드 제목 (`title-lg` 49px) | 15자 | 25자 | 1824px ÷ 49px ≈ 37자 → 존 폭·여유 감안 1행 | | 히어로 헤드라인 (`display-lg`) | 12자 | 18자 | 1824 ÷ 99 ≈ 18자 | | 본문 단락 (6col 존) | 3행 | 5행 | 900px = 37.5em, 슬라이드당 문단 1~2개 | | 카드 제목 / 본문 | 12 / 60자 | 20 / 90자 | 4col 카드 내폭 544px ÷ 24px ≈ 22자 × 4행 | | 스테이지 설명 | 30자 | 45자 | 3col 내폭 390px ÷ 21px ≈ 18자 × 3행 | | directive 진술 | 60자 | 90자 | 6col 기준 | | principle 진술 | 40자 | 60자 | 전폭 1~2행 | | stat 라벨 / 주석 | 10 / 20자 | 15 / 25자 | 카탈로그 승계 | | 출처 (caption) | 40자 | 60자 | 푸터 존 1행 | **슬라이드 총량 규칙**: 1장에 본문 텍스트 총 250자를 넘기지 않는다(권장 150자). 초과분은 배포 자료(M5)로 이관한다. --- ## 8. PPTX 생성 상수 (python-pptx 등 자동 생성용) ``` slide_width = 12192000 EMU (13.3333 in) slide_height = 6858000 EMU (7.5 in) EMU_PER_PX = 6350 font_pt(px) = px / 2 좌표 변환 = px × 6350 (반올림 불필요 — 정수 보장) 폰트 = Pretendard (임베드), 표·수치 tnum ``` | ID | 규칙 | | :--- | :--- | | **GX-1** | 전 좌표·치수는 §2의 px 값 × 6350으로 산출한다. 임의 좌표 금지 | | **GX-2** | 텍스트 상자 자동 축소(shrink-to-fit)를 **금지**한다 — 예산(§7)으로 통제 | | **GX-3** | 생성 후 **PPTX 왕복 검증**(저장→재열기)으로 좌표·폰트 유지를 확인한다 | | **GX-4** | 인쇄 배포가 필요하면 M5로 **재조판**한다. 슬라이드 축소 인쇄 금지 | --- ## 9. 제작 절차 | 단계 | 작업 | 판정 | | :-: | :--- | :--- | | 1 | 메시지를 슬라이드 단위로 분해 — **1장 = 1논리 단위** | 덱 구성표 | | 2 | 각 장에 패턴(S1~S9) 배정, 다크 장 ≤ 10% 확인 | 매핑 완료 | | 3 | 존 좌표 산출 (§2.4) | 정합 잔차 0 | | 4 | 컴포넌트 배치 (§6) | 카탈로그 외 0건 | | 5 | 문안 작성 — §7 예산, 어미 4종, 방향어 금지 | 예산 위반 0건 | | 6 | 색 적용 — §4 등록 페어만, 악센트 ≤ 2/장 | 미등록 0건 | | 7 | PPTX 생성 (§8) 또는 HTML(1920×1080 오써링 후 전체 스케일) | 왕복 검증 | | 8 | 검증 §10 | 전항 PASS | --- ## 10. 검증 체크리스트 ### 자동 | # | 항목 | 기준 | | :-: | :--- | :--- | | A1 | 캔버스 | 1920×1080 고정, EMU 정합 (px×6350) | | A2 | 그리드 | 12×130+11×24=1824, 존 좌표 §2.4 일치 | | A3 | 최소 크기 | 전 텍스트 ≥ 19px, 본문 ≥ 24px | | A4 | 최소 선 | ≥ 2px, 역상 흰 선 0건 | | A5 | 푸터 불가침 | 콘텐츠 하단 ≤ 960px | | A6 | measure | 연속 본문 존 ≤ 6col | | A7 | 대비 | 본문 AAA (≥7:1), 등록 페어만 | | A8 | 그림자·알파·그라디언트·순백 전면 | 0건 | | A9 | 악센트 경제 | 장당 ≤ 2 | | A10 | 강조(다크) 비율 | ≤ 10%, 연속 2장 0건 | | A11 | 폰트 임베드 | 미임베드 0건 | | A12 | 음수 자간 | 60px 미만 요소 0건 | | A13 | 예산 | 전 슬롯 최대 이하, 잘림 0건 | ### 육안 | # | 항목 | | :-: | :--- | | V1 | **XGA 축소 판독** — 53.3%(1024×576) 렌더 후 판독 확인 | | V2 | 그레이스케일 변환 후 정보 손실 0 | | V3 | 원거리 판독 — 화면 높이 8배 거리에서 1차 메시지 식별 | | V4 | 결론 존 단일성·레이어드 디테일 2층 (PD-1·PD-3) | | V5 | 애니메이션 없이 전 슬라이드 성립 (MO-3) | | V6 | 실투사 시험 (가능한 경우 — 실제 프로젝터·조명) | ### 구조 검증 결과 (modules §8.1 — `active` 등록 근거) 12항 전항 **PASS** (2026-07-29, HMCM): 스키마 충족 · depends_on 기록 · 정량 명시(19종/33변형) · 완화 0건 · 전 슬롯 예산 · 분할 허용 목록 준수 · 결론 존 1개 · 존 좌표 정합 · 카탈로그 외 0건 · 미사용 0건 · 역할 중복 0건 · 겸용 해당 없음 --- *본 모듈은 참조 사양이다 (DC-3). 발표 내용의 정확성·적절성은 별도 검증해야 한다.*