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
{}
value?
string | null
defaultValue?
string | null
onValueChange?
((id: string | null) => void)
onOrderChange?
((ids: {}) => 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