Shadcn drops Radix for Base UI
Shadcn/UI, one of the most widely used React component libraries, has switched its default primitives layer from Radix UI to Base UI. This is a meaningful shift because Shadcn became dominant partly on the strength of Radix's accessibility primitives, and swapping that foundation affects every project that has pulled in shadcn components and assumed Radix behavior underneath.
The thread also surfaces an interesting side observation: the project is moving away from codemods for migration and toward LLMs doing that work instead. Several commenters found this genuinely notable, suggesting that LLMs may be replacing a whole category of developer tooling that was specifically designed to automate code transformations.
The criticism of Radix in the thread is pointed. Commenters describe specific components, like the radio button, as overengineered and bloated. Base UI's primitives are described as cleaner and easier to compose. Whether that is true at scale remains to be seen, but the community's appetite for the switch is real.
So what?
If you are building on shadcn, you need to understand what Base UI's API differences mean for your component customizations. More broadly, this is a signal that the React component ecosystem is still actively consolidating, and betting heavily on any single primitives library carries upgrade risk.