Skip to content

Front-matter reference

Every key a deck’s front matter can carry. To learn how front matter works, and which settings most decks want, start with Deck settings.

This page is generated from the engine’s table of front-matter keys (lib/core/deck-settings.js), the same table the Studio editor completes from and lint:deck checks against. A key Lattice does not read draws an unknown-key warning, and a value outside a key’s list draws unknown-<key>, so finsh: halo or size: huge is caught instead of rendering the default. Marp’s own keys (marp:, headingDivider:, author: and the like) are accepted and ignored, and are not listed here. The groups match the sections under Settings → Deck in the Studio, in the same order.

For an editor outside the Studio, npm run build writes the same table as a JSON Schema, dist/schemas/front-matter.schema.json. Point your editor’s YAML support at it to complete keys and values as you type.

One slide can differ from the deck through the per-slide form a row names. Where it reads <value>, put the value there: the deck’s spectrum: off is spectrum-off on one slide. Not every value has a class (there is no spectrum-on, because on is what a slide gets with no class), and a key whose row names no per-slide form, such as theme: or size:, applies to the whole deck only.

The LFM specification defines a portable subset of these keys, for tools other than Lattice. This page is what Lattice itself reads.

Look

Theme, canvas, size and the overall hand of the deck.

KeyWhat it doesValuesDefault
theme:Deck theme (palette) — e.g. indaco, cuoio. Studio: Settings → Deck → Look → Theme.a theme name, e.g. indaco, cuoioindaco
size:Slide size — hd (16:9), standard, square, 4k, or a portrait format. Studio: Settings → Deck → Look → Size.hd · HD · 4K · 4k · standard · 16:9 · mobile-landscape · square · 1:1 · portrait · 4:5 · story · reel · 9:16 · mobilehd
preset:A named look that sets the backdrop, alignment and accent registers at once — an explicit key (finish:, rule:, …) overrides it. Studio: Settings → Deck → Look → Preset (also in Basic).classic · editorial · brand · minimalclassic
color-mode:The mode the deck opens in. Studio: Settings → Deck → Look → Color mode. One slide: _class: dark · color-light · color-system · print.light · dark · system · inherited · printthe theme’s own
mode:Rendering mode. Studio: Settings → Deck → Look → Mode. One slide: _class: sketch.boardroom · sketch · sketch-cleanboardroom
finish:Finish backdrop — e.g. atrium, halo, gallery. Studio: Settings → Deck → Look → Finish. One slide: _class: finish-<name>.none · atrium · meridian · strata · halo · ledger · nimbus · loom · savile · gallerynone
finish-override:Override the applied finish — a nested map (backdrop: { strength, clearance }, wash, …). Applies to: Studio only (written by Fabricate).a nested map of finish layersnone
backdrop:Restrain any finish — e.g. `backdrop: 40 clear`. Studio: Settings → Deck → Look → Backdrop strength · Backdrop mask. One slide: _class: backdrop-<value>.20 · 40 · 60 · 80 · full · clear · open · spot-tl · spot-t · spot-tr · spot-l · spot-c · spot-r · spot-bl · spot-b · spot-brthe finish's own
tag:Style every card tag — e.g. `tag: plain band center`. Studio: Settings → Deck → Look → Card tags (Tag color · size · placement · text). One slide: _class: tag-<value>.color · plain · none · small · regular · large · corner · foot · notch · band · inline · start · center · endthe component's own
image-card:Style the text card on every image slide that floats its words over the photo (spotlight, statement) — e.g. `image-card: top-right soft sm`, or `image-card: bottom band` for a full-width strip along the bottom edge. Applies to: image slides only. Studio: Settings → Deck → Image (Placement · Backing · Ink · Size · Density · Shape). One slide: _class: at-<corner> · card-<backing> · card-o<level> · ink-<value> · card-<size> · compact · card-regular · band · card-float.bottom-left · bottom · bottom-right · center · top-left · top · top-right · solid · soft · sheer · clear · 5% · 10% · 15% · 20% · 25% · 30% · 35% · 40% · 45% · 50% · 60% · 65% · 70% · 75% · 85% · 90% · 95% · light · dark · md · sm · lg · regular · compact · float · bandbottom-left solid md regular
lift:Card lift — the "Struck" shadow on card surfaces. Studio: Settings → Deck → Look → Card lift. One slide: _class: lifted · flat.on · offoff
chart-finish:How every chart spends its color. Applies to: every chart's marks and key. Studio: Settings → Deck → Look → Chart finish. One slide: _class: chart-finish-<value> · chart-finish-off.off · pigment · etching · toneoff
venue:Where the deck is seen — sets the type size for the back row. laptop (default) · huddle (4–6 people) · conference (10–30) · hall (50+). Applies to: type size, label size and lint budgets. Studio: Settings → Deck → Look → Venue. One slide: _class: venue-<value>.laptop · huddle · conference · halllaptop
cards:Where a card row puts spare height — omit it and the component decides. Studio: Settings → Deck → Look → Frame and fit → Card rows. One slide: _class: cards-<value>.center · stretch · top · spreadeach component decides
corners:Slide surface corners. Studio: Settings → Deck → Look → Frame and fit → Corners. One slide: _class: corners-<value>.square · roundedsquare
claim:How much frame the content sits inside. Studio: Settings → Deck → Look → Frame and fit → Claim. One slide: _class: claim-<value>.framed · quiet · hero · bleedframed
fit:What the engine may do to make a slide fit — replaces guards:. Studio: Settings → Deck → Look → Frame and fit → Fit. One slide: _class: fit-<value>.report · heal · trimheal
code:Default options for every code block — e.g. numbers, wrap. A fence's own record wins. Applies to: every code fence.code-record options, e.g. numbers, wrapnone
avatar:The deck's default for inline avatars. One slide: _class: avatar-<value>.circle · rounded · square · framed · barecircle framed
callout:The deck's default for inline callouts. One slide: _class: callout-<value>.on · offon
icon:The deck's default for inline icons. One slide: _class: icon-<value>.framed · bare · pigment · etching · tone · square · roundedframed pigment square
spark:The deck's default for inline sparks. One slide: _class: spark-<value>.framed · bare · pigment · etching · tone · square · roundedframed pigment square

