---
name: shadcn/ui
slug: shadcn-ui
type: feed
source_url: https://ui.shadcn.com/docs/changelog
organization: shadcn
organization_slug: shadcn
total_releases: 37
latest_date: 2026-04-16
last_updated: 2026-04-16
tracking_since: 2023-06-22
canonical: https://releases.sh/shadcn/shadcn-ui
organization_url: https://releases.sh/shadcn
---

<Summary type="rolling" window-days="90" release-count="6">
shadcn/ui shifted toward platform flexibility and international readiness over the past three months. The CLI evolved significantly with v4, adding skills, presets, and dry-run modes to make it work better with coding agents and monorepos. The component library expanded its foundation support—all blocks shipped for both Radix and Base UI, the new-york style migrated to the unified radix-ui package, and RTL support landed with automatic logical CSS conversion. Documentation for Base UI components also completed, removing a gap for teams choosing that foundation.
</Summary>

<Summary type="monthly" period="March 2026" release-count="1">
The CLI entered its fourth major version with a focus on agent-friendly workflows and developer flexibility. Added skills system for composable component generation, dry-run mode to preview changes before applying them, and preset support to save and share custom configurations. Expanded monorepo handling and introduced new templates alongside the core template updates.
</Summary>

<Release date="April 16, 2026" published="2026-04-16T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-04-sera">
## April 2026 - Introducing Sera

Minimal. Editorial. Typographic. Underline Controls and Uppercase Headings. Shaped by Print Design Principles.
</Release>

<Release date="April 8, 2026" published="2026-04-08T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-04-shadcn-apply">
## April 2026 - shadcn apply

Switch presets in existing projects without starting over.
</Release>

<Release date="April 6, 2026" published="2026-04-06T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-04-component-composition">
## April 2026 - Component Composition

Composition sections across component pages—structured trees that help you and your agents build correct UI.
</Release>

<Release date="March 31, 2026" published="2026-03-31T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-03-luma">
## March 2026 - Introducing Luma

Rounded geometry. Soft elevation. Breathable layouts. Inspired by macOS Tahoe, minus the glass.
</Release>

<Release date="March 6, 2026" published="2026-03-06T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-03-cli-v4">
## March 2026 - shadcn/cli v4

# March 2026 - shadcn/cli v4

More capable, easier to use. Built for you and your coding agents. Skills, presets, dry run, new templates, monorepo and more.

## shadcn/skills

shadcn/skills gives coding agents the context they need to work with your components and registry correctly. It covers both Radix and Base UI primitives, updated APIs, component patterns and registry workflows. The skill also knows how to use the shadcn CLI, when to invoke it and which flags to pass. Agents make fewer mistakes and produce code that actually matches your design system.

You can ask your agent things like:
- "create a new vite monorepo"
- "find me a hero from tailark, add it to the homepage, animate the text using an animation from react-bits"
- "install and configure a sign in page from @clerk"

```
pnpm dlx skills add shadcn/ui
```

## Introducing --preset

A preset packs your entire design system config into a short code. Colors, theme, icon library, fonts, radius. One string, everything included.

Build your preset on shadcn/create, preview it live and grab the code when you're ready.

```
pnpm dlx shadcn@latest init --preset a1Dg5eFl
```

Use it to scaffold projects from custom config, share with your team or publish in your registry. Drop it in prompts so your agent knows where to start. Use it across Claude, Codex, v0, Replit. Take your preset with you.

## Switching presets

When you're working on a new app, it can take a few tries to find something you like so we've made switching presets really easy. Run `init --preset` in your app, and the CLI will take care of reconfiguring everything, including your components.

```
pnpm dlx shadcn@latest init --preset ad3qkJ7
```

## Skills + Presets

Your agent knows how to use presets. Scaffold a project, switch design systems, try something new.

- "create a new next app using --preset adtk27v"
- "let's try --preset adtk27v"

## New shadcn/create

To help you build custom presets, we rebuilt shadcn/create. It now includes a library of UI components you can use to preview your presets. See how your colors, fonts and radius apply to real components before you start building.

