Design System Builder

Polar Sponsor
爱发电 赞助
.NET 9.0

《从零构建企业级组件库与设计系统的完整指南》,适用于前端工程师在以下场景使用:(1)...

设计系统构建器: 结构化的建设准备组件库和设计系统指南

功能概述

设计系统构建器: 结构化的建设准备组件库和设计系统指南是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 执行完成后建议检查结果是否符合预期,并保留必要记录。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

设计系统构建指南

一份结构清晰的指南,用于构建可投入生产的组件库与设计系统。涵盖架构设计、设计令牌(tokens)、组件开发、文档编写、主题定制(theming)、测试策略及发布流程。

快速决策地图

目标 从这里开始
搭建单体仓库(monorepo) + 构建配置 架构
定义设计令牌 references/tokens.md
开发组件 references/component-patterns.md
Storybook 配置 references/storybook-setup.md
主题定制 / 暗色模式 references/theming.md
测试策略 references/testing-strategy.md
发布流水线 references/release-pipeline.md

1. 架构与单体仓库(Monorepo)配置

推荐目录结构

使用 pnpm workspaces + Turborepo 管理单体仓库。

my-design-system/
├── packages/
│   ├── tokens/          # 设计令牌(CSS 变量、JS 对象)
│   ├── icons/           # SVG 图标组件
│   ├── components/      # 核心 UI 组件
│   ├── themes/          # 主题定义
│   └── utils/           # 共享工具函数(cn、clsx 等)
├── apps/
│   └── docs/            # Storybook 文档站点
├── package.json         # 根工作区配置
├── pnpm-workspace.yaml
├── turbo.json
└── tsconfig.base.json

初始化命令

# 初始化单体仓库
mkdir my-design-system && cd my-design-system
pnpm init
pnpm add -D turbo -w

# 创建 workspace 配置文件
echo "packages:n  - 'packages/*'n  - 'apps/*'" > pnpm-workspace.yaml

turbo.json —— 任务流水线配置:

{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] },
    "dev": { "cache": false, "persistent": true },
    "test": { "dependsOn": ["^build"] },
    "lint": {}
  }
}

构建工具选型

工具 适用场景 说明
Vite + vite-plugin-dts React/Vue 组件 构建速度快,优先支持 ESM
tsup 工具类包(utility packages) 零配置,默认同时输出 CJS 与 ESM
Rollup 需精细控制构建行为的场景 配置复杂度更高

推荐的 packages/components/package.json 示例:

{
  "name": "@myds/components",
  "version": "0.1.0",
  "main": "./dist/index.cjs",
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "import": "./dist/index.js",
      "require": "./dist/index.cjs",
      "types": "./dist/index.d.ts"
    }
  },
  "scripts": {
    "build": "tsup src/index.ts --format cjs,esm --dts",
    "dev": "tsup src/index.ts --format cjs,esm --dts --watch"
  }
}

2. 设计令牌(Design Tokens)

设计令牌是视觉决策的唯一事实来源(single source of truth)。

请阅读 references/tokens.md,了解完整的令牌 Schema、命名规范、CSS 变量模式,以及多品牌令牌示例。

快速上手

# 安装 Style Dictionary(令牌转换工具)
pnpm add -D style-dictionary -w

令牌源文件存放在 packages/tokens/src/ 目录下。Style Dictionary 将其转换为 CSS 变量、JS/TS 常量,以及平台专属输出(如 iOS、Android)。

核心令牌类别包括:color、typography、spacing、border-radius、shadow、z-index、motion。

3. 组件开发规范

每个组件都应遵循一致的约定,以保障长期可维护性。

请阅读 references/component-patterns.md,获取详细模式说明:文件组织结构、Props API 设计、复合组件(compound components)、多态组件(polymorphic components)、无障碍(accessibility)要求,以及文档模板。

不可妥协的规则

  1. 优先使用 TypeScript —— 所有 Props 必须通过显式接口定义,禁止使用 any
  2. forwardRef —— React 中所有叶节点(leaf)组件均需支持
  3. aria-* 属性 —— 禁止发布任何不符合无障碍标准的组件
  4. 受控(Controlled)与非受控(Uncontrolled)模式 —— 表单类组件必须同时支持两种模式
  5. data-testid —— 必须提供,以支持端到端(E2E)测试