Chrome

The furniture on every slide: running header and footer, page numbers, logo.

KeyWhat it doesValuesDefault
header:Running header text on every slide. Studio: Settings → Deck → Chrome → Header. One slide: <!-- _header: … -->.any textnone
paginate:Page numbers — on unless false (also no, off, 0). One slide opts out with the no-pagination class, back in with with-pagination. Studio: Settings → Deck → Chrome → Page numbers. One slide: _class: … no-pagination.true · falsetrue
meta:The masthead bay’s meta line — a date, a document number, a review stage. Studio: Settings → Deck → Chrome → Meta line.any text; | starts a new linenone
logo-finish:Style the logo on one line, up to one word per axis: placement (top-left / top-center / top-right / bottom-left / bottom-center / bottom-right — e.g. `logo-finish: bottom-center accent-ink`. `_class: no-logo` hides it on one slide. Studio: Settings → Deck → Chrome → Logo.top-right · top-left · top-center · bottom-left · bottom-center · bottom-right · auto · accent · ink · muted · canvas · inverse · brand · accent-ink · accent-canvas · ink-canvas · no-plate · plate · md · sm · lg · all · titletop-right auto md all

General

What the deck is called, what language it is in, and how its source is read.

KeyWhat it doesValuesDefault
title:Deck name — used in the switcher, in Share, and as the export filename. Defaults to the cover heading. Applies to: HTML title, Studio switcher, export filename. Studio: Settings → Deck → General → Deck name.any textthe first heading
lang:Document language — overrides the workspace default (e.g. en-US). Drives <html lang> + read-aloud. Applies to: page language and read-aloud voice. Studio: Settings → Deck → General → Language.a language tag, e.g. en-USen
ai-lang:AI-output language — what the AI writes in, if it should differ from the document language. Defaults to lang. Applies to: Studio only. Studio: Settings → Deck → General → AI writes in.a language tagfollows lang
split:How the body divides into slides — headings (default) or rule (--- only). Studio: Settings → Deck → General → New slide on.rule · headingsheadings
inline-code:Inline code pills and marks. Studio: Settings → Deck → General → Inline pills and marks. One slide: _class: inline-code-literal.rich · literalrich
glossary:Auto-glossary — append a reference slide built from the acronyms: definitions. Studio: Settings → Deck → General → Auto-glossary.auto · offoff
class:Default _class applied to every slide (a modifier — a component name is ignored). Studio: Settings → Deck → General → Default slide class. One slide: _class:.modifier classes, space-separatednone
plugins:Plugins the deck needs loaded — a list of plugin names. It only adds: a renderer that loads more by default still does.anima · avatars · callout · chart-family · code · function-plot · icons · legend · math · mermaid · meta · pills · sparksthe built-in set

Accent

The small decorations: brand bar, heading rule, kicker mark, stamps.

KeyWhat it doesValuesDefault
spectrum:Brand bar. Studio: Settings → Deck → Accent → Brand bar. One slide: _class: spectrum-<value>.on · solid · duo · mono · offon
spectrum-edge:Which edge the brand bar sits on. Studio: Settings → Deck → Accent → Bar placement. One slide: _class: spectrum-edge-<value>.top · left · right · bottom · offtop
spectrum-card:Card rail style. Studio: Settings → Deck → Accent → Card rail. One slide: _class: spectrum-card (auto) · spectrum-card-<value>.off · auto · solid · duo · mono · rainbowoff
spectrum-card-edge:Card rail placement. Studio: Settings → Deck → Accent → Card rail placement. One slide: _class: spectrum-card-edge-<value>.left · top · right · bottomleft
spectrum-trim:Flow the spectrum onto structural accents (table rails, code strips, hr). Studio: Settings → Deck → Accent → Structural trim. One slide: _class: spectrum-trim · spectrum-trim-restrained.off · restrained · onoff
rule:Heading underline. Studio: Settings → Deck → Accent → Heading rule. One slide: _class: rule-<value>.auto · full · short · accent · noneauto
eyebrow:The mark on the mono-caps kicker. Studio: Settings → Deck → Accent → Eyebrow. One slide: _class: eyebrow-<value>.plain · dot · bar · arrow · underlineplain
headline:Framing-text alignment. Studio: Settings → Deck → Accent → Headline alignment. One slide: _class: head-<value>.auto · left · center · rightauto
stamp:Deck-wide state-badge shape — e.g. tab, notch, seal, pill. Studio: Settings → Deck → Accent → Badges → Stamp shape. One slide: _class: stamp-<value>.tab · notch · bracket · seal · pill · ribbon · flag · underline · dot · mark · veil · bar · pintab
tone:Deck-wide review-tone shape. Studio: Settings → Deck → Accent → Badges → Tone shape. One slide: _class: tone-<value>.rail · edge · glowrail

Motion

How charts move on live surfaces. A PDF is always still.

KeyWhat it doesValuesDefault
motion:Chart motion on the live surfaces — reaches the preview, Present and the exported player (see player-motion); the PDF stays still. Applies to: preview, Present and the exported player. Studio: Settings → Deck → Motion → Play. One slide: _class: motion-on · motion-off.on · offoff
motion-style:How a chart moves. Studio: Settings → Deck → Motion → Style. One slide: _class: motion-<value>.build · together · risebuild
motion-speed:How fast the build runs. Studio: Settings → Deck → Motion → Speed. One slide: _class: motion-<value>.auto · slow · normal · fastauto
player-motion:off ships still charts in the exported offline player while motion stays on for presenting. Omit it to follow motion. Applies to: exported player only. Studio: Settings → Deck → Motion → In the exported player.offfollows motion

Speech

How the deck is read aloud.

KeyWhat it doesValuesDefault
pace:Presentation rhythm. Applies to: self-presenting playback. Studio: Settings → Deck → Speech → Pace.brisk · natural · deliberatenatural
delivery:How much the narrated Guide gestures. Applies to: the Present Guide while narration plays.restrained · expressive · somberrestrained
lexicon:Read-aloud pronunciations — a nested map of token → spoken text. Applies to: read-aloud. Studio: Settings → Deck → Speech → Lexicon.a nested map: word → how to say itnone
acronyms:Acronym registry — term → spoken expansion (and an optional glossary definition). Applies to: read-aloud, and glossary: auto. Studio: Settings → Deck → Speech → Acronyms.a nested map: term → expansion, optional definitionnone
say:Read-aloud text per slide — a nested map of slide number → what that slide says. A slide’s own <!-- say: --> wins over it. Applies to: read-aloud. One slide: <!-- say: … -->.a nested map: slide number → what that slide saysnone
greeting:What a narrated deck says first — your own words, true for the stock greeting, or off. Applies to: narrated playback.true · offnone
closing:What a narrated deck says last — your own words, true for the stock closing, or off. Applies to: narrated playback.true · offnone

Export targets

What the command-line render produces. The Studio decides these in Share instead.

KeyWhat it doesValuesDefault
present:Open the exported PDF in presentation mode. CLI and front matter only — the Studio sets it at export. Applies to: command-line export only; yes/on and no/off also work.true · falsefalse
read:Emit the .html as the reading article — prose instead of the slide stack. CLI and front matter only — the Studio sets it at export. Applies to: command-line export only; yes/on and no/off also work.true · falsefalse
fluid:Emit the .html as the responsive fluid-box viewer — each slide fills the viewport and reflows to portrait on a phone. PDF/PPTX/PNG are unchanged. Applies to: command-line export only; yes/on and no/off also work.true · falsefalse
player:Emit the .html as the self-contained offline player (Present · Read Slides · Read Article). Supersedes fluid. Applies to: command-line export only; yes/on and no/off also work.true · falsefalse

Raw styling

Marp-compatible CSS escape hatches. They bypass the theme, so reach for them last.

KeyWhat it doesValuesDefault
style:Raw CSS for this deck (a YAML block scalar). Applies to: command-line render only; the Studio preview and its exports ignore it.CSS, as a YAML block (style: |)none
color:Text color on every slide — any CSS color. Quote a hex value: "#1a1a1a". One slide: <!-- _color: … -->.a CSS color, quoted: "#1a1a1a"the theme’s
backgroundColor:Slide background color — any CSS color. Quote a hex value: "#ffffff". One slide: <!-- _backgroundColor: … -->.a CSS color, quotedthe theme’s
backgroundImage:Slide background image — a CSS value, e.g. url(./bg.png). One slide: <!-- _backgroundImage: … -->.a CSS value, e.g. url(./bg.png)none
backgroundPosition:Where the background image sits — a CSS value, e.g. center. One slide: <!-- _backgroundPosition: … -->.a CSS valuecenter
backgroundRepeat:Whether the background image tiles — a CSS value, e.g. no-repeat. One slide: <!-- _backgroundRepeat: … -->.a CSS valueno-repeat
backgroundSize:Background image size — a CSS value, e.g. cover. One slide: <!-- _backgroundSize: … -->.a CSS valuecover

Developer

Tools for building and checking a deck. None of them changes an export.

KeyWhat it doesValuesDefault
profile:Genre the Coach judges STYLE against — general (default), teaching, or mission. Never affects the Craft score. Applies to: Coach only; never the render. Studio: Settings → Deck → Coach → Style judged as.general · teaching · missiongeneral
validate:Inline validation in the editor — travels with the deck. Applies to: Studio editor only.on · offon
debug:Layout debug overlay — preview-only, stripped from every export. Applies to: previews only; stripped from every export. Studio: Settings → Deck → General → Developer → Debug overlay. One slide: <!-- _debug: … -->.off · on-hover · on-always, plus verboseoff