The syntax on one page. Each section links to the page that explains it.
Marker Answer Drawn as [x]Yes Check, solid green [-]Partly Dash, solid amber [!]No Cross, solid red [?]Unknown — looked, cannot settle ? in a hollow ring[ ]Open — not looked yet Empty hollow ring [/]Does not apply Slash, solid gray, label struck
- [ ! ] Load test failed at peak ← bare, in a layout that reads markers
Residency ` [x] ` · SOC 2 ` [?] ` ← inline, on any slide
Bare markers work in: checklist · verdict-grid · pricing ·
obligation-matrix · roadmap · any table with state-cells.
Write Does <!-- _class: table state-cells -->A table’s leading cell markers draw discs `[{[x], In force}, {[/], Exempt}]`Renames key entries (obligation-matrix, roadmap); own paragraph, above the grid checks-ringed · checks-knockout · checks-bold · checks-outline · checks-tonalDisc style, per slide or per deck heatYes turns red, no turns green, for a risk reading
`{LABEL, shape, color, size}` modifiers in any order, all optional
Kind Modifiers Shape (capsule) · chip · tag · tag-bordered · circle · chevron-right · chevron-left · diamondColor c1 … c12 — numbered slots, never a meaningSize (automatic: large in headings, small in notes and footers) · sm · lg
circle and diamond hold one character or a number up to two digits; longer labels get a lint warning. An unknown modifier leaves
the span as plain code.
Good Careful Bad Noted Parked on-track done liveat-risk warnblocked failpilot decisiondeferred
Component Slot progressSecond trailing span — `68%` `at-risk` timeline-listTrailing span after the title kanbanTrailing span on the card’s lane bullet ganttA token on the task bullet (live is informational here) state-chartTrailing span on the state line slopeTrailing span on the entity line
Hyphenate: at-risk, not at risk. On progress and timeline-list an
unknown word still draws, in the informational color. Only gantt warns.
Pill Where Date timeline-list: leading span · regulatory-update: last nested bullet · roadmap: phase headerMetadata Trailing code span on a row, where the component has the slot Range glossary heading, automatic
Write Gets `\[x]` · `\{LIVE}`The literal text inline-code: literal in front matterPills and inline marks off, whole deck <!-- _class: inline-code-literal -->The same, one slide Studio: Settings → Deck → General → Inline pills and marks The front-matter switch
[X], [~], {x} and fenced code blocks never draw anything.
Command Catches npm run lint:deck -- deck.mdLabel-set keys, words in circle, {x} in braces, typed ✓ ✗ npm run lint:deck -- --fix deck.mdApplies every machine fix in place
Upgrading a deck written before the six answers? See
Upgrading an older deck .