Components

30 components. Each preview is the real thing, built from the same source the CLI installs.

30 shown

ButtonGeneral

Displays a button with multiple variants and sizes.

CardLayout
Create project
Deploy your new project in one-click.

Your project is ready to ship.

Displays a card with header, content, and footer sections.

SpotlightBackgrounds

Move your cursor

The glow follows you.

A container with a soft glow that follows the cursor. Perfect for hero sections.

Dot GridBackgrounds

Content sits above the grid.

A dotted texture layer that dissolves outward. Drop it under any section.

MarqueeAnimation
ButtonsCardsSpotlightDot GridDialogBadges

An infinite scrolling row with edge fade. Children loop seamlessly.

0components

Counts up to a value the first time it scrolls into view.

scroll-progress.tsx

Place it in a fixed bar and it fills as the page scrolls.

A spring-smoothed bar that tracks document scroll.

Glare CardEffects

Hover me

The glare tracks your pointer.

A card with a soft glare that follows the pointer.

01Copy the command
02Paste into your app
03Own the source

Reveals its children in sequence when scrolled into view.

Light runs the edge

Pure CSS, no JS per frame.

A light travelling around the border of any element.

Words arrive one by one

Blurs and lifts each word into place, in sequence.

AccordionGeneral

No. Each component is copied into your project as source, so you own it and edit it freely.

Yes. Every component ships as a plain client component with no framework-specific API.

That is the point. Tailwind classes are right there in the file, with no runtime theme to fight.

Panels unfold from a hairline, each open on its own.

GaugeAnimation

42

Build health

A half-circle meter whose needle springs to the value.

Loader SetAnimation

Ring, dots, bar, and skeleton, each with a finished state.

ALGAB+1

Overlapping avatars that fan out on hover and focus.

Copies
9

Minus and plus around a display that rolls digit by digit.

A pill that grows into a real input and stays clickable.

OTP InputGeneral

Hint: the code is 246810.

One-time-code slots with paste fan-out and success rings.

Code BlockGeneral
verify.tsx
import { OtpInput } from "@/components/ui/otp-input";
export function Verify() {
const [code, setCode] = useState(""); // typed digits land here
if (!code) return null;
return <OtpInput length={6} value={code} onChange={setCode} />;
}

Framed code with line numbers and copy, no highlighter needed.

Gooey NavNavigation

Segmented nav where the active pill melts between stops.

A button that leans toward the cursor, then settles.

Own the source.

Headlines that decode through glyphs, left to right.

Shipped
Wireframe
BeforeAfter

Before and after split by a draggable divider.

A knob that must travel to commit, flicks count too.

A destructive action that only fires if you keep holding.

Tilt CardAnimation

Tilt me

The card follows your pointer with real perspective.

A card that tips toward the pointer with real perspective.

A radio group where the selection pill stretches as it travels.

A self-drawing line chart that scales to any width.

Task ListGeneral

Checklist where finishing a row sweeps a strike across it.

copy it, read it, own it, change itcopy it

Cycles words by moving the letters they share.