Decklight

The presentation library that presents itself

Every feature on the next slides is demonstrated live, by the slide itself.
Use → to advance. Press ? anytime.

Builds

Keynote-style progressive reveals — the container opts in

…and leaf elements can pop in on their own.

Theme-Aware SVG Diagrams

Authored once with tokens — recolored by all 61 themes

Engine builds · nav · svg · print 61 themes · 5 packs one token contract Terminal player event casts, never video CLI rec · refresh · export · bundle Strokes draw in (data-build="draw") · messages flow (SMIL, theme-tokened) · ids auto-namespaced · concept colors pin boxes

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

pulse float shake spin blink
bounce swing glow breathe

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 · defaultMarkdown · opt-in
Surface<section> + tagsdata-markdown + template
Buildsdata-build on the element::: build fence
Notes<aside class="notes">Note: / Rehearse: blocks
Rich slidesSVG · auto-animate · layout, nativelydrop to raw HTML inline
Best fordiagrams & fine controlprose · 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

Kafka Broker topic: orders · 3 partitions P0 0 1 2 3 P1 0 1 2 P2 0 1 2 3 4 each square = one message at its offset Producer produce · round-robin 1 2 3 Consumer A consume P0 consume P1 consumer group Consumer B consume P2 producer round-robins P0 → P1 → P2 · consumer group splits: A reads P0 & P1, B reads P2 · colors via var(--d-*)

61 Themes in 5 Packs

Try it now — this deck ships them all

Ttheme picker — packs first, Enter drills in, ✳ flattens, type to filter
, / .cycle themes — crossing a pack asks you to confirm
⌃Tgenerate a brand-new theme (WCAG-fitted, rule-conforming)
⌃⇧Tsave it — localStorage + a portable .css download
[ / ]cycle the deck's type through nine font stacks

Presenting

Everything a stage needs, no server required

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

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:

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?

Your Score

Reveal it whenever the room's ready