Slide Creator
Generate zero-dependency HTML presentations that run entirely in the browser. This skill guides users from raw ideas to a polished, animated slide deck — using visual style discovery ("show, don't tell") to nail the aesthetic before writing a line of code.
Core Philosophy
- Zero Dependencies — Single HTML files with inline CSS/JS. No npm, no build tools.
- Show, Don't Tell — People can't articulate design preferences until they see options. Generate visual previews rather than asking abstract questions like "do you want minimalist or bold?"
- Distinctive Design — Avoid generic AI aesthetics (Inter font, purple gradients, predictable heroes). Every deck should feel custom-crafted.
- Viewport Fitting — Slides must fit exactly in the viewport with no scrolling. Content that overflows gets split across slides, not squished. A presentation that scrolls mid-slide is broken — this is why we enforce density limits.
- Plan Before Generate — For complex decks,
--plan creates a PLANNING.md outline first; --generate then produces HTML. Separating thinking from execution leads to better structure and less backtracking.
Command Flags
Parse the invocation to determine mode:
--plan [prompt] — Planning mode. Inspect resources/, analyze the prompt, create PLANNING.md. Stop — do NOT generate HTML.
--generate [instructions] — Generation mode. Read PLANNING.md if present (skip Phase 1/2 questions), then generate HTML.
--export pptx [--scale N] — Export the most recently modified HTML as PPTX via the bundled script. Requires Node ≥ 18.
- No flag — Auto-detect mode (Phase 0).
Planning Mode (--plan)
- Scan
resources/ — read text/markdown files, note images. Tell the user what was found (or "Planning from prompt only" if empty).
- Extract: topic, audience, tone, language, slide count, goals from the prompt.
- Draft the plan following references/planning-template.md.
- Save as
PLANNING.md in the working directory.
- Present slide count, structure, and key decisions. Ask for approval.
- Stop. Do NOT generate HTML.
Export Mode (--export pptx)
- Find
*.html in current directory (prefer most recently modified).
- Run:
python3 <skill-path>/scripts/export-pptx.py <presentation.html> [output.pptx]
- Report the PPTX file path and slide count.
The script uses Playwright with the user's existing system Chrome (no Chromium download). It captures pixel-perfect screenshots of each slide and assembles them into a PPTX. Only pip install playwright python-pptx required — no Node.js, no 300MB browser download.
Phase 0: Detect Mode
Determine what the user wants:
- Mode A — New Presentation: Check for
PLANNING.md first. If it exists, read it as source of truth and jump directly to Phase 3 — skip Phase 1/2.
- Mode B — PPT Conversion: User has a
.ppt/.pptx file → go to Phase 4.
- Mode C — Enhance Existing: Read the existing HTML, understand its structure, then enhance. When adding content, always check viewport fit — if adding would overflow a slide, split the content rather than cramming it in. Proactively split and inform the user.
Phase 1: Content Discovery
First, silently scan for a resources/ folder. If found, read text/markdown files and note images as background context. Don't ask the user to take any action.
Then gather everything in a single AskUserQuestion call with all 5 questions at once — collecting everything before submitting avoids back-and-forth.
- Purpose (single select): Pitch deck / Teaching+Tutorial / Conference talk / Internal presentation
- Length (single select): Short 5-10 / Medium 10-20 / Long 20+
- Content (single select): All content ready / Rough notes / Topic only
- Images (single select): No images / ./assets / Other (user types path)
- Inline Editing (single select): Yes — edit text in-browser, auto-save (Recommended) / No — presentation only
If user has content, ask them to share it after submitting the form.
Image Evaluation
Skip if user chose "No images." Text-only decks are fully first-class — CSS-generated gradients, shapes, and typography create compelling visuals without any images.
If images are provided:
ls the folder, then use Read (multimodal) to view each image.
- For each image: mark
USABLE or NOT USABLE (with reason: blurry, irrelevant, broken) + what it represents + dominant colors + shape.
- Build a slide outline that co-designs text and images from the start. This is not "plan slides, then fit images in after." Example: 3 usable product screenshots → 3 feature slides anchored by those screenshots.
- Present the evaluation and proposed outline, then confirm via AskUserQuestion (Looks good → Style B / Adjust images / Adjust outline).
Phase 2: Style Discovery
Most people can't articulate design preferences in words. Generate 3 mini visual previews and let them react — this is the "wow moment" of the skill.
Style Path
Ask via AskUserQuestion:
- "Show me options" → ask mood question → generate 3 previews based on answer
- "I know what I want" → show preset picker (Bold Signal / Dark Botanical / Notebook Tabs / Pastel Geometry — with "Other" option for full list)
Available Presets (full details in STYLE-DESC.md):
| Preset |
Vibe |
Best For |
| Bold Signal |
Confident, high-impact |
Pitch decks, keynotes |
| Electric Studio |
Clean, professional |
Agency presentations |
| Creative Voltage |
Energetic, retro-modern |
Creative pitches |
| Dark Botanical |
Elegant, sophisticated |
Premium brands |
| Notebook Tabs |
Editorial, organized |
Reports, reviews |
| Pastel Geometry |
Friendly, approachable |
Product overviews |
| Split Pastel |
Playful, modern |
Creative agencies |
| Vintage Editorial |
Witty, personality-driven |
Personal brands |
| Neon Cyber |
Futuristic, techy |
Tech startups |
| Terminal Green |
Developer-focused |
Dev tools, APIs |
| Swiss Modern |
Minimal, precise |
Corporate, data |
| Paper & Ink |
Literary, thoughtful |
Storytelling |
Mood → Preset mapping:
| Mood |
Style Options |
| Impressed/Confident |
Bold Signal, Electric Studio, Dark Botanical |
| Excited/Energized |
Creative Voltage, Neon Cyber, Split Pastel |
| Calm/Focused |
Notebook Tabs, Paper & Ink, Swiss Modern |
| Inspired/Moved |
Dark Botanical, Vintage Editorial, Pastel Geometry |
Generate Previews
Create 3 mini HTML files in .claude-design/slide-previews/ (style-a/b/c.html). Each is a single title slide (~50-100 lines, self-contained) demonstrating typography, color palette, and animation style.
If a USABLE logo was found in Step 1.2, embed it (base64) into each preview — seeing their own brand in 3 different aesthetics makes the choice feel personal, not abstract.
Never use: Inter/Roboto/Arial as display fonts, generic purple-on-white gradients, predictable centered hero layouts.
Present the 3 files with a one-sentence description each, then ask via AskUserQuestion which they prefer (Style A / B / C / Mix elements).
Phase 3: Generate Presentation
Generate the presentation based on content from Phase 1 and style from Phase 2. If PLANNING.md exists, it's the source of truth — skip Phases 1 and 2.
If Blue Sky style is selected → use the starter template
Read references/blue-sky-starter.html and use it as the base.
All 10 signature visual elements (orbs, noise texture, grid, glassmorphism, spring-physics horizontal track, gradient text, cloud hero, pill dots, counter, entrance animation) are already implemented in that file. You only need to:
- Set
--slide-count in :root to your actual slide count
- Replace the example slides in
#track with your content, following the slide-type patterns in the comment block
- Fill the
orbPositions array in JS — one [l1,t1,s1, l2,t2,s2, l3,t3,s3] entry per slide
Do not rewrite the visual system CSS. Do not change the track/slide layout. Content goes inside .slide wrappers using the pre-built component classes: .g (glass card), .gt (gradient text), .pill, .stat, .divider, .cols2/3/4, .ctable, .co (amber callout), .warn (red warning), .info (blue info), .layer (org row), ul.bl (bullet list).
For all other styles → read the standard references
Read references/html-template.md — it contains the required HTML structure, JavaScript patterns, animation recipes, and edit button implementation.
Also read STYLE-DESC.md for viewport fitting CSS, responsive breakpoints, style preset details, and CSS gotchas (especially: never negate CSS functions directly — use calc(-1 * clamp(...)) not -clamp(...)).
Viewport Fitting
Each slide must equal exactly one viewport height (100vh / 100dvh). When content doesn't fit, split it across slides — never allow scrolling within a slide. This is what separates a polished presentation from a broken one.
Content density limits:
| Slide Type |
Maximum |
| Title slide |
1 heading + 1 subtitle |
| Content slide |
1 heading + 4-6 bullets |
| Feature grid |
1 heading + 6 cards max (2×3 or 3×2) |
| Code slide |
1 heading + 8-10 lines |
| Quote slide |
1 quote (3 lines max) + attribution |
| Image slide |
1 heading + 1 image (max 60vh height) |
When in doubt → split the slide.
Image Pipeline (skip if no images)
For each USABLE image from Step 1.2, determine processing needed (circular crop for logos, resize for large files, padding for screenshots needing breathing room) and run it with Pillow. Reference images with relative paths (assets/...) — don't base64 encode unless the user explicitly wants a fully self-contained file.
Rules:
- Never repeat an image across slides (logos may bookend title + closing)
- Always add style-matched CSS framing (border/glow matching the style's accent color) when image colors clash with the palette
Code Quality
- Comment every section: what it does, why it exists, how to modify it
- Semantic HTML (
<section>, <nav>, <main>)
- ARIA labels on nav elements and interactive controls
@media (prefers-reduced-motion: reduce) support
Phase 4: PPT Conversion
Read references/pptx-extraction.md for the Python extraction script.
- Run the extraction script to get slides_data (title, content, images, notes per slide)
- Present extracted structure to user, confirm it looks right
- Run Phase 2 (Style Discovery) with extracted content in mind
- Generate HTML preserving all text, images (from
assets/), and slide order. Add speaker notes as HTML comments if present.
Phase 5: Delivery
- Clean up: delete
.claude-design/slide-previews/ if it exists.
- Generate speaker notes if deck has 8+ slides or was created from PLANNING.md:
- Create
PRESENTATION_SCRIPT.md with 2-4 sentences per slide: what to say, emphasis points, transition cue.
- Open:
open [filename].html
- Summarize:
Your presentation is ready!
📁 File: [filename].html
🎨 Style: [Style Name]
📊 Slides: [count]
Navigation: Arrow keys or Space · Scroll or swipe · Click dots to jump
To customize: edit :root variables at the top of the CSS for colors, fonts, and spacing.
To export as PPTX: run `/slide-creator --export pptx` (requires Node.js ≥ 18)
If inline editing was opted in: mention hovering the top-left corner or pressing E to enter edit mode.
Effect → Feeling Guide
| Feeling |
Techniques |
| Dramatic/Cinematic |
Slow fade-ins 1-1.5s, dark backgrounds, full-bleed images, parallax |
| Techy/Futuristic |
Neon glow, particle canvas, grid patterns, monospace accents, glitch text effects |
| Playful/Friendly |
Bouncy easing, large rounded corners, pastels, floating/bobbing animations |
| Professional |
Subtle 200-300ms animations, clean sans-serif, minimal decoration, data-focus |
| Calm/Minimal |
Very slow motion, high whitespace, muted palette, generous padding, serif type |
| Editorial |
Strong typography hierarchy, pull quotes, serif headlines, one accent color |
Example: New Presentation
- "Make a pitch deck for my AI startup"
- Single form → purpose=pitch, length=medium, content=rough notes, images=./assets, editing=yes
- User shares notes; skill evaluates assets (4 USABLE, 1 blurry — excluded with explanation)
- Slide outline co-designed around text + images; confirmed via AskUserQuestion
- Mood=Impressed+Excited → 3 previews generated → user picks Neon Cyber
- Pillow processes images; HTML generated with full viewport CSS + JS suite
- Browser opens; user requests tweaks; final deck delivered
Example: PPT Conversion
- "Convert slides.pptx to a web presentation"
- Run extraction script → present extracted content → user confirms
- Style Discovery (Phase 2) → HTML generation with preserved assets
- Final presentation delivered
Related Skills
- frontend-design — For interactive pages that go beyond slides
- design-and-refine:design-lab — For iterating on component designs
1---2name: slide-creator-23description: Create beautiful, animation-rich HTML presentations that run entirely in the browser — no npm, no build tools. Generates polished single-file slide decks with visual style discovery, responsive viewport fitting, and optional PPTX export. Use whenever someone asks to make a presentation, create slides, build a pitch deck, convert a PPT/PPTX to web, or prepare slides for a talk or demo — even if they don't mention HTML. Also use for planning a deck outline first (`--plan`), generating HTML from a plan (`--generate`), or exporting to PowerPoint (`--export pptx`).4---5
6# Slide Creator
7
8Generate zero-dependency HTML presentations that run entirely in the browser. This skill guides users from raw ideas to a polished, animated slide deck — using visual style discovery ("show, don't tell") to nail the aesthetic before writing a line of code.
9
10## Core Philosophy
11
121. **Zero Dependencies** — Single HTML files with inline CSS/JS. No npm, no build tools.
132. **Show, Don't Tell** — People can't articulate design preferences until they see options. Generate visual previews rather than asking abstract questions like "do you want minimalist or bold?"
143. **Distinctive Design** — Avoid generic AI aesthetics (Inter font, purple gradients, predictable heroes). Every deck should feel custom-crafted.
154. **Viewport Fitting** — Slides must fit exactly in the viewport with no scrolling. Content that overflows gets split across slides, not squished. A presentation that scrolls mid-slide is broken — this is why we enforce density limits.
165. **Plan Before Generate** — For complex decks, `--plan` creates a PLANNING.md outline first; `--generate` then produces HTML. Separating thinking from execution leads to better structure and less backtracking.
17
18## Command Flags
19
20Parse the invocation to determine mode:
21
22- **`--plan [prompt]`** — Planning mode. Inspect `resources/`, analyze the prompt, create `PLANNING.md`. **Stop — do NOT generate HTML.**
23- **`--generate [instructions]`** — Generation mode. Read `PLANNING.md` if present (skip Phase 1/2 questions), then generate HTML.
24- **`--export pptx [--scale N]`** — Export the most recently modified HTML as PPTX via the bundled script. Requires Node ≥ 18.
25- **No flag** — Auto-detect mode (Phase 0).
26
27---
28
29## Planning Mode (`--plan`)
30
311. Scan `resources/` — read text/markdown files, note images. Tell the user what was found (or "Planning from prompt only" if empty).
322. Extract: topic, audience, tone, language, slide count, goals from the prompt.
333. Draft the plan following [references/planning-template.md](references/planning-template.md).
344. Save as `PLANNING.md` in the working directory.
355. Present slide count, structure, and key decisions. Ask for approval.
366. **Stop. Do NOT generate HTML.**
37
38---
39
40## Export Mode (`--export pptx`)
41
421. Find `*.html` in current directory (prefer most recently modified).
432. Run: `python3 <skill-path>/scripts/export-pptx.py <presentation.html> [output.pptx]`
443. Report the PPTX file path and slide count.
45
46The script uses Playwright with the user's **existing system Chrome** (no Chromium download). It captures pixel-perfect screenshots of each slide and assembles them into a PPTX. Only `pip install playwright python-pptx` required — no Node.js, no 300MB browser download.
47
48---
49
50## Phase 0: Detect Mode
51
52Determine what the user wants:
53
54- **Mode A — New Presentation:** Check for `PLANNING.md` first. If it exists, read it as source of truth and jump directly to Phase 3 — skip Phase 1/2.
55- **Mode B — PPT Conversion:** User has a `.ppt/.pptx` file → go to Phase 4.
56- **Mode C — Enhance Existing:** Read the existing HTML, understand its structure, then enhance. When adding content, always check viewport fit — if adding would overflow a slide, split the content rather than cramming it in. Proactively split and inform the user.
57
58---
59
60## Phase 1: Content Discovery
61
62**First, silently scan for a `resources/` folder.** If found, read text/markdown files and note images as background context. Don't ask the user to take any action.
63
64Then gather everything in a **single AskUserQuestion call with all 5 questions at once** — collecting everything before submitting avoids back-and-forth.
65
66- **Purpose** (single select): Pitch deck / Teaching+Tutorial / Conference talk / Internal presentation
67- **Length** (single select): Short 5-10 / Medium 10-20 / Long 20+
68- **Content** (single select): All content ready / Rough notes / Topic only
69- **Images** (single select): No images / ./assets / Other (user types path)
70- **Inline Editing** (single select): Yes — edit text in-browser, auto-save (Recommended) / No — presentation only
71
72If user has content, ask them to share it after submitting the form.
73
74### Image Evaluation
75
76Skip if user chose "No images." Text-only decks are fully first-class — CSS-generated gradients, shapes, and typography create compelling visuals without any images.
77
78If images are provided:
79
801. `ls` the folder, then use Read (multimodal) to view each image.
812. For each image: mark `USABLE` or `NOT USABLE` (with reason: blurry, irrelevant, broken) + what it represents + dominant colors + shape.
823. Build a slide outline that co-designs text and images from the start. This is not "plan slides, then fit images in after." Example: 3 usable product screenshots → 3 feature slides anchored by those screenshots.
834. Present the evaluation and proposed outline, then confirm via AskUserQuestion (Looks good → Style B / Adjust images / Adjust outline).
84
85---
86
87## Phase 2: Style Discovery
88
89Most people can't articulate design preferences in words. Generate 3 mini visual previews and let them react — this is the "wow moment" of the skill.
90
91### Style Path
92
93Ask via AskUserQuestion:
94- **"Show me options"** → ask mood question → generate 3 previews based on answer
95- **"I know what I want"** → show preset picker (Bold Signal / Dark Botanical / Notebook Tabs / Pastel Geometry — with "Other" option for full list)
96
97**Available Presets** (full details in [STYLE-DESC.md](STYLE-DESC.md)):
98
99| Preset | Vibe | Best For |
100|--------|------|----------|
101| Bold Signal | Confident, high-impact | Pitch decks, keynotes |
102| Electric Studio | Clean, professional | Agency presentations |
103| Creative Voltage | Energetic, retro-modern | Creative pitches |
104| Dark Botanical | Elegant, sophisticated | Premium brands |
105| Notebook Tabs | Editorial, organized | Reports, reviews |
106| Pastel Geometry | Friendly, approachable | Product overviews |
107| Split Pastel | Playful, modern | Creative agencies |
108| Vintage Editorial | Witty, personality-driven | Personal brands |
109| Neon Cyber | Futuristic, techy | Tech startups |
110| Terminal Green | Developer-focused | Dev tools, APIs |
111| Swiss Modern | Minimal, precise | Corporate, data |
112| Paper & Ink | Literary, thoughtful | Storytelling |
113
114**Mood → Preset mapping:**
115
116| Mood | Style Options |
117|------|---------------|
118| Impressed/Confident | Bold Signal, Electric Studio, Dark Botanical |
119| Excited/Energized | Creative Voltage, Neon Cyber, Split Pastel |
120| Calm/Focused | Notebook Tabs, Paper & Ink, Swiss Modern |
121| Inspired/Moved | Dark Botanical, Vintage Editorial, Pastel Geometry |
122
123### Generate Previews
124
125Create 3 mini HTML files in `.claude-design/slide-previews/` (style-a/b/c.html). Each is a single title slide (~50-100 lines, self-contained) demonstrating typography, color palette, and animation style.
126
127If a USABLE logo was found in Step 1.2, embed it (base64) into each preview — seeing their own brand in 3 different aesthetics makes the choice feel personal, not abstract.
128
129Never use: Inter/Roboto/Arial as display fonts, generic purple-on-white gradients, predictable centered hero layouts.
130
131Present the 3 files with a one-sentence description each, then ask via AskUserQuestion which they prefer (Style A / B / C / Mix elements).
132
133---
134
135## Phase 3: Generate Presentation
136
137Generate the presentation based on content from Phase 1 and style from Phase 2. If PLANNING.md exists, it's the source of truth — skip Phases 1 and 2.
138
139### If Blue Sky style is selected → use the starter template
140
141**Read [references/blue-sky-starter.html](references/blue-sky-starter.html) and use it as the base.**
142
143All 10 signature visual elements (orbs, noise texture, grid, glassmorphism, spring-physics horizontal track, gradient text, cloud hero, pill dots, counter, entrance animation) are already implemented in that file. You only need to:
144
1451. Set `--slide-count` in `:root` to your actual slide count
1462. Replace the example slides in `#track` with your content, following the slide-type patterns in the comment block
1473. Fill the `orbPositions` array in JS — one `[l1,t1,s1, l2,t2,s2, l3,t3,s3]` entry per slide
148
149Do **not** rewrite the visual system CSS. Do **not** change the track/slide layout. Content goes inside `.slide` wrappers using the pre-built component classes: `.g` (glass card), `.gt` (gradient text), `.pill`, `.stat`, `.divider`, `.cols2/3/4`, `.ctable`, `.co` (amber callout), `.warn` (red warning), `.info` (blue info), `.layer` (org row), `ul.bl` (bullet list).
150
151### For all other styles → read the standard references
152
153**Read [references/html-template.md](references/html-template.md)** — it contains the required HTML structure, JavaScript patterns, animation recipes, and edit button implementation.
154
155**Also read [STYLE-DESC.md](STYLE-DESC.md)** for viewport fitting CSS, responsive breakpoints, style preset details, and CSS gotchas (especially: never negate CSS functions directly — use `calc(-1 * clamp(...))` not `-clamp(...)`).
156
157### Viewport Fitting
158
159Each slide must equal exactly one viewport height (`100vh` / `100dvh`). When content doesn't fit, split it across slides — never allow scrolling within a slide. This is what separates a polished presentation from a broken one.
160
161**Content density limits:**
162
163| Slide Type | Maximum |
164|------------|---------|
165| Title slide | 1 heading + 1 subtitle |
166| Content slide | 1 heading + 4-6 bullets |
167| Feature grid | 1 heading + 6 cards max (2×3 or 3×2) |
168| Code slide | 1 heading + 8-10 lines |
169| Quote slide | 1 quote (3 lines max) + attribution |
170| Image slide | 1 heading + 1 image (max 60vh height) |
171
172When in doubt → split the slide.
173
174### Image Pipeline (skip if no images)
175
176For each USABLE image from Step 1.2, determine processing needed (circular crop for logos, resize for large files, padding for screenshots needing breathing room) and run it with Pillow. Reference images with relative paths (`assets/...`) — don't base64 encode unless the user explicitly wants a fully self-contained file.
177
178Rules:
179- Never repeat an image across slides (logos may bookend title + closing)
180- Always add style-matched CSS framing (border/glow matching the style's accent color) when image colors clash with the palette
181
182### Code Quality
183
184- Comment every section: what it does, why it exists, how to modify it
185- Semantic HTML (`<section>`, `<nav>`, `<main>`)
186- ARIA labels on nav elements and interactive controls
187- `@media (prefers-reduced-motion: reduce)` support
188
189---
190
191## Phase 4: PPT Conversion
192
193Read [references/pptx-extraction.md](references/pptx-extraction.md) for the Python extraction script.
194
1951. Run the extraction script to get slides_data (title, content, images, notes per slide)
1962. Present extracted structure to user, confirm it looks right
1973. Run Phase 2 (Style Discovery) with extracted content in mind
1984. Generate HTML preserving all text, images (from `assets/`), and slide order. Add speaker notes as HTML comments if present.
199
200---
201
202## Phase 5: Delivery
203
2041. **Clean up:** delete `.claude-design/slide-previews/` if it exists.
2052. **Generate speaker notes** if deck has 8+ slides or was created from PLANNING.md:
206 - Create `PRESENTATION_SCRIPT.md` with 2-4 sentences per slide: what to say, emphasis points, transition cue.
2073. **Open:** `open [filename].html`
2084. **Summarize:**
209
210```
211Your presentation is ready!
212
213📁 File: [filename].html
214🎨 Style: [Style Name]
215📊 Slides: [count]
216
217Navigation: Arrow keys or Space · Scroll or swipe · Click dots to jump
218
219To customize: edit :root variables at the top of the CSS for colors, fonts, and spacing.
220
221To export as PPTX: run `/slide-creator --export pptx` (requires Node.js ≥ 18)
222```
223
224If inline editing was opted in: mention hovering the top-left corner or pressing `E` to enter edit mode.
225
226---
227
228## Effect → Feeling Guide
229
230| Feeling | Techniques |
231|---------|-----------|
232| Dramatic/Cinematic | Slow fade-ins 1-1.5s, dark backgrounds, full-bleed images, parallax |
233| Techy/Futuristic | Neon glow, particle canvas, grid patterns, monospace accents, glitch text effects |
234| Playful/Friendly | Bouncy easing, large rounded corners, pastels, floating/bobbing animations |
235| Professional | Subtle 200-300ms animations, clean sans-serif, minimal decoration, data-focus |
236| Calm/Minimal | Very slow motion, high whitespace, muted palette, generous padding, serif type |
237| Editorial | Strong typography hierarchy, pull quotes, serif headlines, one accent color |
238
239---
240
241## Example: New Presentation
242
2431. "Make a pitch deck for my AI startup"
2442. Single form → purpose=pitch, length=medium, content=rough notes, images=./assets, editing=yes
2453. User shares notes; skill evaluates assets (4 USABLE, 1 blurry — excluded with explanation)
2464. Slide outline co-designed around text + images; confirmed via AskUserQuestion
2475. Mood=Impressed+Excited → 3 previews generated → user picks Neon Cyber
2486. Pillow processes images; HTML generated with full viewport CSS + JS suite
2497. Browser opens; user requests tweaks; final deck delivered
250
251## Example: PPT Conversion
252
2531. "Convert slides.pptx to a web presentation"
2542. Run extraction script → present extracted content → user confirms
2553. Style Discovery (Phase 2) → HTML generation with preserved assets
2564. Final presentation delivered
257
258---
259
260## Related Skills
261
262- **frontend-design** — For interactive pages that go beyond slides
263- **design-and-refine:design-lab** — For iterating on component designs