shadcn/ui 组件库速览:60+ 高颜值可访问组件选型指南,告别重复造轮子
【免费下载链接】uiA set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code.项目地址: https://gitcode.com/GitHub_Trending/ui/ui
shadcn/ui 是一套开箱即用的 React 组件库与代码分发平台,提供 60+ 高颜值、可访问(WCAG 友好)的 UI 组件,支持 React、Next.js、Vite、Astro、Remix 等主流框架。本文带你 10 分钟摸清它的组件版图、安装路径与选型技巧,让你不再重复造轮子。
为什么选 shadcn/ui?
- 🎨高颜值:基于 Tailwind CSS 的设计系统,深浅两套主题开箱即用
- ♿️可访问:组件内置 ARIA 属性与键盘交互,无障碍不是事后补丁
- 📦不是 npm 包:组件代码直接复制进你的仓库,随意改、随意裁
- 🏗️框架无关:Next、Vite、Astro、React Router、Remix、Laravel 都有官方安装指南
一句话理解:它更像"组件源码分发平台",
shadcn add button之后,代码就在你手里,想怎么改怎么改。
60+ 组件全景速览
组件清单定义在 lib/components.ts,目前收录 60+ 个组件。按场景分组,选型时对照下表即可:
| 场景 | 推荐组件 |
|---|---|
| 导航布局 | sidebar、navigation-menu、breadcrumb、pagination、tabs |
| 表单输入 | input、select、combobox、date-picker、checkbox、radio-group、switch、slider、input-otp |
| 弹窗交互 | dialog、alert-dialog、drawer、sheet、popover、hover-card |
| 菜单操作 | dropdown-menu、context-menu、command、menubar |
| 数据展示 | table、data-table、card、avatar、badge、skeleton、chart |
| 反馈提示 | toast、sonner、alert、progress、spinner |
每个组件都有独立文档页,例如按钮、侧边栏、图表的说明分别在:
- button.mdx
- sidebar.mdx
- chart.mdx
- data-table.mdx
快速上手:一条命令安装组件
安装文档覆盖各大框架,核心流程三步:
- 初始化:运行
shadcn init选择主题与框架 - 加组件:
shadcn add button card dialog按需添加 - 直接 import 使用:代码落在
components/ui目录下,完全属于你
各框架的安装细节可参考 installation/ 目录下的对应文档,如 next.mdx、vite.mdx、astro.mdx。
三大特色能力
1️⃣ 图表组件:数据可视化一步到位
chart组件封装了 Recharts,轴、网格、图例、提示框都有现成示例:
- chart-example.tsx
- chart-example-legend.tsx
- chart-example-tooltip.tsx
2️⃣ 暗色模式:一键切换主题
暗色模式文档位于 dark-mode/,RTL 适配见 rtl/。深浅两套主题截图官方都有备,效果直接可见。
3️⃣ 注册表(Registry):社区组件市场
除了官方组件,shadcn/ui 还提供 Registry 分发平台,社区组件按 registry/ 文档说明接入。注册表配置见 config.ts,健康检查机制由 registry-health/ 目录保障组件质量。
实战示例:从登录页到工作台
不知道组件怎么搭配?直接看官方示例,examples/ 目录下有 1000+ 示例文件,按base、radix、aria三种底层实现分类:
- 登录/认证页:authentication-light.png
- 工作台面板:playground-light.png
- 任务清单页:tasks-dark.png
每个按钮类示例都有多变体演示,如 button-demo.tsx、button-size.tsx、button-spinner.tsx,覆盖了尺寸、加载态、图标等细节场景。
常见问题 FAQ
Q:shadcn/ui 和传统 npm 组件库的区别?传统库通过node_modules升级版本,样式定制受限;shadcn/ui 把源码直接放进项目,自定义零成本,代价是需要自己跟进组件更新(可通过 Registry 同步)。
Q:支持 RTL(从右到左)排版吗?支持。大量组件提供-rtl变体示例(如 accordion-rtl.tsx、dialog-rtl.tsx),文档见 rtl/。
Q:想追踪组件更新怎么办?查看 changelog/ 目录,56 条更新记录按版本整理。
小结:组件选型三原则
- 优先官方组件:60+ 组件覆盖 90% 场景,先看 组件总览文档
- 示例驱动选型:拿不准就看 examples/ 里的现成搭配,照着抄
- 代码在你手里:遇到不合适的地方直接改源码,无需提 issue 等排期
shadcn/ui 用"开源代码 + 代码分发"的方式,把组件库的灵活性和设计质量同时给你。现在打开终端,shadcn add button,十分钟就能搭出一个高颜值项目骨架。🚀
【免费下载链接】uiA set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code.项目地址: https://gitcode.com/GitHub_Trending/ui/ui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考