Morphing Tabs

Reorderable tabs whose selected item grows into a white content surface, with the active shape gliding as tabs move and a shared morph between rooms.

Preview

quiet focus

Room 2

A small space for the work that needs a little more air around it.

drag any room to reorder

Install

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

$ bunx --bun shadcn add @beui/morphing-tabs

API Reference

items
MorphingTabsItem[]
—
value?
string | null
—
defaultValue?
string | null
—
onValueChange?
((id: string | null) => void)
—
onOrderChange?
((ids: string[]) => void)

Called once after a pointer drag or keyboard reorder completes.

—
onClose?
((id: string) => void)

Enables the close affordance on every tab when provided.

—
ariaLabel?
string
Tabs
className?
string
—
classNames?
MorphingTabsClassNames
—

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