Files
open-design/skills/simple-deck/references/checklist.md
T
Zakaria a46764fb1b
ci / Validate workspace (push) Has been cancelled
landing-page-ci / Validate landing page (push) Has been cancelled
landing-page-deploy / Deploy landing page (push) Has been cancelled
github-metrics / Generate repository metrics SVG (push) Has been cancelled
refresh-contributors-wall / Refresh contributors wall cache bust (push) Waiting to run
first-commit
2026-05-04 14:58:14 -04:00

56 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Simple deck checklist
Run before emitting `<artifact>`. P0 must pass.
## P0 — must pass
- [ ] **Every `<section class="slide">` has a theme class.** Each is exactly one of: `light`, `dark`, `hero light`, `hero dark`. No bare `class="slide"`. No bare `class="slide hero"`.
- [ ] **No 3+ same-theme slides in a row.** Mentally list the classes from slide 1 to N — if you see `light light light` anywhere, change the middle one.
- [ ] **For 8+ slides: at least one `hero dark` AND at least one `hero light`.** A long all-light deck is sleepy; a long all-dark deck is heavy.
- [ ] **Display headlines use `var(--font-display)` (serif).** `.h-hero`, `.h-xl`, `.h-md` and `.quote-text` all enforce this — don't override.
- [ ] **No raw hex outside `:root`.** Every color is `var(--bg)` / `--fg` / `--muted` / `--border` / `--accent` / `--surface`. Grep `#[0-9a-fA-F]{3,8}` outside `:root{}` should return nothing.
- [ ] **Accent appears at most twice on any single slide.** On stat slides, the number itself is the only accent. Don't also color the eyebrow + a button + a border.
- [ ] **The 5-rule nav script is intact.** Don't replace `scroller()` with `document.body`. Don't drop one of the dual capture-phase listeners. Don't use `scrollIntoView()`. (The seed has the working version — leave it.)
- [ ] **No `scrollIntoView()` calls.** Breaks iframe boundaries.
- [ ] **`data-screen-label` on every slide** (e.g. `"01 Cover"`, `"05 Big stat"`). Used by chat for "edit slide 5".
- [ ] **No invented metrics.** Numbers come from the brief or a real source. "10× faster" / "99.9% uptime" without source = remove.
- [ ] **No emoji icons / no purple gradients / no rounded boxes with left-border accent.** Anti-slop trio.
## P1 — should pass
- [ ] **Cover is `hero light center`.** Inverting cover-to-dark works only when the entire deck is dark.
- [ ] **Cover h1 ≤ 8 words.** A long cover headline is the writing's job, not the design's.
- [ ] **Body lead text under 56ch.** `max-width: 56ch` enforces this — don't override.
- [ ] **Big-stat slides have one number, not three.** If you have 3 numbers, give them 3 slides.
- [ ] **One quote per deck.** Two pull-quote slides feel like a brochure; one feels like a punctuation mark.
- [ ] **Closing slide is decisive.** A clear ask, a takeaway sentence, a date — not a "thank you".
- [ ] **Numerics in mono.** Stats, prices, version numbers, dates use `font-family: var(--font-mono)` (the `.stat-num` already does; `.meta` does).
- [ ] **At 1280×800 and 1440×900, no overflow.** Test by setting the browser to those sizes; nothing clips.
## P2 — nice to have
- [ ] **Position persists across refresh** (the seed's `localStorage` save/restore handles this).
- [ ] **Top progress bar fills as you advance** (already in seed).
- [ ] **Counter pill is visible at all times** (already in seed).
## Theme rhythm spot-check
After you finish, run:
```
grep 'class="slide' index.html
```
Read the class list as a single sequence. The healthy patterns look like:
- `hero light` `light` `hero dark` `light` `dark` `hero light` `light` `hero dark`
- `hero light` `light` `light` `dark` `hero light` `dark` `hero dark`
Bad patterns:
- `light light light light light light` — flat
- `dark dark dark dark dark dark` — heavy
- `hero hero hero hero` — no rest
If your sequence is bad, swap a few middle slides to rebalance.