Authored once with tokens — recolored by all 61 themes
Auto-Animate
Magic Move between adjacent slides
Extract
Transform
Load
Advance once — the middle box takes over the stage.
Auto-Animate
Zoom into the detail — FLIP-morphed, HTML and SVG alike
Transform
validate the schema
enrich with lookups
Element Animations
Looping attention effects — only while the slide is active
pulsefloatshakespinblink
bounceswingglowbreathe
All of it collapses under prefers-reduced-motion.
Code, Stepped Line by Line
This snippet is the source of the builds slide you just saw
<ul data-build="fade-up">
<li>data-build on the list — every item steps</li>
<li>One attribute, zero per-item classes</li>
<li>Hidden steps hold their space</li>
</ul>
<p data-build="pop">…and leaves can pop in on their own.</p>
HTML or Markdown?
The same deck, two authoring surfaces — mix them per slide
HTML · default
Markdown · opt-in
Surface
<section> + tags
data-markdown + template
Builds
data-build on the element
::: build fence
Notes
<aside class="notes">
Note: / Rehearse: blocks
Rich slides
SVG · auto-animate · layout, natively
drop to raw HTML inline
Best for
diagrams & fine control
prose · fast, agent-friendly
Both compile to the same DOM — this very tour ships as showcase.html and showcase-md.html.
Terminal Recordings
Real PTY output, replayed step by step — never a video
Slides From a Prompt
Describe the slide — an agent writes the Decklight
Kafka: Producer to Consumers
The slide the agent generated — shipped untouched
61 Themes in 5 Packs
Try it now — this deck ships them all
T
theme picker — packs first, Enter drills in, ✳ flattens, type to filter
, / .
cycle themes — crossing a pack asks you to confirm
⌃T
generate a brand-new theme (WCAG-fitted, rule-conforming)
⌃⇧T
save it — localStorage + a portable .css download
[ / ]
cycle the deck's type through nine font stacks
Presenting
Everything a stage needs, no server required
S — speaker view: thumbnails, timer, notes synced to builds
S again — rehearse mode: cue cards instead of prose (this deck has them)
G — slide finder with live preview · / the command palette
O — overview grid · B blackout · F fullscreen
Pinned titles, auto-subtitles, per-slide print, the brand-logo chrome below
One File to Ship
The CLI records, refreshes, exports — and flattens
decklight rec demo.term.yaml # record a cast in a real PTY
decklight refresh casts/ # re-record everything, report drift
decklight export demo.cast.json # asciicast v2 for the asciinema world
decklight bundle deck.html --all # ONE self-contained HTML, themes included
This showcase bundles to a single file that works offline — logo, casts, and all 61 themes embedded.
Verified by Construction
Built for authors who can prove their deck works
Overflow guardrail: clipped content marks itself with data-overflow
Every theme passes WCAG gates and codified palette rules
Generated themes can't fail validation — property-tested across seeds
Headless-render assertions ship in the repo; SPEC.md is the contract
One HTML File. No Build Step.
Two stylesheets, one script — view source on this deck to start yours
Press O to see everything you just watched, or / to jump back anywhere.
Quizzes
The last thing every presentation needs
What's the last thing everyone needs when they've just followed a presentation? A quiz, of course! So, Decklight:
Options are plain HTML inputs — the theme tokens style them
data-narration="hold" — voice mode waits while you answer
Live re-grading — change an answer, the verdict follows
A podium with bronze · silver · gold — under frantic confetti
Pop Quiz
Ten questions on what you just watched — 80% to pass
Click an answer on each slide, then → to move on. Your score is tallied on the last slide — nothing is graded until you ask for it.
Question 1 of 10
What attribute turns a container's children into Keynote-style progressive reveals?
Question 2 of 10
Where do the deck's inline SVG diagrams get their color from?
Question 3 of 10
What makes two adjacent slides Magic-Move between each other?
Question 4 of 10
How many looping data-animate effects did the element-animations slide show?
Question 5 of 10
Inside a data-markdown slide, how do you make a list build progressively?
Question 6 of 10
How are the deck's terminal recordings stored and replayed?
Question 7 of 10
How many themes, across how many packs, ship with this deck?
Question 8 of 10
Which key opens the theme picker while presenting?
Question 9 of 10
Which CLI command flattens a whole deck — casts, themes and all — into one self-contained HTML file?
Question 10 of 10
What marks a slide whose content doesn't fit, so both humans and headless tests can catch it?