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 |