compare-table — Lattice component

compare-table

ComparisonLedgerProse

Multi-row comparison table with consistent columns.

Open in Playground

Use when you have 3+ options or 4+ rows of criteria. Wider data than compare-prose can hold legibly.

tradeoffrankingassessment

When to use

  • Wider than compare-prose. Three or more options, or four or more rows of criteria. compare-prose maxes out at two columns and short bodies; compare-table scales further.
  • 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-grid or cards-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 table cell wrap awkwardly and force the column wider. Move to verdict-grid for criteria with body text, or cards-stack for full prose rows.
  • More than 6 rows. Past 6 rows the table density crowds the slide. Split into two slides or summarize the rows that don't differentiate.
  • State-marker rows. When most cells are pass/fail/partial badges, the right layout is obligation-matrix or verdict-grid. compare-table is for textual values.

Common mistakes

  • Writing a vague or duplicate first column, assuming it's just another data column. When the deck opts into autosplit: on and the table overflows a portrait/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. Without autosplit: on, an overflowing table is not automatically protected this way.

Authoring

<!-- _class: compare-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

SlotSelectorRequiredDescription
titleh2yesSlide heading framing the comparison.
tabletableyesMarkdown table with header row and 2+ data rows.

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  │
└─────────────────────────────────────────┘

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