Tabs
Switch between related views of the same data in a shared context. Supports label-only, label + count badge (for filters), label + notification dot, icon + label, icon-only, and icon + label + badge. Use for view filters, settings groups, or tabbed content blocks.
a11y (built in): the full APG tabs pattern is stamped by the controller — LB.Tabs applies role=tablist/tab/tabpanel and wires aria-controls + aria-labelledby from generated ids, so authors only mark the active tab with aria-selected="true". A roving tabindex keeps exactly one tab in the page tab order; ←/→ wrap around the set, Home/End jump to the ends, disabled tabs are skipped, and selection follows focus while inactive panels are toggled with the hidden attribute. Tabs are real buttons, the selected one gains an underline as well as a color change, and icon-only tabs carry aria-label with the glyph aria-hidden.
Usage: Root gets data-lb-tabs. Each tab uses aria-selected="true" on the active button; LB.Tabs supplies the rest — role, aria-controls, aria-labelledby and the roving tabindex. Icon-only tabs need aria-label on the button.