文章 · 前端工程

一套设计令牌,同时喂给 Web 与小程序

Web 和小程序各写一套颜色,改一次设计要动两个仓库,早晚会飘。把色彩、排版、圆角收敛成单一数据源,再用脚本产出两边要的格式,是唯一能长期成立的解法。

令牌只描述语义,不描述数值

不要定义「蓝色 #0071e3」,而是定义「主按钮底色」。数值会变,语义不会。等哪天品牌色换了,改的是令牌的取值,而不是满仓库的十六进制。

产出一层做适配

Web 侧输出 CSS 自定义属性,小程序侧输出 WXSS 变量与一份 JS 常量表。适配层是脚本生成的,不手写,这样两边永远同源。

ts
const tokens = {
  'color-action': '#0071e3',
  'radius-card': '14px',
}
// 一次定义,两边生成:tokens.css / tokens.wxss / tokens.ts

圆角与间距也要进令牌

只收颜色是不够的。圆角、间距、字号阶梯同样会被各页面各写各的,最终呈现出来的「不一致」大多来自这几个值。把它们一并纳入,才能真的做到一眼看上去是同一个产品。

评论5

访客

登录后参与评论,你的发言会署上自己的名字。

  • 陈默

    陈默作者@chenmo2026-10-03

    先占个位:文里的数字都是本地实测的,测试环境写在文末备注里,有疑问直接在这儿回。

  • 程野

    程野@chengye2026-10-04

    这份清单可以直接拿去做评审模板了,覆盖面挺全。

  • 姜堰

    姜堰@jiangyan2026-10-05

    命名那一条看着简单,但确实是评审里最常被提出来的问题。

  • 童语

    童语@tongyu2026-10-06

    边界情况那段写得好,很多问题都是顺利路径跑通了就当完成了。

  • 严冬

    严冬@yandong2026-10-07

    状态管理这块我更倾向于能不放全局就不放,理解成本差很多。