MODULE 14 / LESSON 01

Design Tokens:设计与代码的共同语言

区分基础值、语义角色和组件级变量。

53 / 60 课走向真实交付

先理解这个概念

基础 token 保存色板和尺寸,语义 token 描述用途,组件 token 处理局部契约。并非每个值都必须经过三层映射;复杂度应随主题、品牌与平台需求增长。命名应让使用者理解意图。

Token 把设计意图转换成可引用的值。原始值如蓝色色阶,语义值如主操作背景,组件值如按钮默认背景,处于不同抽象层。语义层能让主题变化不影响业务代码,但过度细分又会让每个属性都变成孤立配置。应以真实复用和变化需求决定层级。

用程序员的语言说

像 constants → domain config → component props 的分层,避免所有地方依赖原始值。

记住这三个原则

  1. 01

    先抽取重复且需要统一变化的值。

  2. 02

    语义命名说明用途,避免把颜色写进业务角色。

  3. 03

    给主题与平台覆盖定义明确优先级。

实际设计时,分三步做

  1. STEP 01

    从高频颜色、文字和间距提取原始值,再为稳定用途建立语义别名,避免组件直接依赖某个色号。

  2. STEP 02

    定义主题与状态映射,成对审查文字和背景;区分全局语义与确实只属于某个组件的特殊值。

  3. STEP 03

    用两个不同页面验证复用,修改一个语义值观察影响范围,检查是否有业务模块偷偷覆盖造成不一致。

一个容易理解的例子

BEFORE / 常见问题

四十个页面各自写 #246bfd,改品牌色时遗漏了错误提示。

AFTER / 可以这样改

主要操作统一引用 action token,错误状态使用独立 danger token。

设计意图被编码为可维护的契约。

IMPLEMENTATION NOTE
:root {
  --green-900: #263d22;
  --action-primary-bg: var(--green-900);
}
.button-primary { background: var(--action-primary-bg); }

展开看:从场景到设计决定

按钮背景引用 action-primary-bg,而非直接写某个蓝色。深色主题将该角色映射到另一组值,按钮文字同时映射到配套颜色。警告背景即使暂时与品牌浅色相同,也应保留不同语义名,因为未来变化理由不同。Token 的收益来自表达变化原因,不是把所有字面量机械搬进 JSON。

适用边界与取舍

并非所有值都要做全局 Token。只用一次的特殊插图尺寸可以局部管理;把每个边距都公开会增加系统维护成本。

YOUR TURN

把这个原则用一次

先做一个小判断

把 --blue-button 改为更耐变化的命名。

再完成一份设计练习

为按钮和提示框建立原始、语义和组件三层映射,说明哪些层可以暂时省略。

容易踩的坑

不要过早为每个像素创建独立 token,过度抽象会降低理解效率。

继续查阅

本课为原创教学解释。具体平台规则与标准可查阅官方资料。

Apple Human Interface GuidelinesMaterial Design 3