关于 design-foundation
design-foundation 是用于在代码库中创建或提取设计令牌文件的技能。它指导开发者检查现有样式、规划令牌层级,并将原始样式值迁移到令牌系统中。
主要功能
- 01检查样式并识别技术栈
- 02从现有样式值提取令牌
- 03定义全局与语义令牌层
- 04配置 Tailwind 或 CSS 令牌
- 05迁移原始值并记录映射
适用场景
- 01为新代码库建立令牌
- 02整理现有视觉系统
- 03为后续设计工作准备令牌基础
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sanky369/ vibe-building-skills --skill design-foundation安装后在 Claude Code 中输入/design-foundation确认已加载。
附带文件references/token-architecture.md
详细介绍
设计基础
为这个特定代码库生成可用的 token 文件,而不是编写一份介绍 token 的文档。Token 是一项有名称的设计决策(--color-text-primary、--space-4);将它们集中管理,才能让后续的每项设计工作(布局、字体、颜色、组件)保持一致。指导原则:先提取,再创造——在现有代码库中,token 系统应将已有设计中最好的部分规范化,因此迁移应是重命名,而不是重新设计。
适用场景 / 后续衔接
- 用于从头创建 token,或从现有代码库中提取 token。
- 如果用户的问题主要是颜色(调色板、对比度、深色模式层次)→ 在 token 基础结构就绪后使用
skills/frontend-design/color-system。 - 如果主要是字体(比例、字体、可读性)→ 使用
skills/frontend-design/typography-system。 - 如果用户想基于 token 构建组件 → 接下来使用
skills/frontend-design/component-architecture。 - 对于宽泛的“从哪里开始”请求 → 使用
skills/frontend-design/frontend-orchestrator。
步骤 1 — 检查代码库
提问前先收集证据:
- 查找当前的样式入口。 使用 Glob 查找
tailwind.config.{js,ts,cjs,mjs}、**/globals.css、**/index.css、**/app.css、**/*theme*、**/tokens*。阅读这些文件。 - 识别技术栈。 Tailwind v4(
@import "tailwindcss"+ CSS 中的@theme)、v3(配置文件中的theme对象),还是 CSS Modules / styled-components / 原生 CSS。检查package.json中的 tailwindcss 版本。 - 衡量偏差。 在源代码中搜索
#[0-9a-fA-F]{3,8}\b、rgba?\(、hsla?\(→ 统计不同颜色的数量。搜索\d+px和 Tailwind 任意值\[(\d+px|#)→ 统计游离的间距 / 尺寸值。这些统计数据应写入说明理由中。 - 找出事实上的设计系统。 按出现频率排序找到的值。使用最多的字号、间距步进和颜色是候选 token。
- 检查深色模式(
dark:、prefers-color-scheme)——据此判断语义层现在是否需要同时支持两种模式。
步骤 2 — 收集需求
一次性询问尚未明确的信息:品牌色(或“由你决定”)、产品风格(密集的数据工具,还是宽敞的营销 / 消费者产品)以及现在还是之后再支持深色模式。其余内容自行推断。**不要拖延:**如果代码库已经给出答案(例如明显的品牌蓝,或已有 dark: 用法),说明假设并继续。
步骤 3 — 构建 token 系统
至少分两层;若存在组件库,则分三层:
- 全局 token — 原始值:中性色阶(50–950,色调偏向品牌色,绝不用纯灰)、品牌色阶、语义状态色(成功 / 警告 / 错误 / 信息)、以 4px 为基准的间距比例(4、8、12、16、24、32、48、64)、字号、圆角、阴影、z-index 步进、过渡时长。
- 语义 token — 表示含义,并引用全局 token:
bg-primary/secondary、text-primary/secondary/tertiary/inverse、border-primary、interactive-primary/hover/active/disabled。深色模式切换的是这一层——组件只使用语义 token。 - 组件 token — 仅在存在组件库或计划下一步构建组件库时使用(
--button-primary-bg: var(--color-interactive-primary))。
决策规则:
- Tailwind v4 → 在主 CSS 文件的
@theme中将 token 定义为 CSS 变量。Tailwind v3 → 在配置中使用theme.extend,并将语义层作为 CSS 变量供配置引用。不使用 Tailwind → 在:root上使用普通 CSS 自定义属性(+.dark或媒体查询代码块)。 - **提取规则:**如果现有值聚集在一起(15px、16px、17px),则归并为最接近出现频率最高值的比例值;在迁移映射表中列出每一项归并。
- **命名:**使用 kebab-case,以类别开头(
--color-text-primary、--space-4、--radius-md)。若项目使用 Tailwind,则沿用 Tailwind 的名称,以便工具类继续生效。
规范形态(CSS 变量;根据检测到的技术栈调整)
:root {
/* global */
--gray-50: #F8FAFC; --gray-500: #64748B; --gray-900: #0F172A; /* full 50–950 ramp, brand-tinted */
--brand-500: #3B82F6; --brand-600: #2563EB; /* full ramp */
--space-1: 0.25rem; --space-2: 0.5rem; --space-4: 1rem; --space-8: 2rem;
--radius-md: 0.375rem; --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.10);
/* semantic — the only layer components touch */
--color-bg-primary: var(--gray-50);
--color-text-primary: var(--gray-900);
--color-text-secondary: var(--gray-600);
--color-border-primary: var(--gray-200);
--color-interactive-primary: var(--brand-600);
--color-interactive-hover: var(--brand-700);
}
.dark {
--color-bg-primary: var(--gray-950); /* dark gray, never #000 */
--color-text-primary: var(--gray-50);
--color-text-secondary: var(--gray-300);
--color-border-primary: var(--gray-700);
}
完整的三层分类、Tailwind v3/v4 接线方式,以及变体/响应式令牌模式:构建完整文件时,请阅读 references/token-architecture.md。
第 4 步——编写文件并迁移最突出的问题
- 将令牌写入检测到的入口点(不要在现有系统旁另建一套系统,而应在其基础上扩展)。
- 迁移流量最高的 1–3 个文件(即 grep 结果显示偏差最大、最明显的文件)作为示例,用令牌替换原始值。
- 为其余部分生成迁移映射。
必需的输出格式
提供代码和以下摘要:
## Tokens file
[path written, e.g. src/app/globals.css or tailwind.config.ts — full contents]
## Decisions
| Decision | Choice | Why |
| Stack wiring | Tailwind v4 @theme / v3 config / CSS vars | [detected how] |
| Neutral tint | [hue] | matches brand [color] |
| Spacing base | 4px | [most existing values already multiples / default] |
| Dark mode | now via .dark class / deferred | [user answer or inference] |
## Migration map (worst drift first)
| Found in code | Count | Replace with |
| #3c82f7, #3B82F6, #3a80f0 | 23 | var(--color-interactive-primary) |
| padding: 13px / p-[13px] | 9 | var(--space-3) (12px) |
| ... |
## Migrated now
[files actually edited as demonstration]
## Next step
[Which skill consumes this — typically skills/frontend-design/typography-system or color-system]
质量标准(交付前检查)
- 如果已提供暗色模式,则两种模式下每组语义文本/背景搭配均符合 WCAG AA(普通文本对比度为 4.5:1,大号文本为 3:1)
- 间距刻度采用基于同一基数的单一、近似几何级数;没有游离的刻度
- 中性色带有品牌色调(饱和度非零),不使用
#808080/纯黑#000 - 组件/示例仅引用语义令牌,绝不直接引用全局令牌
- 令牌名称不会与现有名称冲突;Tailwind 工具类仍可正常解析
- 迁移映射涵盖第 1 步中发现的每个值簇,且每个值簇恰好映射到一个令牌
- 没有引入第二套并行令牌系统
集成
- 消耗:来自
skills/frontend-design/frontend-orchestrator的成熟度诊断和偏差计数(如果运行了该工具)。 - 生成由以下工具使用的令牌文件:
skills/frontend-design/typography-system(扩展类型令牌)、skills/frontend-design/color-system(扩展色阶和暗色模式)、skills/frontend-design/layout-system(间距和断点)、skills/frontend-design/visual-hierarchy-refactoring(将屏幕重构为使用令牌)以及skills/frontend-design/component-architecture(组件层)。
参考资料
references/token-architecture.md——包含完整列表的三层令牌分类、Tailwind v3 和 v4 接线方式,以及暗色模式、组件变体和响应式令牌模式。编写完整的令牌文件或为不熟悉的技术栈配置接线时,请阅读。
评论
支持 Markdown