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

KeyWhat it holds
schemaThe format version. Use slaide/1.
nameThe theme name.
canvasThe design size. { aspect, width, height } in px. Slides scale to fit.
fontsNamed font roles, like display and sans. Real Google Fonts.
typeScaleNamed size steps. base, ratio, and steps.
colorsTwo tiers. palette for raw colors, roles for semantic aliases.
gradientsNamed CSS gradients. Used by .grad text and slot fills.
tokensRaw CSS variable overrides. Spacing, code panels, chart colors.
backgroundsNamed layers. solid, gradient, or image. There is no radial type.
variantsNamed scoped overrides, like a light section.
transitionsdefault and duration.
chromeheader, footer, logo, logoPos.
uiprogress, the web position bar. Default on.
layoutsGrid 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.