Documentation
Navigation

Tabs

A strip of tabs where one is current, with an animated indicator that follows resizes and RTL through the primitive's CSS variables.

npx shadcn@latest add @fragiola/tabs
Tabs
Gallery

The indicator

The indicator uses the primitive's CSS variables (--active-tab-*), not React measurement — it tracks on resize and under RTL automatically.

No navigation family

Tabs, navigation-menu and pagination are all "a strip of triggers", but the overlap is thinner than it first looks. Tabs and navigation-menu share state normalisation (the highlighted custom variant) but differ in cursor, rounding and state-specific treatments. Pagination is Clickable in a <nav>. No family was created — the negative result is recorded in the port report.

Parts

PartSource
RootBase UI Tabs.Root
Listlayout + border-palette-line
Tabhighlighted + palette-ring + layout
Indicatorprimitive CSS variables + bg-palette-base
PanelBase UI Tabs.Panel