Components

Interactions that make it feel expensive.

71 hand-built React components where every change of state is a moment. Install one with the shadcn CLI and it takes on your theme. Free for personal and commercial projects.

Installation

  1. 01

    Have shadcn/ui set up

    Any style. The components read its theme variables (background, foreground, primary, border), so they look like the rest of your app.

    $ npx shadcn@latest init
  2. 02

    Add a component

    One file lands in your components folder, with the keyframes it needs added to your CSS and any component it builds on installed too.

    $ npx shadcn@latest add https://hairlineui.com/r/number-roll.json
  3. 03

    Use it

    import { NumberRoll } from "@/components/number-roll";
    
    <NumberRoll value={downloads} />
    <NumberRoll value={price} format={{ style: "currency", currency: "USD", maximumFractionDigits: 0 }} />

    React 19, Tailwind CSS v4 and shadcn/ui theme variables (any style). Icons from lucide-react.

All 71 components

Registry index

Building an AI product? Our landing page templates are made the same way, and use these components.

Browse templates