Introduction
Interface components that move like real objects. A CLI copies them into a React or Next app. After that, they are yours.
What this is
A CLI and a registry. init writes tokens, cx, and a theme script. add writes a component and its CSS into your repo. Components come in sets, and each set shares one kind of motion:
- Morph. Surfaces that change shape on a spring. Glide tabs, Morph menu, Dynamic island, Gooey menu.
- Type. Text that streams, shimmers, and decodes. Shimmer text, Scramble text, Text morph, Streaming text, Thinking steps.
- Tactile. Controls with travel, detents, and a click. Keycap, Toggle, Hold to confirm, Knob.
- Physics. Stacks, tilt, and particles with weight. Tilt card, Toast stack, Confetti, Card deck.
- Mechanical. Readouts that move like hardware. Dot matrix, Split-flap, Odometer, Segment display, Level meter.
What this is not
Not a kit of buttons and inputs. Every piece here is a moment: a pill that stretches, a menu that grows out of its button, a board that flips. Bring your own basics and put these where the interface should feel alive.
No dependencies either. No animation library, no Tailwind, no Radix. The motion is CSS springs, and React only measures and keeps state.
Works with
React 18 or 19. Next App Router or Pages. Vite. The CLI detects the framework and writes files where your app already keeps components. Most of them measure and animate in the browser, so they are client components.