Display Lists

Lists

Flexible list primitives for every use case. Apply wf-list to any ul , ol , or div and compose with type, density, separator, and interaction modifiers.

Basic

Use on a div with wf-list-item children, or on a native ul / ol with li children.

Div list

A list of groups related content

First item
Second item
Third item
HTML
<div class="wf-list">
  <div class="wf-list-item">First item</div>
  <div class="wf-list-item">Second item</div>
  <div class="wf-list-item">Third item</div>
</div>

Native ul / ol

A native ordered numerically or bulleted list

  • Apples
  • Oranges
  • Bananas
  1. Install
  2. Import
  3. Use
HTML
<ul class="wf-list">
  <li>Apples</li>
  <li>Oranges</li>
</ul>

<ol class="wf-list">
  <li>Install</li>
  <li>Import</li>
</ol>

Icon & Content

Add a leading icon with wf-list-icon and rich content with wf-list-content , wf-list-header , and wf-list-description .

Icon list

A list item can contain an icon.

Payment processed
Order confirmed
Shipping pending
Delivery failed
HTML
<div class="wf-list">
  <div class="wf-list-item wf-items-center">
    <i class="icon check circle wf-list-icon" aria-hidden="true"></i>
    Payment processed
  </div>
</div>

Header & description

A list item can contain a header and description.

Alex Johnson alex@example.com
Preferences Language, timezone, notifications
Security Password and two-factor auth
HTML
<div class="wf-list">
  <div class="wf-list-item">
    <i class="icon user wf-list-icon" aria-hidden="true"></i>
    <div class="wf-list-content">
      <span class="wf-list-header">Alex Johnson</span>
      <span class="wf-list-description">alex@example.com</span>
    </div>
  </div>
</div>

Types

Custom bullet, numbered, link, selection, animated, and todo list types.

Bulleted & ordered

A list can mark items with a bullet.

Red
Green
Blue
First
Second
Third
HTML
<!-- CSS bullet -->
<div class="wf-list wf-list-bulleted">
  <div class="wf-list-item">Red</div>
</div>

<!-- CSS counter -->
<div class="wf-list wf-list-ordered">
  <div class="wf-list-item">First</div>
</div>

Link list

A list can be specially formatted for navigation links.

HTML
<div class="wf-list wf-list-link">
  <a class="wf-list-item wf-active" href="#">Dashboard</a>
  <a class="wf-list-item" href="#">Analytics</a>
  <a class="wf-list-item" href="#">Settings</a>
</div>

Selection list

Hover and active highlight. Add wf-active via JavaScript on click.

Inbox 12 unread messages
Starred 3 items
Trash Empty
HTML
<div class="wf-list wf-list-selection">
  <div class="wf-list-item">…</div>
  <!-- Active item -->
  <div class="wf-list-item wf-active">…</div>
</div>

Animated & todo

A list can be animated to set the current item apart from the list.

Hover to see slide
Items shift right
Background tint
  • Write documentation
  • Review PR
  • Deploy to staging
  • Run regression tests
HTML
<!-- Animated slide -->
<div class="wf-list wf-list-animated">
  <div class="wf-list-item">…</div>
</div>

<!-- Todo — checked items auto strikethrough -->
<ul class="wf-list wf-list-todo">
  <li><input type="checkbox" checked> Done task</li>
  <li><input type="checkbox"> Pending task</li>
</ul>

Separators

Add hairlines between items with wf-list-divided , or full cell borders with wf-list-celled .

Divided wf-list-divided

A list can show divisions between content.

Profile Edit your details
Notifications Manage alerts
Privacy Control your data
HTML
<div class="wf-list wf-list-divided">
  <div class="wf-list-item">…</div>
  <div class="wf-list-item">…</div>
</div>

Celled wf-list-celled

A list can divide its items into cells.

Production DB Online
Staging DB Degraded
Dev DB Offline
HTML
<div class="wf-list wf-list-celled">
  <div class="wf-list-item">…</div>
  <div class="wf-list-item">…</div>
</div>

Horizontal

Add wf-list-horizontal for a flex row. Combine with wf-list-bulleted or wf-list-divided for separators between inline items.

Home
Products
Pricing
Docs
June 2026
Alex J.
Release
HTML
<!-- Horizontal with bullet separators -->
<div class="wf-list wf-list-horizontal wf-list-bulleted">
  <div class="wf-list-item">Home</div>
  <div class="wf-list-item">Products</div>
</div>

