MODULE 14 / LESSON 01
Design Tokens:设计与代码的共同语言
区分基础值、语义角色和组件级变量。
先理解这个概念
基础 token 保存色板和尺寸,语义 token 描述用途,组件 token 处理局部契约。并非每个值都必须经过三层映射;复杂度应随主题、品牌与平台需求增长。命名应让使用者理解意图。
Token 把设计意图转换成可引用的值。原始值如蓝色色阶,语义值如主操作背景,组件值如按钮默认背景,处于不同抽象层。语义层能让主题变化不影响业务代码,但过度细分又会让每个属性都变成孤立配置。应以真实复用和变化需求决定层级。
像 constants → domain config → component props 的分层,避免所有地方依赖原始值。
记住这三个原则
- 01
先抽取重复且需要统一变化的值。
- 02
语义命名说明用途,避免把颜色写进业务角色。
- 03
给主题与平台覆盖定义明确优先级。
实际设计时,分三步做
- STEP 01
从高频颜色、文字和间距提取原始值,再为稳定用途建立语义别名,避免组件直接依赖某个色号。
- STEP 02
定义主题与状态映射,成对审查文字和背景;区分全局语义与确实只属于某个组件的特殊值。
- STEP 03
用两个不同页面验证复用,修改一个语义值观察影响范围,检查是否有业务模块偷偷覆盖造成不一致。
一个容易理解的例子
四十个页面各自写 #246bfd,改品牌色时遗漏了错误提示。
主要操作统一引用 action token,错误状态使用独立 danger token。
设计意图被编码为可维护的契约。
:root {
--green-900: #263d22;
--action-primary-bg: var(--green-900);
}
.button-primary { background: var(--action-primary-bg); }展开看:从场景到设计决定
按钮背景引用 action-primary-bg,而非直接写某个蓝色。深色主题将该角色映射到另一组值,按钮文字同时映射到配套颜色。警告背景即使暂时与品牌浅色相同,也应保留不同语义名,因为未来变化理由不同。Token 的收益来自表达变化原因,不是把所有字面量机械搬进 JSON。
适用边界与取舍
并非所有值都要做全局 Token。只用一次的特殊插图尺寸可以局部管理;把每个边距都公开会增加系统维护成本。
把这个原则用一次
先做一个小判断
把 --blue-button 改为更耐变化的命名。
再完成一份设计练习
为按钮和提示框建立原始、语义和组件三层映射,说明哪些层可以暂时省略。
不要过早为每个像素创建独立 token,过度抽象会降低理解效率。
继续查阅
本课为原创教学解释。具体平台规则与标准可查阅官方资料。
Apple Human Interface GuidelinesMaterial Design 3