113k

Changelog

RSS

Latest updates and announcements.

April 2026 - shadcn preset

We added shadcn preset commands for working with preset codes.

Decode a preset

You can decode a preset code to see exactly what it contains:

pnpm dlx shadcn@latest preset decode b5owWMfJ8l
Preset
  code         b5owWMfJ8l
  version      b
  style        mira
  baseColor    mauve
  theme        mauve
  chartColor   amber
  iconLibrary  hugeicons
  font         inter
  fontHeading  oxanium
  radius       large
  menuAccent   subtle
  menuColor    inverted-translucent
  url          https://ui.shadcn.com/create?preset=b5owWMfJ8l

Resolve from a project

Use preset resolve in an existing project to see the preset that matches your current configuration.

pnpm dlx shadcn@latest preset resolve
Preset
  code         b5Kc6P0Vc
  version      b
  style        luma
  baseColor    olive
  theme        lime
  chartColor   sky
  iconLibrary  hugeicons
  font         geist
  fontHeading  inherit
  radius       default
  menuAccent   subtle
  menuColor    default
  url          https://ui.shadcn.com/create?preset=b5Kc6P0Vc

It works with monorepos too:

pnpm dlx shadcn@latest preset resolve -c apps/web

Share or open

Use preset url when you need a shareable link:

pnpm dlx shadcn@latest preset url b5owWMfJ8l
https://ui.shadcn.com/create?preset=b5owWMfJ8l

Use preset open to open the preset on shadcn/create for customization:

pnpm dlx shadcn@latest preset open b5owWMfJ8l
Opening https://ui.shadcn.com/create?preset=b5owWMfJ8l in your browser.

This makes presets easier to inspect, share, and hand off to coding agents without manually decoding codes or building URLs.

Try a Preset

April 2026 - Pointer Cursor

You can now enable cursor: pointer for buttons when initializing a project.

pnpm dlx shadcn@latest init --pointer

This adds the following CSS to your global CSS file:

globals.css
@layer base {
  button:not(:disabled),
  [role="button"]:not(:disabled) {
    cursor: pointer;
  }
}

The --pointer option is not part of preset codes. It is applied as a project setup option, similar to --rtl.

April 2026 - Partial Preset Apply

You can now selectively apply a preset.

Say someone shares a preset with you and you already have your own components, but you like the theme or the fonts. Now you can apply just that.

Keep your components. Apply only what you want.

# Apply the full preset.
npx shadcn@latest apply --preset b2D0vQ7G4
 
# Apply only the theme.
npx shadcn@latest apply --preset b2D0vQ7G4 --only theme
 
# Apply only the fonts.
npx shadcn@latest apply --preset b2D0vQ7G4 --only font
 
# Apply theme and fonts.
npx shadcn@latest apply --preset b2D0vQ7G4 --only theme,font

The default behavior is unchanged. Running shadcn apply --preset <preset> still applies the full preset.

Partial preset apply currently supports theme and font.

Try a Preset

April 2026 - Introducing Sera

Introducing Sera, a new shadcn/ui style. Minimal. Editorial. Typographic. Underline Controls and Uppercase Headings. Shaped by Print Design Principles.

Sera style previewTry Sera in shadcn/create

Sera is a typography-first style built on print design principles. It pairs serif headings with sans-serif body text, uses square corners, uppercase tracking, and underlined controls to create an editorial feel for your app.

Like the other new styles, Sera goes beyond theming. It changes the geometry, spacing, and feel of the components so your app starts from a different visual baseline.

Available now in shadcn/create for both Radix and Base UI.

Try Sera

April 2026 - shadcn apply

We added shadcn apply so you can switch presets in an existing project without starting over.

When you run npx shadcn@latest apply in an existing project, we apply a new preset, reinstall your existing components, and update your theme, colors, CSS variables, fonts, and icons.

pnpm dlx shadcn@latest apply --preset b2D0vQ7G4

The CLI keeps the current base and RTL settings from your existing project, even when the preset URL was generated with different values.

Try a Preset