Skip to content
drift-uiPublic

About

A shadcn-compatible component registry. Tags input, stepper, tree view, file dropzone and more, built on Radix and Tailwind v4 and installed with the shadcn CLI.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

208 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drift-ui

drift-ui, the components shadcn left out

A shadcn-compatible component registry built on React 19, Tailwind v4, and Radix or Base UI. It covers the components shadcn/ui leaves out, like a tags input, stepper, tree view and file dropzone, and installs them with the shadcn CLI.

Browse the live previews at drift-ui.dev.

Tags input, tree view and saved views in use

Components

55 components, grouped the same way as the docs site. The primitives have the same API as their shadcn/ui counterparts, so skip any you already have. Every component page has a live preview, its source, install steps and an Open in v0 link.

Category Components
Inputs Color Picker, Date-Time Range, Duration Input, Emoji Picker, File Dropzone, Image Cropper, Inline Edit, Key Value Editor, Masked Input, Mention Textarea, Multi Select, Number Input, Password Input, Phone Input, Rating, Recurrence Editor, Secret Field, Shortcut Recorder, Signature Pad, Tags Input, Time Field, Timezone Picker, Unit Input
Structure Activity Heatmap, Avatar Group, Description List, Diff Viewer, JSON Viewer, Log Viewer, Sortable List, Stepper, Timeline, Trace Waterfall, Tree View, Uptime Bar, Virtual List
Workflow Bulk Action Bar, Comment Thread, CSV Importer, Filter Builder, Notification Inbox, Onboarding Checklist, Permission Matrix, Saved Views, Shortcut Cheatsheet, Tour, Transfer List
Primitives Avatar, Badge, Button, Card, Dialog, Input, Label, Popover

Usage

In a project that already ran npx shadcn init, install the theme and any component:

npx shadcn add @drift-ui/theme @drift-ui/tags-input @drift-ui/tree-view

@drift-ui is listed in the shadcn registry directory, so the CLI knows the namespace without any setup. Registry dependencies such as utils, button and use-controllable-state are installed automatically.

The CLI picks a build from the style in your components.json. A base- style such as base-nova gets the Base UI build, which never installs radix-ui, and any other style gets Radix. A @drift-ui entry under registries in components.json overrides the directory, so if you registered the older /r/{name}.json URL you will keep getting Radix until you delete that entry.

The same style picks the shape tokens. Components that need them depend on @drift-ui/shape, which adds control height, corner and shadow tokens to the @theme inline block in your CSS. A shadcn create style such as radix-nova or base-lyra gets the matching values for Vega, Nova, Maia, Lyra, Mira, Luma, Sera or Rhea, and any other style, including new-york, gets Vega. To switch styles later, change style in components.json and run npx shadcn add @drift-ui/shape again. Try each style on /themes before you install.

For AI agents

The site serves /llms.txt with an index of the registry and /llms-full.txt with install commands, usage notes and examples for every component.

To let a coding agent search and install components itself, set up the shadcn MCP server in a project that has a components.json:

npx shadcn@latest mcp init --client claude   # or cursor, vscode, codex, opencode

Name the namespace when you ask, for example "add @drift-ui/tags-input" or "search @drift-ui for a date picker". The server only searches registries in components.json by default, and naming @drift-ui makes it look there too.

Develop

git clone https://github.com/drift-ui/ui.git
cd ui
bun install
bun run registry:build
bun dev

The site runs at http://localhost:3000 and the built registry at http://localhost:3000/r/{name}.json.

Command What it does
bun dev Start the dev server
bun run registry:build Rebuild public/r/*.json from registry.json
bun run test Run the Vitest suite
bun run typecheck Type-check with tsc --noEmit
bun run lint Run ESLint
bun run format Format with Prettier
bun run build Build the registry, then the production site

Layout

registry.json                  item manifest read by `shadcn build`
registry/default/ui/*.tsx      component source
registry/default/lib/*.ts      cn() helper and pure logic behind components
registry/default/hooks/*.ts    shared hooks such as use-controllable-state
components/preview/*           live demos, also used as usage examples in the docs
components/docs/*              docs site UI
components/landing/*           landing page sections
lib/catalog.ts                 component categories, alphabetical within each
lib/agent-docs/*               content for /llms.txt and /llms-full.txt
tests/                         Vitest suites for components and lib code
public/r/*.json                gitignored build output, served as static files

Contributing

Bug reports, component requests and pull requests are welcome. Open an issue to report a bug or request a component. Read CONTRIBUTING.md for setup, the steps to add a component, and the commit conventions. Coding agents start from AGENTS.md. Everyone with a merged pull request is listed on the contributors page.

License

MIT

About

A shadcn-compatible component registry. Tags input, stepper, tree view, file dropzone and more, built on Radix and Tailwind v4 and installed with the shadcn CLI.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages