Skip to content
Fleetline

Description list

Usage

Use a description list for the fields of one object: a vehicle's registration, odometer, next service. Use a table to compare several objects, and a form when the values are editable.

Content: terms are nouns in sentence case ("Next service"), values include units ("84,212 km"). Show an em dash for empty values with "Not set" for screen readers — never leave a value blank.

Anatomy

  1. List — <dl class="dl">
  2. Row — div.dl__row wrapping one dt/dd pair (valid HTML)
  3. Term — <dt>
  4. Value — <dd>; numbers get .dl__num
  5. Empty value — .dl__empty em dash + .sr-only "Not set"

Examples

States marked hover and focus-visible are frozen with .is-hover and .is-focus-visible. Those classes share their rule with the real pseudo-class; never use them in product code.

Description list

Vehicle details. Horizontal lists fall back to stacked when narrower than 28rem.

Registration
KX-219
Make and model
Ford Transit 350 L3
Odometer
84,212 km
Next service
21 Oct 2026 or 86,000 km
Assigned driver
Not set
Registration
KX-219
Make and model
Ford Transit 350 L3
Odometer
84,212 km
Next service
21 Oct 2026 or 86,000 km
Assigned driver
Not set
<dl class="dl dl--horizontal">
  <div class="dl__row"><dt>Registration</dt><dd>KX-219</dd></div>
  <div class="dl__row"><dt>Make and model</dt><dd>Ford Transit 350 L3</dd></div>
  <div class="dl__row"><dt>Odometer</dt><dd class="dl__num">84,212 km</dd></div>
  <div class="dl__row"><dt>Next service</dt><dd>21 Oct 2026 or 86,000 km</dd></div>
  <div class="dl__row"><dt>Assigned driver</dt><dd><span class="dl__empty" aria-hidden="true">—</span><span class="sr-only">Not set</span></dd></div>
</dl>

API

HookValuesPurpose
.dlblock classStacked list with row dividers
.dl--horizontalmodifier classTwo columns aligned with subgrid; stacked under 28rem container width
.dl__rowpart classRow wrapper
.dl__numpart classTabular numerals
.dl__emptypart classMuted dash for missing values
[data-density="compact"]ancestor attributeTighter rows

Do and don't

Odometer: 84,212 km

Do include the unit with the value.

Assigned driver: (blank)

Don’t leave an empty value; show — with "Not set".

<div><dt><dd></div>

Do wrap pairs in div to style rows.

A two-column table for one vehicle's fields

Don’t use a table for key/value pairs of one item.

Accessibility

Description lists are static content; no keyboard behavior.

Tokens

Custom propertyPurpose
--color-text-mutedTerms, empty dash
--color-text-defaultValues
--color-border-defaultRow dividers
--space-3 | -2 | -6Row padding (comfortable / compact), column gap
--font-size-sm, --font-weight-mediumTerm text