File structure

Headmatter, slide separators, and per-slide frontmatter.


A .slaide file starts with a headmatter block. After that come the slides, separated by ---.

---                         ← leading fence: deck HEADMATTER (deck-wide config)
master: ./theme.slaide.yaml
title: My Talk
company: Acme, Inc.          ← any key becomes a {{placeholder}}
~transition: slide-left      ← `~` cascades this default to every later slide
---
layout: cover                ← per-slide FRONTMATTER (one config block per slide)
footer: Hello world          ← per-slide value, also usable as {{footer}}
---
:: title ::                  ← route Markdown into the layout slot "title"
My Talk
:: subtitle ::
An optional subtitle
---                          ← slide separator
## A content slide           ← a slide with no frontmatter. body goes to the main slot
- point one    >>>           ← `>>>` reveals this item as a build step
- point two    >>>
??? Speaker note. Hidden from the audience.

Separators and fences

  • A line that is exactly --- separates slides.
  • Inside a fenced code block (``` or ~~~), --- is literal text. It is not a separator.
  • The first config block is the deck headmatter.
  • After a separator, a block is that slide’s frontmatter only if two things are true. Every line is key: value. And it ends with another --- before the body. Otherwise the whole block is body.
  • Edge case: a body line that just contains a colon, like We offer: Tooling, is still body. When in doubt, an empty frontmatter (--- then ---) forces the next block to be body.

Headmatter keys

Key Meaning
master Path to the master file, relative to the deck. Omit it to use the bundled aurora theme.
title, author, date, company, … Deck metadata. Any key here becomes a {{placeholder}}.
~<key> Sets a cascading default from here on. For example ~transition: fade.
progress true or false. Shows a position bar and counter in the web deck. Default true. Web only, never in the PDF.

Per-slide frontmatter keys

Key Values Meaning
layout a layout name from the master Which layout to use.
transition none, fade, slide-left/right/up/down, zoom, morph How this slide animates in.
background a background name from the master Override the layout’s background.
variant a variant name from the master Apply scoped overrides, like a light section.
morph an id Take part in a shared-element morph.
footer Markdown text Per-slide footer. Also available as {{footer}}.
chrome both, header, footer, none, false Show or hide the header and footer on this slide.
logo false Hide the corner logo on this slide.

Cascade vs scope. A bare key like transition: zoom applies to this slide only. A ~ key like ~transition: zoom becomes the default for this slide and every slide after it, until something overrides it.

Placeholders

Any key from headmatter or the current slide is available as {{ key }}. You use them inside chrome bands and master text. The built-ins:

Placeholder Value
{{page}} / {{total}} slide number / slide count
{{pagePadded}} / {{totalPadded}} zero-padded, like 05 / 08
{{date}} the date: value, or today
{{title}} / {{author}} from headmatter
{{slideTitle}} the slide’s first heading
{{footer}} the current slide’s footer: value