| name | simple-deck | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| description | Single-file horizontal-swipe HTML deck. Built by copying the seed `assets/template.html` (which carries the proven 5-rule iframe nav script) and pasting slide layouts from `references/layouts.md`. Pitch decks, product overviews, study material β when you don't need the magazine aesthetic of `magazine-web-ppt`. | ||||||||||||||||||||
| triggers |
|
||||||||||||||||||||
| od |
|
Produce a single-file horizontal-swipe HTML deck using the seed and layout library.
simple-deck/
βββ SKILL.md β you're reading this
βββ assets/
β βββ template.html β seed: tokens + slide primitives + proven nav script (READ FIRST)
βββ references/
βββ layouts.md β 8 paste-ready slide layouts + theme-rhythm rules
βββ checklist.md β P0/P1/P2 self-review (rhythm spot-check at bottom)
- Read
assets/template.htmlend-to-end through the<style>block AND the<script>block. The script solves five iframe-specific bugs (real scroller detection, dual capture-phase listeners, auto-focus, noscrollIntoView, position persistence) β do not rewrite it. - Read
references/layouts.mdso you know the 8 layouts. Pay special attention to the "Theme rhythm" section β it's the rule that prevents the deck from feeling sleepy. - Read the active DESIGN.md β map its tokens to the six
:rootvariables in the seed.
Copy assets/template.html to the project root as index.html. Replace the six :root variables with the active design system's tokens. Replace the page <title>.
Default: 6 slides unless the brief says otherwise.
| Audience / format | Slides |
|---|---|
| Product overview / lightning talk (5β10 min) | 6 |
| Pitch deck (15 min) | 8β10 |
| Investor update / longer talk (20β30 min) | 12β18 |
Then write out the rhythm before any HTML β for example, 8 slides:
01 hero light center Cover
02 light Problem
03 hero dark center Big stat
04 light Three points
05 dark Pipeline
06 hero light center Quote
07 light Before / after
08 hero dark center Ask
A healthy sequence has:
- No 3+ same theme in a row
- β₯ 1
hero darkAND β₯ 1hero light(for 8+ slides) - Alternating breath every 3β4 slides
Show this rhythm sketch to the user before writing slide HTML β they can redirect cheaply.
For each planned slide, copy the matching <section> from layouts.md into the body. Replace bracketed text with real, specific copy. No filler / no lorem. If a slide feels empty, the layout is wrong β pick a different one.
Tag each slide with data-screen-label="01 Cover", "02 Problem", etc., in the order you wrote them. (The seed's first three slides already do this β extend the pattern.)
Run through references/checklist.md. The "Theme rhythm spot-check" at the end is non-negotiable:
grep 'class="slide' index.htmlRead the resulting class list. If you see light Γ 4 in a row, swap one to dark. If no hero dark exists in an 8+ slide deck, promote one big-stat or closing slide.
<artifact identifier="deck-slug" type="text/html" title="Deck Title">
<!doctype html>
<html>...</html>
</artifact>
One sentence before the artifact. Stop after </artifact>.
- Theme class on every slide (
light|dark|hero light|hero dark). Bareclass="slide"= regression. - No 3+ same theme in a row.
- Display = serif via
var(--font-display)..h-hero/.h-xl/.h-mdalready enforce. - One accent per slide, used at most twice.
- Don't rewrite the nav script. It's proven.
- No
scrollIntoView(). Breaks iframe. data-screen-labelon every slide.