table
ComparisonLedgerProse
The table component — a GFM pipe table with a row capacity, autosplit, and the portrait card reshape.
Use when the table IS the slide. A plain markdown table on any slide already gets the house treatment; reach for this when the rows need a capacity budget, autosplit, focus axes, or the portrait reshape.
tradeoffrankingassessmentreference
When to use
- The table IS the slide. A plain markdown table on any slide already gets the house treatment — same type, rails, hairlines and zebra. Reach for
tablewhen the rows need what only a component can declare: a capacity budget, autosplit, the portrait card reshape, and therow/col/cellfocus axes. - Three or more columns, or four or more rows.
compare-prosemaxes out at two options with prose bodies. A table scales past that, as long as the cells stay short. - Cells are short phrases. Each cell is a value, a phrase, or a state marker — not a paragraph. If the cells need sentences, use
verdict-gridorcards-stack. - Stable column meaning. Every row reads the same way across columns. Mixing column meanings row-to-row breaks the table's scannability.
When not to use
- Cells full of prose. Long sentences in a cell wrap awkwardly and force the column wider. Move to
verdict-gridfor criteria with body text, orcards-stackfor full prose rows. - More than 6 rows. Past 6 rows the table crowds the slide. Split across two slides or summarize the rows that don't differentiate.
- A table that only supports the prose around it. Then it does not need this class at all — write the pipe table on a
contentor un-classed slide and the universal treatment styles it. The component is for a table that owns the slide. - Reaching for it when a specialist fits better. Mostly pass/fail badges is
obligation-matrixorverdict-grid; term/definition pairs areglossary; a dated plan isroadmap.
Common mistakes
- Writing a vague or duplicate first column, assuming it's just another data column. When the table overflows a narrow box, the Fit Ladder reshapes it into row-cards (column headers become in-card labels) instead of clipping — the FIRST column becomes each card's title in that reshape, so it needs to be a genuinely identifying label per row. This happens automatically and needs no opt-in.
- Expecting the first column's
**bold**to show when the column is already emphasized as a row label. The row-label emphasis sets the same weight and ink**bold**would, so bolding inside it is a no-op.no-row-labelturns the emphasis off and hands the column back to you. - Reaching for a CSS override to make a short table fill the slide.
table-fillis the switch — it grows the table AND centers each cell in its band. The default hugs the rows and centers the block, so a three-row table reads as three rows rather than three rows stretched over a screen. The centering issafe: a table too long for its slide or pane keeps its header row at the top and clips at the bottom, never at both ends.
Authoring
<!-- _class: table -->
## Heading framing the comparison.
| Criterion | Option A | Option B | Option C |
| --- | --- | --- | --- |
| First criterion | Value | Value | Value |
| Second criterion | Value | Value | Value |
| Third criterion | Value | Value | Value |Slots
| Slot | Selector | Required | Description |
|---|---|---|---|
title | h2 | yes | Slide heading framing what the table shows. |
table | table | yes | Markdown table with a header row and 2+ data rows. Column alignment is markdown's own (:---, :---:, ---:). |
Anatomy
┌─────────────────────────────────────────┐
│ header │
│ LABEL │
│ Here are the numbers side by side. │
│ │
│ ┌───────────┬───────────┬───────────┐ │
│ │ │ Option A │ Option B │ │
│ ├───────────┼───────────┼───────────┤ │
│ │ Row 1 │ ✓ │ ✕ │ │
│ │ Row 2 │ ✕ │ ✓ │ │
│ │ Row 3 │ ✓ │ ✓ │ │
│ │ Row 4 │ ⚠ │ ✓ │ │
│ └───────────┴───────────┴───────────┘ │
│ Footnote text for scope caveats. │
│ footer 11/19 │
└─────────────────────────────────────────┘Guides
- The six answerswhat each state marker means
- Marks in layoutsthe
state-cellsswitch that draws marks in table cells
Related
- compare-proseexactly two options with prose bodies
- verdict-gridoptions scored against criteria with pass/partial/fail badges
- obligation-matrixmany regimes compared against shared obligations
- cards-stackeach row needs full-prose breathing room rather than a tabular cell