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

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.