The Master File Reference
The .slaide.yaml master is the YAML file that holds a deck's whole design - fonts, colors, gradients, layouts, and chrome, all reusable.
A master is a YAML file. It holds the whole design as data. One master serves many decks. You reference it from a deck’s headmatter:
---
master: ./your-theme.slaide.yaml
---
Omit master: and the deck uses the bundled aurora theme.
This page is the reference for the master’s shape. For a full walkthrough with examples, see Authoring a theme.
Top-level keys
| Key | What it holds |
|---|---|
schema | The format version. Use slaide/1. |
name | The theme name. |
canvas | The design size. { aspect, width, height } in px. Slides scale to fit. |
fonts | Named font roles, like display and sans. Real Google Fonts. |
typeScale | Named size steps. base, ratio, and steps. |
colors | Two tiers. palette for raw colors, roles for semantic aliases. |
gradients | Named CSS gradients. Used by .grad text and slot fills. |
tokens | Raw CSS variable overrides. Spacing, code panels, chart colors. |
backgrounds | Named layers. solid, gradient, or image. There is no radial type. |
variants | Named scoped overrides, like a light section. |
transitions | default and duration. |
chrome | header, footer, logo, logoPos. |
ui | progress, the web position bar. Default on. |
layouts | Grid templates with typed slots. |
Value forms
These are the parts unique to slaide. Everything else is plain YAML.
- Color reference: a palette key as
{palette.navy}, a role as{accent}, or a raw CSS color. - Gradient reference: a gradient name, or
{gradients.brand}. - Type-scale step: an explicit size like
"72px"(recommended), or an integer exponent on the scale. - Layout: an
areasmap (a row of slot names per entry), aslotsmap, and optionalrows,cols,gap,padding,align,background,variant. Keepareasrectangular. Every slot must appear inareas. - Slot: a
type(title,subtitle,body,image,media,quote,caption) and an optionalstylemap.
A minimal master
schema: slaide/1
name: my-theme
canvas: { aspect: "16:9", width: 1920, height: 1080 }
fonts:
sans: { family: "Inter", provider: google, weights: [400, 600, 700] }
display: { family: "Fraunces", provider: google, weights: [600, 900] }
colors:
palette: { navy: "#0B1220", white: "#F8FAFC", blue: "#5B8CFF" }
roles: { background: "{palette.navy}", text: "{palette.white}", accent: "{palette.blue}" }
layouts:
cover:
areas: ["title", "subtitle"]
rows: "1fr auto"
slots:
title: { type: title }
subtitle: { type: subtitle }
For fonts, gradients, tokens, backgrounds, variants, chrome, and the full slot style reference, see Authoring a theme.