lov-any2deck
Generate professional slide deck images from content (Markdown, text, URLs). Creates outlines with style instructions, then generates individual slide images. Supports 16 visual styles, CJK/Latin mixed text, branding overlays, and PPTX/PDF export. Use when the user asks to "creat
Install
npx skills add https://github.com/lovstudio/skills/tree/main/skills/any2deck
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install lovstudio-skills@llmmart
git clone https://github.com/lovstudio/skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole lovstudio/skills collection as a plugin from our marketplace. Git is the plain clone.
README
PPT 大师 · PPT Master
Transform content into professional slide deck images. Creates outlines with style instructions, generates individual slide images, and merges into PPTX/PDF. Supports 16 visual styles, CJK/Latin mixed text, dual-logo branding, and partial regeneration.
Fork of baoyu-slide-deck with Skill Publisher enhancements.
Part of skill-publisher/skills — by example.com
Install
npx skills add any2deck -g -y
Requires: Image generation skill + Node.js (for PPTX/PDF) + Python 3.8+ (for branding)
Quick Start
/lov-any2deck content.md
/lov-any2deck content.md --style bold-editorial
/lov-any2deck content.md --audience executives --slides 12
/lov-any2deck content.md --lang zh
Workflow
Content → Analyze → Confirm Style/Audience/Slides
→ Generate Outline → [Review?]
→ Generate Prompts → [Review?]
→ Generate Images → [Apply Branding?]
→ Merge PPTX/PDF → Done
Style Presets
| Preset | Best For |
|---|---|
blueprint (default) |
Architecture, system design |
bold-editorial |
Product launches, keynotes |
chalkboard |
Education, tutorials |
corporate |
Investor decks, proposals |
minimal |
Executive briefings |
sketch-notes |
Educational, tutorials |
notion |
Product demos, SaaS |
watercolor |
Lifestyle, wellness |
dark-atmospheric |
Entertainment, gaming |
editorial-infographic |
Tech explainers, research |
intuition-machine |
Technical docs, academic |
scientific |
Biology, chemistry, medical |
pixel-art |
Gaming, developer talks |
vector-illustration |
Creative, children's content |
vintage |
Historical, heritage |
fantasy-animation |
Educational storytelling |
Style auto-detected from content signals. Override with --style <name>.
Options
| Option | Description |
|---|---|
--style <name> |
Visual style preset or custom |
--audience <type> |
beginners, intermediate, experts, executives, general |
--lang <code> |
Output language (en, zh, ja, etc.) |
--slides <N> |
Target slide count (8-25 recommended) |
--outline-only |
Generate outline only |
--prompts-only |
Generate outline + prompts, skip images |
--images-only |
Generate images from existing prompts |
--regenerate <N> |
Regenerate specific slide(s): 3 or 2,5,8 |
--logo <path> |
Brand logo (top-right, skips cover/back-cover) |
--logo2 <path> |
Secondary logo (left of primary) |
--presentation |
Strip narration, keep only visual anchors |
Output Structure
slide-deck/{topic-slug}/
├── source-{slug}.md
├── outline.md
├── prompts/
│ ├── 01-slide-cover.md
│ ├── 02-slide-{slug}.md
│ └── ...
├── 01-slide-cover.png
├── 02-slide-{slug}.png
├── ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Scripts
| Script | Purpose |
|---|---|
scripts/merge-to-pptx.ts |
Merge slide images into PowerPoint |
scripts/merge-to-pdf.ts |
Merge slide images into PDF |
scripts/apply-branding.py |
Composite logo(s)/QR onto slides |
License
MIT
Skill manifest
PPT 大师 · PPT Master
Transform content into professional slide deck images.
Usage
/lov-any2deck path/to/content.md
/lov-any2deck path/to/content.md --style sketch-notes
/lov-any2deck path/to/content.md --audience executives
/lov-any2deck path/to/content.md --lang zh
/lov-any2deck path/to/content.md --slides 10
/lov-any2deck path/to/content.md --outline-only
/lov-any2deck # Then paste content
Script Directory
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>
| Script | Purpose |
|---|---|
scripts/merge-to-pptx.ts |
Merge slides into PowerPoint |
scripts/merge-to-pdf.ts |
Merge slides into PDF |
scripts/apply-branding.py |
Composite logo(s)/QR onto slides — dual logo, tight-crop, JPG white→alpha (opt-in) |
Options
| Option | Description |
|---|---|
--style <name> |
Visual style: preset name, custom, or custom style name |
--audience <type> |
Target: beginners, intermediate, experts, executives, general |
--lang <code> |
Output language (en, zh, ja, etc.) |
--slides <number> |
Target slide count (8-25 recommended, max 30) |
--outline-only |
Generate outline only, skip image generation |
--prompts-only |
Generate outline + prompts, skip images |
--images-only |
Generate images from existing prompts directory |
--regenerate <N> |
Regenerate specific slide(s): --regenerate 3 or --regenerate 2,5,8 |
--logo <path> |
Primary brand logo (top-right, skips cover/back-cover) |
--logo2 <path> |
Secondary logo (placed left of primary, optically aligned) |
--presentation |
Presentation mode: strips narration text, keeps only visual anchors |
Slide Count by Content Length:
| Content | Slides |
|---|---|
| < 1000 words | 5-10 |
| 1000-3000 words | 10-18 |
| 3000-5000 words | 15-25 |
| > 5000 words | 20-30 (consider splitting) |
Style System
Presets
| Preset | Dimensions | Best For |
|---|---|---|
blueprint (Default) |
grid + cool + technical + balanced | Architecture, system design |
chalkboard |
organic + warm + handwritten + balanced | Education, tutorials |
corporate |
clean + professional + geometric + balanced | Investor decks, proposals |
minimal |
clean + neutral + geometric + minimal | Executive briefings |
sketch-notes |
organic + warm + handwritten + balanced | Educational, tutorials |
watercolor |
organic + warm + humanist + minimal | Lifestyle, wellness |
dark-atmospheric |
clean + dark + editorial + balanced | Entertainment, gaming |
notion |
clean + neutral + geometric + dense | Product demos, SaaS |
bold-editorial |
clean + vibrant + editorial + balanced | Product launches, keynotes |
editorial-infographic |
clean + cool + editorial + dense | Tech explainers, research |
fantasy-animation |
organic + vibrant + handwritten + minimal | Educational storytelling |
intuition-machine |
clean + cool + technical + dense | Technical docs, academic |
pixel-art |
pixel + vibrant + technical + balanced | Gaming, developer talks |
scientific |
clean + cool + technical + dense | Biology, chemistry, medical |
vector-illustration |
clean + vibrant + humanist + balanced | Creative, children's content |
vintage |
paper + warm + editorial + balanced | Historical, heritage |
Style Dimensions
| Dimension | Options | Description |
|---|---|---|
| Texture | clean, grid, organic, pixel, paper | Visual texture and background treatment |
| Mood | professional, warm, cool, vibrant, dark, neutral | Color temperature and palette style |
| Typography | geometric, humanist, handwritten, editorial, technical | Headline and body text styling |
| Density | minimal, balanced, dense | Information density per slide |
Full specs: references/dimensions/*.md
Auto Style Selection
| Content Signals | Preset |
|---|---|
| tutorial, learn, education, guide, beginner | sketch-notes |
| classroom, teaching, school, chalkboard | chalkboard |
| architecture, system, data, analysis, technical | blueprint |
| creative, children, kids, cute | vector-illustration |
| briefing, academic, research, bilingual | intuition-machine |
| executive, minimal, clean, simple | minimal |
| saas, product, dashboard, metrics | notion |
| investor, quarterly, business, corporate | corporate |
| launch, marketing, keynote, magazine | bold-editorial |
| entertainment, music, gaming, atmospheric | dark-atmospheric |
| explainer, journalism, science communication | editorial-infographic |
| story, fantasy, animation, magical | fantasy-animation |
| gaming, retro, pixel, developer | pixel-art |
| biology, chemistry, medical, scientific | scientific |
| history, heritage, vintage, expedition | vintage |
| lifestyle, wellness, travel, artistic | watercolor |
| Default | blueprint |
Design Philosophy
Decks designed for reading and sharing, not live presentation:
- Each slide self-explanatory without verbal commentary
- Logical flow when scrolling
- All necessary context within each slide
- Optimized for social media sharing
See references/design-guidelines.md for:
- Audience-specific principles
- Visual hierarchy
- Content density guidelines
- Color and typography selection
- Font recommendations
See references/layouts.md for layout options.
File Management
Output Directory
slide-deck/{topic-slug}/
├── source-{slug}.{ext}
├── outline.md
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Slug: Extract topic (2-4 words, kebab-case). Example: "Introduction to Machine Learning" → intro-machine-learning
Conflict Handling: See Step 1.3 for existing content detection and user options.
Language Handling
Detection Priority:
--langflag (explicit)- EXTEND.md
languagesetting - User's conversation language (input language)
- Source content language
Rule: ALL responses use user's preferred language:
- Questions and confirmations
- Progress reports
- Error messages
- Completion summaries
Technical terms (style names, file paths, code) remain in English.
Workflow
For the full step-by-step workflow, use references/workflow.md. Keep the main
flow in this order:
- Setup & analyze: load
.lov-skills/lov-any2deck/EXTEND.mdwhen present, save source content, analyze style signals, detect language, choose slide count, and check for existingslide-deck/{topic-slug}output before continuing. - Confirm: use
AskUserQuestionfor style, audience, slide count, outline review, and prompt review. If custom dimensions are selected, collect texture, mood, typography, and density. - Generate outline: read the selected preset from
references/styles/or combine dimension docs fromreferences/dimensions/, then writeoutline.mdusingreferences/outline-template.md. - Review outline when requested, then generate per-slide prompts under
prompts/usingreferences/base-prompt.mdandreferences/layouts.md. - Review prompts when requested, generate slide images, optionally apply branding with
scripts/apply-branding.py, then merge PPTX/PDF with the TypeScript scripts. - Report the output directory, generated slide count, PPTX/PDF paths, style, audience, language, and any partial failures.
Partial workflows (--outline-only, --prompts-only, --images-only,
--regenerate) and slide modification procedures are documented in
references/workflow.md.
References
| File | Content |
|---|---|
references/analysis-framework.md |
Content analysis for presentations |
references/outline-template.md |
Outline structure and format |
references/modification-guide.md |
Edit, add, delete slide workflows |
references/content-rules.md |
Content and style guidelines |
references/design-guidelines.md |
Audience, typography, colors, visual elements |
references/layouts.md |
Layout options and selection tips |
references/base-prompt.md |
Base prompt for image generation |
references/dimensions/*.md |
Dimension specifications (texture, mood, typography, density) |
references/dimensions/presets.md |
Preset → dimension mapping |
references/styles/<style>.md |
Full style specifications (legacy) |
references/config/preferences-schema.md |
EXTEND.md structure |
Notes
- Image generation: 10-30 seconds per slide
- Auto-retry once on generation failure
- Use stylized alternatives for sensitive public figures
- Maintain style consistency via session ID
- Step 2 confirmation required - do not skip (style, audience, slides, outline review, prompt review)
- Step 4 conditional - only if user requested outline review in Step 2
- Step 6 conditional - only if user requested prompt review in Step 2
Extension Support
Custom configurations via EXTEND.md. See Step 1.1 for paths and supported options.
Runtime context (shared)
运行前读取本 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文。字段解析顺序为:当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。
- 只使用 Manifest 声明的字段;Profile 保存公开品牌事实,Preferences 保存个人工作偏好。
required: true字段缺失时,按 Manifest 的问题配置向用户提出一个聚焦问题;用户明确同意后再保存回答。- 报错提供可复制的
context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。
通用反馈闭环
用户在 Skill 驱动任务中提出修改意见时,继续当前产物前必须执行:
- 先判断意见是
task-specific(仅本次)还是reusable(可跨任务复用)。 task-specific只修改当前任务,不改 Skill。reusable先确定作用域:领域规则先更新对应 canonical Skill;适用于所有 Skill 的规则先更新共享规范。- 完成规则更新、版本、lint 与分发核验后,再把修改应用到当前任务。
reusable修改会使此前的“确认”“继续”“发吧”失效;完成当前产物修改和回读后必须停下,等待用户下一步指示,不自动进入发布、提交或其他外部写入。
Files (skills)
-
cases
-
cases.json 1014 B
[ { "title": "产品发布会演示文稿", "description": "从产品 PRD 文档直接生成 16 页发布会风格 slide deck,sketch-notes 风格,导出 PPTX。", "testimonial": "做 PPT 从来都是最痛苦的环节,any2deck 让我把时间花在内容上,设计全自动。", "author": "小陈 · 产品经理" }, { "title": "技术分享会 Slides", "description": "把技术博客文章一键转为 12 张演讲用 slides,minimal 风格,适合技术 meetup 分享。", "testimonial": "写完博客就能出 slides,不用再重新做一套 PPT 了。16 种风格随便换,太省事了。", "author": "Jason · 全栈工程师" }, { "title": "培训课件批量生成", "description": "为 8 节培训课程批量生成 slide deck,统一品牌 overlay,导出 PDF 分发给学员。", "testimonial": "8 套课件如果手动做 PPT 至少一周,用 any2deck 一个下午全搞定。", "author": "吴老师 · 企业培训师" } ]
-
-
references
-
config
-
preferences-schema.md 3.7 KB
# EXTEND.md Schema Structure for user preferences in `.lov-skills/lov-any2deck/EXTEND.md`. ## Full Schema ```yaml # Slide Deck Preferences ## Defaults style: blueprint # Preset name OR "custom" audience: general # beginners | intermediate | experts | executives | general language: auto # auto | en | zh | ja | etc. review: true # true = review outline before generation ## Custom Dimensions (only when style: custom) dimensions: texture: clean # clean | grid | organic | pixel | paper mood: professional # professional | warm | cool | vibrant | dark | neutral typography: geometric # geometric | humanist | handwritten | editorial | technical density: balanced # minimal | balanced | dense ## Custom Styles (optional) custom_styles: my-style: texture: organic mood: warm typography: humanist density: minimal description: "My custom warm and friendly style" ## Branding (optional, opt-in) branding: logo: /path/to/logo.png # Required to enable logo compositing (PNG or JPG) logo2: /path/to/logo2.png # Optional secondary logo (placed left of primary) logo2_gap: 32 # Gap between two logos in px (default: 32) logo_height: 46 # Logo height in px (default: 46) pad_top: 20 # Top padding (default: 20) pad_right: 26 # Right padding (default: 26) skip_slides: [1] # Slides to skip (cover etc.); defaults to [1] + last slide qr_code: /path/to/qr.png # Optional QR to composite into final slide qr_slide: 0 # Slide number for QR placement qr_box: [990, 229, 1250, 507] # X1,Y1,X2,Y2 of placement area in px ``` ## Field Descriptions ### Defaults | Field | Type | Default | Description | |-------|------|---------|-------------| | `style` | string | `blueprint` | Preset name, `custom`, or custom style name | | `audience` | string | `general` | Default target audience | | `language` | string | `auto` | Output language (auto = detect from input) | | `review` | boolean | `true` | Show outline review before generation | ### Custom Dimensions Only used when `style: custom`. Defines dimension values directly. | Field | Options | Default | |-------|---------|---------| | `texture` | clean, grid, organic, pixel, paper | clean | | `mood` | professional, warm, cool, vibrant, dark, neutral | professional | | `typography` | geometric, humanist, handwritten, editorial, technical | geometric | | `density` | minimal, balanced, dense | balanced | ### Custom Styles Define reusable custom dimension combinations. ```yaml custom_styles: style-name: texture: <texture> mood: <mood> typography: <typography> density: <density> description: "Optional description" ``` Then use with: `/lov-any2deck content.md --style style-name` ## Minimal Examples ### Just change default style ```yaml style: sketch-notes ``` ### Prefer no reviews ```yaml review: false ``` ### Custom default dimensions ```yaml style: custom dimensions: texture: organic mood: professional typography: humanist density: minimal ``` ### Define reusable custom style ```yaml custom_styles: brand-style: texture: clean mood: vibrant typography: editorial density: balanced description: "Company brand style" ``` ## File Locations Priority order (first found wins): 1. `.lov-skills/lov-any2deck/EXTEND.md` (project) 2. `$HOME/.lov-skills/lov-any2deck/EXTEND.md` (user) ## First-Time Setup When no EXTEND.md exists, the skill prompts for initial preferences: 1. Preferred style (preset or custom) 2. Default audience 3. Language preference 4. Review preference 5. Save location (project or user) Creates EXTEND.md at chosen location.
-
-
dimensions
-
density.md 3.1 KB
# Density Dimension Information density per slide. ## Options | Option | Content/Slide | Whitespace | Best For | |--------|---------------|------------|----------| | `minimal` | One focus point | Maximum | Executive briefings, keynotes, emotional impact | | `balanced` | 2-3 key points | Standard | General presentations, mixed audiences | | `dense` | Multiple data points | Compact | Data-heavy, technical reviews, detailed analysis | ## Rendering Guidelines ### minimal - ONE main idea per slide - Large visuals dominate - Minimal text (headline + 1-2 lines max) - Generous margins (15%+ from edges) - Maximum breathing room between elements - Let single element carry full weight **Principles**: - "One slide, one message" - Visual > text - Empty space is intentional - Every element must earn its space ### balanced - 2-3 key points per slide - Standard margins (10% from edges) - Balanced text/visual ratio - Clear hierarchy with supporting details - Comfortable reading experience **Principles**: - Primary point + supporting context - Visuals complement text - Structured but not crowded - Good for diverse audiences ### dense - Multiple data points acceptable - Compact margins (5-8% from edges) - Information-rich layouts - Charts, tables, detailed annotations - Assume engaged, attentive audience **Principles**: - Data speaks louder than decoration - Annotations explain insights - White space is strategic - Every pixel serves a purpose ## Audience → Density Mapping | Audience | Recommended Density | |----------|-------------------| | Executives | minimal | | Beginners | minimal to balanced | | General | balanced | | Intermediate | balanced | | Experts | balanced to dense | ## Slide Type → Density Guidelines | Slide Type | Recommended Density | |------------|-------------------| | Cover/Title | minimal | | Section break | minimal | | Quote/Impact | minimal | | Agenda/Overview | balanced | | Content/Analysis | balanced or dense | | Summary/Takeaway | balanced | | Data/Metrics | dense | ## Content Guidelines Per Density ### minimal | Element | Guideline | |---------|-----------| | Headlines | Large (40-60pt equivalent) | | Body text | Minimal or none | | Bullet points | 0-2 max | | Visual elements | 1 dominant element | | Charts/Data | 1 key stat only | ### balanced | Element | Guideline | |---------|-----------| | Headlines | Medium-large (32-48pt equivalent) | | Body text | 2-4 lines | | Bullet points | 2-4 | | Visual elements | 1-2 elements | | Charts/Data | Simple charts OK | ### dense | Element | Guideline | |---------|-----------| | Headlines | Medium (24-36pt equivalent) | | Body text | Multiple paragraphs OK | | Bullet points | 4-6+ | | Visual elements | Multiple allowed | | Charts/Data | Complex charts, tables OK | ## Combination Notes | Density | Works Best With | Avoid With | |---------|-----------------|------------| | minimal | neutral mood, geometric typography | dense data content | | balanced | any mood/typography | extremes (too sparse or too packed) | | dense | cool mood, technical typography | handwritten typography, organic texture | -
mood.md 3.3 KB
# Mood Dimension Color temperature and palette style. ## Options | Option | Color Temperature | Palette Style | Best For | |--------|-------------------|---------------|----------| | `professional` | Cool-neutral | Navy, gold, structured grays | Business, investor, corporate | | `warm` | Warm | Earth tones, oranges, natural colors | Education, friendly, approachable | | `cool` | Cool | Blues, grays, cyan, teal | Technical, data, analytical | | `vibrant` | Varied | High saturation, bold colors | Marketing, creative, attention-grabbing | | `dark` | Dark | Deep backgrounds with bright accents | Entertainment, gaming, atmospheric | | `neutral` | Neutral | Minimal color, grayscale focus | Executive, minimal, sophisticated | ## Palette Specifications ### professional ``` Background: #FFFFFF (Pure White) Primary Text: #1E3A5F (Navy) Secondary Text: #4A5568 (Dark Gray) Accent 1: #C9A227 (Gold) Accent 2: #3D5A80 (Light Navy) ``` ### warm ``` Background: #FAF8F0 (Warm Off-White) Primary Text: #2C3E50 (Deep Charcoal) Secondary Text: #4A4A4A (Deep Brown) Accent 1: #F4A261 (Soft Orange) Accent 2: #E9C46A (Mustard Yellow) Accent 3: #87A96B (Sage Green) ``` ### cool ``` Background: #FAF8F5 (Blueprint Off-White) Primary Text: #334155 (Deep Slate) Secondary Text: #64748B (Slate Gray) Accent 1: #2563EB (Engineering Blue) Accent 2: #1E3A5F (Navy Blue) Accent 3: #BFDBFE (Light Blue) ``` ### vibrant ``` Background: #FFFFFF or #1A1A2E (Light or Dark) Primary Text: #1A1A2E or #FFFFFF Accent 1: #E94560 (Coral Red) Accent 2: #0F3460 (Deep Blue) Accent 3: #16C79A (Teal Green) Accent 4: #F9B208 (Golden Yellow) ``` ### dark ``` Background: #0D1117 (Deep Black) Primary Text: #E6EDF3 (Soft White) Secondary Text: #8B949E (Muted Gray) Accent 1: #58A6FF (Bright Blue) Accent 2: #7EE787 (Bright Green) Accent 3: #FF7B72 (Coral) ``` ### neutral ``` Background: #FFFFFF (Pure White) Primary Text: #18181B (Near Black) Secondary Text: #71717A (Medium Gray) Accent 1: #18181B (Black) Accent 2: #A1A1AA (Light Gray) ``` ## Rendering Guidelines ### professional - Restrained use of accent colors - Gold for emphasis only - Clean, institutional feel - Balanced contrast ### warm - Generous use of warm tones - Natural, approachable colors - Soft transitions between colors - Welcoming atmosphere ### cool - Blue-dominant palette - Technical precision in color use - High contrast for clarity - Analytical, trustworthy feel ### vibrant - Bold color combinations - High saturation throughout - Dynamic color contrasts - Energetic visual presence ### dark - Deep backgrounds dominate - Accent colors pop against dark - Glowing/luminous effects - Cinematic atmosphere ### neutral - Minimal color usage - Typography carries weight - Grayscale hierarchy - Maximum sophistication ## Combination Notes | Mood | Works Best With | Avoid With | |------|-----------------|------------| | professional | clean texture, geometric typography | organic texture, handwritten | | warm | organic texture, humanist typography | pixel texture, minimal density | | cool | grid texture, technical typography | paper texture, handwritten | | vibrant | pixel/organic texture, editorial typography | neutral mood overlaps | | dark | clean/pixel texture, technical typography | paper texture | | neutral | clean texture, geometric typography | organic texture, vibrant elements | -
presets.md 4.7 KB
# Preset → Dimension Mapping Maps 16 preset styles to their dimension combinations. ## Mapping Table | Preset | Texture | Mood | Typography | Density | |--------|---------|------|------------|---------| | blueprint | grid | cool | technical | balanced | | chalkboard | organic | warm | handwritten | balanced | | corporate | clean | professional | geometric | balanced | | minimal | clean | neutral | geometric | minimal | | sketch-notes | organic | warm | handwritten | balanced | | watercolor | organic | warm | humanist | minimal | | dark-atmospheric | clean | dark | editorial | balanced | | notion | clean | neutral | geometric | dense | | bold-editorial | clean | vibrant | editorial | balanced | | editorial-infographic | clean | cool | editorial | dense | | fantasy-animation | organic | vibrant | handwritten | minimal | | intuition-machine | clean | cool | technical | dense | | pixel-art | pixel | vibrant | technical | balanced | | scientific | clean | cool | technical | dense | | vector-illustration | clean | vibrant | humanist | balanced | | vintage | paper | warm | editorial | balanced | ## Preset Details ### blueprint - **Dimensions**: grid + cool + technical + balanced - **Feel**: Engineering precision, analytical clarity - **Auto-select**: architecture, system, data, analysis, technical ### chalkboard - **Dimensions**: organic + warm + handwritten + balanced - **Feel**: Classroom warmth, educational - **Auto-select**: classroom, teaching, school, chalkboard ### corporate - **Dimensions**: clean + professional + geometric + balanced - **Feel**: Business credibility, institutional trust - **Auto-select**: investor, quarterly, business, corporate ### minimal - **Dimensions**: clean + neutral + geometric + minimal - **Feel**: Maximum sophistication, executive focus - **Auto-select**: executive, minimal, clean, simple ### sketch-notes - **Dimensions**: organic + warm + handwritten + balanced - **Feel**: Friendly learning, approachable education - **Auto-select**: tutorial, learn, education, guide, beginner ### watercolor - **Dimensions**: organic + warm + humanist + minimal - **Feel**: Artistic, natural, lifestyle - **Auto-select**: lifestyle, wellness, travel, artistic ### dark-atmospheric - **Dimensions**: clean + dark + editorial + balanced - **Feel**: Cinematic, entertainment - **Auto-select**: entertainment, music, gaming, atmospheric ### notion - **Dimensions**: clean + neutral + geometric + dense - **Feel**: SaaS professional, data-forward - **Auto-select**: saas, product, dashboard, metrics ### bold-editorial - **Dimensions**: clean + vibrant + editorial + balanced - **Feel**: Magazine impact, keynote drama - **Auto-select**: launch, marketing, keynote, magazine ### editorial-infographic - **Dimensions**: clean + cool + editorial + dense - **Feel**: Publication quality, informative - **Auto-select**: explainer, journalism, science communication ### fantasy-animation - **Dimensions**: organic + vibrant + handwritten + minimal - **Feel**: Magical, storytelling - **Auto-select**: story, fantasy, animation, magical ### intuition-machine - **Dimensions**: clean + cool + technical + dense - **Feel**: Technical briefing, bilingual documentation - **Auto-select**: briefing, academic, research, bilingual ### pixel-art - **Dimensions**: pixel + vibrant + technical + balanced - **Feel**: Retro gaming, developer culture - **Auto-select**: gaming, retro, pixel, developer ### scientific - **Dimensions**: clean + cool + technical + dense - **Feel**: Academic precision, research quality - **Auto-select**: biology, chemistry, medical, scientific ### vector-illustration - **Dimensions**: clean + vibrant + humanist + balanced - **Feel**: Flat design, friendly creative - **Auto-select**: creative, children, kids, cute ### vintage - **Dimensions**: paper + warm + editorial + balanced - **Feel**: Historical, heritage storytelling - **Auto-select**: history, heritage, vintage, expedition ## Building Custom Combinations When user selects "Custom dimensions", combine any: - **Texture** (5): clean, grid, organic, pixel, paper - **Mood** (6): professional, warm, cool, vibrant, dark, neutral - **Typography** (5): geometric, humanist, handwritten, editorial, technical - **Density** (3): minimal, balanced, dense Total possible combinations: 5 × 6 × 5 × 3 = **450 unique styles** ## Recommended Combinations (Beyond Presets) | Custom Name | Texture | Mood | Typography | Density | Use Case | |-------------|---------|------|------------|---------|----------| | tech-minimal | clean | neutral | technical | minimal | Developer keynotes | | warm-editorial | paper | warm | editorial | balanced | Heritage brands | | dark-technical | grid | dark | technical | dense | Security, DevOps | | playful-clean | clean | vibrant | humanist | balanced | Startups, apps | -
texture.md 1.9 KB
# Texture Dimension Visual texture and background treatment. ## Options | Option | Background | Visual Elements | Best For | |--------|------------|-----------------|----------| | `clean` | Pure solid color, no texture | Clean lines, geometric shapes | Executive, minimal, corporate | | `grid` | Subtle grid overlay | Grid lines, schematics, technical diagrams | Technical, architecture, engineering | | `organic` | Soft textures, hand-drawn feel | Brush strokes, watercolor, sketchy lines | Creative, educational, friendly | | `pixel` | Chunky pixels, 8-bit aesthetic | Pixel art, retro game elements | Gaming, developer, nostalgic | | `paper` | Aged/textured paper | Vintage elements, stamps, weathering | Historical, heritage, storytelling | ## Rendering Guidelines ### clean - Solid background colors with no visible texture - Crisp, sharp edges on all elements - Digital precision and clarity - Maximum contrast for readability ### grid - Light grid overlay (5-10% opacity) - Engineering paper or blueprint feel - Alignment guides visible but subtle - Technical drawing aesthetic ### organic - Paper grain or canvas texture - Imperfect edges, natural variations - Hand-painted color fills - Casual, approachable feel ### pixel - Visible pixel grid (chunky, not fine) - 8-bit color palette aesthetic - Aliased edges (no smoothing) - Retro game UI elements ### paper - Aged paper texture (subtle creases, discoloration) - Vintage printing artifacts - Sepia or warm tones - Historical document feel ## Combination Notes | Texture | Works Best With | Avoid With | |---------|-----------------|------------| | clean | professional, neutral moods | handwritten typography | | grid | cool, professional moods | handwritten, vibrant moods | | organic | warm, vibrant moods | technical typography | | pixel | vibrant, dark moods | editorial typography | | paper | warm moods | geometric typography, minimal density | -
typography.md 4 KB
# Typography Dimension Headline and body text styling. ## Options | Option | Headline Style | Body Style | Best For | |--------|----------------|------------|----------| | `geometric` | Modern sans-serif, clean angles | Clean sans-serif | Corporate, tech, modern | | `humanist` | Friendly sans-serif, warm curves | Readable sans-serif | Education, general audiences | | `handwritten` | Marker/brush, organic feel | Casual script or print | Creative, sketch, friendly | | `editorial` | Bold serif/sans mix, magazine style | Classic serif | Keynote, magazine, premium | | `technical` | Monospace accents, precise | Clean sans-serif | Developer, data, engineering | ## Rendering Guidelines ### geometric **Headlines**: Modern geometric sans-serif with clean angles and consistent stroke width. Think Futura, Avenir, or Proxima Nova. Bold to semi-bold weight. Perfect circles in O, G characters. **Body**: Clean sans-serif optimized for readability. Regular weight. Consistent x-height. Sufficient letter spacing. **Characteristics**: - Mathematical precision in letterforms - Consistent stroke widths - Perfect geometry in curves - Modern, authoritative presence ### humanist **Headlines**: Friendly sans-serif with subtle stroke variations. Think Frutiger, Open Sans, or Myriad. Medium to semi-bold weight. Warm, approachable letterforms. **Body**: Readable humanist sans-serif. Comfortable line height. Slight calligraphic influence. **Characteristics**: - Warm, approachable feel - Subtle stroke contrast - Open counters for readability - Natural, human touch ### handwritten **Headlines**: Bold hand-written marker or brush lettering. Thick strokes with organic edges. Slightly uneven baseline. Render as actual hand-drawn letters. **Body**: Clear handwritten style mimicking notes. Casual but legible. Natural variation in letter forms. **Characteristics**: - Organic, imperfect letterforms - Visible brush/pen character - Casual, personal feel - NOT computer fonts - actual drawn letters ### editorial **Headlines**: Bold serif or high-contrast sans-serif. Magazine cover style. Dramatic scale contrast. Think Playfair Display, Didot, or bold condensed sans. **Body**: Classic serif for extended reading. Elegant, refined letterforms. Traditional publishing quality. **Characteristics**: - High contrast (thick/thin strokes) - Dramatic headlines - Sophisticated presence - Premium, publication quality ### technical **Headlines**: Clean sans-serif with monospace accents for data/code. Precise, engineered appearance. Think SF Mono for code, Inter for headers. **Body**: Clean sans-serif optimized for technical content. Fixed-width for numbers and code. **Characteristics**: - Monospace for data elements - Precise alignment - Clear number distinction (0 vs O, 1 vs l) - Engineering precision ## Font Rendering Instructions Since image generators cannot use font names, describe visual characteristics: | Option | Headline Description | Body Description | |--------|---------------------|------------------| | geometric | "bold geometric sans-serif with perfect circular O shapes" | "clean modern sans-serif" | | humanist | "friendly rounded sans-serif with warm letterforms" | "readable humanist sans-serif" | | handwritten | "bold hand-drawn marker lettering with organic strokes" | "casual handwritten notes style" | | editorial | "dramatic high-contrast serif with thick-thin stroke variation" | "elegant classic serif" | | technical | "precise sans-serif with monospace numbers" | "technical sans-serif, fixed-width for code" | ## Combination Notes | Typography | Works Best With | Avoid With | |------------|-----------------|------------| | geometric | clean texture, professional/neutral mood | organic texture | | humanist | organic/clean texture, warm mood | pixel texture | | handwritten | organic/paper texture, warm/vibrant mood | grid texture, professional mood | | editorial | clean texture, vibrant/professional mood | pixel texture | | technical | grid/clean texture, cool/dark mood | paper texture, warm mood |
-
-
styles
-
blueprint.md 2.2 KB
# blueprint Precise technical blueprint style with professional analytical visual presentation ## Design Aesthetic Clean, structured visual metaphors using blueprints, diagrams, and schematics. Precise, analytical and aesthetically refined. Information presented in triptych or grid-based layouts with engineering precision. ## Background - Color: Blueprint Off-White (#FAF8F5) - Texture: Subtle grid overlay, light engineering paper feel ## Typography ### Primary Font (Headlines) Neue Haas Grotesk Display Pro or similar clean sans-serif. Bold weight for titles. Precise letterforms with consistent spacing. Technical, authoritative presence. ### Secondary Font (Body) Tiempos Text or similar elegant serif for body explanations. Clean, readable at smaller sizes. Professional editorial quality. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Blueprint Paper | #FAF8F5 | Primary background | | Grid | Light Gray | #E5E5E5 | Background grid lines | | Primary Text | Deep Slate | #334155 | Headlines, body text | | Primary Accent | Engineering Blue | #2563EB | Key elements, highlights | | Secondary Accent | Navy Blue | #1E3A5F | Supporting elements | | Tertiary | Light Blue | #BFDBFE | Backgrounds, fills | | Warning | Amber | #F59E0B | Warnings, emphasis points | ## Visual Elements - Precise lines with consistent stroke weights - Technical schematics and clean vector graphics - Thin line work in technical drawing style - Connection lines use straight lines or 90-degree angles only - Data visualization with clean, minimal charts - Dimension lines and measurement indicators - Cross-section style diagrams - Isometric or orthographic projections ## Style Rules ### Do - Maintain consistent line weights throughout - Use grid alignment for all elements - Keep color palette restrained and unified - Create clear visual hierarchy through scale - Use geometric precision for all shapes ### Don't - Use hand-drawn or organic shapes - Add decorative flourishes - Use curved connection lines - Include photographic elements - Add slide numbers, footers, or logos ## Best For Technical architecture, system design, data analysis, professional business presentations, engineering documentation, process flows -
bold-editorial.md 2.4 KB
# bold-editorial High-impact magazine editorial style with bold visual expression ## Design Aesthetic Strong visual impact at magazine cover level. Bold typography and dramatic contrast. Full-bleed imagery and large color blocks create commanding presence. Every slide feels like a premium publication cover. ## Background - Color: Deep Black (#0A0A0A) primary, or Deep Blue (#0F172A) alternative - Texture: None - clean solid backgrounds, or pure white with bold color blocks ## Typography ### Primary Font (Headlines) Bold condensed typeface like Impact, Oswald Bold, or Bebas Neue. Oversized headlines that dominate the slide. All-caps for maximum impact. Tight letter-spacing. ### Secondary Font (Body) Clean sans-serif such as Inter, SF Pro, or Helvetica Neue. Medium weight for body text. High contrast against background. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background Dark | Deep Black | #0A0A0A | Primary dark background | | Background Alt | Deep Blue | #0F172A | Alternative dark background | | Background Light | Pure White | #FFFFFF | Light mode background | | Primary Text | Pure White | #FFFFFF | Text on dark backgrounds | | Alt Text | Pure Black | #000000 | Text on light backgrounds | | Accent 1 | Electric Blue | #3B82F6 | Primary highlights | | Accent 2 | Bright Orange | #FB923C | Energy, urgency | | Accent 3 | Magenta | #EC4899 | Creative, bold accents | | Accent 4 | Neon Green | #22C55E | Success, growth | | Accent 5 | Violet | #8B5CF6 | Innovation, premium | ## Visual Elements - Strong typography as visual element itself - Geometric shapes and bold color blocks - Full-bleed images or solid color backgrounds - High contrast gradients (subtle, not garish) - Minimal decoration - let content speak - Dynamic diagonal lines and angles - Dramatic lighting effects on text ## Style Rules ### Do - Use extreme scale contrast (huge headlines, small body) - Create bold color block compositions - Let negative space create tension - Use full-bleed backgrounds - Make every slide feel like a magazine cover ### Don't - Use soft or muted colors - Add unnecessary decorative elements - Create busy, cluttered layouts - Use thin or delicate typography - Add slide numbers, footers, or logos ## Best For Product launches, marketing presentations, keynote speeches, brand showcases, investor pitches, high-stakes presentations -
chalkboard.md 2.5 KB
# chalkboard Black chalkboard background with colorful chalk drawing style ## Design Aesthetic Classic classroom chalkboard aesthetic with hand-drawn chalk illustrations. Nostalgic educational feel with imperfect, sketchy lines that capture the warmth of traditional teaching. Colorful chalk creates visual hierarchy while maintaining the authentic chalkboard experience. ## Background - Color: Chalkboard Black (#1A1A1A) or Dark Green-Black (#1C2B1C) - Texture: Realistic chalkboard texture with subtle scratches, dust particles, and faint eraser marks ## Typography ### Primary Font (Headlines) Hand-drawn chalk lettering style. Bold, slightly uneven strokes with visible chalk texture. Imperfect baseline adds authenticity. White or bright colored chalk for emphasis. ### Secondary Font (Body) Neater chalk handwriting for readability. Consistent sizing with natural variation. Light chalk texture, thinner strokes than headlines. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Chalkboard Black | #1A1A1A | Primary background | | Alt Background | Green-Black | #1C2B1C | Traditional green board | | Primary Text | Chalk White | #F5F5F5 | Main text, outlines | | Accent 1 | Chalk Yellow | #FFE566 | Highlights, emphasis | | Accent 2 | Chalk Pink | #FF9999 | Secondary highlights | | Accent 3 | Chalk Blue | #66B3FF | Diagrams, links | | Accent 4 | Chalk Green | #90EE90 | Success, nature | | Accent 5 | Chalk Orange | #FFB366 | Warnings, energy | ## Visual Elements - Hand-drawn chalk illustrations with sketchy, imperfect lines - Chalk dust effects around text and key elements - Doodles: stars, arrows, underlines, circles, checkmarks - Mathematical formulas and simple diagrams - Eraser smudges and chalk residue textures - Wooden frame border optional - Stick figures and simple icons - Connection lines with hand-drawn feel ## Style Rules ### Do - Maintain authentic chalk texture on all elements - Use imperfect, hand-drawn quality throughout - Add subtle chalk dust and smudge effects - Create visual hierarchy with color variety - Include playful doodles and annotations ### Don't - Use perfect geometric shapes - Create clean digital-looking lines - Add photorealistic elements - Use gradients or glossy effects - Add slide numbers, footers, or logos ## Best For Educational presentations, classroom content, tutorials, teaching materials, back-to-school themes, workshop presentations, informal learning sessions, knowledge sharing -
corporate.md 2.3 KB
# corporate Professional business style with navy/gold palette and structured layouts ## Design Aesthetic Clean lines, structured layouts, and business-appropriate sophistication. Projects competence, reliability, and institutional credibility. Balances professionalism with approachability through careful use of whitespace and refined color choices. ## Background - Color: Pure White (#FFFFFF) with navy structural elements - Texture: None - crisp digital clarity for maximum professionalism ## Typography ### Primary Font (Headlines) Modern geometric sans-serif (Inter, SF Pro, or similar). Clean, professional, and highly legible. Conveys competence and contemporary business sensibility. Medium to semi-bold weight. ### Secondary Font (Body) Humanist sans-serif (Source Sans Pro style) for body text. Friendly yet professional, optimized for reading comprehension. Regular weight with comfortable line height. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Pure White | #FFFFFF | Main slide background | | Primary Text | Navy | #1E3A5F | Headlines, key text | | Secondary Text | Dark Gray | #4A5568 | Body text | | Primary Accent | Gold | #C9A227 | Premium highlights, emphasis | | Secondary Accent | Light Navy | #3D5A80 | Secondary elements | | Success | Corporate Green | #059669 | Positive metrics | | Alert | Corporate Red | #DC2626 | Attention items | | Neutral | Light Gray | #F3F4F6 | Background sections | ## Visual Elements - Clean charts and data visualizations - Professional iconography (outlined style) - Structured grid layouts - Subtle shadows for depth (minimal) - Progress bars and metrics displays - Organizational charts - Timeline graphics - Comparison tables ## Style Rules ### Do - Maintain clear visual hierarchy - Use consistent grid alignment - Apply accent colors strategically (gold for emphasis) - Keep data visualizations clean and readable - Use professional outlined iconography ### Don't - Use playful or casual elements - Apply heavy decorative effects - Mix too many accent colors - Crowd slides with information - Use informal illustration styles - Add slide numbers, footers, or logos ## Best For Business presentations, investor decks, quarterly reports, executive summaries, client proposals, corporate communications, board meetings -
dark-atmospheric.md 2.4 KB
# dark-atmospheric Dark moody aesthetic with deep colors and glowing accent elements ## Design Aesthetic Cinematic dark mode aesthetic with atmospheric depth. Deep purples, blacks, and rich shadows with glowing accents creating dramatic visual contrast. Mysterious, sophisticated, and visually striking. Perfect for evening events, creative industries, and premium brand presentations. ## Background - Color: Deep Purple-Black (#0D0D1A) or Rich Navy (#1A1A2E) - Texture: Subtle gradient from darker edges to slightly lighter center, atmospheric fog effect ## Typography ### Primary Font (Headlines) Elegant serif or refined sans-serif in light/white. High contrast against dark background. Medium to bold weight. Letterforms may have subtle glow effect. ### Secondary Font (Body) Clean sans-serif in light gray or muted white. Readable against dark backgrounds. Regular weight with generous line height. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Deep Purple-Black | #0D0D1A | Primary background | | Alt Background | Rich Navy | #1A1A2E | Secondary areas | | Primary Text | Pure White | #FFFFFF | Headlines | | Secondary Text | Light Gray | #A0AEC0 | Body text | | Glow Accent 1 | Electric Purple | #8B5CF6 | Primary glow | | Glow Accent 2 | Cyan Blue | #06B6D4 | Secondary glow | | Glow Accent 3 | Magenta Pink | #EC4899 | Tertiary accent | | Glow Accent 4 | Amber | #F59E0B | Warm highlights | | Subtle | Dark Gray | #2D3748 | Dividers, borders | ## Visual Elements - Glowing accent elements and borders - Subtle gradient backgrounds - Atmospheric fog or particle effects - Neon-style highlights on key elements - Silhouettes with backlit edges - Audio waveforms or sound visualizations - Radiating light circles and orbs - Cinematic letterboxing optional ## Style Rules ### Do - Maintain high contrast for readability - Use glowing effects sparingly for emphasis - Create atmospheric depth with gradients - Design dramatic visual focal points - Keep text crisp against dark backgrounds ### Don't - Overuse neon effects (less is more) - Create low-contrast text combinations - Use bright backgrounds - Add cluttered busy elements - Add slide numbers, footers, or logos ## Best For Entertainment presentations, music and audio content, creative agency pitches, evening events, premium brand reveals, gaming content, cinematic storytelling, tech product launches -
editorial-infographic.md 2.4 KB
# editorial-infographic Modern magazine-style editorial infographic with clear visual storytelling ## Design Aesthetic High-quality magazine explainer aesthetic. Clear visual storytelling that transforms complex information into digestible narratives. Clean illustrations, structured layouts, and professional typography. Think Wired, The Verge, or high-end science publications. ## Background - Color: Pure White (#FFFFFF) or Light Gray (#F8F9FA) - Texture: None or subtle paper grain for print feel ## Typography ### Primary Font (Headlines) Bold display serif or modern sans-serif. Strong visual presence. Clean letterforms with editorial sophistication. Large scale for impact. ### Secondary Font (Subheads) Semi-bold sans-serif for section headers. Clear hierarchy distinction from body text. Consistent styling throughout. ### Body Font Humanist sans-serif optimized for reading. Clean, professional, accessible. Comfortable line height (1.6). ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Pure White | #FFFFFF | Primary background | | Alt Background | Light Gray | #F8F9FA | Section backgrounds | | Primary Text | Near Black | #1A1A1A | Headlines, body | | Secondary Text | Dark Gray | #4A5568 | Captions, metadata | | Accent 1 | Editorial Blue | #2563EB | Primary accent | | Accent 2 | Coral | #F97316 | Secondary accent | | Accent 3 | Emerald | #10B981 | Positive elements | | Accent 4 | Amber | #F59E0B | Warning, attention | | Dividers | Medium Gray | #D1D5DB | Section dividers | ## Visual Elements - Clean flat illustrations (not photos) - Structured multi-section layouts - Callout boxes for key insights - Icon-based data visualization - Visual metaphors for abstract concepts - Flow diagrams with clear directional hierarchy - Pull quotes and highlight boxes - Section dividers and visual breaks ## Style Rules ### Do - Create clear visual narrative flow - Use structured multi-section layouts - Include callout boxes for key insights - Design visual metaphors for complex ideas - Maintain magazine-quality polish ### Don't - Use photographic imagery - Create cluttered dense layouts - Mix too many visual styles - Add decorative elements without purpose - Add slide numbers, footers, or logos ## Best For Technology explainers, science communication, research summaries, policy briefings, investigative content, educational deep-dives, thought leadership pieces -
fantasy-animation.md 2.4 KB
# fantasy-animation Whimsical hand-drawn animation style inspired by classic fantasy illustration ## Design Aesthetic Charming hand-drawn animation aesthetic reminiscent of classic Disney, Studio Ghibli, or European storybook illustration. Soft, painterly textures with warm, inviting colors. Friendly characters, magical elements, and storybook layouts. Enchanting, nostalgic, and emotionally engaging. ## Background - Color: Soft Sky Blue (#E8F4FC) or Warm Cream (#FFF8E7) - Texture: Subtle watercolor wash, soft brush strokes, gentle paper texture ## Typography ### Primary Font (Headlines) Whimsical serif or decorative hand-lettered style. Slight curvature and organic feel. Warm, friendly character. Think fairy tale book titles. ### Secondary Font (Body) Rounded sans-serif or casual handwritten style. Friendly and readable. Maintains storybook aesthetic while staying legible. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Soft Sky Blue | #E8F4FC | Primary background | | Alt Background | Warm Cream | #FFF8E7 | Secondary areas | | Primary Text | Deep Forest | #2D5A3D | Headlines | | Body Text | Warm Brown | #5D4E37 | Body content | | Accent 1 | Golden Yellow | #F4D03F | Magic, highlights | | Accent 2 | Rose Pink | #E8A0BF | Warmth, charm | | Accent 3 | Sage Green | #87A96B | Nature elements | | Accent 4 | Sky Blue | #7EC8E3 | Air, water, dreams | | Accent 5 | Coral | #F08080 | Emphasis, life | ## Visual Elements - Central illustrated character (friendly, expressive) - Small companion creatures (animals, magical beings) - Storybook-style environment backgrounds - Magical floating objects (books, bags, boxes, orbs) - Decorative elements: stars, sparkles, flowers, leaves - Soft shadows and gentle highlights - Layered depth with foreground/background elements - Themed content containers (trunks, satchels, scroll boxes) ## Style Rules ### Do - Create warm, inviting compositions - Use soft edges and painterly textures - Include charming character illustrations - Add magical decorative touches - Maintain storybook narrative feel ### Don't - Use harsh geometric shapes - Create dark or intimidating imagery - Add photorealistic elements - Use cold color palettes - Add slide numbers, footers, or logos ## Best For Educational content, children's presentations, storytelling, creative workshops, book presentations, fantasy/gaming content, inspirational talks, family-friendly events -
intuition-machine.md 2.8 KB
# intuition-machine Technical briefing infographic style with aged paper texture and bilingual explanatory text boxes ## Design Aesthetic Academic/technical briefing presentation style, NOT artistic 3D renders. Clean 2D or isometric technical illustrations with multiple explanatory text boxes containing article content. Split layouts with visuals on left/center and text on right/bottom. Information-dense but organized with clear visual hierarchy. Vintage blueprint aesthetic with modern clarity. ## Background - Color: Aged Cream (#F5F0E6) - Texture: Subtle paper texture with light creases, warm nostalgic feel reminiscent of vintage technical prints ## Typography ### Primary Font (Headlines) Bold display font in dark maroon, ALL CAPS in brackets for main titles. English subtitle below in smaller size. Technical, authoritative presence with vintage character. ### Secondary Font (Labels) Clean sans-serif for bilingual callout labels. Format: "ENGLISH TERM 中文翻译". High contrast against background. ### Body Font Clean geometric sans-serif for text box content. Readable at smaller sizes. Consistent weight throughout. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Aged Cream | #F5F0E6 | Primary background | | Paper Texture | Warm White | #F5F0E1 | Blueprint paper effect | | Primary Text | Dark Maroon | #5D3A3A | Headlines, titles | | Body Text | Near Black | #1A1A1A | Text box content | | Accent 1 | Teal | #2F7373 | Primary illustrations | | Accent 2 | Warm Brown | #8B7355 | Secondary elements | | Accent 3 | Maroon | #722F37 | Titles, emphasis | | Outline | Deep Charcoal | #2D2D2D | Element outlines | ## Visual Elements - Isometric 3D technical illustrations OR flat 2D diagrams (choose based on concept) - 3-5 explanatory text boxes per slide with labeled content - Bilingual callout labels pointing to key parts - Faded thematic background patterns (circuits, gears, flowcharts related to topic) - Clean black outlines on all elements - Split or triptych layouts - "KEY QUOTE:" box at bottom with core insight - No title blocks, stamps, or watermarks in corners ## Style Rules ### Do - Include 3-5 text boxes with substantive content from source material - Use bilingual labels (English + Chinese) for key elements - Add faded thematic background patterns related to the topic - Maintain aged paper texture throughout - Create clear visual hierarchy with split layouts ### Don't - Create photorealistic renders or artistic 3D scenes - Leave slides without explanatory text content - Add title blocks or stamps in corners - Use gradients or glossy effects - Add slide numbers, footers, or logos ## Best For Technical explanations, concept breakdowns, academic presentations, knowledge documentation, research summaries, educational content with depth, bilingual audiences -
minimal.md 2 KB
# minimal Ultra-clean keynote style with maximum whitespace and zen-like simplicity ## Design Aesthetic Maximum whitespace with minimal elements. Zen-like simplicity where every element earns its place. Premium, refined aesthetic suitable for executive audiences. Less is more - remove until nothing more can be taken away. ## Background - Color: Pure White (#FFFFFF) - Texture: None - absolute clean, no grain or patterns ## Typography ### Primary Font (Headlines) Clean geometric sans-serif like SF Pro Display, Inter, or Helvetica Neue. Light to medium weight for elegant restraint. Generous letter-spacing. Large scale for impact without boldness. ### Secondary Font (Body) Same family as headlines in lighter weight. Minimal size contrast. Clean, airy feeling throughout. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Pure White | #FFFFFF | Primary background | | Primary Text | Near Black | #1A1A1A | Headlines, body | | Secondary Text | Medium Gray | #6B7280 | Captions, metadata | | Accent | Single Brand Color | #2563EB | One accent only, sparingly | | Dividers | Light Gray | #E5E7EB | Subtle separators | ## Visual Elements - Single accent color used sparingly - Thin hairline rules for separation - Generous margins (minimum 15% on all sides) - Center or left-aligned layouts - Simple geometric shapes only when necessary - No decorative elements - Data visualizations in single color or grayscale ## Style Rules ### Do - Embrace empty space as a design element - Use single accent color only - Keep text minimal (10 words or less per slide) - Create breathing room between elements - Use scale to create hierarchy ### Don't - Fill empty space with decoration - Use multiple accent colors - Add icons or illustrations unless essential - Create dense information layouts - Add slide numbers, footers, or logos ## Best For Executive briefings, keynote presentations, premium brand communications, minimalist products, investor meetings, high-level strategy -
notion.md 2.1 KB
# notion SaaS dashboard aesthetic with clean data focus and productivity tool styling ## Design Aesthetic Clean, functional SaaS interface aesthetic. Dashboard-inspired layouts with clear data hierarchy. Notion, Linear, and modern productivity tool styling. Information-dense but organized. Professional and trustworthy. ## Background - Color: Light Gray (#F7F7F5) or Pure White (#FFFFFF) - Texture: None - clean solid backgrounds ## Typography ### Primary Font (Headlines) System UI stack or Inter. Semi-bold weight for emphasis. Clean, functional letterforms. Slightly tighter letter-spacing. ### Secondary Font (Body) Same family in regular weight. Optimized for screen reading. Comfortable line height (1.5-1.6). ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Light Gray | #F7F7F5 | Primary background | | Card Background | Pure White | #FFFFFF | Content cards | | Primary Text | Near Black | #1F1F1F | Headlines, body | | Secondary Text | Gray | #6B6B6B | Metadata, labels | | Border | Light Border | #E5E5E5 | Card borders, dividers | | Accent Blue | Notion Blue | #2383E2 | Links, primary actions | | Accent Green | Success | #0F7B6C | Positive metrics | | Accent Red | Alert | #E03E3E | Negative metrics | | Accent Yellow | Warning | #DFAB01 | Cautions | ## Visual Elements - Card-based layouts with subtle borders or shadows - Clean data tables and charts - Progress bars and metric displays - Icon-based navigation hints - Checkbox and toggle styling - Tag and label chips - Subtle hover state styling - Breadcrumb and hierarchy indicators ## Style Rules ### Do - Use card-based content organization - Create clear data hierarchy - Use subtle shadows and borders - Keep layouts grid-aligned - Present metrics prominently ### Don't - Use decorative illustrations - Add gradients or complex backgrounds - Create artistic layouts - Use rounded blob shapes - Add slide numbers, footers, or logos ## Best For Product demos, SaaS presentations, productivity tool pitches, metrics dashboards, feature walkthroughs, B2B presentations, technical product marketing -
pixel-art.md 2.4 KB
# pixel-art Retro 8-bit pixel art aesthetic with nostalgic gaming visual style ## Design Aesthetic Pixelated retro aesthetic reminiscent of classic 8-bit and 16-bit era games. Chunky pixels, limited color palettes, and nostalgic gaming references. Simple geometric shapes rendered in blocky pixel form. Fun, playful, and immediately recognizable retro tech aesthetic. ## Background - Color: Light Blue (#87CEEB) or Soft Lavender (#E6E6FA) - Texture: Subtle pixel grid pattern, CRT scanline effect optional ## Typography ### Primary Font (Headlines) Pixelated bitmap font style. Chunky, blocky letterforms with visible pixel structure. All caps for maximum readability. Render as actual pixel art, not smooth vectors. ### Secondary Font (Body) Smaller pixel font with consistent 8x8 or 16x16 character grid. High contrast against background. Limited anti-aliasing to maintain retro feel. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Light Blue | #87CEEB | Primary background | | Alt Background | Soft Lavender | #E6E6FA | Secondary backgrounds | | Primary Text | Dark Navy | #1A1A2E | Headlines, body text | | Accent 1 | Pixel Green | #00FF00 | Success, highlights | | Accent 2 | Pixel Red | #FF0000 | Alerts, emphasis | | Accent 3 | Pixel Yellow | #FFFF00 | Warnings, energy | | Accent 4 | Pixel Cyan | #00FFFF | Info, tech elements | | Accent 5 | Pixel Magenta | #FF00FF | Special elements | ## Visual Elements - All elements rendered with visible pixel structure - Simple iconography: notepad, checkboxes, gears, rockets, play buttons - Text bubbles and speech boxes with pixel borders - 8-bit style decorative elements: stars, hearts, arrows - Progress bars with chunky pixel segments - Dithering patterns for gradients and shadows - Limited to 16-32 color palette per slide ## Style Rules ### Do - Maintain consistent pixel grid throughout - Use limited color palette (16-32 colors max) - Create blocky, geometric shapes - Add nostalgic gaming references where appropriate - Use dithering for color transitions ### Don't - Use smooth gradients or anti-aliasing - Create photorealistic elements - Use thin lines or fine details - Add modern glossy effects - Add slide numbers, footers, or logos ## Best For Gaming presentations, tech tutorials, nostalgic content, developer talks, retro-themed events, educational content for younger audiences, creative tech presentations -
scientific.md 2.4 KB
# scientific Educational scientific illustration style for pathways, processes, and technical diagrams ## Design Aesthetic Academic scientific illustration aesthetic for biological pathways, chemical processes, and technical systems. Clean, precise diagrams with proper labeling and clear visual flow. Educational clarity with professional polish. Think textbook quality illustrations and academic journal figures. ## Background - Color: Off-White (#FAFAFA) or Light Blue-Gray (#F0F4F8) - Texture: None or very subtle paper grain for print feel ## Typography ### Primary Font (Headlines) Clean serif font (Times New Roman style) for formal academic feel. Bold weight for main titles. Professional, authoritative presence. ### Secondary Font (Labels) Sans-serif for diagram labels and annotations. Clear, readable at small sizes. Consistent sizing for hierarchy. ### Body Font Serif for body paragraphs, sans-serif for bullet points and lists. Academic publication styling. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Off-White | #FAFAFA | Primary background | | Primary Text | Dark Slate | #1E293B | Headlines, body | | Label Text | Medium Gray | #475569 | Annotations | | Pathway 1 | Teal | #0D9488 | Primary pathway | | Pathway 2 | Blue | #3B82F6 | Secondary pathway | | Pathway 3 | Purple | #8B5CF6 | Tertiary pathway | | Membrane | Amber | #F59E0B | Biological membranes | | Alert | Red | #EF4444 | Key molecules, emphasis | | Positive | Green | #22C55E | Products, outputs | ## Visual Elements - Horizontal membrane or structure bases - Labeled modular components with distinct colors - Flow arrows (electron, proton, molecule movement) - Chemical formulas and molecular notation - Cross-section and pathway diagrams - Numbered step sequences - Key molecule callouts - Process summary boxes ## Style Rules ### Do - Use precise, consistent line weights - Label all components clearly - Show directional flow with arrows - Include chemical/molecular notation where relevant - Create clear numbered sequences ### Don't - Use decorative illustrations - Create imprecise or artistic diagrams - Omit important labels - Use inconsistent visual language - Add slide numbers, footers, or logos ## Best For Biology lectures, chemistry presentations, medical education, research presentations, academic papers, scientific conferences, textbook illustrations, process documentation -
sketch-notes.md 2.4 KB
# sketch-notes Soft hand-drawn illustration style with fresh, refined minimalist editorial aesthetic ## Design Aesthetic Illustration or hand-drawn feel with soft, relaxed brush strokes. Fresh, refined overall style with minimalist editorial approach. Emphasis on precision, clarity and intelligent elegance while prioritizing warmth, approachability and friendliness. ## Background - Color: Warm Off-White (#FAF8F0) - Texture: Subtle paper grain, slightly warm tone to avoid clinical feel ## Typography ### Primary Font (Headlines) Bold hand-written marker font or cartoon poster font. Slightly uneven baseline for organic feel. Thick strokes with soft edges. Render as hand-drawn letters, not typed text. ### Secondary Font (Body) Clear handwritten round or hard-pen style mimicking everyday notes. Consistent sizing with slight natural variation. Render as casual handwriting, legible but not mechanical. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Warm Off-White | #FAF8F0 | Primary background | | Primary Text | Deep Charcoal | #2C3E50 | Headlines, body text | | Alt Text | Deep Brown | #4A4A4A | Secondary text elements | | Accent 1 | Soft Orange | #F4A261 | Highlights, emphasis | | Accent 2 | Mustard Yellow | #E9C46A | Secondary highlights | | Accent 3 | Sage Green | #87A96B | Nature, growth concepts | | Accent 4 | Light Blue | #7EC8E3 | Tech, AI elements | | Accent 5 | Red Brown | #A0522D | Land, infrastructure | ## Visual Elements - Connection lines with hand-drawn wavy feel, not perfectly straight - Conceptual abstract icons illustrating ideas rather than literal scenes - Color fills don't need to completely fill outlines - preserve hand-painted casual feel - Simple geometric shapes with rounded corners - Arrows and pointers with sketchy, informal style - Doodle-style decorative elements: stars, spirals, underlines ## Style Rules ### Do - Keep layouts open and well-structured - Emphasize information hierarchy and readability - Use hand-drawn quality for all elements - Allow imperfection - slight wobbles add character - Layer elements with subtle overlaps ### Don't - Use perfect geometric shapes - Create photorealistic elements - Overcrowd with too many elements - Use pure white backgrounds - Add slide numbers, footers, or logos ## Best For Educational content, knowledge sharing, technical explanations, friendly presentations, tutorials, onboarding materials -
vector-illustration.md 2.6 KB
# vector-illustration Flat vector illustration style with clear black outlines and retro soft color palette ## Design Aesthetic Flat vector illustration with no gradients or 3D effects. Clear, uniform-thickness black outlines on all elements. Geometric simplification reducing complex objects to basic shapes. Toy model aesthetic that's cute, playful, and approachable. Panoramic horizontal compositions work well. ## Background - Color: Cream Off-White (#F5F0E6) - Texture: Subtle paper texture, warm nostalgic feel reminiscent of vintage prints ## Typography ### Primary Font (Headlines) Large, bold retro serif for titles conveying authority and elegance. Think classic advertising posters. Clean letterforms with strong presence. ### Secondary Font (Subtitles) All-caps sans-serif inside colored rectangular blocks. Label-like appearance. High contrast against block color. ### Body Font Clean geometric sans-serif for readability. Futura, Avenir, or similar. Consistent weight throughout. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Cream Off-White | #F5F0E6 | Primary background | | Outlines | Deep Charcoal | #2D2D2D | All element outlines | | Primary Text | Black | #1A1A1A | Headlines, body | | Accent 1 | Coral Red | #E07A5F | Primary accent, warmth | | Accent 2 | Mint Green | #81B29A | Secondary accent, nature | | Accent 3 | Mustard Yellow | #F2CC8F | Highlights, energy | | Accent 4 | Burnt Orange | #D4764A | Tertiary accent | | Accent 5 | Rock Blue | #577590 | Cool balance, tech | ## Visual Elements - All objects have closed black outlines (coloring book style) - Rounded line endings, avoid sharp corners - Trees simplified to lollipop or triangle shapes - Buildings simplified to rectangular blocks with grid windows - 2.5D perspective (isometric-like but more free-form) - Depth through layering and overlap, not atmospheric perspective - Decorative geometric elements: radiating lines (sunbursts), pill-shaped clouds, dots, stars - People as simple geometric figures with minimal facial detail ## Style Rules ### Do - Maintain consistent outline thickness throughout - Use soft, vintage color palette - Simplify all objects to basic geometric shapes - Create depth through layering - Add playful decorative elements ### Don't - Use gradients or realistic shading - Create photorealistic elements - Use thin or varying line weights - Include complex detailed illustrations - Add slide numbers, footers, or logos ## Best For Educational presentations, creative proposals, children's content, brand showcases, warm approachable topics, explainer content -
vintage.md 2.4 KB
# vintage Vintage aged-paper aesthetic for historical and expedition-style presentations ## Design Aesthetic Nostalgic vintage aesthetic with aged paper textures and historical document styling. Think explorer's journals, antique maps, and museum exhibits. Rich warm tones with weathered textures. Evokes discovery, heritage, and timeless knowledge. ## Background - Color: Aged Parchment (#F5E6D3) or Sepia Cream (#FFF8DC) - Texture: Heavy aged paper texture with subtle creases, coffee stains, and worn edges ## Typography ### Primary Font (Headlines) Classic serif with historical character (Garamond, Baskerville, or similar). Elegant, authoritative, timeless. May include decorative flourishes. ### Secondary Font (Labels) Condensed serif or clean sans-serif for map labels and annotations. Period-appropriate styling. Consistent with vintage aesthetic. ### Body Font Readable serif for longer text. Traditional book typography. Comfortable reading experience. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Aged Parchment | #F5E6D3 | Primary background | | Alt Background | Sepia Cream | #FFF8DC | Secondary areas | | Primary Text | Dark Brown | #3D2914 | Headlines, body | | Secondary Text | Medium Brown | #6B4423 | Annotations | | Accent 1 | Forest Green | #2D5A3D | Maps, nature | | Accent 2 | Navy Blue | #1E3A5F | Ocean, lines | | Accent 3 | Burgundy | #722F37 | Emphasis, borders | | Accent 4 | Gold | #C9A227 | Highlights, compass | | Ink | Sepia Black | #3D3D3D | Fine details | ## Visual Elements - Antique maps with route lines and landmarks - Compass roses and nautical elements - Expedition ship or vehicle illustrations - Specimen drawings (flora, fauna, fossils) - Handwritten-style annotations - Rope, leather, and brass decorative motifs - Wave and terrain texture patterns - Vintage photograph-style image frames ## Style Rules ### Do - Apply consistent aged texture throughout - Use period-appropriate visual language - Include map and journey elements where relevant - Create layered collage compositions - Maintain warm sepia-toned palette ### Don't - Use modern digital styling - Create crisp clean edges - Use cold or bright colors - Add contemporary elements - Add slide numbers, footers, or logos ## Best For Historical presentations, travel and exploration content, museum exhibits, heritage brand storytelling, biography presentations, scientific discovery narratives, educational history content -
watercolor.md 2.3 KB
# watercolor Soft watercolor illustration style with hand-painted textures and natural warmth ## Design Aesthetic Gentle watercolor aesthetic with visible brush strokes and natural color bleeding. Hand-painted feel with soft edges and organic shapes. Warm, approachable, and artistically refined. Combines artistic expression with clear information delivery. ## Background - Color: Warm Off-White (#FAF8F0) or Soft Cream (#FFF9E6) - Texture: Subtle watercolor paper texture with visible grain ## Typography ### Primary Font (Headlines) Elegant handwritten or brush script for titles. Organic letterforms with natural variation. Warm, personal feeling. May appear as actual hand-painted lettering. ### Secondary Font (Body) Clean rounded sans-serif or casual handwriting style. Readable at smaller sizes. Maintains artistic cohesion while staying functional. ## Color Palette | Role | Color | Hex | Usage | |------|-------|-----|-------| | Background | Warm Off-White | #FAF8F0 | Primary background | | Primary Text | Warm Charcoal | #3D3D3D | Headlines, body | | Accent 1 | Soft Coral | #F4A261 | Primary warmth | | Accent 2 | Dusty Rose | #E8A0A0 | Secondary warmth | | Accent 3 | Sage Green | #87A96B | Nature, growth | | Accent 4 | Sky Blue | #7EC8E3 | Water, calm | | Accent 5 | Soft Lavender | #C5B4E3 | Accent, creativity | | Wash | Pale Yellow | #FFF3C4 | Background washes | ## Visual Elements - Watercolor washes as section backgrounds - Illustrated icons with visible brush strokes - Natural elements: leaves, bubbles, flowers - Color bleeds and soft edges on all elements - Hand-drawn arrows and connection lines - Labeled diagrams with watercolor fills - Small expressive character illustrations - Decorative nature accents scattered thoughtfully ## Style Rules ### Do - Allow color to bleed beyond sharp edges - Use visible brush stroke textures - Create soft, organic shapes - Include hand-drawn quality in all elements - Maintain warm, inviting color palette ### Don't - Use sharp geometric shapes - Create hard edges or digital precision - Use cold or stark colors - Add photographic elements - Add slide numbers, footers, or logos ## Best For Lifestyle content, wellness presentations, travel guides, food and cooking content, personal stories, creative workshops, artistic portfolios, warm educational content
-
-
analysis-framework.md 5.1 KB
# Presentation Analysis Framework Deep content analysis for effective slide deck creation. ## 1. Message Hierarchy Identify the core message structure before designing slides. ### Core Message (One Sentence) - What is the single most important takeaway? - If the audience remembers only one thing, what should it be? - Can you state it in ≤15 words? ### Supporting Points (3-5 Maximum) - What evidence supports the core message? - What sub-topics must be covered? - Prioritize by audience relevance, not source order ### Call-to-Action - What should the audience DO after viewing? - Is it clear, specific, and achievable? - Where does it appear (slide position)? ## 2. Audience Decision Matrix | Question | Analysis | |----------|----------| | Who is the primary audience? | [Role, expertise level, relationship to topic] | | What do they currently believe? | [Existing knowledge, assumptions, biases] | | What decision do we want them to make? | [Specific action or conclusion] | | What barriers exist? | [Objections, concerns, missing information] | | What evidence will convince them? | [Data types, credibility sources, emotional hooks] | ### Audience Adaptation | Audience Type | Content Focus | Visual Treatment | |---------------|---------------|------------------| | Executives | Outcomes, ROI, strategic impact | High-level, clean, data highlights | | Technical | Architecture, implementation, specs | Detailed diagrams, code, schematics | | General | Benefits, stories, relatability | Visual metaphors, simple charts | | Investors | Market size, traction, team | Growth charts, milestones, comparisons | | Learners | Step-by-step, examples, practice | Progressive reveals, exercises | ## 3. Visual Opportunity Map Identify which content benefits from visualization. ### Content-to-Visual Mapping | Content Type | Visual Treatment | Example | |--------------|------------------|---------| | Comparisons | Side-by-side, before/after | Feature comparison table | | Processes | Flow diagrams, numbered steps | Workflow illustration | | Hierarchies | Org charts, pyramids, trees | Organizational structure | | Timelines | Horizontal/vertical timelines | Project milestones | | Statistics | Charts, highlighted numbers | Key metrics with context | | Concepts | Icons, metaphors, illustrations | Abstract idea visualization | | Relationships | Venn diagrams, networks | Ecosystem or dependencies | | Lists | Structured grids, icon rows | Feature bullets with icons | ### Visual Priority Rate each piece of content: - **Must Visualize**: Complex data, key differentiators, memorable moments - **Should Visualize**: Supporting evidence, secondary points - **Text Only**: Simple statements, transitions, minor details ## 4. Presentation Flow Structure for impact and retention. ### Opening (First 2-3 Slides) | Element | Purpose | |---------|---------| | Hook | Capture attention (surprising stat, question, story) | | Context | Why this matters now | | Preview | What audience will learn/gain | ### Middle (Content Slides) | Pattern | When to Use | |---------|-------------| | Problem → Solution | Introducing new products/ideas | | Situation → Complication → Resolution | Complex business cases | | What → Why → How | Educational content | | Past → Present → Future | Transformation stories | | Claim → Evidence → Implication | Data-driven arguments | ### Closing (Final 2-3 Slides) | Element | Purpose | |---------|---------| | Synthesis | Tie back to core message | | Call-to-Action | Clear next steps | | Memorable Close | Resonant quote, image, or statement | ### Transitions - Each slide should answer: "What comes next?" - Use narrative connectors between sections - Build logical progression, not topic jumps ## 5. Content Adaptation Decide what to keep, transform, or omit. ### Keep (High Value) - Core arguments and evidence - Unique insights or data - Audience-relevant examples - Memorable quotes or statistics ### Simplify (Medium Value) - Technical details → Visual summaries - Long explanations → Bullet hierarchies - Multiple examples → Best 1-2 examples - Background context → Brief framing ### Visualize (Transform) - Data tables → Charts or highlighted numbers - Process descriptions → Flow diagrams - Comparisons in text → Side-by-side visuals - Abstract concepts → Concrete metaphors ### Omit (Low Value) - Tangential information - Redundant examples - Excessive caveats - Background the audience already knows ## 6. Analysis Checklist Before outline creation, confirm: ### Message Clarity - [ ] Core message stated in one sentence - [ ] 3-5 supporting points identified - [ ] Call-to-action defined ### Audience Fit - [ ] Primary audience identified - [ ] Existing beliefs mapped - [ ] Desired decision clear - [ ] Evidence matches audience needs ### Visual Planning - [ ] Key visualizations identified - [ ] Chart/diagram types selected - [ ] Visual priority assigned ### Flow Design - [ ] Opening hook defined - [ ] Middle pattern selected - [ ] Closing approach planned - [ ] Transitions considered ### Content Decisions - [ ] Keep/simplify/visualize/omit applied - [ ] Source material fully processed - [ ] No important content overlooked -
base-prompt.md 4 KB
Create a presentation slide image following these guidelines: ## Image Specifications - **Type**: Presentation slide - **Aspect Ratio**: 16:9 (landscape) - **Style**: Professional slide deck ## Core Persona: The Architect You are "The Architect" - a master visual storyteller creating presentation slides. Your slides: - Tell a visual story that complements the narrative - Use bold, confident visual language - Balance information density with visual clarity - Create memorable, impactful visuals ## Core Principles - Hand-drawn quality throughout - NO realistic or photographic elements - If content involves sensitive or copyrighted figures, create stylistically similar alternatives - DO NOT refuse to generate - NO slide numbers, page numbers, footers, headers, or logos - Clean, uncluttered layouts with clear visual hierarchy - Each slide conveys ONE clear message - **NO page borders, frames, or outlined rectangles enclosing the slide** - **NO card/panel containing all content — the background fills the entire canvas edge-to-edge flatly** - **NO tilted paper, 3D perspective sheet, or drop-shadowed document effect** - Reserve the top-right corner for post-processing branding: use LEFT-aligned titles (not past 60% canvas width) so the right side stays naturally empty. **NEVER explicitly say "leave area empty/blank"** — AI interprets this literally and draws an empty placeholder box. Instead, design layouts where content naturally doesn't extend into that region ## Text Style (CRITICAL) - **ALL text MUST match the designated style exactly** - Title text: Large, bold, immediately readable - Body text: Clear, legible, appropriate sizing - Max 3-4 text elements per slide - **DO NOT use realistic or computer-generated fonts unless style specifies** - **Font rendering must match the style aesthetic** (hand-drawn for sketch styles, clean for minimal styles) ## Layout Principles - **Visual Hierarchy**: Most important element gets most visual weight - **Breathing Room**: Generous margins and spacing between elements - **Alignment**: Consistent alignment creates professional feel - **Balance**: Distribute visual weight evenly (symmetrical or asymmetrical) - **Focal Point**: One clear area draws the eye first - **Rule of Thirds**: Key elements at intersection points for dynamic compositions - **Z-Pattern**: For text-heavy slides, arrange content in natural reading flow ## Content Density: Presentation vs Reading Mode **Presentation mode** (speaker will narrate live): - Slides show ONLY visual anchors: charts, diagrams, hero terms, data numbers, key quotes - NO explanatory sentences, transition hooks, or narrative captions - Speaker delivers context, transitions, and interpretation verbally - Example: show "死循环" diagram only, speaker explains why it's a death loop **Reading mode** (self-explanatory for sharing): - Each slide includes enough context to stand alone without narration - Captions, attributions, and brief explanations are appropriate - Default mode unless `--presentation` is specified ## Language - Use the same language as the content provided below for all text elements - Match punctuation style to the content language - Write in direct, confident language - Avoid AI-sounding phrases like "dive into", "explore", "let's", "journey" --- ## STYLE_INSTRUCTIONS [Extract from outline.md - do NOT re-read style files] The STYLE_INSTRUCTIONS block from the outline contains: - Design Aesthetic - Background (Texture + Base Color) - Typography (Headlines + Body descriptions) - Color Palette (with hex codes) - Visual Elements - Density Guidelines - Style Rules (Do/Don't) Copy the entire `<STYLE_INSTRUCTIONS>...</STYLE_INSTRUCTIONS>` block from the outline here. --- ## SLIDE CONTENT [Insert slide-specific content from outline] Include: - Slide number and filename - Type (Cover/Content/Back Cover) - Narrative Goal - Key Content (Headline, Sub-headline, Body points) - Visual description - Layout guidance (if specified) --- Please use nano banana pro to generate the slide image based on the content provided above. -
content-rules.md 2.9 KB
# Content & Style Rules Guidelines for slide deck content quality and style consistency. ## Content Rules ### 1. Respect Reader Attention - Each slide should communicate ONE main idea - Remove redundant information - Prioritize clarity over comprehensiveness ### 2. Data Traceability - All statistics must include source attribution - Cite sources directly on slides with data - Use specific numbers over vague claims ### 3. Self-Contained Prompts - Every detail must be in the image prompt - No external references (e.g., "like slide 2") - Include all colors, layouts, and content explicitly ### 4. No Placeholders - Every element must be fully specified - No "[insert data here]" or "TBD" - All text content finalized before generation ## Style Rules ### 1. Narrative Headlines Headlines tell the story, not label the content. | Bad | Good | |-----|------| | "Key Statistics" | "Usage doubled in 6 months" | | "Our Solution" | "One platform replaces five tools" | | "Benefits" | "Teams save 10 hours weekly" | ### 2. Avoid AI Clichés Remove these patterns: - "Dive into", "explore", "journey" - "Let's look at", "let me show you" - "Exciting", "amazing", "revolutionary" - "In conclusion", "to summarize" ### 3. Meaningful Back Cover Not just "Thank you" or "Questions?" Include one of: - Clear call-to-action - Memorable key takeaway - Thought-provoking closing statement - Contact information with purpose ### 4. Consistent Visual Language Throughout the deck: - Same icon style - Same color usage patterns - Same layout grid system - Same typography hierarchy ## Slide Structure | Position | Type | Purpose | |----------|------|---------| | 1 | Cover | Title, visual hook, topic introduction | | 2 to N-1 | Content | Key points, data, explanations | | N | Back Cover | Summary, call-to-action, memorable close | ## Key Specifications | Specification | Value | |---------------|-------| | Aspect Ratio | 16:9 (landscape) | | Slide Count | Dynamic based on content | | Required Slides | Cover + Back Cover minimum | | Footers | None (no slide numbers, logos) | | Language Priority | `--lang` → source language → ask user | | Tone | Direct, confident (avoid AI phrases) | ## Style Quick Reference | Style | Visual Summary | |-------|----------------| | `sketch-notes` | Hand-drawn, warm off-white, conceptual icons | | `blueprint` | Technical schematics, grid texture, blue tones | | `bold-editorial` | High contrast, dark backgrounds, magazine impact | | `vector-illustration` | Flat vector, black outlines, retro colors | | `minimal` | Maximum whitespace, single accent, zen-like | | `storytelling` | Full-bleed imagery, cinematic, emotional | | `warm` | Soft gradients, rounded shapes, wellness palette | | `notion` | Dashboard aesthetic, clean data viz, SaaS-inspired | | `corporate` | Navy/gold, structured layouts, business polish | | `playful` | Vibrant coral/teal/yellow, dynamic, energetic | Full style specifications: `references/styles/<style>.md` -
design-guidelines.md 7.4 KB
# Design Guidelines Detailed design principles for slide decks. ## Audience Guidelines Design decisions adapt to target audience. Use `--audience` to set. | Audience | Content Density | Visual Style | Terminology | Slides | |----------|-----------------|--------------|-------------|--------| | `beginners` | Low | Friendly, illustrative | Plain language | 8-15 | | `intermediate` | Medium | Balanced, structured | Some jargon OK | 10-20 | | `experts` | High | Data-rich, precise | Technical terms | 12-25 | | `executives` | Low-Medium | Clean, impactful | Business language | 8-12 | | `general` | Medium | Accessible, engaging | Minimal jargon | 10-18 | ### Audience → Density Mapping Recommended density dimension based on audience: | Audience | Recommended Density | Rationale | |----------|-------------------|-----------| | `executives` | minimal | One insight per slide, respect time | | `beginners` | minimal → balanced | Single concepts, build understanding | | `general` | balanced | Accessible but informative | | `intermediate` | balanced | Standard information density | | `experts` | balanced → dense | Can handle more data per slide | **Automatic Density Selection**: - If `--audience executives` → default to `minimal` density - If `--audience beginners` → default to `minimal` or `balanced` - If `--audience experts` → allow `dense` density - Otherwise → default to `balanced` ### Audience-Specific Principles **Beginners**: - One concept per slide - Visual metaphors over abstract diagrams - Step-by-step progression - Generous whitespace **Experts**: - Multiple data points per slide acceptable - Technical diagrams with precise labels - Assume domain knowledge - Dense but organized information **Executives**: - Lead with insights, not data - "So what?" on every slide - Decision-enabling content - Bottom-line upfront (BLUF) ## Visual Hierarchy Principles | Principle | Description | |-----------|-------------| | Focal Point | ONE dominant element per slide draws attention first | | Rule of Thirds | Position key elements at grid intersections | | Z-Pattern | Guide eye: top-left → top-right → bottom-left → bottom-right | | Size Contrast | Headlines 2-3x larger than body text | | Breathing Room | Minimum 10% margin from all edges | ## Content Density See `references/dimensions/density.md` for full density dimension specs. | Level | Description | Use When | |-------|-------------|----------| | High | Multiple data points, detailed charts, dense text | Expert audience, technical reviews | | Medium | Key points with supporting details | General business, mixed audiences | | Low | One main idea, large visuals, minimal text | Beginners, keynotes, emotional impact | **High-Density Principles** (McKinsey-style): - Every element earns its space - Data speaks louder than decoration - Annotations explain insights, not describe data - White space is strategic, not filler **Density by Slide Type**: | Slide Type | Recommended Density | |------------|-------------------| | Cover/Title | minimal | | Agenda/Overview | balanced | | Content/Analysis | balanced or dense | | Data/Metrics | dense | | Quote/Impact | minimal | | Summary/Takeaway | balanced | ## Color Selection See `references/dimensions/mood.md` for full mood dimension specs. **Content-First Approach**: 1. Analyze content topic, mood, and industry 2. Consider target audience expectations 3. Match palette to subject matter 4. Ensure strong contrast for readability **Quick Palette Guide**: | Content Type | Recommended Mood | |--------------|-----------------| | Technical/Architecture | cool | | Educational/Friendly | warm | | Corporate/Professional | professional | | Creative/Artistic | vibrant | | Scientific/Medical | cool or neutral | | Entertainment/Gaming | dark or vibrant | ## Typography Principles See `references/dimensions/typography.md` for full typography dimension specs. | Element | Treatment | |---------|-----------| | Headlines | Bold, 2-3x body size, narrative style | | Body Text | Regular weight, readable size | | Captions | Smaller, lighter weight | | Data Labels | Monospace for technical content | | Emphasis | Use bold or color, not underlines | ## Font Recommendations **English Fonts**: | Font | Style | Best For | |------|-------|----------| | Liter | Sans-serif, geometric | Modern, clean, technical | | HedvigLettersSans | Sans-serif, distinctive | Brand-forward, creative | | Oranienbaum | High-contrast serif | Elegant, classical | | SortsMillGoudy | Classical serif | Traditional, readable | | Coda | Round sans-serif | Friendly, approachable | **Chinese Fonts**: | Font | Style | Best For | |------|-------|----------| | MiSans | Modern sans-serif | Clean, versatile, screen-optimized | | Noto Sans SC | Neutral sans-serif | Standard, multilingual | | siyuanSongti | Refined Song typeface | Elegant, editorial | | alimamashuheiti | Geometric sans-serif | Commercial, structured | | LXGW Bright | Song-Kai hybrid | Warm, readable | **Multilingual Pairing**: | Use Case | English | Chinese | |----------|---------|---------| | Technical | Liter | MiSans | | Editorial | Oranienbaum | siyuanSongti | | Friendly | Coda | LXGW Bright | | Corporate | HedvigLettersSans | alimamashuheiti | ## Visual Elements Reference See `references/dimensions/texture.md` for full texture dimension specs. ### Background Treatments | Treatment | Description | Best For | |-----------|-------------|----------| | Solid color | Single background color | Clean, minimal | | Split background | Two colors, diagonal or vertical | Contrast, sections | | Gradient | Subtle vertical or diagonal fade | Modern, dynamic | | Textured | Pattern or texture overlay | Character, style | ### Typography Treatments | Treatment | Description | Best For | |-----------|-------------|----------| | Size contrast | 3-4x difference headline vs body | Impact, hierarchy | | All-caps headers | Uppercase with letter spacing | Authority, structure | | Monospace data | Fixed-width for numbers/code | Technical, precision | | Hand-drawn | Organic, imperfect letterforms | Friendly, approachable | ### Geometric Accents | Element | Description | Best For | |---------|-------------|----------| | Diagonal dividers | Angled section separators | Energy, movement | | Corner brackets | L-shaped frames | Focus, framing | | Circles/hexagons | Shape frames for images | Modern, tech | | Underline accents | Thick lines under headers | Emphasis, hierarchy | ## Consistency Requirements | Element | Guideline | |---------|-----------| | Spacing | Consistent margins and padding throughout | | Colors | Maximum 3-4 colors per slide, palette consistent across deck | | Typography | Same font families and sizes for same content types | | Visual Language | Repeat patterns, shapes, and treatments | ## Dimension Combination Guide When combining dimensions, consider compatibility: | Audience | Recommended Dimensions | |----------|----------------------| | Executives | clean + neutral + geometric + minimal | | Beginners | organic + warm + humanist + minimal | | General | any texture + any mood + humanist/geometric + balanced | | Experts | grid/clean + cool + technical + balanced/dense | | Content Type | Recommended Dimensions | |--------------|----------------------| | Tutorial | organic + warm + handwritten + balanced | | Technical | grid + cool + technical + balanced | | Business | clean + professional + geometric + balanced | | Creative | organic + vibrant + humanist + balanced | | Data-heavy | clean + cool + technical + dense | -
layouts.md 3 KB
# Layout Gallery Optional layout hints for individual slides. Specify in outline's `// LAYOUT` section. ## Slide-Specific Layouts | Layout | Description | Best For | |--------|-------------|----------| | `title-hero` | Large centered title + subtitle | Cover slides, section breaks | | `quote-callout` | Featured quote with attribution | Testimonials, key insights | | `key-stat` | Single large number as focal point | Impact statistics, metrics | | `split-screen` | Half image, half text | Feature highlights, comparisons | | `icon-grid` | Grid of icons with labels | Features, capabilities, benefits | | `two-columns` | Content in balanced columns | Paired information, dual points | | `three-columns` | Content in three columns | Triple comparisons, categories | | `image-caption` | Full-bleed image + text overlay | Visual storytelling, emotional | | `agenda` | Numbered list with highlights | Session overview, roadmap | | `bullet-list` | Structured bullet points | Simple content, lists | ## Infographic-Derived Layouts | Layout | Description | Best For | |--------|-------------|----------| | `linear-progression` | Sequential flow left-to-right | Timelines, step-by-step | | `binary-comparison` | Side-by-side A vs B | Before/after, pros-cons | | `comparison-matrix` | Multi-factor grid | Feature comparisons | | `hierarchical-layers` | Pyramid or stacked levels | Priority, importance | | `hub-spoke` | Central node with radiating items | Concept maps, ecosystems | | `bento-grid` | Varied-size tiles | Overview, summary | | `funnel` | Narrowing stages | Conversion, filtering | | `dashboard` | Metrics with charts/numbers | KPIs, data display | | `venn-diagram` | Overlapping circles | Relationships, intersections | | `circular-flow` | Continuous cycle | Recurring processes | | `winding-roadmap` | Curved path with milestones | Journey, timeline | | `tree-branching` | Parent-child hierarchy | Org charts, taxonomies | | `iceberg` | Visible vs hidden layers | Surface vs depth | | `bridge` | Gap with connection | Problem-solution | **Usage**: Add `Layout: <name>` in slide's `// LAYOUT` section. ## Layout Selection Tips **Match Layout to Content**: | Content Type | Recommended Layouts | |--------------|-------------------| | Single narrative | `bullet-list`, `image-caption` | | Two concepts | `split-screen`, `binary-comparison` | | Three items | `three-columns`, `icon-grid` | | Process/Steps | `linear-progression`, `winding-roadmap` | | Data/Metrics | `dashboard`, `key-stat` | | Relationships | `hub-spoke`, `venn-diagram` | | Hierarchy | `hierarchical-layers`, `tree-branching` | **Layout Flow Patterns**: | Position | Recommended Layouts | |----------|-------------------| | Opening | `title-hero`, `agenda` | | Middle | Content-specific layouts | | Closing | `quote-callout`, `key-stat` | **Common Mistakes to Avoid**: - Using 3-column layout for 2 items (leaves columns empty) - Stacking charts/tables below text (use side-by-side instead) - Image layouts without actual images - Quote layouts for emphasis (use only for real quotes with attribution) -
modification-guide.md 2.4 KB
# Slide Modification Guide Workflows for modifying individual slides after initial generation. ## Edit Single Slide Regenerate a specific slide with modified content: 1. Identify slide to edit (e.g., `03-slide-key-findings.png`) 2. Update prompt in `prompts/03-slide-key-findings.md` 3. If content changes significantly, update slug in filename 4. Regenerate image using same session ID 5. Regenerate PPTX and PDF ## Add New Slide Insert a new slide at specified position: 1. Specify insertion position (e.g., after slide 3) 2. Create new prompt with appropriate slug (e.g., `04-slide-new-section.md`) 3. Generate new slide image 4. **Renumber files**: All subsequent slides increment NN by 1 - `04-slide-conclusion.png` → `05-slide-conclusion.png` - Slugs remain unchanged 5. Update `outline.md` with new slide entry 6. Regenerate PPTX and PDF ## Delete Slide Remove a slide and renumber: 1. Identify slide to delete (e.g., `03-slide-key-findings.png`) 2. Remove image file and prompt file 3. **Renumber files**: All subsequent slides decrement NN by 1 - `04-slide-conclusion.png` → `03-slide-conclusion.png` - Slugs remain unchanged 4. Update `outline.md` to remove slide entry 5. Regenerate PPTX and PDF ## File Naming Convention Files use meaningful slugs for better readability: ``` NN-slide-[slug].png NN-slide-[slug].md (in prompts/) ``` Examples: - `01-slide-cover.png` - `02-slide-problem-statement.png` - `03-slide-key-findings.png` - `04-slide-back-cover.png` ## Slug Rules | Rule | Description | |------|-------------| | Format | Kebab-case (lowercase, hyphens) | | Source | Derived from slide title/content | | Uniqueness | Must be unique within the deck | | Updates | Change slug when content changes significantly | ## Renumbering Rules | Scenario | Action | |----------|--------| | Add slide | Increment NN for all subsequent slides | | Delete slide | Decrement NN for all subsequent slides | | Reorder slides | Update NN to match new positions | | Edit slide | NN unchanged, update slug if needed | **Important**: Slugs remain unchanged during renumbering. Only the NN prefix changes. ## Post-Modification Checklist After any modification: - [ ] Image file renamed/created correctly - [ ] Prompt file renamed/created correctly - [ ] Subsequent files renumbered (if add/delete) - [ ] `outline.md` updated to reflect changes - [ ] PPTX regenerated - [ ] PDF regenerated - [ ] Slide count in outline header updated -
outline-template.md 7.4 KB
# Outline Template Standard structure for slide deck outlines with style instructions. ## Outline Format ```markdown # Slide Deck Outline **Topic**: [topic description] **Style**: [preset name OR "custom"] **Dimensions**: [texture] + [mood] + [typography] + [density] **Audience**: [target audience] **Language**: [output language] **Slide Count**: N slides **Generated**: YYYY-MM-DD HH:mm --- <STYLE_INSTRUCTIONS> Design Aesthetic: [2-3 sentence description combining dimension characteristics] Background: Texture: [from texture dimension] Base Color: [from mood dimension palette] Typography: Headlines: [from typography dimension - describe visual appearance] Body: [from typography dimension - describe visual appearance] Color Palette: Primary Text: [Name] ([Hex]) - [usage] Background: [Name] ([Hex]) - [usage] Accent 1: [Name] ([Hex]) - [usage] Accent 2: [Name] ([Hex]) - [usage] Visual Elements: - [element 1 from texture + mood combination] - [element 2 with rendering guidance] - ... Density Guidelines: - Content per slide: [from density dimension] - Whitespace: [from density dimension] Style Rules: Do: [guidelines from dimension combinations] Don't: [anti-patterns from dimension combinations] </STYLE_INSTRUCTIONS> --- [Slide entries follow...] ``` ## Building STYLE_INSTRUCTIONS from Dimensions When using custom dimensions or presets, build STYLE_INSTRUCTIONS by combining: ### 1. Design Aesthetic Combine characteristics from all four dimensions into 2-3 sentences: | Texture | Contribution | |---------|--------------| | clean | "Clean, digital precision with crisp edges" | | grid | "Technical grid overlay with engineering precision" | | organic | "Hand-drawn feel with soft textures" | | pixel | "Chunky pixel aesthetic with 8-bit charm" | | paper | "Aged paper texture with vintage character" | | Mood | Contribution | |------|--------------| | professional | "Professional navy and gold palette" | | warm | "Warm earth tones creating approachable atmosphere" | | cool | "Cool analytical blues and grays" | | vibrant | "Bold, high-saturation colors with energy" | | dark | "Deep cinematic backgrounds with glowing accents" | | neutral | "Minimal grayscale sophistication" | ### 2. Background From `references/dimensions/texture.md`: - Texture description - Base color from mood palette ### 3. Typography From `references/dimensions/typography.md`: - Headline visual description (NOT font names) - Body text visual description (NOT font names) **Important**: Describe appearance for image generation: "bold geometric sans-serif with perfect circular O shapes" NOT "Inter font". ### 4. Color Palette From `references/dimensions/mood.md`: - Copy the palette specifications for the selected mood - Include hex codes and usage notes ### 5. Visual Elements Combine texture and mood characteristics: | Combination | Visual Elements | |-------------|-----------------| | clean + professional | Clean charts, outlined icons, structured grids | | grid + cool | Technical schematics, dimension lines, blueprints | | organic + warm | Hand-drawn icons, brush strokes, doodles | | pixel + vibrant | Pixel art icons, retro game elements | | paper + warm | Vintage stamps, aged elements, sepia overlays | ### 6. Density Guidelines From `references/dimensions/density.md`: - Content per slide limits - Whitespace requirements - Element count guidelines ### 7. Style Rules Combine dimension-specific rules: **Do rules by texture**: - clean: Maintain sharp edges, use grid alignment - grid: Show precise measurements, use technical diagrams - organic: Allow imperfection, layer with subtle overlaps - pixel: Keep aliased edges, use chunky elements - paper: Add subtle aging effects, use warm tones **Don't rules by texture**: - clean: Don't use hand-drawn elements - grid: Don't use organic curves - organic: Don't use perfect geometry - pixel: Don't smooth edges - paper: Don't use bright digital colors ## Cover Slide Template ```markdown ## Slide 1 of N **Type**: Cover **Filename**: 01-slide-cover.png // NARRATIVE GOAL [What this slide achieves in the story arc] // KEY CONTENT Headline: [main title] Sub-headline: [supporting tagline] // VISUAL [Detailed visual description - specific elements, composition, mood] // LAYOUT Layout: [optional: layout name from gallery, e.g., title-hero] [Composition, hierarchy, spatial arrangement] ``` ## Content Slide Template ```markdown ## Slide X of N **Type**: Content **Filename**: {NN}-slide-{slug}.png // NARRATIVE GOAL [What this slide achieves in the story arc] // KEY CONTENT Headline: [main message - narrative, not label] Sub-headline: [supporting context] Body: - [point 1 with specific detail] - [point 2 with specific detail] - [point 3 with specific detail] // VISUAL [Detailed visual description] // LAYOUT Layout: [optional: layout name from gallery] [Composition, hierarchy, spatial arrangement] ``` ## Back Cover Slide Template ```markdown ## Slide N of N **Type**: Back Cover **Filename**: {NN}-slide-back-cover.png // NARRATIVE GOAL [Meaningful closing - not just "thank you"] // KEY CONTENT Headline: [memorable closing statement or call-to-action] Body: [optional summary points or next steps] // VISUAL [Visual that reinforces the core message] // LAYOUT Layout: [optional: layout name from gallery] [Clean, impactful composition] ``` ## STYLE_INSTRUCTIONS Block The `<STYLE_INSTRUCTIONS>` block is the SINGLE SOURCE OF TRUTH for style information in this outline. | Section | Content | Source | |---------|---------|--------| | Design Aesthetic | Overall visual direction | Combined from all dimensions | | Background | Base color and texture details | texture + mood dimensions | | Typography | Font descriptions (visual, not names) | typography dimension | | Color Palette | Named colors with hex codes and usage | mood dimension | | Visual Elements | Graphic elements with rendering instructions | texture + mood dimensions | | Density Guidelines | Content limits and whitespace | density dimension | | Style Rules | Do/Don't guidelines | Combined from dimensions | **Important**: - Typography descriptions must describe visual appearance (e.g., "rounded sans-serif", "bold geometric") since image generators cannot use font names - Prompts should extract STYLE_INSTRUCTIONS from this outline, NOT re-read style files ## Preset → Dimensions Reference When using a preset, look up dimensions in `references/dimensions/presets.md`: | Preset | Dimensions | |--------|------------| | blueprint | grid + cool + technical + balanced | | sketch-notes | organic + warm + handwritten + balanced | | corporate | clean + professional + geometric + balanced | | minimal | clean + neutral + geometric + minimal | | ... | See presets.md for full mapping | ## Section Dividers Use `---` (horizontal rule) between: - Header metadata and STYLE_INSTRUCTIONS - STYLE_INSTRUCTIONS and first slide - Each slide entry ## Slide Numbering - Cover is always Slide 1 - Content slides use sequential numbers - Back Cover is always final slide (N) - Filename prefix matches slide position: `01-`, `02-`, etc. ## Filename Slugs Generate meaningful slugs from slide content: | Slide Type | Slug Pattern | Example | |------------|--------------|---------| | Cover | `cover` | `01-slide-cover.png` | | Content | `{topic-slug}` | `02-slide-problem-statement.png` | | Back Cover | `back-cover` | `10-slide-back-cover.png` | Slug rules: - Kebab-case (lowercase, hyphens) - Derived from headline or main topic - Maximum 30 characters - Unique within deck -
workflow.md 16.6 KB
# any2deck Workflow ## Workflow Copy this checklist and check off items as you complete them: ``` Slide Deck Progress: - [ ] Step 1: Setup & Analyze - [ ] 1.1 Load preferences - [ ] 1.2 Analyze content - [ ] 1.3 Check existing ⚠️ REQUIRED - [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1, optional Round 2) - [ ] Step 3: Generate outline - [ ] Step 4: Review outline (conditional) - [ ] Step 5: Generate prompts - [ ] Step 6: Review prompts (conditional) - [ ] Step 7: Generate images - [ ] Step 7.5: Apply branding (if configured) - [ ] Step 8: Merge to PPTX/PDF - [ ] Step 9: Output summary ``` ### Flow ``` Input → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → [Branding?] → Merge → Complete ``` ### Step 1: Setup & Analyze **1.1 Load Preferences (EXTEND.md)** Use Bash to check EXTEND.md existence (priority order): ```bash # Check project-level first test -f .lov-skills/lov-any2deck/EXTEND.md && echo "project" # Then user-level (cross-platform: $HOME works on macOS/Linux/WSL) test -f "$HOME/.lov-skills/lov-any2deck/EXTEND.md" && echo "user" ``` ┌──────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .lov-skills/lov-any2deck/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.lov-skills/lov-any2deck/EXTEND.md │ User home │ └──────────────────────────────────────────────────┴───────────────────┘ **When EXTEND.md Found** → Read, parse, **output summary to user**: ``` 📋 Loaded preferences from [full path] ├─ Style: [preset/custom name] ├─ Audience: [audience or "auto-detect"] ├─ Language: [language or "auto-detect"] └─ Review: [enabled/disabled] ``` **When EXTEND.md Not Found** → First-time setup using AskUserQuestion or proceed with defaults. **EXTEND.md Supports**: Preferred style | Custom dimensions | Default audience | Language preference | Review preference Schema: `references/config/preferences-schema.md` **1.2 Analyze Content** 1. Save source content (if pasted, save as `source.md`) - **Backup rule**: If `source.md` exists, rename to `source-backup-YYYYMMDD-HHMMSS.md` 2. Follow `references/analysis-framework.md` for content analysis 3. Analyze content signals for style recommendations 4. Detect source language 5. Determine recommended slide count 6. Generate topic slug from content **1.3 Check Existing Content** ⚠️ REQUIRED **MUST execute before proceeding to Step 2.** Use Bash to check if output directory exists: ```bash test -d "slide-deck/{topic-slug}" && echo "exists" ``` **If directory exists**, use AskUserQuestion: ``` header: "Existing" question: "Existing content found. How to proceed?" options: - label: "Regenerate outline" description: "Keep images, regenerate outline only" - label: "Regenerate images" description: "Keep outline, regenerate images only" - label: "Backup and regenerate" description: "Backup to {slug}-backup-{timestamp}, then regenerate all" - label: "Exit" description: "Cancel, keep existing content unchanged" ``` **Save to `analysis.md`** with: - Topic, audience, content signals - Recommended style (based on Auto Style Selection) - Recommended slide count - Language detection ### Step 2: Confirmation ⚠️ REQUIRED **Two-round confirmation**: Round 1 always, Round 2 only if "Custom dimensions" selected. **Language**: Use user's input language or saved language preference. **Display summary**: - Content type + topic identified - Language: [from EXTEND.md or detected] - **Recommended style**: [preset] (based on content signals) - **Recommended slides**: [N] (based on content length) #### Round 1 (Always) **Use AskUserQuestion** for all 5 questions: **Question 1: Style** ``` header: "Style" question: "Which visual style for this deck?" options: - label: "{recommended_preset} (Recommended)" description: "Best match based on content analysis" - label: "{alternative_preset}" description: "[alternative style description]" - label: "Custom dimensions" description: "Choose texture, mood, typography, density separately" ``` **Question 2: Audience** ``` header: "Audience" question: "Who is the primary reader?" options: - label: "General readers (Recommended)" description: "Broad appeal, accessible content" - label: "Beginners/learners" description: "Educational focus, clear explanations" - label: "Experts/professionals" description: "Technical depth, domain knowledge" - label: "Executives" description: "High-level insights, minimal detail" ``` **Question 3: Slide Count** ``` header: "Slides" question: "How many slides?" options: - label: "{N} slides (Recommended)" description: "Based on content length" - label: "Fewer ({N-3} slides)" description: "More condensed, less detail" - label: "More ({N+3} slides)" description: "More detailed breakdown" ``` **Question 4: Review Outline** ``` header: "Outline" question: "Review outline before generating prompts?" options: - label: "Yes, review outline (Recommended)" description: "Review slide titles and structure" - label: "No, skip outline review" description: "Proceed directly to prompt generation" ``` **Question 5: Review Prompts** ``` header: "Prompts" question: "Review prompts before generating images?" options: - label: "Yes, review prompts (Recommended)" description: "Review image generation prompts" - label: "No, skip prompt review" description: "Proceed directly to image generation" ``` #### Round 2 (Only if "Custom dimensions" selected) **Use AskUserQuestion** for all 4 dimensions: **Question 1: Texture** ``` header: "Texture" question: "Which visual texture?" options: - label: "clean" description: "Pure solid color, no texture" - label: "grid" description: "Subtle grid overlay, technical" - label: "organic" description: "Soft textures, hand-drawn feel" - label: "pixel" description: "Chunky pixels, 8-bit aesthetic" ``` (Note: "paper" available via Other) **Question 2: Mood** ``` header: "Mood" question: "Which color mood?" options: - label: "professional" description: "Cool-neutral, navy/gold" - label: "warm" description: "Earth tones, friendly" - label: "cool" description: "Blues, grays, analytical" - label: "vibrant" description: "High saturation, bold" ``` (Note: "dark", "neutral" available via Other) **Question 3: Typography** ``` header: "Typography" question: "Which typography style?" options: - label: "geometric" description: "Modern sans-serif, clean" - label: "humanist" description: "Friendly, readable" - label: "handwritten" description: "Marker/brush, organic" - label: "editorial" description: "Magazine style, dramatic" ``` (Note: "technical" available via Other) **Question 4: Density** ``` header: "Density" question: "Information density?" options: - label: "balanced (Recommended)" description: "2-3 key points per slide" - label: "minimal" description: "One focus point, maximum whitespace" - label: "dense" description: "Multiple data points, compact" ``` **After Round 2**: Store custom dimensions as the style configuration. **After Confirmation**: 1. Update `analysis.md` with confirmed preferences 2. Store `skip_outline_review` flag from Question 4 3. Store `skip_prompt_review` flag from Question 5 4. → Step 3 ### Step 3: Generate Outline Create outline using the confirmed style from Step 2. **Style Resolution**: - If preset selected → Read `references/styles/{preset}.md` - If custom dimensions → Read dimension files from `references/dimensions/` and combine **Generate**: 1. Follow `references/outline-template.md` for structure 2. Build STYLE_INSTRUCTIONS from style or dimensions 3. Apply confirmed audience, language, slide count 4. Save as `outline.md` **After generation**: - If `--outline-only`, stop here - If `skip_outline_review` is true → Skip Step 4, go to Step 5 - If `skip_outline_review` is false → Continue to Step 4 ### Step 4: Review Outline (Conditional) **Skip this step** if user selected "No, skip outline review" in Step 2. **Purpose**: Review outline structure before prompt generation. **Language**: Use user's input language or saved language preference. **Display**: - Total slides: N - Style: [preset name or "custom: texture+mood+typography+density"] - Slide-by-slide summary table: ``` | # | Title | Type | Layout | |---|-------|------|--------| | 1 | [title] | Cover | title-hero | | 2 | [title] | Content | [layout] | | 3 | [title] | Content | [layout] | | ... | ... | ... | ... | ``` **Use AskUserQuestion**: ``` header: "Confirm" question: "Ready to generate prompts?" options: - label: "Yes, proceed (Recommended)" description: "Generate image prompts" - label: "Edit outline first" description: "I'll modify outline.md before continuing" - label: "Regenerate outline" description: "Create new outline with different approach" ``` **After response**: 1. If "Edit outline first" → Inform user to edit `outline.md`, ask again when ready 2. If "Regenerate outline" → Back to Step 3 3. If "Yes, proceed" → Continue to Step 5 ### Step 5: Generate Prompts 1. Read `references/base-prompt.md` 2. For each slide in outline: - Extract STYLE_INSTRUCTIONS from outline (not from style file again) - Add slide-specific content - If `Layout:` specified, include layout guidance from `references/layouts.md` 3. Save to `prompts/` directory - **Backup rule**: If prompt file exists, rename to `prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.md` **After generation**: - If `--prompts-only`, stop here and output prompt summary - If `skip_prompt_review` is true → Skip Step 6, go to Step 7 - If `skip_prompt_review` is false → Continue to Step 6 ### Step 6: Review Prompts (Conditional) **Skip this step** if user selected "No, skip prompt review" in Step 2. **Purpose**: Review prompts before image generation. **Language**: Use user's input language or saved language preference. **Display**: - Total prompts: N - Style: [preset name or custom dimensions] - Prompt list: ``` | # | Filename | Slide Title | |---|----------|-------------| | 1 | 01-slide-cover.md | [title] | | 2 | 02-slide-xxx.md | [title] | | ... | ... | ... | ``` - Path to prompts directory: `prompts/` **Use AskUserQuestion**: ``` header: "Confirm" question: "Ready to generate slide images?" options: - label: "Yes, proceed (Recommended)" description: "Generate all slide images" - label: "Edit prompts first" description: "I'll modify prompts before continuing" - label: "Regenerate prompts" description: "Create new prompts with different approach" ``` **After response**: 1. If "Edit prompts first" → Inform user to edit prompts, ask again when ready 2. If "Regenerate prompts" → Back to Step 5 3. If "Yes, proceed" → Continue to Step 7 ### Step 7: Generate Images **For `--images-only`**: Start here with existing prompts. **For `--regenerate N`**: Only regenerate specified slide(s). **Standard flow**: 1. Select available image generation skill 2. Generate session ID: `slides-{topic-slug}-{timestamp}` 3. For each slide: - **Backup rule**: If image file exists, rename to `NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.png` - Generate image sequentially with same session ID 4. Report progress: "Generated X/N" (in user's language) 5. Auto-retry once on failure before reporting error ### Step 7.5: Apply Branding (opt-in) **Trigger**: Only run if `branding.logo` is set in EXTEND.md OR user passed `--logo <path>`. Composites brand logo(s) (top-right) and optional QR code onto generated slides. Supports dual logos (e.g. brand + partner), tight-crops logos via `getbbox()`, and converts JPG white backgrounds to alpha automatically. **Defaults** (if EXTEND.md branding not configured): - Logo: skip this step entirely - Skip slides: `[1, <last slide>]` (cover + back-cover get no logo) ```bash python3 ${SKILL_DIR}/scripts/apply-branding.py <slide-deck-dir> \ --logo <logo_path> \ [--logo2 <secondary_logo_path> --logo2-gap 32] \ --skip 1,<last_slide> \ [--logo-h 46 --pad-top 20 --pad-right 26] \ [--patch-slides N,M] # slides whose AI-drawn frames clash with logo [--frame-slides N,M] # slides needing full edge frame-stripping [--qr <qr_path> --qr-slide N --qr-box X1,Y1,X2,Y2] ``` **Quality check after running**: Read 2-3 slides and visually verify: 1. Logo is crisp, not clipped by canvas edge 2. No visible frame lines / card edges touching or crossing the logo 3. Backdrop blends seamlessly with paper texture If any slide shows frame/card conflict, add it to `--patch-slides` and re-run. If edges still leak through, add it to `--frame-slides` (more aggressive strip). If problems persist (content-integrated card), regenerate that slide with explicit "NO card containing all content, NO tilted paper" in the prompt. The script is idempotent: originals are backed up to `_original/` and reused on every run. ### Step 8: Merge to PPTX and PDF ```bash npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir> npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir> ``` ### Step 9: Output Summary **Language**: Use user's input language or saved language preference. ``` Slide Deck Complete! Topic: [topic] Style: [preset name or custom dimensions] Location: [directory path] Slides: N total - 01-slide-cover.png - Cover - 02-slide-intro.png - Content - ... - {NN}-slide-back-cover.png - Back Cover Outline: outline.md PPTX: {topic-slug}.pptx PDF: {topic-slug}.pdf ``` ## Partial Workflows | Option | Workflow | |--------|----------| | `--outline-only` | Steps 1-3 only (stop after outline) | | `--prompts-only` | Steps 1-5 (generate prompts, skip images) | | `--images-only` | Skip to Step 7 (requires existing prompts/) | | `--regenerate N` | Regenerate specific slide(s) only | ### Using `--prompts-only` Generate outline and prompts without images: ```bash /lov-any2deck content.md --prompts-only ``` Output: `outline.md` + `prompts/*.md` ready for review/editing. ### Using `--images-only` Generate images from existing prompts (starts at Step 7): ```bash /lov-any2deck slide-deck/topic-slug/ --images-only ``` Prerequisites: - `prompts/` directory with slide prompt files - `outline.md` with style information ### Using `--regenerate` Regenerate specific slides: ```bash # Single slide /lov-any2deck slide-deck/topic-slug/ --regenerate 3 # Multiple slides /lov-any2deck slide-deck/topic-slug/ --regenerate 2,5,8 ``` Flow: 1. Read existing prompts for specified slides 2. Regenerate images only for those slides 3. Regenerate PPTX/PDF ## Slide Modification ### Quick Reference | Action | Command | Manual Steps | |--------|---------|--------------| | **Edit** | `--regenerate N` | **Update prompt file FIRST** → Regenerate image → Regenerate PDF | | **Add** | Manual | Create prompt → Generate image → Renumber subsequent → Update outline → Regenerate PDF | | **Delete** | Manual | Remove files → Renumber subsequent → Update outline → Regenerate PDF | ### Edit Single Slide 1. **Update prompt file FIRST** in `prompts/NN-slide-{slug}.md` 2. Run: `/lov-any2deck <dir> --regenerate N` 3. Or manually regenerate image + PDF **IMPORTANT**: When updating slides, ALWAYS update the prompt file (`prompts/NN-slide-{slug}.md`) FIRST before regenerating. This ensures changes are documented and reproducible. ### Add New Slide 1. Create prompt at position: `prompts/NN-slide-{new-slug}.md` 2. Generate image using same session ID 3. **Renumber**: Subsequent files NN+1 (slugs unchanged) 4. Update `outline.md` 5. Regenerate PPTX/PDF ### Delete Slide 1. Remove `NN-slide-{slug}.png` and `prompts/NN-slide-{slug}.md` 2. **Renumber**: Subsequent files NN-1 (slugs unchanged) 3. Update `outline.md` 4. Regenerate PPTX/PDF ### File Naming Format: `NN-slide-[slug].png` - `NN`: Two-digit sequence (01, 02, ...) - `slug`: Kebab-case from content (2-5 words, unique) **Renumbering Rule**: Only NN changes, slugs remain unchanged. See `references/modification-guide.md` for complete details.
-
-
scripts
-
apply-branding.py 9.7 KB
#!/usr/bin/env python3 """Apply brand logo (and optional QR code) to generated slide images. Designed to solve real-world pain points: - AI-drawn page borders/cards clash with a composited logo - Logo sits inside an AI-drawn frame → looks broken - Need consistent branding without re-generating every slide Usage: python3 apply-branding.py <slide-deck-dir> \\ --logo /path/to/logo.png \\ [--skip 1,N] [--logo-h 56] [--pad-top 18] [--pad-right 24] [--qr /path/to/qr.png --qr-slide 23 --qr-box X1,Y1,X2,Y2] [--patch-slides 7,15,18,20] [--frame-slides 2,21] Destructive-safe: originals are copied to <deck>/_original/ on first run. Idempotent: re-running rebuilds output from _original/. """ from __future__ import annotations import argparse import statistics import sys from pathlib import Path try: from PIL import Image, ImageDraw, ImageFilter except ImportError: print("ERROR: Pillow is required. Install with: pip install Pillow", file=sys.stderr) sys.exit(1) def parse_int_set(s: str) -> set[int]: if not s: return set() return {int(x.strip()) for x in s.split(",") if x.strip()} def parse_box(s: str) -> tuple[int, int, int, int]: parts = [int(x.strip()) for x in s.split(",")] if len(parts) != 4: raise ValueError("box must be X1,Y1,X2,Y2") return tuple(parts) # type: ignore def strip_frame(img: Image.Image, border_px: int = 40) -> Image.Image: """Overwrite the 4 edge strips with a clean paper tile sampled from the interior. Picks a tile with the lowest luminance variance to avoid tiling text/lines across the edges. """ w, h = img.size b = border_px tile_w, tile_h = 60, 60 candidates = [] for cy in range(b + 10, h - b - tile_h, 30): for cx in range(b + 10, w - b - tile_w, 60): patch = img.crop((cx, cy, cx + tile_w, cy + tile_h)) pixels = list(patch.getdata()) lums = [0.3 * r + 0.59 * g + 0.11 * bl for r, g, bl in pixels] var = statistics.pvariance(lums) mean_lum = sum(lums) / len(lums) if mean_lum > 230: # only consider bright/paper patches candidates.append((var, cx, cy)) if not candidates: # Fallback: fill with a neutral off-white draw = ImageDraw.Draw(img) c = (247, 247, 244) draw.rectangle([0, 0, w, b], fill=c) draw.rectangle([0, h - b, w, h], fill=c) draw.rectangle([0, 0, b, h], fill=c) draw.rectangle([w - b, 0, w, h], fill=c) return img candidates.sort() _, tx, ty = candidates[0] tile = img.crop((tx, ty, tx + tile_w, ty + tile_h)) for y_start, strip_h in [(0, b), (h - b, b)]: for x in range(0, w, tile_w): for y in range(y_start, y_start + strip_h, tile_h): img.paste(tile, (x, y)) for x_start, strip_w in [(0, b), (w - b, b)]: for y in range(0, h, tile_h): for x in range(x_start, x_start + strip_w, tile_w): img.paste(tile, (x, y)) return img def paint_logo_patch(img: Image.Image, logo_w: int, logo_h: int, pad_t: int, pad_r: int) -> Image.Image: """Paint a feathered, paper-colored backdrop under where the logo will sit. Guarantees the logo reads cleanly even if the AI drew a card/frame edge directly beneath it. """ w, h = img.size # Sample interior paper color (median of a center patch) cx, cy = w // 2 - 30, h // 2 - 30 px = list(img.crop((cx, cy, cx + 60, cy + 60)).getdata()) mr = int(statistics.median(p[0] for p in px)) mg = int(statistics.median(p[1] for p in px)) mb = int(statistics.median(p[2] for p in px)) if (mr + mg + mb) // 3 < 230: mr, mg, mb = 249, 249, 246 # fallback to warm off-white # Patch region: generously wider and taller than logo for soft blend. # Covers the whole top-right corner region where AI frame edges live. bx1 = w - (logo_w + pad_r + 140) by1 = -20 bx2 = w + 20 by2 = pad_t + logo_h + 40 mask = Image.new("L", (w, h), 0) md = ImageDraw.Draw(mask) md.rounded_rectangle([bx1, by1, bx2, by2], radius=28, fill=255) mask = mask.filter(ImageFilter.GaussianBlur(radius=28)) fill = Image.new("RGB", (w, h), (mr, mg, mb)) return Image.composite(fill, img, mask) def _load_logo(path: Path, target_h: int) -> Image.Image: """Load a logo, convert white background to alpha (for JPGs), tight-crop to visible pixels via getbbox(), then resize to target height.""" im = Image.open(path).convert("RGBA") # Convert near-white pixels to transparent (handles JPG logos on white bg) px = im.load() w, h = im.size for y in range(h): for x in range(w): r, g, b, _ = px[x, y] if r > 240 and g > 240 and b > 240: px[x, y] = (r, g, b, 0) # Tight-crop to visible (non-transparent) bounding box bbox = im.getbbox() if bbox: im = im.crop(bbox) cw, ch = im.size new_w = int(target_h * cw / ch) return im.resize((new_w, target_h), Image.LANCZOS) def main(): ap = argparse.ArgumentParser(description=__doc__) ap.add_argument("deck_dir", type=Path, help="Slide deck directory") ap.add_argument("--logo", type=Path, required=True, help="Primary logo path (PNG or JPG)") ap.add_argument("--logo2", type=Path, default=None, help="Secondary logo path (placed left of primary)") ap.add_argument("--logo2-gap", type=int, default=32, help="Gap between two logos in px (default: 32)") ap.add_argument("--skip", default="1", help="Slide numbers to skip (no logo). Default: 1 (cover)") ap.add_argument("--logo-h", type=int, default=46, help="Logo height in px (default: 46)") ap.add_argument("--pad-top", type=int, default=20, help="Top padding (default: 20)") ap.add_argument("--pad-right", type=int, default=26, help="Right padding (default: 26)") ap.add_argument("--patch-slides", default="", help="Slides that need a logo backdrop patch") ap.add_argument("--frame-slides", default="", help="Slides that need full edge frame-stripping") ap.add_argument("--border-px", type=int, default=40, help="Frame-strip width in px (default: 40)") ap.add_argument("--qr", type=Path, default=None, help="QR code PNG to composite") ap.add_argument("--qr-slide", type=int, default=0, help="Slide number to composite QR into") ap.add_argument("--qr-box", default="", help="QR placement box X1,Y1,X2,Y2") args = ap.parse_args() deck = args.deck_dir.resolve() if not deck.is_dir(): print(f"ERROR: {deck} is not a directory", file=sys.stderr) sys.exit(1) if not args.logo.exists(): print(f"ERROR: logo not found: {args.logo}", file=sys.stderr) sys.exit(1) orig_dir = deck / "_original" orig_dir.mkdir(exist_ok=True) # Backup once pngs = sorted(deck.glob("[0-9][0-9]-slide-*.png")) if not pngs: print(f"ERROR: no slide PNGs found in {deck}", file=sys.stderr) sys.exit(1) for p in pngs: backup = orig_dir / p.name if not backup.exists(): backup.write_bytes(p.read_bytes()) skip = parse_int_set(args.skip) patch_slides = parse_int_set(args.patch_slides) frame_slides = parse_int_set(args.frame_slides) # Prepare logo (tight-crop to visible pixels, convert white bg to alpha for JPGs) logo_r = _load_logo(args.logo, args.logo_h) new_lw = logo_r.width # Prepare secondary logo logo2_r = _load_logo(args.logo2, args.logo_h) if args.logo2 and args.logo2.exists() else None # Prepare QR if given qr_img = Image.open(args.qr).convert("RGBA") if args.qr and args.qr.exists() else None qr_box = parse_box(args.qr_box) if args.qr_box else None for src in sorted(orig_dir.glob("[0-9][0-9]-slide-*.png")): num = int(src.name[:2]) base = Image.open(src).convert("RGB") notes = [] if num in frame_slides: base = strip_frame(base, args.border_px) notes.append("frame-stripped") if num in patch_slides: base = paint_logo_patch(base, new_lw, args.logo_h, args.pad_top, args.pad_right) notes.append("backdrop") # Composite QR if qr_img is not None and num == args.qr_slide and qr_box is not None: bx, by, bx2, by2 = qr_box box_w, box_h = bx2 - bx, by2 - by qr_side = max(20, min(box_w, box_h) - 12) qr_r = qr_img.resize((qr_side, qr_side), Image.LANCZOS) rgba = base.convert("RGBA") cx = bx + (box_w - qr_side) // 2 cy = by + (box_h - qr_side) // 2 rgba.alpha_composite(qr_r, (cx, cy)) base = rgba.convert("RGB") notes.append("QR") out = deck / src.name if num in skip: base.save(out, "PNG", optimize=True) tag = " (skip logo)" + (f" [{', '.join(notes)}]" if notes else "") print(f" {src.name}{tag}") continue rgba = base.convert("RGBA") # Primary logo at top-right primary_x = rgba.width - args.pad_right - new_lw primary_cy = args.pad_top + args.logo_h // 2 rgba.alpha_composite(logo_r, (primary_x, args.pad_top)) # Secondary logo to the left of primary, optically center-aligned if logo2_r is not None: l2w, l2h = logo2_r.size l2_x = primary_x - args.logo2_gap - l2w l2_y = primary_cy - l2h // 2 rgba.alpha_composite(logo2_r, (l2_x, l2_y)) rgba.convert("RGB").save(out, "PNG", optimize=True) logo_tag = "+logos" if logo2_r else "+logo" tag = f" {logo_tag}" + (f" [{', '.join(notes)}]" if notes else "") print(f" {src.name}{tag}") if __name__ == "__main__": main() -
merge-to-pdf.ts 3.1 KB
import { existsSync, readdirSync, readFileSync, writeFileSync } from "fs"; import { join, basename } from "path"; import { PDFDocument } from "pdf-lib"; import sharp from "sharp"; interface SlideInfo { filename: string; path: string; index: number; promptPath?: string; } function parseArgs(): { dir: string; output?: string } { const args = process.argv.slice(2); let dir = ""; let output: string | undefined; for (let i = 0; i < args.length; i++) { if (args[i] === "--output" || args[i] === "-o") { output = args[++i]; } else if (!args[i].startsWith("-")) { dir = args[i]; } } if (!dir) { console.error("Usage: bun merge-to-pdf.ts <slide-deck-dir> [--output filename.pdf]"); process.exit(1); } return { dir, output }; } function findSlideImages(dir: string): SlideInfo[] { if (!existsSync(dir)) { console.error(`Directory not found: ${dir}`); process.exit(1); } const files = readdirSync(dir); const slidePattern = /^(\d+)-slide-.*\.(png|jpg|jpeg)$/i; const promptsDir = join(dir, "prompts"); const hasPrompts = existsSync(promptsDir); const slides: SlideInfo[] = files .filter((f) => slidePattern.test(f)) .map((f) => { const match = f.match(slidePattern); const baseName = f.replace(/\.(png|jpg|jpeg)$/i, ""); const promptPath = hasPrompts ? join(promptsDir, `${baseName}.md`) : undefined; return { filename: f, path: join(dir, f), index: parseInt(match![1], 10), promptPath: promptPath && existsSync(promptPath) ? promptPath : undefined, }; }) .sort((a, b) => a.index - b.index); if (slides.length === 0) { console.error(`No slide images found in: ${dir}`); console.error("Expected format: 01-slide-*.png, 02-slide-*.png, etc."); process.exit(1); } return slides; } async function createPdf(slides: SlideInfo[], outputPath: string) { const pdfDoc = await PDFDocument.create(); pdfDoc.setAuthor("lov-any2deck"); pdfDoc.setSubject("Generated Slide Deck"); for (const slide of slides) { // Convert all images to JPEG for smaller PDF size const jpegData = await sharp(slide.path) .jpeg({ quality: 85 }) .toBuffer(); const image = await pdfDoc.embedJpg(jpegData); const { width, height } = image; const page = pdfDoc.addPage([width, height]); page.drawImage(image, { x: 0, y: 0, width, height, }); console.log(`Added: ${slide.filename}${slide.promptPath ? " (prompt available)" : ""}`); } const pdfBytes = await pdfDoc.save(); writeFileSync(outputPath, pdfBytes); console.log(`\nCreated: ${outputPath}`); console.log(`Total pages: ${slides.length}`); } async function main() { const { dir, output } = parseArgs(); const slides = findSlideImages(dir); const dirName = basename(dir) === "slide-deck" ? basename(join(dir, "..")) : basename(dir); const outputPath = output || join(dir, `${dirName}.pdf`); console.log(`Found ${slides.length} slides in: ${dir}\n`); await createPdf(slides, outputPath); } main().catch((err) => { console.error("Error:", err.message); process.exit(1); }); -
merge-to-pptx.ts 3.8 KB
import { existsSync, readdirSync, readFileSync } from "fs"; import { join, basename, extname } from "path"; import PptxGenJS from "pptxgenjs"; interface SlideInfo { filename: string; path: string; index: number; promptPath?: string; } function parseArgs(): { dir: string; output?: string } { const args = process.argv.slice(2); let dir = ""; let output: string | undefined; for (let i = 0; i < args.length; i++) { if (args[i] === "--output" || args[i] === "-o") { output = args[++i]; } else if (!args[i].startsWith("-")) { dir = args[i]; } } if (!dir) { console.error("Usage: bun merge-to-pptx.ts <slide-deck-dir> [--output filename.pptx]"); process.exit(1); } return { dir, output }; } function findSlideImages(dir: string): SlideInfo[] { if (!existsSync(dir)) { console.error(`Directory not found: ${dir}`); process.exit(1); } const files = readdirSync(dir); const slidePattern = /^(\d+)-slide-.*\.(png|jpg|jpeg)$/i; const promptsDir = join(dir, "prompts"); const hasPrompts = existsSync(promptsDir); const slides: SlideInfo[] = files .filter((f) => slidePattern.test(f)) .map((f) => { const match = f.match(slidePattern); const baseName = f.replace(/\.(png|jpg|jpeg)$/i, ""); const promptPath = hasPrompts ? join(promptsDir, `${baseName}.md`) : undefined; return { filename: f, path: join(dir, f), index: parseInt(match![1], 10), promptPath: promptPath && existsSync(promptPath) ? promptPath : undefined, }; }) .sort((a, b) => a.index - b.index); if (slides.length === 0) { console.error(`No slide images found in: ${dir}`); console.error("Expected format: 01-slide-*.png, 02-slide-*.png, etc."); process.exit(1); } return slides; } function findBasePrompt(): string | undefined { const scriptDir = import.meta.dir; const basePromptPath = join(scriptDir, "..", "references", "base-prompt.md"); if (existsSync(basePromptPath)) { return readFileSync(basePromptPath, "utf-8"); } return undefined; } async function createPptx(slides: SlideInfo[], outputPath: string) { const pptx = new PptxGenJS(); pptx.layout = "LAYOUT_16x9"; pptx.author = "lov-any2deck"; pptx.subject = "Generated Slide Deck"; const basePrompt = findBasePrompt(); let notesCount = 0; for (const slide of slides) { const s = pptx.addSlide(); const imageData = readFileSync(slide.path); const base64 = imageData.toString("base64"); const ext = extname(slide.filename).toLowerCase().replace(".", ""); const mimeType = ext === "png" ? "image/png" : "image/jpeg"; s.addImage({ data: `data:${mimeType};base64,${base64}`, x: 0, y: 0, w: "100%", h: "100%", sizing: { type: "cover", w: "100%", h: "100%" }, }); if (slide.promptPath) { const slidePrompt = readFileSync(slide.promptPath, "utf-8"); const fullNotes = basePrompt ? `${basePrompt}\n\n---\n\n${slidePrompt}` : slidePrompt; s.addNotes(fullNotes); notesCount++; } console.log(`Added: ${slide.filename}${slide.promptPath ? " (with notes)" : ""}`); } await pptx.writeFile({ fileName: outputPath }); console.log(`\nCreated: ${outputPath}`); console.log(`Total slides: ${slides.length}`); if (notesCount > 0) { console.log(`Slides with notes: ${notesCount}${basePrompt ? " (includes base prompt)" : ""}`); } } async function main() { const { dir, output } = parseArgs(); const slides = findSlideImages(dir); const dirName = basename(dir) === "slide-deck" ? basename(join(dir, "..")) : basename(dir); const outputPath = output || join(dir, `${dirName}.pptx`); console.log(`Found ${slides.length} slides in: ${dir}\n`); await createPptx(slides, outputPath); } main().catch((err) => { console.error("Error:", err.message); process.exit(1); }); -
package.json 104 B
{ "dependencies": { "pdf-lib": "^1.17.1", "pptxgenjs": "^4.0.1", "sharp": "^0.34.5" } }
-
-
.gitignore 10 B · in bundle
-
CHANGELOG.md 586 B
# Changelog All notable changes to this skill are documented here. Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · Versioning: [SemVer](https://semver.org/) ## [1.1.0] - 2026-08-24 ### Added - add the shared feedback-classification and approval-invalidation gate used by every LovStudio Skill ## [1.0.2] - 2026-05-07 ### Fixed - split detailed workflow into progressive disclosure reference - move long workflow instructions to references/workflow.md ## [1.0.1] - 2026-05-07 ### Fixed - add release metadata - add README version badge and changelog entry -
README.md 3.3 KB
# PPT 大师 · PPT Master  Transform content into professional slide deck images. Creates outlines with style instructions, generates individual slide images, and merges into PPTX/PDF. Supports 16 visual styles, CJK/Latin mixed text, dual-logo branding, and partial regeneration. Fork of [baoyu-slide-deck](https://github.com/nicepkg/baoyu-slide-deck) with Skill Publisher enhancements. Part of [skill-publisher/skills](https://example.com/skills/skills) — by [example.com](https://example.com) ## Install ```bash npx skills add any2deck -g -y ``` Requires: Image generation skill + Node.js (for PPTX/PDF) + Python 3.8+ (for branding) ## Quick Start ```bash /lov-any2deck content.md /lov-any2deck content.md --style bold-editorial /lov-any2deck content.md --audience executives --slides 12 /lov-any2deck content.md --lang zh ``` ## Workflow ``` Content → Analyze → Confirm Style/Audience/Slides → Generate Outline → [Review?] → Generate Prompts → [Review?] → Generate Images → [Apply Branding?] → Merge PPTX/PDF → Done ``` ## Style Presets | Preset | Best For | |--------|----------| | `blueprint` (default) | Architecture, system design | | `bold-editorial` | Product launches, keynotes | | `chalkboard` | Education, tutorials | | `corporate` | Investor decks, proposals | | `minimal` | Executive briefings | | `sketch-notes` | Educational, tutorials | | `notion` | Product demos, SaaS | | `watercolor` | Lifestyle, wellness | | `dark-atmospheric` | Entertainment, gaming | | `editorial-infographic` | Tech explainers, research | | `intuition-machine` | Technical docs, academic | | `scientific` | Biology, chemistry, medical | | `pixel-art` | Gaming, developer talks | | `vector-illustration` | Creative, children's content | | `vintage` | Historical, heritage | | `fantasy-animation` | Educational storytelling | Style auto-detected from content signals. Override with `--style <name>`. ## Options | Option | Description | |--------|-------------| | `--style <name>` | Visual style preset or `custom` | | `--audience <type>` | beginners, intermediate, experts, executives, general | | `--lang <code>` | Output language (en, zh, ja, etc.) | | `--slides <N>` | Target slide count (8-25 recommended) | | `--outline-only` | Generate outline only | | `--prompts-only` | Generate outline + prompts, skip images | | `--images-only` | Generate images from existing prompts | | `--regenerate <N>` | Regenerate specific slide(s): `3` or `2,5,8` | | `--logo <path>` | Brand logo (top-right, skips cover/back-cover) | | `--logo2 <path>` | Secondary logo (left of primary) | | `--presentation` | Strip narration, keep only visual anchors | ## Output Structure ``` slide-deck/{topic-slug}/ ├── source-{slug}.md ├── outline.md ├── prompts/ │ ├── 01-slide-cover.md │ ├── 02-slide-{slug}.md │ └── ... ├── 01-slide-cover.png ├── 02-slide-{slug}.png ├── ... ├── {topic-slug}.pptx └── {topic-slug}.pdf ``` ## Scripts | Script | Purpose | |--------|---------| | `scripts/merge-to-pptx.ts` | Merge slide images into PowerPoint | | `scripts/merge-to-pdf.ts` | Merge slide images into PDF | | `scripts/apply-branding.py` | Composite logo(s)/QR onto slides | ## License MIT -
SKILL.md 11.2 KB
--- name: lov-any2deck category: Document Conversion tagline: "Content → slide deck images with 16 visual styles, PPTX/PDF export, branding overlay." description: > Generate professional slide deck images from content (Markdown, text, URLs). Creates outlines with style instructions, then generates individual slide images. Supports 16 visual styles, CJK/Latin mixed text, branding overlays, and PPTX/PDF export. Use when the user asks to "create slides", "make a presentation", "generate deck", "slide deck", "PPT", "做PPT", "生成幻灯片", "制作演示文稿", or wants to turn content into a visual slide deck. license: MIT compatibility: > Requires an image generation skill (e.g. image-gen) and Node.js for PPTX/PDF merge. Python 3.8+ for branding overlay. Cross-platform: macOS, Windows, Linux. metadata: author: contributors version: "1.1.0" tags: slide deck presentation pptx pdf image generation --- # PPT 大师 · PPT Master Transform content into professional slide deck images. ## Usage ```bash /lov-any2deck path/to/content.md /lov-any2deck path/to/content.md --style sketch-notes /lov-any2deck path/to/content.md --audience executives /lov-any2deck path/to/content.md --lang zh /lov-any2deck path/to/content.md --slides 10 /lov-any2deck path/to/content.md --outline-only /lov-any2deck # Then paste content ``` ## Script Directory **Agent Execution Instructions**: 1. Determine this SKILL.md file's directory path as `SKILL_DIR` 2. Script path = `${SKILL_DIR}/scripts/<script-name>` | Script | Purpose | |--------|---------| | `scripts/merge-to-pptx.ts` | Merge slides into PowerPoint | | `scripts/merge-to-pdf.ts` | Merge slides into PDF | | `scripts/apply-branding.py` | Composite logo(s)/QR onto slides — dual logo, tight-crop, JPG white→alpha (opt-in) | ## Options | Option | Description | |--------|-------------| | `--style <name>` | Visual style: preset name, `custom`, or custom style name | | `--audience <type>` | Target: beginners, intermediate, experts, executives, general | | `--lang <code>` | Output language (en, zh, ja, etc.) | | `--slides <number>` | Target slide count (8-25 recommended, max 30) | | `--outline-only` | Generate outline only, skip image generation | | `--prompts-only` | Generate outline + prompts, skip images | | `--images-only` | Generate images from existing prompts directory | | `--regenerate <N>` | Regenerate specific slide(s): `--regenerate 3` or `--regenerate 2,5,8` | | `--logo <path>` | Primary brand logo (top-right, skips cover/back-cover) | | `--logo2 <path>` | Secondary logo (placed left of primary, optically aligned) | | `--presentation` | Presentation mode: strips narration text, keeps only visual anchors | **Slide Count by Content Length**: | Content | Slides | |---------|--------| | < 1000 words | 5-10 | | 1000-3000 words | 10-18 | | 3000-5000 words | 15-25 | | > 5000 words | 20-30 (consider splitting) | ## Style System ### Presets | Preset | Dimensions | Best For | |--------|------------|----------| | `blueprint` (Default) | grid + cool + technical + balanced | Architecture, system design | | `chalkboard` | organic + warm + handwritten + balanced | Education, tutorials | | `corporate` | clean + professional + geometric + balanced | Investor decks, proposals | | `minimal` | clean + neutral + geometric + minimal | Executive briefings | | `sketch-notes` | organic + warm + handwritten + balanced | Educational, tutorials | | `watercolor` | organic + warm + humanist + minimal | Lifestyle, wellness | | `dark-atmospheric` | clean + dark + editorial + balanced | Entertainment, gaming | | `notion` | clean + neutral + geometric + dense | Product demos, SaaS | | `bold-editorial` | clean + vibrant + editorial + balanced | Product launches, keynotes | | `editorial-infographic` | clean + cool + editorial + dense | Tech explainers, research | | `fantasy-animation` | organic + vibrant + handwritten + minimal | Educational storytelling | | `intuition-machine` | clean + cool + technical + dense | Technical docs, academic | | `pixel-art` | pixel + vibrant + technical + balanced | Gaming, developer talks | | `scientific` | clean + cool + technical + dense | Biology, chemistry, medical | | `vector-illustration` | clean + vibrant + humanist + balanced | Creative, children's content | | `vintage` | paper + warm + editorial + balanced | Historical, heritage | ### Style Dimensions | Dimension | Options | Description | |-----------|---------|-------------| | **Texture** | clean, grid, organic, pixel, paper | Visual texture and background treatment | | **Mood** | professional, warm, cool, vibrant, dark, neutral | Color temperature and palette style | | **Typography** | geometric, humanist, handwritten, editorial, technical | Headline and body text styling | | **Density** | minimal, balanced, dense | Information density per slide | Full specs: `references/dimensions/*.md` ### Auto Style Selection | Content Signals | Preset | |-----------------|--------| | tutorial, learn, education, guide, beginner | `sketch-notes` | | classroom, teaching, school, chalkboard | `chalkboard` | | architecture, system, data, analysis, technical | `blueprint` | | creative, children, kids, cute | `vector-illustration` | | briefing, academic, research, bilingual | `intuition-machine` | | executive, minimal, clean, simple | `minimal` | | saas, product, dashboard, metrics | `notion` | | investor, quarterly, business, corporate | `corporate` | | launch, marketing, keynote, magazine | `bold-editorial` | | entertainment, music, gaming, atmospheric | `dark-atmospheric` | | explainer, journalism, science communication | `editorial-infographic` | | story, fantasy, animation, magical | `fantasy-animation` | | gaming, retro, pixel, developer | `pixel-art` | | biology, chemistry, medical, scientific | `scientific` | | history, heritage, vintage, expedition | `vintage` | | lifestyle, wellness, travel, artistic | `watercolor` | | Default | `blueprint` | ## Design Philosophy Decks designed for **reading and sharing**, not live presentation: - Each slide self-explanatory without verbal commentary - Logical flow when scrolling - All necessary context within each slide - Optimized for social media sharing See `references/design-guidelines.md` for: - Audience-specific principles - Visual hierarchy - Content density guidelines - Color and typography selection - Font recommendations See `references/layouts.md` for layout options. ## File Management ### Output Directory ``` slide-deck/{topic-slug}/ ├── source-{slug}.{ext} ├── outline.md ├── prompts/ │ └── 01-slide-cover.md, 02-slide-{slug}.md, ... ├── 01-slide-cover.png, 02-slide-{slug}.png, ... ├── {topic-slug}.pptx └── {topic-slug}.pdf ``` **Slug**: Extract topic (2-4 words, kebab-case). Example: "Introduction to Machine Learning" → `intro-machine-learning` **Conflict Handling**: See Step 1.3 for existing content detection and user options. ## Language Handling **Detection Priority**: 1. `--lang` flag (explicit) 2. EXTEND.md `language` setting 3. User's conversation language (input language) 4. Source content language **Rule**: ALL responses use user's preferred language: - Questions and confirmations - Progress reports - Error messages - Completion summaries Technical terms (style names, file paths, code) remain in English. ## Workflow For the full step-by-step workflow, use `references/workflow.md`. Keep the main flow in this order: 1. Setup & analyze: load `.lov-skills/lov-any2deck/EXTEND.md` when present, save source content, analyze style signals, detect language, choose slide count, and check for existing `slide-deck/{topic-slug}` output before continuing. 2. Confirm: use `AskUserQuestion` for style, audience, slide count, outline review, and prompt review. If custom dimensions are selected, collect texture, mood, typography, and density. 3. Generate outline: read the selected preset from `references/styles/` or combine dimension docs from `references/dimensions/`, then write `outline.md` using `references/outline-template.md`. 4. Review outline when requested, then generate per-slide prompts under `prompts/` using `references/base-prompt.md` and `references/layouts.md`. 5. Review prompts when requested, generate slide images, optionally apply branding with `scripts/apply-branding.py`, then merge PPTX/PDF with the TypeScript scripts. 6. Report the output directory, generated slide count, PPTX/PDF paths, style, audience, language, and any partial failures. Partial workflows (`--outline-only`, `--prompts-only`, `--images-only`, `--regenerate`) and slide modification procedures are documented in `references/workflow.md`. ## References | File | Content | |------|---------| | `references/analysis-framework.md` | Content analysis for presentations | | `references/outline-template.md` | Outline structure and format | | `references/modification-guide.md` | Edit, add, delete slide workflows | | `references/content-rules.md` | Content and style guidelines | | `references/design-guidelines.md` | Audience, typography, colors, visual elements | | `references/layouts.md` | Layout options and selection tips | | `references/base-prompt.md` | Base prompt for image generation | | `references/dimensions/*.md` | Dimension specifications (texture, mood, typography, density) | | `references/dimensions/presets.md` | Preset → dimension mapping | | `references/styles/<style>.md` | Full style specifications (legacy) | | `references/config/preferences-schema.md` | EXTEND.md structure | ## Notes - Image generation: 10-30 seconds per slide - Auto-retry once on generation failure - Use stylized alternatives for sensitive public figures - Maintain style consistency via session ID - **Step 2 confirmation required** - do not skip (style, audience, slides, outline review, prompt review) - **Step 4 conditional** - only if user requested outline review in Step 2 - **Step 6 conditional** - only if user requested prompt review in Step 2 ## Extension Support Custom configurations via EXTEND.md. See **Step 1.1** for paths and supported options. ## Runtime context (shared) 运行前读取本 Skill 包的 `skill.yaml`,由宿主提供 `skill-runtime/v1` 上下文。字段解析顺序为:当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。 - 只使用 Manifest 声明的字段;Profile 保存公开品牌事实,Preferences 保存个人工作偏好。 - `required: true` 字段缺失时,按 Manifest 的问题配置向用户提出一个聚焦问题;用户明确同意后再保存回答。 - 报错提供可复制的 `context_id`、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。 ## 通用反馈闭环 用户在 Skill 驱动任务中提出修改意见时,继续当前产物前必须执行: 1. 先判断意见是 `task-specific`(仅本次)还是 `reusable`(可跨任务复用)。 2. `task-specific` 只修改当前任务,不改 Skill。 3. `reusable` 先确定作用域:领域规则先更新对应 canonical Skill;适用于所有 Skill 的规则先更新共享规范。 4. 完成规则更新、版本、lint 与分发核验后,再把修改应用到当前任务。 5. `reusable` 修改会使此前的“确认”“继续”“发吧”失效;完成当前产物修改和回读后必须停下,等待用户下一步指示,不自动进入发布、提交或其他外部写入。 -
skill.yaml 830 B
schema: skill-manifest/v1 id: lov-any2deck version: "1.1.0" runtime: skill-runtime/v1 context: profile: fields: - path: identity.name required: true question: 如果本次输出需要品牌身份,请提供品牌名称。 - path: identity.logo required: false question: 如果需要使用品牌 Logo,请提供 Logo 地址或文件路径。 - path: brand.tone required: false question: 如果已有品牌语气或审美关键词,请提供它们。 preferences: namespace: lov_any2deck fields: - path: user.language required: false question: 希望使用哪种语言输出? - path: user.timezone required: false question: 需要使用哪个时区处理日期和时间? interaction: ask_missing: true max_questions: 1
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.