Fulldev UI works with shadcn/ui presets.
A preset is a short code, such as b0, for a set of design choices. Build one on
the Create page, or on ui.shadcn.com/create.
What a preset sets
- Style: the shape of components, such as radius, density, and type. Fulldev UI supports all shadcn/ui styles: Vega, Nova, Maia, Lyra, Mira, Luma, Sera, and Rhea.
- Theme: the base color, theme color, chart colors, radius, and menu accent, as CSS variables in your stylesheet.
- Fonts: the body and heading fonts.
- Menu color: default or inverted, solid or translucent menus.
Fulldev UI serves the Base UI styles (base-vega, base-nova, and so on) and
uses Lucide icons, so keep a base- style and the Lucide icon library. The
shadcn CLI applies menu colors to React components only, so the Astro menus,
selects, and comboboxes of Fulldev UI install with the default menu color. The
docs previews show every menu color.
Start a project with a preset
In your Astro project, initialize Fulldev UI in the preset’s style, then apply the preset’s theme and fonts:
npx shadcn@latest init https://ui.full.dev/r/styles/base-<style>/base.json
npx shadcn@latest apply <preset> --only theme,font
Replace <style> with the preset’s style, such as vega or nova. The
Create page fills in both commands for you. init writes
components.json with the @fulldev registry, so you can add components right
away, for example npx shadcn@latest add @fulldev/button.
Switch an existing project
To change only the theme and fonts, apply those parts of the preset. Your style and components stay as they are:
npx shadcn@latest apply <preset> --only theme,font
To also change the style, set style in components.json to the preset’s
style, such as base-nova, apply the theme and fonts, then reinstall the
Fulldev UI components you use so they take the new style:
npx shadcn@latest apply <preset> --only theme,font
npx shadcn@latest add @fulldev/button @fulldev/card --overwrite
Commit your changes first, because --overwrite replaces your component files.
This also works for a project with a legacy style such as new-york.
Check first that the @fulldev registry in components.json is
https://ui.full.dev/r/styles/{style}/{name}.json. An older URL without
{style} always installs the Vega components.
Avoid a full apply <preset> in a Fulldev UI project. It adds
@base-ui/react and lucide-react, which Fulldev UI does not use, and it
turns a legacy style such as new-york into a radix- style, which Fulldev UI
does not serve.
apply keeps radius mappings that are already in your stylesheet. A project
set up before Fulldev UI 0.18 has the older scale, --radius-sm to
--radius-xl as calc(var(--radius) - 4px) and so on. To match the current
shadcn/ui scale, replace them with calc(var(--radius) * 0.6) for sm, 0.8
for md, 1.4 for xl, and add 2xl to 4xl at 1.8, 2.2, and 2.6.
Inspect a preset
npx shadcn@latest preset decode <preset>
npx shadcn@latest preset resolve
decode shows the choices in a code, and resolve shows the preset of the
current project.