## New --dry-run, --diff, and --view flags

Inspect what a registry will add to your project before anything gets written. Review the payload yourself or pipe it to your coding agent for a second look.

```
pnpm dlx shadcn@latest add button --dry-run
npx shadcn@latest add button --diff
npx shadcn@latest add button --view
```

## Updating primitives

You can use the `--diff` flag to check for registry updates. Or ask your agent: "check for updates from @shadcn and merge with my local changes".

```
pnpm dlx shadcn@latest add button --diff
```

## shadcn init --template

`shadcn init` now scaffolds full project templates for Next.js, Vite, Laravel, React Router, Astro and TanStack Start. Dark mode included for Next.js and Vite.

```
pnpm dlx shadcn@latest init

Select a template › - Use arrow-keys. Return to submit.
❯ Next.js
  Vite
  TanStack Start
  React Router
  Astro
  Laravel
```

Use `--monorepo` to set up a monorepo.

```
pnpm dlx shadcn@latest init -t next --monorepo
```

## shadcn init --base

Pick your primitives. Use `--base` to start a project with Radix or Base UI.

```
pnpm dlx shadcn@latest init --base radix
```

## shadcn info

The `info` command now shows the full picture: framework, version, CSS vars, which components are installed, and where to find docs and examples for every component. Great for giving coding agents the context they need to work with your project.

```
pnpm dlx shadcn@latest info
```

## shadcn docs

Get docs, code and examples for any UI component right from the CLI. Gives your coding agent the context to use your primitives correctly.

```
pnpm dlx shadcn@latest docs combobox

combobox
  - docs      https://ui.shadcn.com/docs/components/radix/combobox
  - examples  https://raw.githubusercontent.com/shadcn-ui/ui/refs/heads/main/apps/v4/registry/bases/radix/examples/combobox-example.tsx
  - api       https://base-ui.com/react/components/combobox
```

## registry:base and registry:font

Registries can now distribute an entire design system as a single payload using `registry:base`. Components, dependencies, CSS vars, fonts, config. One install, everything set up.

Fonts are now a first-class registry type. Install and configure them the same way you install components.

```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "font-inter",
  "type": "registry:font",
  "font": {
    "family": "'Inter Variable', sans-serif",
    "provider": "google",
    "import": "Inter",
    "variable": "--font-sans",
    "subsets": ["latin"]
  }
}
```

```
pnpm dlx shadcn@latest add font-inter
```
</Release>

<Release date="February 6, 2026" published="2026-02-06T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-02-blocks">
## February 2026 - Blocks for Radix and Base UI

# February 2026 - Blocks for Radix and Base UI

All blocks are now available for both Radix and Base UI.

* **All blocks for both libraries** - Every block, including login, signup, sidebar and dashboard blocks, is now available in both Radix and Base UI variants.
* **Same CLI workflow** - Run `npx shadcn add` and the CLI will pull the correct block variant based on your project configuration.

If you've already set up your project with `npx shadcn create`, blocks will automatically use your chosen library. No additional configuration needed.

```
pnpm dlx shadcn@latest add login-01
```

Browse the full collection on the blocks page.
</Release>

<Release date="February 2, 2026" published="2026-02-02T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-02-radix-ui">
## February 2026 - Unified Radix UI Package

# February 2026 - Unified Radix UI Package

The `new-york` style now uses the unified `radix-ui` package instead of individual `@radix-ui/react-*` packages.

## What's Changed

When you add components using the `new-york` style, they will now import from `radix-ui` instead of separate packages:

```
- import * as DialogPrimitive from "@radix-ui/react-dialog"
+ import { Dialog as DialogPrimitive } from "radix-ui"
```

This results in a cleaner `package.json` with a single `radix-ui` dependency instead of multiple `@radix-ui/react-*` packages.

## Migrating Existing Projects

If you have an existing project using the `new-york` style, you can migrate to the new `radix-ui` package using the migrate command:

```
pnpm dlx shadcn@latest migrate radix
```

This will update all imports in your UI components and add `radix-ui` to your dependencies.

