
久久建筑网
提供建筑标准规范、图集、图纸及施工资料下载的建筑行业综合网站。
Radix UI 是一套面向 Web 开发者的开源组件库,定位是为构建高质量、可访问的用户界面提供基础层。它并非传统意义上的“UI 套件”(即直接拿来即用的成品按钮或表单),而是提供无样式、可完全控制渲染结果的组件原语,同时附带独立的图标集与色彩系统。其核心价值在于将复杂交互逻辑(如弹窗焦点管理、下拉菜单的键盘导航、开关的 ARIA 状态同步)封装为可靠、经过无障碍审计的代码,让开发者专注于视觉设计与业务逻辑。
| 模块 | 说明 | 适用场景 |
|---|---|---|
| Primitives(原语) | 无样式组件,如 Dialog、Dropdown、Tooltip、Tabs 等。每个组件均遵循 WAI-ARIA 规范,内置完整的键盘交互与焦点陷阱处理。 | 需要深度定制视觉风格,但不想重复实现复杂交互逻辑的项目。 |
| Icons(图标) | 一套线性风格的 SVG 图标集,支持 width、height、color 等属性直接控制。 |
需要与组件风格统一、避免引入额外图标库依赖的场景。 |
| Colors(色彩) | 提供阶梯式色阶(如 1-12 步),每步颜色经过对比度优化,适合用于构建可访问的界面主题。 | 需要快速建立设计令牌,尤其关注文本/背景对比度达标的情况。 |
Dialog 默认锁定背景滚动,并自动将焦点移至弹窗内,关闭后还原焦点至触发元素。render 或 asChild 属性将逻辑附加到你的自定义元素上。这意味着你可以使用 Tailwind、CSS Modules 或任何方案,且不会遇到样式优先级冲突。asChild 模式下的类型推导可保留原生元素属性(如 <button> 的 onClick)。npm install @radix-ui/react-dialog(按需安装单个组件,避免打包冗余)。Root、Trigger、Content 等子组件组合为你的交互结构。className 或 style 为 Content、Overlay 等元素添加你的设计系统样式。open / onOpenChange 属性,或依赖内部非受控状态。asChild 渲染机制是使用前提。onOpenChange 的参数变化)。若你的项目对设计自由度要求高、且需要严格保证可访问性,Radix UI 是一个值得引入的基础设施;若追求快速交付且对默认视觉风格无异议,则传统样式库可能更直接。







