A one-line subtitle that frames what this deck is about.
Speaker notes live in a hidden block on each slide. Press S during the talk to open the notes panel; it shows the notes for whatever slide you're on. The audience never sees them.
Lead with one strong sentence in serif — it sets the idea.
Then a supporting paragraph in sans. Keep on-screen text sparse; put the detail in your speaker notes, not on the slide.
This is where the real script goes — everything you want to say but don't
want crowding the slide. Edit the .speaker-notes block to change it.
The .two-column grid puts content side by side and collapses
to one column on narrow screens.
A callout highlights a key point. Add
.warn or .good for red/green accents.
Image goes here.
Use
<img class="slide-image" src="assets/img/your-file.png" alt="...">
Remember: every asset must be local for the deck to work offline in a classroom. No hot-linking to the web.
| Column A | Column B | Column C |
|---|---|---|
| Row one | Value | Value |
| Row two | Value | Value |
These components are styled in styles.css (section 5). Copy the
markup and change the content; no new CSS needed.
A .split slide pairs a left column (chat bubbles
or highlights) with a right pane that embeds a rendered doc or a live
artifact — offline-safe, because the doc is pre-rendered to HTML.
Can I show a Markdown doc inside a slide without a server?
Yes — pre-render it to self-contained HTML and embed that in an
<iframe>. Fetching a local .md at
runtime would fail offline.
A live demo of the optional .split pattern. The right pane
embeds docs/example-notes.html, produced from a .md
by scripts/render-markdown.sh. Delete this slide (and
docs/, scripts/, assets/doc.css) if
your deck doesn't embed docs.
Copy this folder, re-theme the tokens, and make it yours.
See starter/README.md for how to copy and re-theme this deck,
and the HTML<->JS contract you need to keep intact.