To migrate components outside of your `ui` directory, use the `path` argument:

```
pnpm dlx shadcn@latest migrate radix src/components/custom
```

Once complete, you can remove any unused `@radix-ui/react-*` packages from your `package.json`.

See the [migrate radix documentation](https://ui.shadcn.com/docs/changelog/2026-02-radix-ui/docs/cli#migrate-radix) for more details.
</Release>

<Release date="January 28, 2026" published="2026-01-28T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-01-rtl">
## January 2026 - RTL Support

# January 2026 - RTL Support

The shadcn CLI now supports RTL (right-to-left) layouts by automatically converting physical CSS classes to logical equivalents.

shadcn/ui now has first-class support for right-to-left (RTL) layouts. Your components automatically adapt for languages like Arabic, Hebrew, and Persian.

**This works with the shadcn/ui components as well as any component distributed on the shadcn registry.**

## Our approach to RTL

Traditionally, component libraries that support RTL ship with logical classes baked in. This means everyone has to work with classes like `ms-4` and `start-2`, even if they're only building for LTR layouts.

We took a different approach. The shadcn CLI transforms classes at install time, so you only see logical classes when you actually need them. If you're not building for RTL, you work with familiar classes like `ml-4` and `left-2`. When you enable RTL, the CLI handles the conversion for you.

**You don't have to learn RTL until you need it.**

## How it works

When you add components with `rtl: true` set in your `components.json`, the CLI automatically converts physical CSS classes like `ml-4` and `text-left` to their logical equivalents like `ms-4` and `text-start`.

* Physical positioning classes like `left-*` and `right-*` become `start-*` and `end-*`.
* Margin and padding classes like `ml-*` and `pr-*` become `ms-*` and `pe-*`.
* Text alignment classes like `text-left` become `text-start`.
* Directional props are updated to use logical values.
* Supported icons are automatically flipped using `rtl:rotate-180`.
* Animations like `slide-in-from-left` become `slide-in-from-start`.

## RTL examples for every component

We've added RTL examples for every component. You'll find live previews and code on each component page.

## CLI updates

**New projects**: Use the `--rtl` flag with `init` or `create` to enable RTL from the start.

```
pnpm dlx shadcn@latest init --rtl
```

```
pnpm dlx shadcn@latest create --rtl
```

**Existing projects**: Migrate your components with the `migrate rtl` command.

```
pnpm dlx shadcn@latest migrate rtl
```

This transforms all components in your `ui` directory to use logical classes. You can also pass a specific path or glob pattern.

## Try it out

Click the link below to open a Next.js project with RTL support in v0.

[![Open in v0](https://v0.app/chat-static/button.svg)](https://v0.app/chat/api/open?url=https://github.com/shadcn-ui/next-template-rtl)

## Links

* [RTL Documentation](https://ui.shadcn.com/docs/rtl)
* [Font Recommendations](https://ui.shadcn.com/docs/rtl#font-recommendations)
* [Animations](https://ui.shadcn.com/docs/rtl#animations)
* [Migrating Existing Components](https://ui.shadcn.com/docs/rtl#migrating-existing-components)
* [Next.js Setup](https://ui.shadcn.com/docs/rtl/next)
* [Vite Setup](https://ui.shadcn.com/docs/rtl/vite)
* [TanStack Start Setup](https://ui.shadcn.com/docs/rtl/start)
</Release>

<Release date="January 23, 2026" published="2026-01-23T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-01-inline-side-styles">
## January 2026 - Inline Start and End Styles

# January 2026 - Inline Start and End Styles

We've updated the styles for Base UI components to support `inline-start` and `inline-end` side values. The following components now support these values:

* Tooltip
* Popover
* Combobox
* Context Menu
* Dropdown Menu
* Hover Card
* Menubar
* Select

## What Changed

We added new Tailwind classes to handle the logical side values:

```
<PopoverPrimitive.Popup
  className={cn(
    "... data-[side=bottom]:slide-in-from-top-2
    data-[side=left]:slide-in-from-right-2
    data-[side=right]:slide-in-from-left-2
    data-[side=top]:slide-in-from-bottom-2
+   data-[side=inline-start]:slide-in-from-right-2
+   data-[side=inline-end]:slide-in-from-left-2 ...",
    className
  )}
/>
```

## Usage

```
<Popover>
  <PopoverTrigger>Open</PopoverTrigger>
  <PopoverContent side="inline-start">
    {/* Opens on the left in LTR, right in RTL */}
  </PopoverContent>
</Popover>
```

## LLM Prompt

Ask your LLM to update your components by running the following prompt:

```
Add inline-start and inline-end support to my shadcn/ui components. Add the following Tailwind classes to each component:

| File | Component | Add Classes |
|------|-----------|-------------|
| tooltip.tsx | TooltipContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |
| tooltip.tsx | TooltipArrow | `data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2` |
| popover.tsx | PopoverContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |
| hover-card.tsx | HoverCardContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |
| select.tsx | SelectContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 data-[align-trigger=true]:animate-none` and add `data-align-trigger={alignItemWithTrigger}` attribute |
| combobox.tsx | ComboboxContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |
| dropdown-menu.tsx | DropdownMenuContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |
| context-menu.tsx | ContextMenuContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |
| menubar.tsx | MenubarContent | `data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2` |

Add these classes next to the existing `data-[side=top]`, `data-[side=bottom]`, `data-[side=left]`, `data-[side=right]` classes.
```
</Release>

<Release date="January 20, 2026" published="2026-01-20T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2026-01-base-ui">
## January 2026 - Base UI Documentation

# January 2026 - Base UI Documentation

Full documentation for Base UI components.

We've shipped full documentation for Base UI components.

When we launched `npx shadcn create` in December, we introduced the ability to choose between Radix and Base UI as your component library. Today, we're following up with complete documentation for all Base UI components.

## What's New

* **Full Base UI docs** - Every component now has dedicated documentation for Base UI, covering usage, props, and examples.
* **Rebuilt examples** - All component examples have been rebuilt for both Radix and Base UI. Switch between them to see the implementation differences.
* **Side-by-side comparison** - The docs make it easy to compare how components work across both libraries.

## Same Abstraction, Different Primitives

The goal remains the same: give you a consistent API regardless of which primitive library you choose. The components look and behave the same way. Only the underlying implementation changes.

```
// Works the same whether you're using Radix or Base UI.
import { Dialog, DialogContent, DialogTrigger } from "@/components/ui/dialog"
```

If you're starting a new project, run `npx shadcn create` and pick your preferred library. The CLI handles the rest.
</Release>

<Release date="December 12, 2025" published="2025-12-12T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-12-shadcn-create">
## December 2025 - npx shadcn create

# December 2025 - npx shadcn create

Customize everything. Pick your component library, icons, base color, theme, fonts and create your own version of shadcn/ui.

From the very first commit, the goal of shadcn/ui was to make it customizable. The idea is to give you solid defaults, spacing, color tokens, animations, accessibility, and then let you take it from there. Tweak the code. Add new components. Change the colors. Build your own version.

But somewhere along the way, all apps started looking the same. I guess the defaults were a little _too_ good. My bad.

Today, we're changing that: **npx shadcn create**.

## 5 New Visual Styles

We're starting with **5 new visual styles**, designed to help your UI actually feel like _your_ UI.

* **Vega** – The classic shadcn/ui look.
* **Nova** – Reduced padding and margins for compact layouts.
* **Maia** – Soft and rounded, with generous spacing.
* **Lyra** – Boxy and sharp. Pairs well with mono fonts.
* **Mira** – Compact. Made for dense interfaces.

## Beyond Theming

Your config doesn't just change colors, it rewrites the component code to match your setup. Fonts, spacing, structure, even the libraries you use, everything adapts to your preferences.

The new CLI takes care of it all.

## Component Library Options

Start with a component library. Choose between **Radix** or **Base UI**.

We rebuilt every component for Base UI, keeping the same abstraction. They are fully compatible with your existing components, even those pulled from remote registries.

When you pull down components, we auto-detect your library and apply the right transformations.

## Supported Frameworks

Now available for Next.js, Vite, TanStack Start and v0.

[Get Started](https://ui.shadcn.com/docs/changelog/2025-12-shadcn-create/create)
</Release>

<Release date="October 28, 2025" published="2025-10-28T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-10-registry-directory">
## October 2025 - Registry Directory

# October 2025 - Registry Directory

A list of code registries you can browse and pull code and components from.

We just published the Registry Directory: a list of code registries you can browse and pull code and components from.

<https://ui.shadcn.com/docs/directory>

Built into the CLI. No config required.
</Release>

<Release date="October 3, 2025" published="2025-10-03T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-10-new-components">
## October 2025 - New Components

# October 2025 - New Components

Spinner, Kbd, Button Group, Input Group, Field, Item, and Empty components.

For this round of components, I looked at what we build every day, the boring stuff we rebuild over and over, and made reusable abstractions you can actually use.

**These components work with every component library, Radix, Base UI, React Aria, you name it. Copy and paste to your projects.**

* [Spinner](#spinner): An indicator to show a loading state.
* [Kbd](#kbd): Display a keyboard key or group of keys.
* [Button Group](#button-group): A group of buttons for actions and split buttons.
* [Input Group](#input-group): Input with icons, buttons, labels and more.
* [Field](#field): One component. All your forms.
* [Item](#item): Display lists of items, cards, and more.
* [Empty](#empty): Use this one for empty states.

## Spinner

An indicator to show a loading state. Can be used standalone or in buttons.

```
import { Spinner } from "@/components/ui/spinner"

<Spinner />
```

You can edit the code and replace it with your own spinner.

## Kbd

Kbd is a component that renders a keyboard key.

```
import { Kbd, KbdGroup } from "@/components/ui/kbd"

<Kbd>Ctrl</Kbd>
```

Use `KbdGroup` to group keyboard keys together.

```
<KbdGroup>
  <Kbd>Ctrl</Kbd>
  <Kbd>B</Kbd>
</KbdGroup>
```

You can add it to buttons, tooltips, input groups, and more.

## Button Group

A container that groups related buttons together with consistent styling. Great for action groups, split buttons, and more.

```
import { ButtonGroup } from "@/components/ui/button-group"

<ButtonGroup>
  <Button>Button 1</Button>
  <Button>Button 2</Button>
</ButtonGroup>
```

You can nest button groups to create more complex layouts with spacing.

```
<ButtonGroup>
  <ButtonGroup>
    <Button>Button 1</Button>
    <Button>Button 2</Button>
  </ButtonGroup>
  <ButtonGroup>
    <Button>Button 3</Button>
    <Button>Button 4</Button>
  </ButtonGroup>
</ButtonGroup>
```

Use `ButtonGroupSeparator` to create split buttons. Classic dropdown pattern.

You can also use it to add prefix or suffix buttons and text to inputs.

```
<ButtonGroup>
  <ButtonGroupText>Prefix</ButtonGroupText>
  <Input placeholder="Type something here..." />
  <Button>Button</Button>
</ButtonGroup>
```

## Input Group

Input Group lets you add icons, buttons, and more to your inputs.

```
import {
  InputGroup,
  InputGroupAddon,
  InputGroupInput,
} from "@/components/ui/input-group"

<InputGroup>
  <InputGroupInput placeholder="Search..." />
  <InputGroupAddon>
    <SearchIcon />
  </InputGroupAddon>
</InputGroup>
```

You can add buttons to the input group, text, labels, tooltips, and more. It also works with textareas for really complex components.

## Field

A component for building really complex forms. Works with all your form libraries: Server Actions, React Hook Form, TanStack Form, Bring Your Own Form.

```
import {
  Field,
  FieldDescription,
  FieldError,
  FieldLabel,
} from "@/components/ui/field"

<Field>
  <FieldLabel htmlFor="username">Username</FieldLabel>
  <Input id="username" placeholder="Max Leiter" />
  <FieldDescription>
    Choose a unique username for your account.
  </FieldDescription>
</Field>
```

It works with all form controls: Inputs, textareas, selects, checkboxes, radios, switches, sliders, and more.

You can group fields together using `FieldGroup` and `FieldSet`. Perfect for multi-section forms.

```
<FieldSet>
  <FieldLegend />
  <FieldGroup>
    <Field />
    <Field />
  </FieldGroup>
</FieldSet>
```

Making it responsive is easy. Use `orientation="responsive"` and it switches between vertical and horizontal layouts based on container width.

Wrap your fields in `FieldLabel` to create a selectable field group.

## Item

A straightforward flex container that can house nearly any type of content. Use it to display lists of items, cards, and more.

```
import {
  Item,
  ItemContent,
  ItemDescription,
  ItemMedia,
  ItemTitle,
} from "@/components/ui/item"

<Item>
  <ItemMedia variant="icon">
    <HomeIcon />
  </ItemMedia>
  <ItemContent>
    <ItemTitle>Dashboard</ItemTitle>
    <ItemDescription>Overview of your account and activity.</ItemDescription>
  </ItemContent>
</Item>
```

You can add icons, avatars, or images to the item. Use `ItemGroup` to display a list of items.

Use the `asChild` prop to render it as a link.

## Empty

Use this to display empty states in your app.

```
import {
  Empty,
  EmptyContent,
  EmptyDescription,
  EmptyMedia,
  EmptyTitle,
} from "@/components/ui/empty"

<Empty>
  <EmptyMedia variant="icon">
    <InboxIcon />
  </EmptyMedia>
  <EmptyTitle>No messages</EmptyTitle>
  <EmptyDescription>You don't have any messages yet.</EmptyDescription>
  <EmptyContent>
    <Button>Send a message</Button>
  </EmptyContent>
</Empty>
```

You can use it with avatars, input groups for things like search results or email subscriptions, and more.
</Release>

<Release date="September 2, 2025" published="2025-09-02T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-09-registry-index">
## September 2025 - Registry Index

# September 2025 - Registry Index

An index of open source registries that you can install items from.

We've created an index of open source registries that you can install items from.

You can search, view and add items from the registry index without configuring the `components.json` file.

They'll be automatically added to your `components.json` file for you.

```
pnpm dlx shadcn add @ai-elements/prompt-input
```

The full list of registries is available at <https://ui.shadcn.com/r/registries.json>.

To add a registry to the index, submit a PR to the `shadcn/ui` repository. See the [registry index documentation](https://ui.shadcn.com/docs/changelog/2025-09-registry-index/docs/registry/registry-index) for more details.
</Release>

<Release version="3.0" date="August 27, 2025" published="2025-08-27T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-08-cli-3-mcp">
## August 2025 - shadcn CLI 3.0 and MCP Server

Namespaced registries, advanced authentication, new commands and a completely rewritten registry engine.
</Release>

<Release date="July 11, 2025" published="2025-07-11T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-07-universal-registry">
## July 2025 - Universal Registry Items

Create registry items that can be distributed to any project.
</Release>

<Release date="July 7, 2025" published="2025-07-07T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-07-local-file-support">
## July 2025 - Local File Support

Initialize projects and add components from local JSON files.
</Release>

<Release date="June 11, 2025" published="2025-06-11T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-06-radix-ui">
## June 2025 - radix-ui Migration

A new command to migrate to the new radix-ui package.
</Release>

<Release date="June 6, 2025" published="2025-06-06T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-06-calendar">
## June 2025 - Calendar Component

Upgraded Calendar component with React DayPicker and 30+ calendar blocks.
</Release>

<Release date="May 30, 2025" published="2025-05-30T00:00:00.000Z" url="https://ui.shadcn.com/docs/changelog/2025-05-new-site">
## May 2025 - New Site

Upgraded ui.shadcn.com to Next.js 15.3 and Tailwind v4.
</Release>

<Pagination page="1" total-pages="2" total-items="37" next="https://releases.sh/shadcn/shadcn-ui.md?page=2" />
