SuperAPI AI 工具集

shadcn

前端与建站

查看项目

更新于 10-16 08:35

技能介绍

用途:为在项目中使用 shadcn/ui 构建界面提供规范与最佳实践,适用于创建、定制或样式化组件,以及处理 Radix UI 原语等场景。

核心理念:shadcn 是复制粘贴而非依赖,代码归你所有;组件可按需修改;基于 Radix UI 原语保证无障碍;用 Tailwind CSS 样式化便于定制。

设计令牌:必须使用设计系统令牌以兼容主题切换。背景用 bg-background、bg-card、bg-muted、bg-popover;文字用 text-foreground、text-muted-foreground、text-card-foreground;边框用 border-border、border-input、border-ring;操作用 bg-primary text-primary-foreground、bg-secondary text-secondary-foreground;状态用 bg-destructive text-destructive-foreground、bg-accent text-accent-foreground。禁止使用 bg-white、text-black、border-gray-200 等显式颜色,否则会破坏主题切换。

添加组件:用 CLI 添加后再定制,例如 npx shadcn-ui@latest add button card dialog。

扩展组件:可添加自定义 props 与 variants,同时保留无障碍特性,例如为 Button 增加 loading 属性并在禁用逻辑中合并处理。

复合组件:始终使用独立导出,不要用命名空间属性。正确写法是分别导出 CardTech、CardTechHeader、CardTechTitle、CardTechContent;不要用 Object.assign 挂载 Header、Content。

无障碍:不得移除 Radix UI 的无障碍属性,Dialog 需保留 DialogTitle 与 DialogDescription 等结构。

主题:在 globals.css 中用 CSS 变量定义所有颜色值,并分别为 :root 与 .dark 提供变量。

完成前检查:确认颜色均用设计令牌;保留 Radix UI 无障碍属性;测试键盘导航;复合组件使用独立导出;运行类型检查(pnpm run typecheck)与测试(pnpm run test)。更多模式与示例见 references/patterns.md;Tailwind 相关模式使用 tailwindcss 技能。