Getting StartedInstall and bootstrap headless foundations 4
FormHeadless input and selection contracts 19
LayoutHeadless structural primitives for expandable and container patterns 6
NavigationHeadless trails, trees, menus, and command surfaces 7
OverlayHeadless modal and floating layer behavior 3
FeedbackHeadless notification and status communication patterns 5
UtilityReusable action, identity, and clipboard behavior 6

API reference

Headless tabs are split into one root directive and explicit parts for the list, tab triggers, panels, and optional overflow buttons.

Directive selector

The root directive is [tngTabs]. Place tngTabList, tngTab, and tngTabPanel inside the same root so the primitive can register and synchronize them.

Selection and focus

Root input / outputTypeDefaultNotes
value, defaultValuestring | number | nullundefinedControlled and uncontrolled selection inputs.
activation'auto' | 'manual''auto'Decides whether focus movement immediately selects the tab.
orientation'horizontal' | 'vertical''horizontal'Changes arrow-key behavior and reflected orientation hooks.
scrollButtons'auto' | 'off' | 'on''off'Enables overflow scroll-button registration.
loop, dir, disabled, lazy, keepAlivebehavior inputsvariesControl navigation wrapping, direction, disabled state, and panel mount lifecycle.
(valueChange), (tabChange), (focusChange)eventsEmit when selection or roving focus changes.

Tab and panel parts

PartSelectorImportant inputsNotes
Tab list[tngTabList]ariaLabel, ariaLabelledbyReflects role="tablist" and participates in overflow measurement.
Tab[tngTab]value, disabled, panelIdReflects aria-selected, data-selected, and roving focus.
Panel[tngTabPanel]value, labelledById, unmountOnExitReflects hidden and data-active based on selection.
Scroll buttons[tngTabsScrollButtonPrev], [tngTabsScrollButtonNext]noneOptional overflow controls when you author large tab strips.