W3C Design Tokens Community Group 规范深度研究

从 2014 年 Salesforce 的一个命名想法,到 2025.10 首个稳定版:设计令牌标准化的十年,它解决了什么、没解决什么、以及 AI 时代它的新角色。

研究对象:Design Tokens Format / Color / Resolver Module 2025.10(Final Community Group Report,2025-10-28 发布) · 方法:一手规范文本精读 + 工具生态检索 + 行业调查交叉验证 · 完成日期:2026-09-15

00摘要:核心论断

只读这一页也能带走结论。每条论断可证伪、有出处,正文各章是其展开。

论断 1DTCG 规范是 W3C Community Group 规范(Community FSA 协议下的 Candidate Recommendation),不是 W3C 推荐标准——但它已是设计工具间事实上的交换通用语,10+ 工具支持、40+ 组织参与制定。写合同时不要写「W3C 标准」。
论断 22025.10 由 Format / Color / Resolver 三模块组成。把「令牌数据格式」与「多上下文解析策略」拆成两个模块,是 v1 最关键的架构决策:格式本体保持极小,主题化这种争议最大的问题独立演进。
论断 3Format 本体极小:硬性判定规则只有一条——「含 $value 的对象就是 token」;类型系统仅 7 种基本类型 + 4 种组合类型,其余($type 推断、组继承、$extends、$deprecated)全部可推断或可选。小核心是它能被快速采纳的根本原因。
论断 4主题化走 Resolver 模块(sets / modifiers / $ref)而非格式内嵌 mode 字段。这终结了 2022 年 issue #187 的「token 与 theme 概念之争」,但生态里仍存在两种过渡方言:「每 mode 一个文件」与 $extensions 厂商扩展(Figma 即如此)。
论断 5色彩系统是 v1 最大升级点:从 hex 字符串升级为 CSS Color Module 4 全部色彩空间(oklch、display-p3 等)的对象表示——hex 时代无法表达的广色域设计,第一次可以无损跨工具传输。
论断 6采用数据两极:zeroheight 2026 调查显示 90% 团队在设计工具中定义 token、82% 在代码中使用,但只有 40% 拥有任何 token 自动化管线、双向同步仅 5%、跨库别名仅 21%。标准解决了文件格式之争,没解决组织治理问题。
论断 7Figma 是生态最大短板:变量无类型语义(一个 float 无单位)、DTCG 导入仅支持基础类型且 dimension 只认 px、导出长期依赖插件与 com.figma 扩展。但生态在向标准收敛而非分叉——Google 的 fork 被分析为 DTCG 的包装而非竞争者。
论断 8组合类型(typography、shadow 等)是规范最年轻、工具支持最弱的边缘——「基座已稳固、边缘仍在收敛」:Style Dictionary 与 Terrazzo 已提出共享格式联合提案。颜色和间距可以立刻依赖标准;字体阶梯和高程阴影仍是轻微的超前押注。
论断 9AI 时代 token 文件的新角色:从设计-代码同步机制,变成 AI agent 可读的设计系统机器接口。陈旧 token 造成的 drift 会被 AI 以无人审查的速度放大——token 校验与 CI 门禁的价值被重估,从「最好有」变成「必须有」。

↑ 目录

01范式判定:它是什么、不是什么

讨论规范之前先钉死概念。围绕 design token 有四组经常被混用的词,DTCG 只标准化了其中最小的一块。

1.1 十年时间轴:从名词到稳定规范

design token 这个词 2014 年诞生于 Salesforce 设计系统团队(Jina Anne 与 Jon Levine),而它拿到第一份稳定规范文本,用了整整十一年。中间的每一次跃迁都值得看清:2017 年 Style Dictionary 开源证明「令牌可以编译成任何平台代码」;2021-2022 两版编辑草案确立了今天 $value/$type 的形状;2025 年的两次合入(现代色彩、组继承)补上了规模化使用的最后两块短板,随后在 2025 年 10 月一次性发布了 Format、Color、Resolver 三个稳定模块。

