The master file

The .slaide.yaml master: the YAML file that holds a deck's whole design.


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 areas map (a row of slot names per entry), a slots map, and optional rows, cols, gap, padding, align, background, variant. Keep areas rectangular. Every slot must appear in areas.
  • Slot: a type (title, subtitle, body, image, media, quote, caption) and an optional style map.

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.