<!-- Horizontal with divider separators -->
<div class="wf-list wf-list-horizontal wf-list-divided">
  <div class="wf-list-item">June 2026</div>
  <div class="wf-list-item">Alex J.</div>
</div>

Density

Control vertical padding via density modifiers. The spacing scale utilities wf-list-space-* map to the global space tokens for fine-grained control.

Compact — 0.25 rem

Item one
Item two
Item three

Default — 0.5 rem

Item one
Item two
Item three

Relaxed — 0.75 rem

Item one
Item two
Item three

Very relaxed — 1.125 rem

Item one
Item two
Item three
HTML
<div class="wf-list wf-list-compact">…</div>       <!-- 0.25 rem -->
<div class="wf-list">…</div>                      <!-- 0.5 rem (default) -->
<div class="wf-list wf-list-relaxed">…</div>      <!-- 0.75 rem -->
<div class="wf-list wf-list-very-relaxed">…</div> <!-- 1.125 rem -->

Table List

wf-table-list creates a two-column max-content / 1fr grid — ideal for label / value pairs.

Alex Johnson alex@example.com Administrator January 14, 2024 Active
HTML
<div class="wf-table-list">
  <label>Full name</label>
  <span>Alex Johnson</span>

  <label>Email</label>
  <span>alex@example.com</span>

  <label>Status</label>
  <span><span class="wd-badge wd-badge-positive">Active</span></span>
</div>

Sizes

Four size modifiers scale both font and icon sizes together.

xs — 0.75 rem

Item one
Item two

sm — 0.875 rem

Item one
Item two

Default — 1rem

Item one
Item two

lg — 1.125 rem

Item one
Item two

xl — 1.25 rem

Item one
Item two
HTML
<div class="wf-list wf-list-xs">…</div>   <!-- 0.75 rem -->
<div class="wf-list wf-list-sm">…</div>   <!-- 0.875 rem -->
<div class="wf-list">…</div>              <!-- 1 rem (default) -->
<div class="wf-list wf-list-lg">…</div>   <!-- 1.125 rem -->
<div class="wf-list wf-list-xl">…</div>   <!-- 1.25 rem -->

Custom Properties

Property Default Description
--wf-list-icon-color var(--wf-text-muted) Public custom property for icon color. Override on any parent element to tint all icons.
--_list-pad-v .5rem Vertical padding on each item. Driven by density modifiers.
--_list-pad-h 0 Horizontal padding on each item.
--_list-gap .625rem Gap between the icon and the content within an item.
--_list-hover-bg var(--wf-surface-subtle) Hover background for wf-list-selection and wf-list-animated .
--_list-active-bg rgba(20,99,255,.07) Active item background for wf-list-selection .
--_list-border var(--wf-border) Color of divided and celled borders.
--_list-icon-size 1rem Icon size. Driven by size modifiers ( wf-list-xswf-list-xl ).

Class Reference

All modifier classes available on .wf-list

Class Type Description
wf-list Base Required. Resets margins, padding, and list-style. Works on div , ul , and ol .
wf-list-item Structure Flex row item. Use on direct children of a div.wf-list . For ul / ol use native li elements.
wf-list-content Structure Flex-grow content block inside an item. Prevents the text column from shrinking.
wf-list-header / wf-list-description Structure Bold heading and muted description inside wf-list-content .
wf-list-icon Structure Flex-shrink icon aligned with the item. Color set by --wf-list-icon-color .
wf-list-bulleted / wf-list-ordered Type CSS-generated bullet (•) or auto-incremented counter via ::before . Applied to div.wf-list .
wf-list-link Type Navigation list — items get a hover color. Add wf-active to mark the current item.
wf-list-selection Type Clickable selection list with hover and active backgrounds. Add wf-active to highlight the selected item.
wf-list-animated Type Items slide to the right on hover with a background tint.
wf-list-todo Type Checkbox list — checked items get a strikethrough and muted color automatically via :has() .
wf-list-horizontal Layout Renders items in a flex row. Combine with wf-list-bulleted or wf-list-divided for separators.
wf-list-divided / wf-list-celled Separator divided — hairline between items. celled — full top/bottom border around the list. Both work on vertical and horizontal lists.
wf-list-compact / wf-list-relaxed / wf-list-very-relaxed Density Vertical padding steps: 0.25 rem / 0.75 rem / 1.125 rem. Default is 0.5 rem.
wf-list-xs / -sm / -lg / -xl Size Font and icon size variants: 0.75 / 0.875 / 1.125 / 1.25 rem.
wf-table-list Utility Two-column grid for label / value pairs. Place on a container; direct children alternate as label and value.
Show More