Expandable Tabs

A bar of icon tabs where the selected one widens to show its label in a pill while a panel above it resizes to fit, sliding its content left or right by the direction you moved; Escape or an outside click closes it.

Preview

Expandable Tabs preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/expandable-tabs
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

items
ExpandableTabsItem[]
—
value?
string | null

Active tab id, or null/undefined for the closed (bar-only) state.

—
defaultValue?
string | null
null
onValueChange?
((id: string | null) => void)
—
className?
string
—
classNames?
ExpandableTabsClassNames
—

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.

Updated