Components

Motion primitives with shadcn-compatible registry endpoints.

New

Select

New

Composable select primitives whose panel bouncily unfolds out of the trigger and separates, plus a Morph variant where the trigger grows into the panel via shared layout.

Checkbox

New

Form choice control with a draw-on checkmark, spring press feedback and indeterminate state support.

Radio Group

New

Single-select choice control with a gliding layoutId indicator dot and spring press feedback.

Popover

New

Gooey popover whose panel oozes out of the trigger through an SVG goo filter — a liquid neck that stretches and pinches — with crisp content fading in on top, plus a Morph variant that clip-morphs open from the trigger corner. Click or hover trigger, controlled or uncontrolled.

Range Slider

New

Range slider with tick dots and a bouncy vertical-bar thumb that glides between snapped steps; drag and keyboard control, reduced-motion safe.

Wheel Picker

New

iOS-style picker wheel: a 3D drum on native momentum scroll that snaps to the nearest notch, with wheel, drag and keyboard control. Composes side by side for date and time pickers, reduced-motion safe.

Table

New

Virtualized data table that stays smooth at 10k+ rows, with sortable headers, row selection, column resize and reorder, and a sticky header. Minimal, reduced-motion-safe motion.

Shader Background

New

Canvas shader backgrounds (mesh gradient, grain, warp, waves, voronoi, dot orbit and more) with a single typed variant prop. Reduced-motion freezes animated variants.

Cylinder Carousel

New

A carousel whose items line the inside of a cylinder, receding into the center and growing toward the edges. Drag, scroll or arrow-key to roll it, with a springy glide and snap. Reduced-motion drops the glide.

Loader

New

Loading indicator with seventeen variants: spinner, dots, bars, dot-matrix, dither, morph, comet, scramble, metaballs, newton, helix, percent, and five terminal-style ascii spinners. Scales from one size prop, uses currentColor, and reduced-motion swaps every transform for a calm opacity pulse.

All Components

Tilt Card

3D perspective tilt on hover with cursor-tracked glare.

Button

Spring-pressed Button plus StatefulButton (idle → loading → success / error) and MagneticButton.

Marquee

Infinite horizontal or vertical scroll with pause-on-hover.

Tabs

Pill, segment or underline tabs with a spring layoutId indicator.

Switch

Toggle with a spring-driven thumb and press feedback.

Input

Text input with label, left/right icons, error shake and success check draw.

Bottom Sheet

Vaul-inspired draggable bottom sheet with snap points, inertia and glass surface.

Shared Layout Background

A pill that glides between hovered items via motion's shared layout, with blur enter/exit.

Dock

macOS-style dock with grouped actions and a gliding active pill.

Tooltip

Hover or focus tooltip with blur enter/exit and spring spawn.

Morphing Modal

Family-app-style modal. A single panel that morphs its height as you navigate between inner views, with blur cross-fade on content.

Text Animation

Animated text primitives for reveal sequences, shimmer loading states and letter-cascade swaps.

Number Animation

Animated number primitives for count-up values and rolling digit tickers.

Animated Badge

Status badge with animated state icons, pulse feedback and compact size variants.

Action Swap

CTA button and slot primitives for swapping text and icons with blur motion.

Animated Toast Stack

Stacked toasts with status morphs, swipe dismissal, actions and layout-aware motion.

Theme Toggle

Theme toggle button with a full-page rectangle clip-path reveal via the View Transition API.

Bouncy Accordion

Single-open accordion with weighted spring layout, icon rows and reduced-motion-safe content reveals.

Drawer

Side panel that slides in from the left or right with a spring, backdrop blur, body scroll lock and esc-to-close.

Scroll Animation

Scroll-driven motion: a Lenis smooth-scroll provider and a reading-progress indicator that reads from it.