2014 Salesforce 提出 「design token」 2017 Amazon 开源 Style Dictionary 2020 DTCG 在 W3C 成立 2021.09 第一份公开 编辑草案 2022.06 第二版编辑草案 $ 前缀等破坏性变更 2025.04 现代色彩模块合入 (PR #266) 2025.10 首个稳定版发布 Format/Color/ Resolver 三模块
图 1|Design Tokens 标准化时间轴(2014–2025)。2025.10 稳定版是十一年演化的收敛点,而非起点;各节点均有一手出处(W3C 邮件列表档案、DTCG 官方公告、GitHub PR 记录)。

1.2 概念分野:四个经常被混用的词

概念是什么与 DTCG 规范的关系
Design Token一条带名字的、平台无关的设计决策(颜色、间距、字号……)规范的核心对象,用 $value + 可选 $type 表示
CSS 自定义属性CSS 的运行时变量,有级联作用域token 的编译目标之一,不是 token 本身;token 是源、CSS 变量是产物
Theme / Mode一组按上下文(亮暗、品牌、无障碍)切换的取值方案不由 Format 模块表达,由 Resolver 模块的 sets/modifiers 表达
Design System组件、规范、治理、文档的整体token 只是设计系统的数据原子;标准不覆盖组件与治理

2022 年 11 月的 GitHub issue #187 把这个分野正面提了出来:token 的值在全系统不变、是常量;会变的是 theme 引用 token 的键。把两者都叫「design token」制造了大量混淆。2025.10 的模块划分(格式不含 theme、theme 进 Resolver)正是对这场争论的规范化回应。

1.3 判别式:它不是 W3C 标准

这是几乎所有二手报道都会写错的一点,也是写进合同前必须分清的一点。规范文本原文:*「This specification was published by the Design Tokens Community Group. It is not a W3C Standard nor is it on the W3C Standards Track.」*它的法律与流程地位是:

维度事实
发布主体W3C Design Tokens Community Group(开放成员制,任何人可加入)
文档类型Final Community Group Report,按 W3C 流程标记为 Candidate Recommendation(候选推荐)
知识产权协议W3C Community Final Specification Agreement(FSA)+ Community CLA,贡献者授予免版税实施许可
稳定性声明规范原文明确「This specification is considered stable」,后续更新通过替代规范(superseding specifications)提供
与 W3C Rec 的关系不走 W3C 标准轨道、无 Director 审批;「候选推荐」的标签意在表达「经过广泛共识、可投入实现」,而非同等法律地位

工程上的结论:它没有 W3C Rec 的强制力,但拥有比多数 W3C Rec 更直接的行业背书——Adobe、Google、Microsoft、Meta、Amazon、Figma、Salesforce、Shopify、Sony、Pinterest、NYT、Disney 等 40+ 组织参与,Style Dictionary、Tokens Studio、Terrazzo 提供参考实现。对采用决策而言,「事实标准」比「官方标准」更重要。

↑ 目录

02理论根基:为什么必须是这个形状

规范的每个形状选择都可以推导出具体工程动作。这不是审美偏好,是约束条件下的最优解。

2.1 四个形状选择及其工程推论

设计选择为什么推导出的工程动作
JSON 作为交换格式 无所不在的工具链支持、人类可读、跨语言解析零依赖。YAML/TOML 会引入解析器分歧;XML 过重。 不要自造 DSL。任何 token 工具链的第一公民格式应是 JSON;YAML 只能作为编辑便利层,落盘前转 JSON。
属性统一加 $ 前缀 token 名与元数据属性共享同一个 JSON 对象。不加前缀则 type/value 与用户取的 token 名有命名冲突风险——2022.06 第二版草案正是为此做了破坏性变更(type → $type)。 解析器只需一条判定规则:含 $value 的对象是 token,否则是 group。自己写工具时用这条规则而不是启发式猜测。
显式 $type 且禁止从值猜测 同一个 "#FFF" 无法区分是颜色还是字符串;类型是语义的一部分,不是语法的一部分。规范明确:类型推断只能走「别名解析」或「继承父组」,不得检查 $value 内容猜类型。 永远显式写 $type(自动检测跨工具脆弱,是生态公认的最佳实践)。CI 校验器应把「无 $type 且无继承来源」直接判错。
别名字符串 {path.to.token} 引用是 token 系统的价值核心(语义层指向原始层)。用 JSON 内嵌字符串而非 JSON Pointer 作为主语法,是为了人类可读可写——设计工具的用户不写 JSON Pointer。 语义层命名用「角色」而非「外观」(color.text.primary 而非 color.gray.900),这样换品牌不用改名。alias 链必须进 CI 校验(循环引用规范要求报错)。

2.2 小核心、大外围:规格面积的最小化

Format 模块的规范性内容可以画在一页纸上:一条判定规则、7 种基本类型、4 种组合类型、5 个可选属性。对比同类设计系统规范动辄数百页,这个「规格面积」的差异是刻意的——每一条强制性规定都是未来所有工具必须实现的成本。DTCG 把成本压到最低,把可变的部分(色彩空间、主题策略、厂商元数据)放进独立模块或 $extensions。

这解释了采用速度:一个新工具支持「读 DTCG」的最小实现,只需要一个 JSON 解析器和一条判定规则;支持得好,才需要实现别名解析、类型继承、Resolver。标准用最小的一致性内核换来了最大的一致性收益——所有工具至少 agree on the base(原始 token、色彩、间距、引用语法),只在最年轻的边缘(组合类型)存在方言。

↑ 目录

03规范架构:三个模块,一次发布

2025.10 不是一份文档,是三份同时发布、互相引用的稳定模块。模块边界本身就是设计决策。

Color 模块 · 定义 color 类型的取值结构 · 对齐 CSS Color 4:oklch / display-p3 等 · sRGB hex 仍是合法的旧式写法 Resolver 模块 · sets / modifiers / resolutionOrder · $ref 引用外部文件,多上下文组合 · 主题化(亮暗 / 品牌 / a11y)的家 Format 模块(内核) · 判定规则:含 $value 的对象即 token;7 基本类型 + 4 组合类型 · groups / 别名 / $extends 继承 / $deprecated / $extensions · 底层格式:JSON(RFC 8259),推荐 .tokens.json 扩展名 为 color 类型提供取值结构 扩展 Format:组织与解析
图 2|2025.10 三模块架构。Color 与 Resolver 都扩展 Format,但方向不同:Color 向下定义值结构,Resolver 向上组织文件与上下文。三个模块均以 Candidate Recommendation 身份发布。

3.1 模块职责与边界

模块回答的问题关键机制2025 年新增
Format一个 token 长什么样?$value / $type / groups / 别名 / $extends组继承与 $extends(PR #298,2025.10 合入)
Color颜色值如何无歧义表达?带 colorSpace 的对象表示CSS Color 4 全空间(PR #266,2025.04 合入)
Resolver多文件、多上下文如何拼装?sets / modifiers / resolutionOrder / $ref整个模块都是新的(2025.09 RFC 征集意见后定稿)

这个切分回答了 v1 草案阶段最大的悬案。2019-2021 年间社区反复争论「主题化要不要进格式」:$themes、mode 字段等方案都曾被提出又搁置。最终答案是格式保持纯粹(描述静态数据),主题化作为解析策略独立成模块——两者可以分开演进,工具可以只实现 Format 而不实现 Resolver。

↑ 目录

04Format 模块精读:一页纸的内核

这一章是规范的「精读笔记」,全部内容可在 Format Module 2025.10 原文中逐条对应。

4.1 一条判定规则

含 $value 属性的对象是 token;不含的是 group。对象同时含 $value 与子项属无效结构,工具必须报错。

解析器因此不需要配置、不需要启发式:$value 是保留字,一条规则遍历整棵 JSON 树。token 名称本身有字符限制——不能以 $ 开头、不能含 {、} 或 .(避免与别名语法冲突),且区分大小写。

4.2 Token 解剖

{
  "color": {                          // group:不含 $value 的对象
    "$type": "color",                 // 组级类型:组内未声明的 token 继承
    "$description": "品牌色板",
    "accent": {                       // 嵌套 group
      "$root": {                      // $root 保留名:该组的根 token
        "$value": { "colorSpace": "oklch",
                    "components": [0.65, 0.21, 290],
                    "alpha": 1 },     // Color 模块的对象写法
        "$type": "color",
        "$description": "主品牌色(OKLCH)"
      },
      "primary": {
        "$value": "{color.accent.$root}",   // 别名:完整 token 引用
        "$deprecated": "改用 color.action.primary"
      },
      "fallback": {
        "$value": "#1D4ED8",          // 旧式 hex 写法仍然合法
        "$extensions": {              // 厂商扩展:工具必须原样保留
          "org.example.tool": { "id": "a1b2" }
        }
      }
    }
  }
}
图 3|一条 token 的完整解剖(注释版示例,非规范原文)。注意三条规则:$type 缺失时只能沿「别名解析 → 父组继承」推断、不得从值猜测;组级 $deprecated 会扩散到全部子 token,除非子 token 显式覆盖;$extensions 中工具不认识的键必须保留。

4.3 属性总表

属性适用对象必填说明
$valuetoken是保留字;类型化取值或别名
$typetoken / group否缺失时按别名解析或父组继承推断;推断失败即无效
$descriptiontoken / group否纯文本,供工具展示
$deprecatedtoken / group否true / 字符串(弃用+说明)/ false(显式解除父组弃用)
$extensionstoken / group否厂商元数据,键用反向域名(如 com.figma);工具必须保留不认识的扩展
$extendsgroup否继承另一 group,深度合并、禁止循环(详见第 05 章)
$rootgroup 内的 token 键—保留名:作为该组的根 token,路径如 color.accent.$root

4.4 类型系统:7 基本 + 4 组合

基本类型($value 为标量或简单对象)
colorColor 模块对象或 hex;取值结构由 Color 模块定义
dimension{ "value": 16, "unit": "px" | "rem" }
fontFamily字符串(单字体)或字符串数组(字体栈)
fontWeight数字 1–1000,或 thin/light/regular/bold/black 等预定义词
duration{ "value": 0.3, "unit": "ms" | "s" }
cubicBezier[x1, y1, x2, y2],x ∈ [0,1]
numberJSON 数字(可负、可小数;可承载行高、比例等)
组合类型($value 为预定义结构的对象/数组)
strokeStylesolid/dashed 等字符串,或 { dashArray, lineCap } 对象
border{ color, width, style },子值可为显式值或对应类型引用
transition{ duration, delay, timingFunction }
shadow阴影对象或对象数组:{ color, offsetX, offsetY, blur, spread, inset? }

注意:typography 曾出现在规范示例中,但 2025.10 的类型清单未将其列为正式类型——组合类型家族仍在收敛中(见论断 8)。8.8 节也以非规范语气提及 fontStyle、percentage、file 等未来候选。

4.5 文件约定

推荐扩展名 .tokens / .tokens.json;推荐 media type application/design-tokens+json(application/json 亦合法,工具必须两者都支持)。这使 token 文件可以被操作系统、编辑器、CI 识别为一类独立资产,而不是散落的「某种 JSON」。

↑ 目录

05引用与继承:token 系统的价值所在

如果说 $value 是格式的躯体,引用系统就是它的神经系统——语义层指向原始层、组件层指向语义层,改动沿链传播。

原始层 PRIMITIVES 语义层 SEMANTIC 组件层 COMPONENT color.blue.600 $value: #1D4ED8 color.gray.900 $value: #18171D space.200 $value: 8px (dimension) color.action.primary {color.blue.600} color.text.body {color.gray.900} space.form.gap {space.200} button.primary.bg {color.action.primary} 改 color.blue.600 一处 → 沿引用链自动传播;循环引用与类型不匹配规范要求必须报错
图 4|三层引用链。命名按「角色」而非「外观」(color.action.primary 而非 color.blue.600 作语义名),换品牌时只改原始层,全部下游无感更新。zeroheight 2026 调查显示只有 21% 团队建立了跨库别名(见第 09 章)。

5.1 两种引用语法,工具必须都支持

语法形式能力边界
花括号别名(主语法) "$value": "{color.accent}" 只能引用完整 token(目标必须含 $value);解析结果即目标 token 的整个值
JSON Pointer(RFC 6901) "$ref": "#/color/accent/$value/hex" 可指向文档任意位置:子属性、数组元素均可(如 components/0);转义规则 ~→~0、/→~1

设计意图明确:花括号语法为人类与设计工具而设,JSON Pointer 为程序化访问兜底。规范 7.5.1 要求工具同时支持两者——只实现其一不算合规。引用约束:支持链式引用(alias 套 alias);循环引用中所有 token 值未知,必须报错;引用目标不存在、解析后类型不匹配也必须报错。

5.2 $extends:组级继承(2025.10 新增)

PR #298 之前,group 只是「带元数据的文件夹」:组不能有默认值、不能复用。2025.10 补上了继承:

{
  "button": {
    "$type": "color",
    "$extends": "{variant-base}",   // 深度合并 variant-base 的全部内容
    "danger": { "$value": "{color.palette.red}" }   // 本地路径覆盖继承值
  }
}

规则:深度合并(deep merge),本地同名路径覆盖继承来源;禁止循环引用;语义等同 JSON Schema 的 $ref。$deprecated 同样沿组向下扩散——组被标记弃用,其下所有子 token 视为弃用,除非子 token 显式写 $deprecated: false 解除。这组机制让「组件级 token 家族」(一个按钮的全部状态色)从重复劳动变成一次定义、处处继承。

↑ 目录

06Color 模块:从 hex 单声道到 CSS Color 4 全频段

hex 是 sRGB 时代的容器。设计工具早已运行在广色域里,旧规范却只允许一种颜色写法——这是 v1 最大的升级。

6.1 新旧两种写法

// 旧式(仍然合法):hex 字符串,隐含 sRGB
{ "$type": "color", "$value": "#0066CC" }

// 新式:显式色彩空间的对象,CSS Color Module 4 全部空间可用
{ "$type": "color", "$value": {
    "colorSpace": "oklch",
    "components": [0.65, 0.15, 250],
    "alpha": 1
} }
图 5|同一颜色的两种表达。对象写法解决了三件事:感知均匀空间(oklch)下的色彩运算、广色域设备(display-p3)的无损传输、以及与 Figma / Penpot 等工具原生色彩模型的直接对齐。(PR #266,2025 年 4 月合入)

6.2 支持的色彩空间

Color 模块对齐 CSS Color Module 4,覆盖:srgb、srgb-linear、display-p3、a98-rgb、prophoto-rgb、rec2020、xyz、xyz-d50、xyz-d65、hsl、hwb、lab、lch、oklab、oklch。工程含义:

↑ 目录

07Resolver 模块:主题化的正解与过渡期的方言

3 个品牌 × 2 种模式 × 4 个平台 = 24 份几乎重复的 token 文件——Resolver 用「一次定义、按需解析」终结这道乘法题。

传统做法:全量组合 品牌 ×3 × 模式 ×2 × 平台 ×4 = 24 份 近重复的 token 文件,逐份维护 brand-a.light.json brand-a.dark.json brand-b.light.json … ×24 Resolver 做法:一次定义,按需解析 tokens.resolver.json sets: base(共享原始层 + 语义层) modifiers: theme → light | dark brand → a | b | c contexts: { "$ref": "theme/dark.json" } … 解析顺序 resolutionOrder 决定覆盖优先级 inputs: { "theme": "dark", "brand": "b" } 输出:仅该上下文的一份 token 集
图 6|Resolver 的核心思想:把「不变的共享 token」放进 sets,把「按上下文变化的少量覆盖」放进 modifiers 的 contexts,运行时按 inputs 解析出单个上下文的完整 token 集。文件间引用用 $ref 对象(如 { "$ref": "base/legacy.json" }),数组顺序即覆盖优先级;支持打包(bundling)为单文件。

7.1 关键澄清:两种「主题化方言」为何还存在

一个容易误读的点:Format 模块本身没有 mode/theme 字段。于是 2025 年的过渡生态里存在两种方言——这不是规范的缺陷,而是发布节奏的现实:

方言做法使用者
按 mode 拆文件每个 mode 一个 DTCG 文件(light.json / dark.json),由构建工具合并解析Style Dictionary v4、Tokens Studio 的推荐模式;Figma 原生导出也采用此模式
厂商扩展把 mode 值塞进 $extensions["com.figma"],工具自定义解析Figma 生态(变量集合/mode 元数据放扩展键中往返)
规范正解Resolver 模块:sets / modifiers / resolutionOrder / inputs2025.10 起的新实现;Terrazzo 等已跟进

选型含义:新项目直接按 Resolver 设计目录结构(base + modifiers);存量工具链用「按 mode 拆文件」最稳妥——它是社区推荐模式,未来可机械迁移到 Resolver。

↑ 目录

08工具生态与选型

「谁支持、支持到什么程度」决定今天的迁移路径。参考实现与跟随者要分开看。

8.1 支持矩阵(截至 2026-09)

工具角色DTCG 支持状态注意点
Style Dictionary v4参考实现 · 编译器一等公民:DTCG 解析器 + output referencesv3 的 value/type 旧形状仍可读,属迁移兼容层
Tokens Studio参考实现 · 设计侧管理导出/管理 DTCG;主题用兄弟文件 + $themes.json多 mode 与 $extensions 并存
Terrazzo参考实现 · 编译器完整支持 2025.10(含 Resolver 方向)与 Style Dictionary 有联合格式提案(边缘收敛信号)
Figma设计源工具变量导入支持 DTCG 基础类型;导出原生支持宣布中导入仅限 color(sRGB)/dimension(px)/string/number/boolean/fontFamily/duration(s);组合类型不进变量;mode 元数据走 com.figma 扩展
Penpot设计源工具(开源)支持/实现中,CEO 公开背书 v1—
Sketch / Framer / Knapsack / Supernova / zeroheight设计源 / 管理平台官方公告:已支持或实现中(10+ 工具)深度不一,落地前逐个验证
Google DESIGN.md公司内部 fork以 DTCG 为灵感自建 schema第三方分析判定为 DTCG 的包装而非竞争者——边缘方言,非分叉

8.2 选型决策树

同一套设计要跨 Web + iOS / Android 吗? 否 是 团队级 CSS 变量即可; token 命名纪律仍然值得保留 token 源文件在哪维护? (谁负责改名、评审、版本化) 设计工具 代码库 Figma 变量 + DTCG 导出 (原生/插件)→ Style Dictionary 或 Terrazzo 编译到各平台 .tokens.json 直接入库, CI 编译 + schema 校验, 设计侧用只读镜像 任一分支有多品牌 / 亮暗 / a11y 变体需求 → 用 Resolver 模块组织(过渡期可按 mode 拆文件)
图 7|采用决策树。第一个分叉是收益判断:token 管线的回报与「需要保持视觉一致的平台数量」成正比——单 Web 前端团队收益有限,跨平台品牌团队才是该格式的设计目标场景。

↑ 目录

09证据全景:采用度数据与反证据

标准的胜利 ≠ 实践的成熟。下面每条数据都标注了来源类型与证据强度,并直接列出与之相悖的证据。

0% 25% 50% 75% 100% 在设计工具中定义 token 90% 在代码中使用 token 82% token 有配套文档 66% 建有组件层 token 52% 有任何 token 自动化管线 40% 设计 → 代码自动化 29% 跨库 aliasing 21% 代码 → 设计自动化 6% 设计 ↔ 代码双向同步 5%
图 8|zeroheight《Design Systems Report 2026》关键数据(调查约 300 个团队)。蓝 = 「有没有」层,绿 = 架构深度,琥珀/红 = 自动化与同步缺口。解读:定义和使用已普及,管线是断层——多数团队仍在手工同步 Figma 与代码两份真相。

9.1 证据表

主张数据 / 事实来源强度
2025.10 为首个稳定版,三模块架构2025-10-28 发布,Final CG Report / Candidate RecommendationDTCG 官网 TR + W3C 公告(一手,2025)强
40+ 组织参与制定官方公告列名:Adobe、Google、Microsoft、Meta、Amazon、Figma、Salesforce、Sony、Pinterest、NYT、Disney 等DTCG 官方公告(一手,2025)强
token 已普及但管线缺失90% 设计工具定义 / 82% 代码使用,但仅 40% 有管线、5% 双向同步zeroheight 报告 2026(行业调查,n≈300)中强
采纳率一年内大幅上升56% → 84%(「某种形式使用 token」口径)zeroheight 报告转引(二手转述)中弱,口径需注意
Figma 导入类型受限仅 color(sRGB)/dimension(px)/string/number/boolean/fontFamily/duration(s);组合类型不可导入Figma 官方帮助文档(一手)强
基座收敛、边缘方言Style Dictionary × Terrazzo 联合格式提案;Google fork 为包装;组合类型支持最弱工程实践 / 技术评论(2026)中弱,方向性判断
治理是最大缺口组织支持满意度 42% → 32%;仅 8% 自评系统「非常稳定」zeroheight 报告 2026(行业调查)中强

9.2 反证据与数据口径注记

↑ 目录

10落地:成熟度阶梯、90 天路线与迁移清单

把标准变成工程动作。先定位自己在阶梯上的位置,再按 90 天节奏推进。

L0 硬编码 L1 命名变量 CSS 变量/常量 单平台、无编译 L2 DTCG 单文件 .tokens.json + $value/$type Style Dictionary 编译 多平台输出 循环引用 CI 报错 L3 语义三层 原始 → 语义 → 组件 只引用下一层 schema 校验 + 门禁 弃用走 $deprecated 设计侧 DTCG 导出 单向同步稳定 审计 drift 指标 L4 多上下文 Resolver:sets + modifiers 多品牌 / 亮暗 / a11y 跨库 aliasing 双向同步(代码→设计) token 变更评审流程 AI agent 消费接口 drift 即时告警 治理有具名 Owner 按上下文解析发布 (行业仅个位数 % 到达) zeroheight 2026 参照:90% 团队在 L1-L2 之间;组件层(L3 前置)52%;Resolver 级(L4)是个位数百分比的前沿
图 9|token 工程成熟度阶梯。多数团队卡在 L2→L3——不是格式问题,是「语义层命名权 + CI 门禁」的组织问题(对应第 11 章反模式)。

10.1 90 天路线

W0 W2 W4 W6 W8 W10 W12 盘点与分层设计 审计硬编码值,定三层命名法 试点编译管线 .tokens.json → Style Dictionary → 多平台输出 + 校验 语义层铺开 组件 token + $deprecated 机制 CI 门禁与治理 PR 校验、drift 审计、具名 Owner
图 10|90 天路线(12 周)。试点管线与盘点重叠两周:先用 1-2 个组件验证编译链路,再全量铺开。多品牌/多主题团队在第 10 周后追加 Resolver 迁移专项。

10.2 迁移清单(存量 token → 2025.10)

  1. 结构改造是机械的:每个值包进 $value、补 $type、引用改写为 {path.to.token}。Style Dictionary v4 可直接读 DTCG,多数团队只需改配置 + 一轮 schema 校验,不必手改每个文件。
  2. 顺手审计语义层:迁移把每个引用变成显式的、可 lint 的。正是清理「语义 token 并没有真的 alias 到你以为的基础 token」这类历史漂移的最佳时机。
  3. 组合类型保持谨慎:colors/spacing 可以完全依赖标准;typography/shadow 先在单一编译工具内闭环,避免跨工具往返。
  4. Figma 侧:变量命名用点路径(color.bg.default)以便导出即成组;接受导入类型限制(组合样式留在代码侧或插件层)。
  5. 验收标准:一名工程师改一处 token 值 → 跑一次构建 → Web/iOS/Android 三端同时生效,全程无人手改样式表。

↑ 目录

11反模式清单与 AI 新变量

标准解决不了的部分,靠规避反模式解决。每条给出症状与修正。

11.1 反模式

层反模式症状修正
战略把 token 当整理术给散乱值起了名,但没人管改名、评审、版本;两份真相(Figma 与代码)持续漂移先立治理:谁有权改语义层、冲突时哪边赢、drift 谁负责——回答不出「Figma 和代码打架时呼谁」就还没开始
合(jq)同(qi)写「W3C 标准」合规/采购文档把 DTCG 写成 W3C Recommendation写「W3C Community Group 规范(FSA,Candidate Recommendation)」
锁死单一工具格式token 源用厂商私有 schema,换工具即重写源文件一律 DTCG 形状;厂商格式只作导出产物
工程省略 $type 依赖猜测同一值跨工具被解析成不同类型;规范明令禁止从值猜类型显式写 $type;CI 校验「无类型且无继承来源」直接报错
语义层按外观命名color.gray.900 被组件直接引用,换品牌全库改组件只引用角色名(color.text.primary);原始层只允许被语义层引用
hex 一路到底衍生色阶靠肉眼调 hex,广色域屏幕上偏差不可控oklch 等感知均匀空间作创作源,hex 只是导出产物
治理token 无文档36% 的团队 token 没有文档(2026 数据);新人靠猜用足 $description 与 $deprecated 说明——它们是规范内建的自文档机制
弃用只靠口头旧 token 常年并存于 Figma 与代码$deprecated + 编译告警;组级弃用一次标记整组失效
跳层引用组件直接引用原始层(L3→L1),换主题失效每层只引用下一层;lint 规则强制

11.2 AI 时代的新变量:token 文件是机器接口

2026 年的一个结构性变化:AI 编码工具与设计 agent 开始把 token 文件当作设计系统的机器可读接口。这改变了两件事的权重:

↑ 目录

12结论与参考来源

12.1 结论(这是观点,不是共识)

  1. 格式之争已经结束。2025.10 之后还在自造 token 格式,等于在 TCP/IP 之上发明新协议——收益为零、互通成本全自负。基座(原始值、色彩、间距、引用语法)可以立即依赖。
  2. 但「标准化」只完成了一半。90% 的采用率与 5% 的双向同步之间的鸿沟是组织和治理问题,任何规范都帮不了;这部分的投资回报目前高于格式本身。
  3. Figma 是最大的单点风险与单点机会。它类型语义的缺失让「标准」在设计源一端仍是插件的天下;反过来,一旦其原生导出全面落地,生态将从「收敛中」跳到「收敛完成」。对 Figma 重度团队的务实策略:以 DTCG 文件为真源,把工具当视图。
  4. 组合类型按「赌注」管理,原始与语义 token 按「事实」管理——两者的确定等级不同,迁移策略也应不同。
  5. 未来 12 个月值得盯的三件事:Figma 原生导出的落地深度;Style Dictionary × Terrazzo 联合格式提案对组合类型的收敛;Resolver 在主要工具中的实现进度(它决定多品牌系统的标准化解法何时可用)。

12.2 参考来源

一手规范与官方文档

  1. Design Tokens Technical Reports 2025.10(总览,Final Community Group Report,2025-10-28)— designtokens.org/TR/2025.10
  2. Design Tokens Format Module 2025.10 — designtokens.org/TR/2025.10/format
  3. Design Tokens Resolver Module 2025.10 — designtokens.org/TR/2025.10/resolver
  4. DTCG 官方公告:Design Tokens specification reaches first stable version(2025-10-28)— w3.org/community/design-tokens
  5. W3C 邮件列表档案:Call to implement the Second Editors' Draft(2022-06-14,含破坏性变更清单)— lists.w3.org
  6. Figma 帮助:Import variables with DTCG tokens(支持的类型与单位限制)— help.figma.com

行业调查

  1. zeroheight《Design Systems Report 2026》(约 300 团队;采用率、管线率、架构分层、稳定性自评)— report.zeroheight.com

方法论与工程实践(含方向性判断)

  1. DTCG GitHub:issues #187(Themes/Schemes vs. Design Tokens,2022-11)、PR #266(现代色彩,2025-04)、PR #298(组继承,2025-10)— github.com/design-tokens/community-group
  2. Design Tokens in 2026: The W3C Format, Explained(CODERCOPS,2026,迁移实操)— blog.codercops.com
  3. What's new in the Design Tokens spec(2025/2026,PR 级变更解读:色彩、组继承、Resolver)— cur.at/UD2KiKd
  4. Even Figma isn't sure about its own design tokens(DEV Community,2026,Figma 类型语义缺失与生态方言分析)— dev.to/slafleche
  5. Design-to-Code Sync Workflows(CSS Architecture,2026,Figma→CSS 七段管线与三层校验门禁)— css-architecture.com
  6. Enterprise Design Systems in the AI Era(f1Studioz,2026,AI 时代治理模型与 drift 论述)— f1studioz.com
  7. GitLab UI design tokens 文档(Style Dictionary + Format Module 实际集成案例)— gitlab.com/gitlab-org/gitlab-ui

证据处理说明:所有引用数据已回溯一手来源;行业调查为自报数据(样本与口径见 9.2 节注记);标注「方向性判断」的条目为基于多个独立来源交叉印证的推断,非硬数据。规范原文引用以英文为准,中文为本文翻译。

↑ 目录