Installation
Two commands and you have your first component.
Before you start
You need a React project with Tailwind CSS v4 and the @/ import alias. Next.js sets the alias up for you. With Vite, add it to your tsconfig and vite.config first.
1. Set up your project
npx yeaui initRun this once. It adds the design tokens to your global stylesheet, creates a cn helper in lib/utils.ts and installs the few packages the components rely on.
bg-gray-100 or rounded-lg stop working, so try it on a branch first.2. Add components
npx yeaui add button dialog tabsAdd as many as you like in one go. If a component needs another one, it comes along automatically. Every page in the component index has its own command ready to copy.
3. Use them
import { Button } from "@/components/ui/button"
export const SaveButton = () => <Button>Save</Button>Components land in components/ui. They are your files now, so change whatever you want.
Dark mode
Put the dark class on <html> and everything switches. Any theme switcher that sets a class works, including next-themes.
document.documentElement.classList.toggle("dark")Already using the shadcn CLI
yea-ui is a regular shadcn registry, so you can keep the CLI you already have. Add the namespace to components.json, then install by name.
{
"registries": {
"@yea": "https://yea-ui.vercel.app/r/{name}.json"
}
}npx shadcn@latest add @yea/style
npx shadcn@latest add @yea/button @yea/dialogWithout a CLI
Every component page has a Manual tab with the packages to install and the full source. Copy the file into components/ui. You still need step 1, because the components use its tokens.
