Shadcn/UI 现在默认改用 Base UI 而不是 Radix
从 Radix 转向 Base UI
- 一些评论者对 Base UI 的底层原语持积极态度,认为它们很适合组合复杂组件,也希望这能减少 shadcn/ui 的依赖。
- 一个被强调的关键优势是:Base UI 更“无头”,也比 Radix 更少预设,这很适合 shadcn 的模式(把原语封装进自定义组件里)。
- 也有人表示在采用 Base UI 时遇到摩擦,尤其是在表单和复用现有模式方面。
拷贝-粘贴模式 vs 传统 UI 库
- 很多人把 shadcn 的拷贝-粘贴 vendoring 模式看作一种“拥有”代码的方法,可以避免脆弱的依赖链,并且在不大规模破坏性变更的情况下选择性升级组件。
- 也有人觉得这种模式被过度吹捧,甚至很糟:升级会变成手工活,容易产生分叉,还需要新工具(包括 AI“迁移代理”)而不只是简单地升版本。
- 还有人担心,除非团队投入大量定制,否则 shadcn 会让许多应用看起来几乎一模一样。
UI 库之间的比较
- Mantine 引发了很多争论:有些人觉得它“很出色”(功能完整、可定制,还有无样式原语);另一些人则把它描述为过度设计,并且在大型项目里很痛苦。
- Base UI vs React Aria:有些人更喜欢 React Aria 基于 hooks、与库无关的感觉,并不喜欢 Radix → Base UI 这类潮流带来的反复变化;也有人被 Base UI 的新鲜感和灵活性吸引。
- 提到的其他生态包括:Ark UI、MUI/Base UI、DaisyUI、Material UI、Skeleton(搭配 Zag)、Basecoat,以及各种面向非 React 框架的“shadcn-like”移植版本。
Codemod、迁移与 LLM 代理
- 项目从 codemod 转向基于 LLM 的迁移代理,被认为是一个值得注意的变化。
- 有人认为 LLM 和 codemod 是互补的:可以用 LLM 生成确定性的 codemod,再配合 lint 规则。
- 也有人更偏好人类可读的迁移指南,并担心过度为代理优化,而不是为开发者优化。
公告中 AI 生成的写作
- 许多评论者认为这篇 changelog 有明显的 LLM“语气”:短促、有 LinkedIn 风格、冗长且公式化。
- 一些人觉得这不尊重人或不可信,认为 AI 文风常常把稀少的信息埋在废话里,并且可能误导“是谁在说话”。
- 也有人无所谓或表示支持:他们重视便于快速浏览的结构,认为 AI 辅助写作是不可避免的,并且更希望人类把精力放在代码而不是文案上。
- 关于主要问题究竟是风格、准确性、是否诚实披露 AI 使用,还是读者自身的预期,大家存在分歧。
Angular 生态与 PrimeNG 的连锁反应
- 对于寻找“shadcn-like”方案的 Angular 用户,提到了多个选项,其中一个尤其被称赞明显领先。
- PrimeNG/PrimeReact/PrimeVue 转向闭源和付费许可引发担忧;一个社区分支旨在继续提供开源替代方案。
语义化 HTML 与 UI 工具包的复杂性
- 有人批评现代 UI 套件(Base UI、Ark UI 等)是“div 汤”,并且会用大量标记重新实现
<details>或复制到剪贴板之类的功能。 - 这既被视为过度工程,也被看作是 Web 平台缺少更丰富的原生 UI 原语的一种症状。
总体情绪
- 整体情绪是热情与疲惫并存:人们欣赏 shadcn 作为定制设计系统的启动器,但也警惕持续不断的前端变化、复杂抽象,以及风格同质化。