Data display
IDescriptionList
Term and value pairs — a details panel, an order summary, a record's metadata.
- Invoice
- INV-2048
- Issued
- 12 August 2026
- Due
- 11 September 2026
- Amount
- €4,280.00
Orientation
vertical stacks the description under its term. horizontal puts them side by side, with the terms sharing one column — the columns are a subgrid, so every value lines up however long the terms run.
- Plan
- Team
- Seats
- 12
- Renews
- 1 October 2026
- Plan
- Team
- Seats
- 12
- Renews
- 1 October 2026
Divided
divided rules the rows apart instead of spacing them, for a long list where the eye needs the row boundary.
- Status
- Paid
- Method
- Bank transfer
- Reference
- SI56 1910 0000 0123 438
- Settled
- 14 August 2026
Slots
The term and description slots take over the rendering of every row, each receiving the item and its index.
- Status
- Owner
- Dana Whitfield
- Reference
- INV-2048
The default slot renders after the items, for a row that does not fit the items shape at all. Write it as <div><dt>…</dt><dd>…</dd></div> so it keeps the row layout.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
items | DescriptionListItem[] | [] | The pairs, each { term, description?, key? } |
orientation | 'vertical' | 'horizontal' | 'vertical' | Stacked, or term and value side by side |
divided | boolean | false | Rule between rows instead of spacing |
unstyled | boolean | — | Drop built-in classes |
class | string | — | Merged with the built-in classes |
ui | { root?, item?, term?, description? } | — | Per-element class overrides |
key is only an identity — it names the row for the slots and keys the render. Rows fall back to their term when it is absent, so give a key when two rows share a term.
Slots
| Slot | When to use it |
|---|---|
term | The label needs markup, receiving { item, index } |
description | The value needs markup — a badge, a link, a chip — receiving { item, index } |
default | An extra row that does not fit the items shape |