组件文件结构

Button/
├── Button.tsx          # 组件实现
├── Button.types.ts     # Props 接口与类型导出
├── Button.test.tsx     # 单元测试 + 交互测试
├── Button.stories.tsx  # Storybook 示例
└── index.ts            # 公共入口(barrel export)

4. Storybook

Storybook 是主要的文档编写与开发环境。

请阅读 references/storybook-setup.md,了解完整配置方案:插件安装、Autodocs、MDX 页面、Controls 控制面板、Storybook UI 主题定制,以及部署方式。

初始化

cd apps/docs
pnpm dlx storybook@latest init
# 提示时选择 React + Vite

必备插件:

  • @storybook/addon-essentials(Controls、Actions、Docs、Viewport)
  • @storybook/addon-a11y(无障碍审计)
  • @storybook/addon-themes(主题切换)
  • storybook-addon-pseudo-states(hover/focus/active 等伪状态模拟)

5. 主题系统(Theme System)

请阅读 references/theming.md,了解完整主题架构:CSS 自定义属性(custom properties)策略、暗色模式实现方式(媒体查询 vs 类名控制)、React 的 ThemeProvider 模式,以及 Vue 3 的 provide/inject 方案。

核心概念

令牌定义的是语义别名(semantic aliases),指向基础值(primitives):

/* 基础值 */
--color-blue-500: #3b82f6;

/* 语义化(具备主题感知能力) */
[data-theme="light"] { --color-primary: var(--color-blue-500); }
[data-theme="dark"]  { --color-primary: var(--color-blue-400); }

组件仅引用语义令牌 —— 不得直接引用基础值。

6. 测试策略

请阅读 references/testing-strategy.md,了解完整的测试金字塔模型:单元测试(Vitest)、交互测试(Testing Library)、视觉回归测试(Chromatic/Percy),以及无障碍自动化检测。

组件库的测试金字塔

        [视觉回归测试]     ← Chromatic / Percy
       [交互测试]          ← @testing-library/react
      [单元测试 / 逻辑测试] ← Vitest

每个组件的最低测试要求:

  • 渲染不报错
  • Props 输入能产生预期输出
  • 交互状态(hover、focus、disabled)正常工作
  • 无严重无障碍问题(axe-core 检测)

7. 发布流水线(Release Pipeline)

请阅读 references/release-pipeline.md,了解完整发布流程:Changesets 配置、版本管理策略、自动生成变更日志(changelog)、CI/CD 流水线,以及 npm 发布机制。

工具:Changesets

pnpm add -D @changesets/cli -w
pnpm changeset init

典型工作流:

  1. pnpm changeset —— 创建 changeset(描述变更内容)
  2. pnpm changeset version —— 提升版本号 + 更新 CHANGELOG.md
  3. pnpm changeset publish —— 发布至 npm

Vue 3 注意事项

大部分模式同样适用于 Vue 3,仅需少量适配:

  • Props:使用 defineProps() 并配合 TypeScript 泛型
  • expose() 替代 React 的 forwardRef
  • 主题注入:使用 provide/inject 替代 React Context
  • 测试:采用 @vue/test-utils + Vitest
  • 详见 references/component-patterns.md 中的 Vue 专属示例

推荐技术栈汇总

层级 React Vue 3
单体仓库(Monorepo) pnpm + Turborepo pnpm + Turborepo
构建工具 tsup / Vite tsup / Vite
设计令牌 Style Dictionary Style Dictionary
文档 Storybook 8 Storybook 8
单元测试 Vitest + Testing Library Vitest + @vue/test-utils
视觉回归测试 Chromatic Chromatic
发布管理 Changesets Changesets
CSS 方案 CSS Modules / CSS-in-JS CSS Modules / scoped SFC

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

0

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

0

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

0

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

0

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

0

13

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

2026.09.22

0

19

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

2026.09.22

0

19

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

2026.09.22

0

21

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

2026.09.22

0

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程