You need a React project with Tailwind CSS v4 and the @/* import alias for
src/*, such as a Vite or Next.js project.
New project
Initialize from the Fulldev UI base. It writes components.json with the
@fulldev registry, the theme tokens, the class helper and dependencies:
npx shadcn@latest init https://ui.full.dev/r/react/styles/base-vega/base.json
Replace base-vega with another shadcn/ui style, such as base-nova.
Existing project
If the project has a components.json, do not run init again: it replaces
the theme tokens. Add the registry instead:
{
"registries": {
"@fulldev": "https://ui.full.dev/r/react/styles/{style}/{name}.json"
}
}
Then install the helpers, which leave your theme alone:
npx shadcn@latest add @fulldev/init
Fulldev UI serves the Base UI styles only. If style in components.json is
a legacy style such as new-york, or starts with radix-, set it to a Base UI
style such as base-vega first.
Add components
npx shadcn@latest add @fulldev/button @fulldev/hero-1
Add the examples of a component with @fulldev/<name>-examples, and every
component or block with @fulldev/components and @fulldev/blocks.
import { Hero1 } from "@/components/blocks/hero-1"
import { Button } from "@/components/ui/button"
Notes
Iconrenders any Lucide icon or Simple Icons brand by its content name, such asrocketorfigma;lucide:andsimple:pick a set. With only anhref, it shows the brand of a social or contact link. It includes both sets, about 2 MB gzipped in a client bundle; in a server component it stays on the server. Import an icon fixed in code fromlucide-reactorsimple-iconsdirectly.Doc1adds a copy button to<pre>elements passed as direct children. Map compiled MDX to the exported code block:<Content components={{ pre: Doc1CodeBlock }} />.- Wrap the app in
ThemeProviderfrom@/components/ui/theme-toggleto useThemeToggle. - The Sonner examples need a
<Toaster />from@/components/ui/sonnerin the root layout, as in the Sonner docs.