用途:构建一致、可维护的设计系统,围绕设计令牌、组件与主题化展开。适合创建组件库、实现设计令牌、搭建主题(含深色模式切换)等场景。
主要能力:
- 设计令牌:以 CSS 变量在 :root 定义颜色、字体、间距、圆角、阴影等;以 TypeScript 常量 tokens 组织 colors、spacing、fontSize,并用 as const 与键类型导出令牌类型。
- 组件模式:示例用 class-variance-authority(cva)定义 buttonVariants,包含 variant(primary、secondary、outline、ghost、destructive)与 size(sm、md、lg)及默认值,Button 组件接受 isLoading、className、variant、size 等 props 并透传原生属性。
- 主题化:以 [data-theme='dark'] 覆盖 CSS 变量实现深色模式;React 侧提供 ThemeProvider(theme 取 light、dark、system)与 useTheme,system 模式通过 matchMedia('(prefers-color-scheme: dark)') 判断并写入 data-theme 属性。
使用方式:按需引入并组合上述令牌与组件模式。示例中使用 cva 时需从 class-variance-authority 导入 cva 与 VariantProps;React 示例使用 createContext、useContext、useEffect、useState。
适用场景:组件库开发、设计令牌落地、主题与深色模式实现。
限制:资料未提供安装命令、版本要求、构建与发布流程、无障碍与主题持久化细节、测试与兼容性说明;令牌与组件为示例实现,非完整成品库。