SuperAPI AI 工具集

components-build

前端与建站

查看项目

更新于 10-16 10:05

技能介绍

概述

components-build 是一个 AI 技能,基于 components.build 规范,用于构建现代化、可组合且无障碍的 React UI 组件。该规范由 Hayden Bleasel(@haydenbleasel)与 shadcn(@shadcn)共同编写,并由 Jordan Gilliam(@nolansym)改编为 AI 技能。

用途与适用场景

当需要进行以下工作时可参考该技能:

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

规则类别

规范包含 16 个规则类别,按优先级排列:

  1. Overview(概述):规范范围与目标,前缀 overview。
  2. Principles(原则):核心设计理念,前缀 principles。
  3. Definitions(定义):常用术语(primitive、compound、headless 等),前缀 definitions。
  4. Composition(组合):拆分复杂组件,前缀 composition。
  5. Accessibility(无障碍):键盘、屏幕阅读器、ARIA,前缀 accessibility。
  6. State(状态):受控/非受控模式,前缀 state。
  7. Types(类型):TypeScript props 与接口,前缀 types。
  8. Polymorphism(多态):通过 as prop 切换元素,前缀 polymorphism。
  9. As-Child:Radix Slot 组合模式,前缀 as-child。
  10. Data Attributes(数据属性):data-state 与 data-slot,前缀 data-attributes。
  11. Styling(样式):Tailwind CSS、cn 工具函数、CVA,前缀 styling。
  12. Design Tokens(设计令牌):CSS 变量与主题,前缀 design-tokens。
  13. Documentation(文档):组件文档,前缀 documentation。
  14. Registry(注册表):组件注册表,前缀 registry。
  15. NPM:发布到 npm,前缀 npm。
  16. Marketplaces(市场):组件市场,前缀 marketplaces。

各规则要点

组合(Composition):

  • composition-root:带 Context 的根组件,用于共享状态
  • composition-item:条目包装组件
  • composition-trigger:交互式触发组件
  • composition-content:内容展示组件
  • composition-export:命名空间导出模式

无障碍(Accessibility):

  • accessibility-semantic-html:使用合适的 HTML 元素
  • accessibility-keyboard:完整键盘导航支持
  • accessibility-aria:正确的 ARIA 角色、状态与属性
  • accessibility-focus:焦点管理与恢复
  • accessibility-live-regions:屏幕阅读器播报
  • accessibility-contrast:颜色对比度要求

状态(State):

  • state-uncontrolled:内部状态管理
  • state-controlled:外部状态委托
  • state-controllable:使用 useControllableState 同时支持两种模式

类型(Types):

  • types-extend-html:扩展原生 HTML 属性
  • types-export:为消费者导出 props 类型
  • types-single-element:一个组件包装一个元素

多态(Polymorphism):

  • polymorphism-as-prop:改变渲染的元素类型
  • polymorphism-typescript:类型安全的多态组件
  • polymorphism-defaults:语义化元素默认值

As-Child:

  • as-child-slot:用于 props 合并的 Radix Slot
  • as-child-composition:与子组件组合

数据属性(Data Attributes):

  • data-attributes-state:使用 data-state 设置状态样式
  • data-attributes-slot:使用 data-slot 定位子组件

样式(Styling):

  • styling-cn-utility:结合 clsx 与 tailwind-merge
  • styling-order:基础 → 变体 → 条件 → 用户覆盖
  • styling-cva:使用 Class Variance Authority 处理变体
  • styling-css-variables:使用 CSS 变量设置动态值

设计令牌(Design Tokens):

  • design-tokens-css-variables:将令牌定义为 CSS 变量
  • design-tokens-theming:支持亮色/暗色模式与主题

文档(Documentation):

  • documentation-props:使用 JSDoc 记录所有 props
  • documentation-examples:提供使用示例

注册表(Registry):

  • registry-structure:注册表文件结构
  • registry-schema:组件元数据模式

NPM:

  • npm-package-json:包配置
  • npm-exports:模块导出

市场(Marketplaces):

  • marketplaces-distribution:组件分发策略

如何使用

可阅读各个规则文件获取详细说明与代码示例,例如:

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

每个规则文件包含:

  • 重要性的简要说明
  • 带解释的错误代码示例
  • 带解释的正确代码示例
  • 最佳实践与常见陷阱

完整编译文档(所有规则展开)见 AGENTS.md。

核心原则

  • 组合优于配置(Composition over Configuration):将组件拆分为可组合的子组件
  • 默认无障碍(Accessibility by Default):不是事后补充,而是必要条件
  • 单元素包装(Single Element Wrapping):每个组件包装一个 HTML 元素
  • 扩展 HTML 属性(Extend HTML Attributes):始终扩展原生元素 props
  • 导出类型(Export Types):使 props 类型可供消费者使用
  • 支持两种状态模式:受控与非受控
  • 智能类名合并:使用带 tailwind-merge 的 cn() 工具函数

限制

本资料未提供该技能的具体安装命令、收费信息、支持平台或除上述规则外的其他功能说明,这些内容暂未提供。