Presets

Use shadcn/ui presets to set the style, theme, and fonts of Fulldev UI.

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.

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. Menu colors are not supported yet.

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.