前端组件库 shadcn/ui 正式默认 Base UI,Radix 走向并行支持

前端组件库 shadcn/ui 正式默认 Base UI,Radix 走向并行支持

_

前端 UI 组件库 shadcn/ui 正式宣布,将 Base UI 设为默认组件库,替代此前一直使用的 Radix。官方表示,这一决定并非拍脑袋,而是社区早已用脚投了票。

为什么是 Base UI

shadcn/ui 于 2023 年 1 月上线时,基于 Radix 构建——当时它确实是市面上最好的无样式头组件方案。几年过去,开发 Radix 的同一团队推出了新项目 Base UI,带着第一次的经验重新设计了一遍。

去年 Base UI 发布测试版后,许多开发者询问是否替换 Radix。创始人当时的回应是:「对生产项目来说,最糟糕的事就是切换组件库。」于是团队没有直接替换,而是把每个组件重新为 Base UI 构建一遍,保留相同的抽象层,让用户自己选。去年 12 月,npx shadcn create 开始同时提供两个库;今年 1 月,Base UI 文档上线。

官方随后观察用户行为,发现新项目选择 Base UI 与 Radix 的比例达到 2:1。「社区已经做了选择,我们现在把它变成正式默认。」

具体变了什么

现在运行 npx shadcn init,新项目自动选中 Base UI;shadcn/create 界面也把 Base UI 放在首位;文档打开时默认展示 Base UI 选项卡,Radix 文档只需一次点击。

对于已有项目,Radix 不会被废弃。每个更新和新组件仍会同时支持两个库(除非某组件只在 Base UI 存在)。官方明确表示:「如果你的应用正常运行,继续交付就行了,不需要迁移。」

偏好 Radix 的开发者只需加一个参数:npx shadcn init -b radix。CI 脚本中预期 Radix 的项目,加上 -b radix 即可维持原有路径。

迁移工具:skill 而非 codemod

虽然官方不推荐迁移,但如果团队想尝试,他们提供了一个 skill 工具,定位不是传统 codemod,而是「渐进式知识迁移」。

核心逻辑是:开发者通常会给组件添加变体、改写类名、传入新属性,传统 codemod 只能处理从未改动的组件,遇到自定义代码就会失败。skill 则携带了两个库之间的完整对照知识——每个重命名、每个属性变更、每个行为差异都经过人工核对。智能体读取 skill 后,能识别开发者对组件做了哪些改动,再把这部分改动迁移过去,而不是暴力覆盖。

每轮迁移会留下三样东西:可工作的代码(通过类型检查和构建后才报告成功)、每个组件的迁移报告(位于 .migration/ 目录,记录改了哪些、保留了哪些、手动验证清单),以及干净的 git 历史(每个组件单独一个提交,在独立分支上,回滚只需删除分支)。

官方在真实项目上测试过:60 多个组件,其中 36 个基于 Radix,完整迁移耗时约 25 分钟,每个组件约消耗 1 万 token。定制化代码保持完整,最终构建干净。

编注:材料为官方发布在 shadcn 网站的 changelog,涵盖历史回顾、为什么现在、具体变化、迁移方案四个部分,主线为 Base UI 成为默认这一决策及影响。


美联储纪要携手财报季 下周美股面临双重考验 2026-07-05
Rust高精度浮点库libbeef发布:零依赖、MIT许可、性能逼近GMP 2026-07-05