Style presets install on every shadcn framework
The style preset export is no longer Next.js-only. The same install command now works across every framework the shadcn CLI supports.
One command, six frameworks
npx shadcn@latest add <your-preset-url> installs your theme, button, and
form components into Next.js, Vite, React Router, TanStack Start, Astro,
and Laravel projects. The CLI detects the framework and puts every file
where that project expects it.
Fonts that install themselves
Presets no longer ship a generated app/layout.tsx. Fonts are delivered as
registry font items instead:
- On Next.js, the CLI patches your existing layout in place with
next/font, keeping your providers and classes intact. - On every other framework, it installs the matching fontsource package
and wires
--font-sansand--font-headinginto your CSS.
Variable fonts resolve to their variable package automatically; static fonts keep their selected weights on Next.js.
Local fonts
Local font files cannot ship through a registry, so the CLI now prints
ready-to-paste @font-face rules and variable assignments right after
install. Mixed presets still auto-install their Google font slot.
Presets that default to dark mode also print a one-line note to add the
dark class to your root element.