Adres
Playground/ docs
Components

List Nav

Vertical navigation lists with titles, icons, trailing badges, and stacked groups.

List Nav

With title — settings & section jumpers

The most common shape: an eyebrow title above a vertical list of buttons. Each item is a real <button> by default — wire onClick to scroll, navigate, or filter. The active row uses brand-aware tokens (bg-primary-muted + text-primary-strong) so it picks up the current theme automatically and emits aria-current="page".

Without title — flat filter list

Omit title when the list is a single group that doesn't need an eyebrow — e.g. a status filter in a side panel where the panel's own heading already labels the section.

With leading icons — sidebar-adjacent nav

An icon on each item adds a scannable visual anchor without making the list feel as heavy as a full app-shell Sidebar. The icon column is fixed at size-4 so labels stay aligned.

Trailing slot — counts & badges

Pass a trailing node to add a Badge, count, or shortcut hint to the inline-end of an item. The slot is independent of the label so it stays glued to the right edge in LTR and the left edge in RTL automatically.

Inset alignment — mixed icon & plain rows

When a list mixes items with and without icons, pass inset on the icon-less ones to reserve the icon column and keep labels aligned. Without inset, plain items slide left where the icon would be.

Without inset (misaligned)

With inset (aligned)

Stacked groups — table of contents

Compose multiple ListNavs vertically when the navigation needs more than one group — each owns its own title. This is exactly the pattern the playground's own left navigation uses.

Sizes — base · lg

size="base" (default) is compact for dense desktop lists; size="lg" adds padding and a larger label + icon for a comfortable, touch-friendly tap target.

base

lg — touch