shadcn/ui
项目需要一个可访问、可改造的对话框或按钮时,团队希望把组件结构纳入自己的代码,而不是只调用黑盒包。
技术栈与工具约 10 分钟 · 从真实需求理解
1shadcn/ui 怎样把组件带进项目?
不只调用组件,而是把可读源码带回项目。
可加入项目的组件条目
+添加到项目
components/ui/dialog.tsx01
export function Dialog({02
children, ...props03
}) { return (…); }源码进入项目边界,可以按产品规则继续修改。
删除草稿?
项目代码拥有 · 可继续定制
取消确认删除
shadcn/ui 提供的是一套把组件源码加入项目的工作方式。选中组件后,源码会落到项目自己的目录,团队可以阅读、组合和修改它,而不是只能调用一个封装好的黑盒。
- registry 条目说明可以加入项目的组件和依赖边界。
- components/ui/dialog.tsx 之类的文件成为项目自己的组件源码入口。
- 最终 UI 由项目代码渲染,后续的样式、结构和业务约束也要由项目负责验收。
2shadcn/ui 不是远程黑盒组件包
传统组件包通常由依赖提供组件实现,使用方通过 API 调用;shadcn/ui 更强调把组件源码放进你的项目,由项目直接拥有这部分结构和样式。
- Tailwind CSS 负责 utility 样式组合,shadcn/ui 负责把一套组件源码带进项目;两者可以一起使用,但不是同一个概念。
- 源码进入项目不代表自动完成可访问性、业务状态或视觉验收,Agent 仍要检查真实 DOM 和交互。
判断 shadcn/ui 是否用对,可以看组件代码是否真的存在于项目边界、是否能按产品规则修改,以及最终界面是否保留正确的语义和行为。
3一个 shadcn/ui 组件由哪些部分组成?
dialog.tsx项目内可修改源码组件来源、项目源码和最终 UI 要连在一起,所有权才是可验证的。
拆开 Dialog 示例,可以看到 shadcn/ui 从组件来源到项目 UI 最重要的三个真实区域。
- REGISTRY 是可加入项目的组件来源条目,说明组件名称和入口。
- SOURCE 是项目目录里的组件源码,团队可以在自己的边界内继续修改。
- UI 是源码被真实使用后的 Dialog,仍要检查语义、焦点、关闭方式和窄屏表现。
4怎样把 shadcn/ui 需求交给 Agent?
请用 shadcn/ui 制作一个 Dialog 示例:展示组件来源、写入项目的 components/ui/dialog.tsx 和项目实际渲染结果;明确源码归项目拥有并可继续修改,不要只放一个黑盒组件截图,并验收 390px 和 320px 下文件路径与对话框不溢出。
5不用背,看看你能不能判断
1 / 3
shadcn/ui 的核心工作方式是什么?
请选择一个最符合题意的答案
社区延伸
看别人真实遇到过什么
社区帖子还没有关联到这个词条。