
项目概述
Radix UI Primitives 是 React 生态中最具权威的无头(Headless)、无样式底层组件基建库。由 WorkOS 团队打造,它专门解决复杂交互组件中最棘手的问题:无障碍访问(WAI-ARIA)、键盘快捷焦点管理、层叠模态框、碰撞检测定位与屏幕阅读器兼容。
它不包含任何内置样式,作为坚固可靠的底层基石,支撑着包括 shadcn/ui 在内的全球无数高品质自研设计系统。
核心特性
- 🧱 纯粹无头(Headless Zero CSS):零内置样式绑定,零 CSS 运行时开销,可自由结合 Tailwind CSS、CSS Modules 或任何样式方案。
- ♿️ 完美的 WAI-ARIA 无障碍:内建键盘导航规范、Roving Tabindex 焦点移动机制与语义属性管理。
- 🛡️ 复杂交互底层完备:模态框嵌套、Portal 传送门、浮层视口防溢出智能定位及背景滚动锁定一应俱全。
- 🧩 高组合性与 `asChild` 模式:通过多态
asChild属性无缝代理子节点,避免多余的 DOM 嵌套。
快速上手与示例代码
npm install @radix-ui/react-dialog @radix-ui/react-dropdown-menu无障碍弹窗调用示例
import React from "react";
import * as Dialog from "@radix-ui/react-dialog";
export default function DialogDemo() {
return (
<Dialog.Root>
<Dialog.Trigger className="px-4 py-2 bg-foreground text-background rounded-lg font-medium">
打开对话框
</Dialog.Trigger>
<Dialog.Portal>
<Dialog.Overlay className="fixed inset-0 bg-black/50 backdrop-blur-xs" />
<Dialog.Content className="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-card p-6 rounded-2xl shadow-2xl border w-full max-w-md">
<Dialog.Title className="font-bold text-lg">个人资料编辑</Dialog.Title>
<Dialog.Description className="text-sm text-muted-foreground mt-1">
严格遵循焦点锁定与 ESC 快捷关闭规范。
</Dialog.Description>
<Dialog.Close className="mt-4 px-3 py-1.5 bg-muted rounded-lg text-sm">完成并关闭</Dialog.Close>
</Dialog.Content>
</Dialog.Portal>
</Dialog.Root>
);
}技术选型建议与适用场景
- 非常适合:企业自研专属设计系统、组件库基础架构师、对无障碍合规性(A11y)有严苛要求的高标准产品。
- 不适用场景:希望 5 分钟内快速拖拽现成样式、不想自己编写 Tailwind/CSS 类名的小型外包快闪项目。
讨论与评价
分享你对该组件库的上手体验、优缺点或建议...
暂无讨论。欢迎分享你对该组件库的上手体验、优缺点或建议!
相关组件推荐
基于同类与技术栈推荐Kinetics (Colorion)
614
基于真实弹簧物理建模的现代 Web 微交互动效库,收录 150+ 交互案例,同时提供纯 CSS 贝塞尔曲线、React 代码与 AI 智能体提示词。
动效动画CLI 工具源码拷贝+2
动效动画详情
Ambient CSS
585
基于物理光照系统的创新 CSS 框架,严格对照 Blender 光线追踪校准,只需定义一个光源矢量,所有阴影、倒角高光与曲面渐变自动推导。
动效动画CLI 工具纯 CSS+2
动效动画详情
8bitcn/ui
2.1k+
基于 shadcn/ui 与 Tailwind CSS 构建的复古 8-Bit 像素风 React 组件库,兼备像素艺术美学与现代 WAI-ARIA 无障碍标准。
无障碍支持源码拷贝React+2
无障碍支持详情
