Skip to content
Navigation

Tabs

An accessible tabbed interface. Supports roving tabindex, arrow key navigation, and a pills variant.

LlmTabGroup + LlmTab
WCAG AA0 deps

Demo

Live PreviewReact
jsx
<LlmTabGroup selectedIndex={0}>
  <LlmTab label="Account">Account settings content.</LlmTab>
  <LlmTab label="Notifications">Notification preferences.</LlmTab>
  <LlmTab label="Billing" disabled={true}>Billing info.</LlmTab>
</LlmTabGroup>

API (Angular)

PropTypeDefaultDescription
selectedIndexnumber0Index of the selected tab
onSelectedIndexChange(index: number) => voidCalled when selection changes
variant'default' | 'pills''default'Visual style of the tab strip

Composition parts

Tabs is composed from the parts below. Each part is its own component — drop the ones you don't need.

LlmTab

A single tab + panel pair. Children render inside the panel; the label renders in the tablist.

PropTypeDefaultDescription
labelstringText shown on the tab button (required).
disabledbooleanfalseSkip this tab in keyboard navigation and prevent activation.

Import

ts
import { LlmTabGroup, LlmTab } from '@atelier-ui/angular';

Accessibility

ARIA roletablist / tab / tabpanel

KeyAction
Arrow Left / RightMove between tabs. Focus wraps at the ends.
Home / EndJump to the first / last tab.
Enter / SpaceActivate the focused tab (manual activation mode).
  • Tabs use roving tabindex — only the active tab is in the document tab sequence.
  • Each LlmTab has aria-controls pointing at its panel, and the panel has aria-labelledby pointing back at the tab. Disabled tabs are skipped by arrow navigation.