Home / Primitives / Tabs

Tabs

Switch between sibling views of the same record. Three visual styles for three roles — underline for top-of-page hierarchy, segmented for inline switches, pill for filtering.

Stable Canonical 3 variants · vertical option

Canonical tab-strip primitive.

Per audit-reuse D-7, p-tabs is the single tab primitive, folding the three visual styles (.under-tabs, .seg-tabs, .iconstrip) into one API. Legacy .kit-tab / .tabs / .tabstrip markup keeps working through deprecation aliases in components.css.

Underline

Top-of-page tabs. The 2 px brand underline reads as primary navigation.

Detail-page tabs .utabs

Segmented

Filled pill-of-buttons. Use inline (inside a card) where underline would compete with the page hierarchy.

Period selector — segmented .stabs

Pill

Filter-style tabs that read as choices, not as primary navigation. Good for filter rails and category switches.

Branch filter — pill .ptabs

Vertical

For settings rails and side-anchored content switches. Always pair with content right.

Branch profile

Park Centre · 24 Borrowdale Rd, Harare · Opened 14 Feb 2019.

Vertical tabs · settings rail .vtabs

Parts

PropertyValueNotes
tab height40 px underline · 36 segmented · 32 pill
indicator2 px brand underline · brand-soft fill · ink fillOne per variant
icon14 px leadingOptional
count badge10 px mono · 9999 radiusInline after label
keyboard← / → cycles · Home / End jumpRoving tabindex

Do & don't

Do

Pick one tab style per page. Mixing them muddles hierarchy.

Don't

Use tabs for primary navigation between top-level surfaces — that's the sidebar.

Do

Always have one selected tab. Tabs are never "all unselected".

Don't

Put 8+ tabs in a row. If you have that many sections, use a sidebar layout.

Related

For multi-aspect detail pages, see the Detail tabs pattern. For mutually-exclusive 2–4 options, prefer the Segmented control.