한국어 제안서 디자인 시스템
회원 elite-powerpoint-designer
표지부터 마무리까지 12종 레이아웃으로 제안서 한 벌을 만듭니다. 파워포인트에서 한글만 다른 글꼴로 튀는 문제를 latin·ea·cs 세 슬롯을 모두 채워 막습니다.
- 12종 레이아웃 — 표지·목차·섹션·핵심메시지·카드·지표·타임라인·띠배너·매트릭스·로드맵·표·마무리
- 자간을 글자 크기 대비 퍼센트로 환산 — 44pt 제목에서 절대값을 쓰면 -0.3pt밖에 안 먹습니다
- 손글씨체 차단 목록 내장
- 로고·배경·저작권 문구는 비워 둔 자리라 각자 자기 것을 넣습니다
Codex 는 $elite-powerpoint-designer, Claude Code 와 Antigravity 는 /elite-powerpoint-designer 로 부릅니다.
그냥 "제안서 만들어줘" 라고 해도 설명문을 보고 알아서 붙습니다.
지시문 전문
아래가 SKILL.md 의 전부입니다. 에이전트가 읽는 것과 같은 글입니다.
Elite PowerPoint Designer
Transform content into world-class presentations with the design quality of Apple keynotes, Microsoft product launches, and Google I/O. This skill applies 2024-2025 presentation design trends and brand-level consistency to create stunning, professional slide decks.
Core Design Philosophy
Principles:
- Minimalism First - Remove everything that doesn't serve a clear purpose
- Bold & Clear - Large typography, high contrast, confident colors
- Visual Hierarchy - Guide attention through size, color, and spacing
- Consistent Branding - Every element follows the design system
- Purposeful Motion - Animations only where they add clarity or emphasis
When to Use This Skill
- User requests a "professional presentation" or "pitch deck"
- Converting markdown or text to PowerPoint
- User mentions "world-class," "high-quality," or "brand-level" design
- Creating presentations for business, sales, product launches, or keynotes
- User wants "Apple/Microsoft/Google style" presentations
- Request includes terms: slides, deck, presentation, PowerPoint, PPTX
Design System & Brand Styles
Available Brand Styles
1. Tech Keynote (Apple/Tesla Style)
- Colors: Deep blacks (#000000), whites (#FFFFFF), accent blue (#0071E3)
- Typography: SF Pro Display (title 72-96pt), SF Pro Text (body 32-44pt)
- Layout: Extreme whitespace, single focal point per slide
- Transitions: Push, Fade (duration: 0.6s)
- Style: Minimalist, premium, product-focused
2. Corporate Professional (Microsoft/IBM Style)
- Colors: Navy (#003366), steel blue (#0078D4), warm gray (#F3F2F1)
- Typography: Segoe UI (title 54-72pt), body (24-32pt)
- Layout: Balanced, grid-based, data-friendly
- Transitions: Morph, Fade (duration: 0.8s)
- Style: Trustworthy, data-driven, enterprise-ready
3. Creative Bold (Google/Airbnb Style)
- Colors: Bright primaries, gradients, bold combinations
- Typography: Product Sans or Montserrat (title 64-84pt)
- Layout: Dynamic, asymmetric, playful spacing
- Transitions: Zoom, Reveal (duration: 0.5s)
- Style: Energetic, innovative, design-forward
4. Financial Elite (Goldman Sachs/McKinsey Style)
- Colors: Charcoal (#2C3E50), gold accent (#D4AF37), white
- Typography: Garamond or Georgia (serif, elegant)
- Layout: Traditional hierarchy, centered, balanced
- Transitions: Subtle Fade only (duration: 0.4s)
- Style: Sophisticated, authoritative, premium
5. Startup Pitch (Y Combinator/500 Startups Style)
- Colors: High contrast black/white with brand accent
- Typography: Inter or Roboto (modern sans-serif)
- Layout: Problem-solution focused, metric-heavy
- Transitions: Quick Push (duration: 0.3s)
- Style: Energetic, data-driven, founder-friendly
Workflow Process
Step 1: Analyze Content & Select Style
python scripts/analyze_content.py input.md
Analysis considers:
- Content type (business, creative, technical, financial)
- Audience (executives, investors, customers, technical)
- Tone indicators in content (formal, energetic, innovative)
- Explicit style requests in frontmatter
Auto-selects brand style or asks user:
- Tech Keynote for product launches, demos
- Corporate Professional for business reports, proposals
- Creative Bold for marketing, design showcases
- Financial Elite for investor decks, financial reports
- Startup Pitch for fundraising, accelerator demos
Step 2: Parse Content & Map to Templates
Slide Type Detection:
# Title → title_slide (hero treatment)
## Section → chapter_intro (section divider)
### Main Points → key_message_slide (1-3 key points)
* Bullets → bullet_hierarchy_slide (visual bullets)
> Quote → quote_slide (large, impactful)
![image] → full_bleed_image (immersive)
| table | → data_visualization (auto-chart if numeric)
---metrics--- → metrics_dashboard (KPI showcase)
Step 3: Apply Design System
Typography Hierarchy:
Hero Title: 72-96pt, Bold, 1.1x line height
Section Title: 54-72pt, Semibold, 1.2x line height
Slide Title: 44-54pt, Semibold, 1.3x line height
Body Large: 32-36pt, Regular, 1.4x line height
Body: 24-28pt, Regular, 1.5x line height
Caption: 18-20pt, Light, 1.6x line height
Spacing System:
Gutter: 100-120px from edges
Title margin-bottom: 60-80px
Section spacing: 40-60px
Paragraph spacing: 24-32px
Bullet indent: 40px
Element padding: 20-30px
Color Application:
Background: Brand background (usually white/black)
Primary: Titles, key elements, CTAs
Secondary: Subtitles, secondary text
Accent: Highlights, data points, emphasis
Text: 95% opacity for readability
Step 4: Intelligent Template Selection
Use Office-PowerPoint-MCP-Server's 25+ templates with intelligent mapping:
Content Type → Template
Opening/Closing → title_slide, thank_you_slide
New Section → chapter_intro
Key Points (1-3) → key_metrics_dashboard
Comparison → before_after_comparison, chart_comparison
Process → process_flow, timeline_slide
Team → team_introduction
Data → data_table_slide, chart layouts
Mixed Content → two_column_text, three_column_layout
Full Image → full_image_slide
Quote/Testimonial → quote_testimonial
Step 5: Apply Professional Polish
Transitions & Animations:
- Slide Transitions: 1-2 types max per deck, matching brand style
- Duration: 0.3s (fast), 0.6s (medium), 0.8s (slow) based on brand
- Entrance Animations: Fade In for text (0.4s), optional Wipe for images
- Emphasis: Pulse on key numbers/metrics (once, subtle)
- Exit: Fade Out only (0.3s)
- Rule: Never more than 3 animated elements per slide
Visual Effects:
# Apply to all text boxes
shadow = {
"distance": 2,
"angle": 135,
"blur": 4,
"transparency": 60%
}
# Apply to images
overlay = {
"gradient": "linear",
"opacity": 20% # for text readability
}
Step 6: Consistency Validation
python scripts/validate_consistency.py output.pptx
Checks:
- Font consistency (max 2 font families)
- Color palette adherence (all colors from design system)
- Spacing consistency (margins, gutters, padding)
- Template usage (appropriate for content)
- Animation timing (within brand guidelines)
- Image quality (minimum 1920x1080)
Step 7: 한글 폰트 적용 — 한국어 덱은 필수
한국어 텍스트가 한 줄이라도 있으면 이 단계를 건너뛰지 않는다. 위 브랜드 스타일이 지정하는 폰트(SF Pro·Segoe UI·Product Sans·Garamond)는 전부 라틴 폰트다. 한글에는 적용되지 않는다.
이유는 구조에 있다. PowerPoint의 텍스트 속성에는 폰트 슬롯이 셋이다.
<a:latin> 영문·숫자
<a:ea> 한글·중국어·일본어 ← 한글이 실제로 따르는 슬롯
<a:cs> 아랍어 등
python-pptx의 run.font.name은 <a:latin>만 쓴다. 그래서 한글 폰트 이름을 넣어도 한글은 테마 기본값(맑은 고딕 등)으로 조용히 대체된다. 오류가 나지 않아 알아채기 어렵다.
python scripts/apply_korean_fonts.py deck.pptx --style tech-keynote -o final.pptx
python scripts/apply_korean_fonts.py final.pptx --check # 슬롯별 실제 폰트 확인
스크립트가 하는 일:
- 모든 런의
latin·ea·cs세 슬롯을 지정한다. 영문·숫자는 라틴 폰트를 따로 둘 수 있다. - 제목·소제목·본문·강조를 자리 표시자 종류와 글자 크기로 판정해 역할별로 다른 폰트를 준다.
- 자간과 행간을 한글 기준으로 조정한다.
- 테마의 폰트 구성표(
majorFont·minorFont의ea와script="Hang")까지 교체한다. 이후 사용자가 새로 만드는 텍스트 상자에도 한글 폰트가 자동 적용된다.
폰트 목록과 스타일별 매핑은 templates/korean-fonts.json에 있다. 한글 조판 규칙과 폰트 이름 확인 방법은 templates/KOREAN_GUIDE.md를 본다.
한국어 덱의 크기 기준은 위 브랜드 스타일이 제시한 영문 기준에 0.88을 곱한다. 한글은 같은 pt에서 라틴보다 크게 보인다. 96pt 제목은 84pt로 내린다.
Step 8: 한국어 제안서 규칙 — 어길 수 없는 것
금지 폰트. 제안서에는 고딕(산세리프)만 쓴다. 강원교육새음 계열, 나눔손글씨를 포함한 모든 손글씨·캘리그래피, 궁서·바탕, 둥근모·픽셀 계열은 예외 없이 금지한다. 목록은 templates/korean-fonts.json의 forbidden에 있다.
강조 표현. 포인트 문구는 나눔스퀘어 네오 Heavy + 그라데이션(보라 #7C3AED → 블루 #1428A0)을 함께 쓴다. 발주처 BI 색이 있으면 끝 색을 그 색으로 바꾼다. 한 슬라이드에 강조는 한 곳만.
BI가 블루인 발주처. samsung-blue 스타일을 쓴다. assets/backgrounds/에 아래 이름으로 이미지를 넣어 두면 레이아웃별로 자동 적용된다. 배포판에는 이미지가 들어 있지 않다 — 배경은 권한이 확인된 것만 써야 해서 각자 채우는 자리로 뒀다. 비워 두면 단색 배경으로 빌드된다.
| 레이아웃 | 배경 |
|---|---|
| 표지 | blue-01-cover.jpg |
| 섹션 구분 | blue-02-section.jpg |
| 본문 전체 | blue-04-light.jpg |
| 마무리 | blue-03-wave.jpg |
| AI·반도체 주제 표지 | blue-05-ai.jpg |
밝은 배경을 전제로 글자는 딥네이비(#0B1F3A)를 쓴다. 이미지 파일이 실제로 없으면 이 전제를 끄고 단색 배경에 맞는 글자색으로 돌아간다. 이미지의 그래픽은 대부분 우측·하단에 있으므로 텍스트는 좌측에 배치하고 우측 여백을 남긴다. 배경 이미지는 발주처가 제공했거나 사용 권한이 확인된 것만 쓴다.
자간은 폰트 크기 대비 퍼센트로 준다. 절대값(spc="-30")으로 넣으면 44pt 제목에서 -0.3pt밖에 안 먹어 글자가 흩어져 보인다. 큰 제목 -3~-5%, 소제목 -2%, 본문 0~-1%. build_korean_deck.py가 spc = 크기(pt) × 퍼센트로 자동 환산한다.
레이아웃 빌더. 자리 표시자를 쓰지 않고 도형을 직접 배치하는 12종 레이아웃이 scripts/build_korean_deck.py에 있다. 기본 템플릿 느낌이 남지 않는다.
| 레이아웃 | 쓰임 |
|---|---|
cover closing | 표지·마무리 |
agenda section | 목차·섹션 구분 |
message | 핵심 메시지 한 줄 (자동 Heavy + 그라데이션) |
cards metrics timeline | 카드 그리드·지표·일정 |
banner | 제목 + 짙은 띠에 핵심 한 문장. 강조어만 색을 바꾼다. 본문 시작 y를 함께 돌려준다 |
matrix | 좌측 라벨 열 + 우측 카드 행. banner·roadmap이 돌려준 y에 이어 붙인다 |
roadmap | Pre / Main / Post 구간 로드맵. 구간 폭이 하위 단계 수에 비례한다 |
table | 밀도 높은 표. 열 폭 비율 지정, 첫 열 강조, 홀수 행 음영 |
thankyou | 제안서 마지막 장 고정 형식. 좌측 명함 블록(로고·주소) + 우측 Thank you |
자사 로고. assets/logo/에 logo.png(원본)와 logo-white.png(어두운 배경용 흰색 반전본)를 넣으면 자동으로 얹힌다. 배포판에는 로고가 들어 있지 않다 — 자기 것을 넣는 자리다. 없으면 로고 없이 빌드된다. 저작권 문구는 footer(sl, text="..."), 마무리 장의 주소·URL은 thankyou(url=..., address=..., copyright=...)로 준다. 셋 다 기본값이 비어 있어 넣지 않으면 나오지 않는다. Deck(style)은 기본으로 표지 좌측 상단에 로고, 본문 우측 하단에 저작권 표기를 넣는다. 빼려면 Deck(style, branding=False).
마지막 장은 thankyou로 고정한다. closing은 로고 없는 범용 마무리이고, 발주처 제출 제안서는 thankyou를 쓴다.
d.thankyou(subtitle="삼성○○ AI 시대 반도체 인재 육성 과정")
# url·address·copyright는 기본값이 들어 있고 필요하면 인자로 바꾼다
뒤의 넷이 제안서 실무형이다. banner → matrix 또는 roadmap → matrix 로 이어 붙이면 한 장에 정보를 밀도 있게 담을 수 있다.
sl, top = d.banner("1. 제안 개요", "핵심 한 문장", highlights=["강조할 부분"])
d.matrix(sl, top, [("개요", [("대상", "50명"), ("기간", "15일")]), ...])
from build_korean_deck import Deck
d = Deck("samsung-blue") # 또는 standard / tech-keynote / ...
d.cover("제목", "부제", "메타")
d.message("핵심 판단", "강조할 한 줄") # 자동으로 Heavy + 그라데이션
d.metrics("성과", [("94.7", "%", "이수율")]) # 숫자에 그라데이션
d.save("out.pptx")
Template Mapping Reference
High-Impact Opening
# Your Big Idea
## Transforming the Future of X
→ title_slide
- Title: 96pt, brand primary
- Subtitle: 36pt, brand secondary
- Background: Gradient or solid brand color
- Animation: Fade in title (0.8s), then subtitle (0.6s)
Key Message (The "One Thing")
### 94% Customer Satisfaction
Our users love the new experience
→ key_metrics_dashboard (single metric variation)
- Metric: 144pt, center, brand accent
- Context: 28pt, below metric
- Background: Clean, minimal
- Animation: Count up number (1.2s)
Problem/Solution
## The Challenge
Current systems are slow and complex
## Our Solution
Fast, simple, and intuitive
→ before_after_comparison
- Split screen: left (problem) vs right (solution)
- Visual contrast: muted left, bright right
- Icons or images to reinforce message
Process or Timeline
## Our Roadmap
1. Q1: Foundation
2. Q2: Growth
3. Q3: Scale
4. Q4: Leadership
→ timeline_slide or process_flow
- Horizontal flow with arrows
- Color progression (light to bold)
- Dates: 32pt, stages: 44pt
Data Visualization
| Quarter | Revenue | Growth |
|---------|---------|--------|
| Q1 | $2.4M | 15% |
| Q2 | $3.1M | 29% |
→ Auto-convert to chart_comparison or data_table_slide
- If trends: Line or column chart
- If comparisons: Bar chart
- If parts/whole: Pie chart (use sparingly)
- Keep it simple: 1 chart per slide
Animation & Transition Guidelines
Professional Transition Rules
Tier 1: Always Safe (Use liberally)
- Fade (0.6s) - Universal, elegant
- Push (0.4s) - Clean, directional
- Morph (0.8s) - PowerPoint only, sophisticated
Tier 2: Use Sparingly (Special moments)
- Zoom (0.5s) - Product reveals, before/after
- Reveal (0.6s) - Section transitions
- Wipe (0.5s) - Image-heavy decks
Tier 3: Avoid (Unprofessional)
- Ferris Wheel, Curtains, Dissolve, Origami - Never use
Animation Best Practices
The "AHA!" Moment Rule:
- Pick 1-2 critical slides per deck
- Apply single emphasis animation (Pulse, Grow)
- Duration: 0.8-1.0s
- Happens once, not on loop
Text Animation:
# Professional entrance
effect = "Fade In"
duration = 0.4
delay_between_bullets = 0.3 # If bullets, stagger
Image Animation:
# Optional for product shots or key visuals
effect = "Wipe" or "Fade In"
duration = 0.6
direction = "From Bottom" # Natural, like rising
Advanced Features
Auto-Generated Section Dividers
===
# Part Two: Growth Strategy
===
→ Auto-creates chapter_intro with:
- Full-screen background (brand gradient)
- Large centered text (84pt)
- Fade to black transition (1.0s)
Smart Image Handling

 
→ Detects image size/role:
- Large/hero: full_image_slide with overlay for text
- Multiple: two_column or grid layout
- Auto-crops to 16:9
- Applies subtle gradient overlay (20%) if text present
Metrics Auto-Emphasis
We achieved **94%** customer satisfaction and **$2.4M** in revenue.
→ Auto-detects numbers with emphasis:
- Extracts: 94%, $2.4M
- Creates: key_metrics_dashboard
- Animates: Count-up effect (1.2s)
- Styling: Large (144pt), brand accent color
Quality Checklist
Before finalizing, ensure:
Visual Consistency:
- [ ] All slides use design system colors (no random colors)
- [ ] Typography follows hierarchy (no more than 4 font sizes)
- [ ] Spacing is consistent (same margins, padding throughout)
- [ ] Alignment is precise (everything lines up to grid)
Content Clarity:
- [ ] One main idea per slide
- [ ] Titles are clear and action-oriented
- [ ] No "walls of text" (max 6 lines body text)
- [ ] Images are high-resolution (min 1920x1080)
Motion & Polish:
- [ ] Transitions are consistent (1-2 types only)
- [ ] Animation duration feels natural (not too fast/slow)
- [ ] No distracting motion (failed the "boardroom test")
- [ ] Emphasis animations only on critical moments
Brand Alignment:
- [ ] Colors match selected brand style
- [ ] Typography matches brand style
- [ ] Layout follows brand conventions
- [ ] Overall aesthetic feels cohesive
Examples
See examples/ folder for:
tech-keynote-example.md→tech-keynote-output.pptxinvestor-pitch-example.md→investor-pitch-output.pptxcorporate-report-example.md→corporate-report-output.pptx
Requirements
MCP Server: Office-PowerPoint-MCP-Server
# Install via Smithery
npx @smithery/cli install @gongrzhe/office-powerpoint-mcp-server
# Or local setup
pip install python-pptx
Python Packages:
pip install python-pptx pillow pyyaml
Tips for Best Results
- Start with Style: Add frontmatter to markdown with desired brand style ``
yaml --- style: tech-keynote accent-color: "#0071E3" ---``
- Less is More: Aim for 1 slide per minute of presentation time
- Image Quality Matters: Use high-res images (min 1920x1080, prefer 4K)
- Test Animations: Preview deck to ensure transitions feel professional
- Print-Ready: Design also works for PDF export (animations become static)
- Accessibility: Maintain 4.5:1 contrast ratio for text readability
Troubleshooting
Issue: Colors don't match brand exactly Solution: Specify exact hex codes in frontmatter:
---
colors:
primary: "#003366"
accent: "#0078D4"
background: "#FFFFFF"
---
Issue: Too much animation Solution: Set animation level in frontmatter:
---
animations: minimal # minimal, moderate, full
---
Issue: Slides too dense Solution: Follow "6x6 rule" - max 6 bullets, max 6 words per bullet. Claude will auto-split content if needed.
Next-Level Customization
Advanced users can:
- Create custom brand JSON in
templates/brands/ - Define custom slide templates
- Add company logo to master slides
- Configure font embedding for portability
See templates/CUSTOMIZATION.md for details.