Components

Every component ships as a standalone shadcn registry item. Install individually or browse them all here.

GooeyTabs

An animated tab bar where a single gooey SVG blob morphs between the active pill tab and the expanded content panel. Supports automatic and manual height adjustment.

The HyperText Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content.
npx shadcn@latest add @gooui/gooey-tabs
PropTypeDefaultDescription
items{ id, label, content }[]Array of tab definitions.
defaultActiveIdstringInitially active tab ID.
colorstringBlob color (any CSS color).
tabWidthnumber100Width per tab pill in px.
tabHeightnumber36Height of tab pill in px.
gapnumber4Gap between tabs in px.
panelHeightnumberExplicit content panel height.
maxPanelHeightnumberMax panel height with scroll.
widthnumberOverall container width.

GooeyDialog

A bottom-pill dialog that springs open with an organic gooey merge effect. The pill trigger appears to melt upward into the expanded body using a scaleY(-1) SVG flip and spring physics.

npx shadcn@latest add @gooui/gooey-dialog
PropTypeDefaultDescription
openbooleanControlled open state.
onOpenChange(open: boolean) => voidOpen state change handler.
triggerReact.ReactNodeTrigger element rendered as the pill.
childrenReact.ReactNodeDialog body content.
blobColorstring"#8b5cf6"Gooey blob color.
expandedWidthnumber360Width of expanded body in px.
bodyMaxHeightnumber400Max body height in px.
pillHeightnumber40Pill trigger height in px.
showBackdropbooleantrueShow backdrop blur overlay.

GooeyButton

A button wrapped in a gooey SVG filter. Expands padding on hover for an organic, pulsing effect. Fully color-customizable.

npx shadcn@latest add @gooui/gooey-button
PropTypeDefaultDescription
childrenReact.ReactNodeButton content.
colorstring"#8b5cf6"Background color.
textColorstring"#fff"Text color.
filterIdstringCustom SVG filter ID.

GooeyBadge

Small inline badges with gooey filter effect. Five semantic variants for status indicators.

Success
Error
Warning
Info
Neutral
npx shadcn@latest add @gooui/gooey-badge
PropTypeDefaultDescription
childrenReact.ReactNodeBadge content.
variant"success" | "error" | "warning" | "info" | "neutral""neutral"Semantic variant.
filterIdstringCustom SVG filter ID.