mcpField
C
components-build

components-build

github.com/nolly-studio设计与 UI6.9k101 次安装2 天前更新
代码仓库

关于 components-build

components-build 是面向 React 组件及组件库开发者的规范指南,涵盖可组合架构、无障碍、样式和发布等 16 类规则。

主要功能

  1. 01涵盖 16 类组件规则
  2. 02指导复合组件拆分
  3. 03包含键盘与 ARIA 无障碍建议
  4. 04说明受控与非受控状态
  5. 05覆盖样式、主题和分发

适用场景

  1. 01设计 React 组件 API 与属性
  2. 02为组件添加键盘和屏幕阅读器支持
  3. 03采用 Tailwind CSS 与 CVA 设置样式
  4. 04准备组件文档及 npm 发布

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nolly-studio/cult-ui --skill components-build

安装后在 Claude Code 中输入/components-build确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
rules/
accessibility.md
as-child.md
composition.md
data-attributes.md
definitions.md
design-tokens.md
documentation.md
marketplaces.md
npm.md
overview.md
polymorphism.md
principles.md
registry.md
state.md
styling.md
types.md

详细介绍

Components.build 规范

构建现代化、可组合且易于访问的 UI 组件的全面指南。涵盖 16 类规则,内容从核心原则到分发,由 Hayden Bleasel 和 shadcn 共同撰写。

适用场景

在以下情况下参考这些指南:

  • 创建新的 React 组件或组件库
  • 设计组件 API 和属性接口
  • 实现无障碍功能(键盘、ARIA、焦点管理)
  • 构建可组合的组件架构
  • 使用 Tailwind CSS 和 CVA 为组件添加样式
  • 将组件发布到注册表或 npm

按优先级划分的规则类别

优先级类别重点前缀
1概览规范范围和目标overview
2原则核心设计理念principles
3定义常见术语definitions
4组合拆分复杂组件composition
5无障碍键盘、屏幕阅读器、ARIAaccessibility
6状态受控/非受控模式state
7类型TypeScript 属性和接口types
8多态使用 as 属性切换元素polymorphism
9As-ChildRadix Slot 组合模式as-child
10数据属性data-state 和 data-slotdata-attributes
11样式Tailwind CSS、cn 工具、CVAstyling
12设计令牌CSS 变量和主题design-tokens
13文档组件文档documentation
14注册表组件注册表registry
15NPM发布到 npmnpm
16市场组件市场marketplaces

快速参考

1. 概览
  • overview - 规范范围、目标和理念
2. 原则
  • principles - 可组合性、无障碍性、可定制性、透明性
3. 定义
  • definitions - 常见术语(原始组件、复合组件、无头组件等)
4. 组合
  • composition-root - 使用 Context 共享状态的根组件
  • composition-item - 条目包装组件
  • composition-trigger - 交互式触发组件
  • composition-content - 内容展示组件
  • composition-export - 命名空间导出模式
5. 无障碍
  • accessibility-semantic-html - 使用恰当的 HTML 元素
  • accessibility-keyboard - 支持完整的键盘导航
  • accessibility-aria - 使用恰当的 ARIA 角色、状态和属性
  • accessibility-focus - 焦点管理与恢复
  • accessibility-live-regions - 向屏幕阅读器播报
  • accessibility-contrast - 色彩对比度要求
6. 状态
  • state-uncontrolled - 内部状态管理
  • state-controlled - 将状态管理委托给外部
  • state-controllable - 使用 useControllableState 支持两种模式
7. 类型
  • types-extend-html - 扩展原生 HTML 属性
  • types-export - 为使用者导出属性类型
  • types-single-element - 一个组件包装一个元素
8. 多态
  • polymorphism-as-prop - 更改渲染的元素类型
  • polymorphism-typescript - 类型安全的多态组件
  • polymorphism-defaults - 语义化元素默认值
9. As-Child
  • as-child-slot - 使用 Radix Slot 合并属性
  • as-child-composition - 与子组件组合
10. 数据属性
  • data-attributes-state - 使用 data-state 设置状态样式
  • data-attributes-slot - 使用 data-slot 定位子组件
11. 样式
  • styling-cn-utility - 组合 clsx 和 tailwind-merge
  • styling-order - 基础样式 → 变体 → 条件样式 → 用户覆盖
  • styling-cva - 使用 Class Variance Authority 实现变体
  • styling-css-variables - 使用 CSS 变量设置动态值
12. 设计令牌
  • design-tokens-css-variables - 将令牌定义为 CSS 变量
  • design-tokens-theming - 支持浅色/深色模式和主题
13. 文档
  • documentation-props - 使用 JSDoc 记录所有属性
  • documentation-examples - 提供用法示例
14. 注册表
  • registry-structure - 注册表文件结构
  • registry-schema - 组件元数据架构
15. NPM
  • npm-package-json - 软件包配置
  • npm-exports - 模块导出
16. 市场
  • marketplaces-distribution - 组件分发策略

使用方法

阅读各个规则文件,了解详细说明和代码示例:

rules/composition/SKILL.md
rules/accessibility/SKILL.md
rules/styling/SKILL.md

每个规则文件都包含:

  • 简要说明规则的重要性
  • 错误代码示例及说明
  • 正确代码示例及说明
  • 最佳实践和常见陷阱

完整编译文档

如需查看包含所有展开规则的完整指南,请参阅:AGENTS.md

核心原则

  1. 组合优于配置 - 将组件拆分为可组合的子组件
  2. 默认保证无障碍访问 - 这不是事后考虑的事项,而是一项要求
  3. 包裹单个元素 - 每个组件只包裹一个 HTML 元素
  4. 扩展 HTML 属性 - 始终扩展原生元素属性
  5. 导出类型 - 让使用者能够获取属性类型
  6. 支持两种状态模式 - 受控和非受控
  7. 智能合并类名 - 使用 cn() 工具和 tailwind-merge

作者

共同创作:

由以下人员改编为 AI 技能:

基于 components.build 规范。

评论

支持 Markdown