我们可以把 UI 组件库分为两个截然不同的派系: “乐高派” (Headless UI) 和 “成品家具派” (All-in-One UI) 。
1. 与 Radix UI 理念一致的库 (乐高派 / Headless UI)
这类库的特点是: 提供逻辑,不提供样式。 它们像是一堆精密的乐高零件,你可以用它们搭出任何你想要的样子。
除了你现在用的 Radix UI ,还有:
- Headless UI :由 Tailwind CSS 官方团队开发,非常纯粹,只有逻辑,完美契合 Tailwind。
- React Aria (Adobe) :目前业界最严谨的逻辑库。它的逻辑深厚到甚至考虑到了不同残障人士如何使用你的地图工具。
- Ark UI :一个比较现代的库,支持多种框架(React/Vue/Solid),逻辑封装得非常漂亮。 总结 :如果你要做一个 设计感极强、与众不同 的项目(比如你现在的图层管理器),这个派系是首选。
2. Ant Design 的理念 (成品家具派 / All-in-One)
Ant Design (以及 MUI, Element UI) 的理念是: “提供一套完整的、符合企业级规范的成品。”
- 设计语言绑定 :它自带一套完整的视觉系统(比如蚂蚁金服的“中台感”)。你一旦使用它的 Button 或 Table ,它们就已经长成了那个样子。
- 高度集成 :它不仅提供“怎么动”的逻辑,还提供了“长什么样”的 CSS。
- 高度封装 (黑盒) :
- 在 Ant Design 中,你可能只需要写 ,树就出来了。
- 代价 :如果你想把 Ant Design 的树改成你图 1 那种卡片式、带各种自定义图标的样子,你会发现非常困难。你需要写大量的 CSS 去强行覆盖它的默认样式,也就是俗称的“跟组件库打架”。 总结 :如果你要做一个 内部管理后台 ,追求开发速度,不在乎长得是否个性,Ant Design 是无敌的。
3. 为什么现在流行“乐高派” (Headless UI)?
过去我们习惯用 Ant Design,是因为那时候前端样式开发很痛苦。但现在有了 Tailwind CSS ,写样式变得极其简单且快乐。
于是大家发现: “我不需要你告诉我按钮该是蓝色的。我只需要你告诉我,当用户点击按钮时,该怎么处理那个复杂的下拉菜单逻辑。 样式的权利,请还给我! ” 这也就是为什么 shadcn/ui 突然爆火的原因——它就是把 Radix UI (逻辑) 和 Tailwind CSS (样式) 缝合在了一起,并直接把源代码交给你。