Skip to content

Latest commit

Β 

History

History
120 lines (92 loc) Β· 4.19 KB

File metadata and controls

120 lines (92 loc) Β· 4.19 KB
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
deck
slides
ppt
presentation
幻灯
ppt 樑板
od
mode scenario preview design_system
deck
product
type entry
html
index.html
requires sections
true
color
typography
layout
components

Simple Deck Skill

Produce a single-file horizontal-swipe HTML deck using the seed and layout library.

Resource map

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)

Workflow

Step 0 β€” Pre-flight

  1. Read assets/template.html end-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, no scrollIntoView, position persistence) β€” do not rewrite it.
  2. Read references/layouts.md so you know the 8 layouts. Pay special attention to the "Theme rhythm" section β€” it's the rule that prevents the deck from feeling sleepy.
  3. Read the active DESIGN.md β€” map its tokens to the six :root variables in the seed.

Step 1 β€” Copy 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>.

Step 2 β€” Decide slide count + theme rhythm BEFORE writing any slide

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 dark AND β‰₯ 1 hero 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.

Step 3 β€” Paste and fill

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.)

Step 4 β€” Self-check

Run through references/checklist.md. The "Theme rhythm spot-check" at the end is non-negotiable:

grep 'class="slide' index.html

Read 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.

Step 5 β€” Emit the artifact

<artifact identifier="deck-slug" type="text/html" title="Deck Title">
<!doctype html>
<html>...</html>
</artifact>

One sentence before the artifact. Stop after </artifact>.

Hard rules

  • Theme class on every slide (light | dark | hero light | hero dark). Bare class="slide" = regression.
  • No 3+ same theme in a row.
  • Display = serif via var(--font-display). .h-hero / .h-xl / .h-md already enforce.
  • One accent per slide, used at most twice.
  • Don't rewrite the nav script. It's proven.
  • No scrollIntoView(). Breaks iframe.
  • data-screen-label on every slide.