F5.13.2Token naming设计

色阶命名用数值序号而非语义词,避免语义随版本演变

别名: 色阶编号 · 100 到 900 · semantic stop names

概念解释

第一版把蓝的中档叫做 hover,把更深一档叫做 pressed。第二版悬停要更轻,有人把 hover 的色值改浅,有人另做 hoverSubtle,旧组件还指着已经不是悬停的那一档。色阶上的档应用序号(100、200、500)来叫;「悬停」是组件角色,绑在某一档上,但不要把角色写进档名。否则版本一演进,名字还在,意思已经跑了。

机制

序号是尺子上的刻度,不承诺用途。角色是用途,会随交互改。把用途写进档名,等于声称这一档永远干这件事。产品一改交互,要么改色值(所有引用了这个名字的地方一起变,包括不该变的),要么加新名字(表膨胀,旧名变成陷阱)。两种都是语义漂移。

角色仍需要名字——onPrimarypressedFill——那是配对和组件层的事,指向某个序号。色阶层保持愚蠢:只说深浅位置。愚蠢的名字稳定,聪明的名字会过期。

边界

  • 只有三档且永远不会加的功能色,叫 default / hover / pressed 也能活,但一旦要第四档,就要付出一次改名。小表可以赌,大表不要赌。
  • 对外文档可以用「500 大约是默认填充」当口诀,口诀不是标识符。
  • 改序号本身(把旧 500 改叫 400)同样是一次断裂,序号稳定也要靠发布纪律,不是数字魔法。

怎么落地

  • 色阶标识只用数字或同等中性编号;状态名只出现在引用层。
  • 禁止把 hovererrormuted 写进色阶档名。
  • 迁移时若必须改某档的用途,改引用,不改档名背后的观感位置。
  • 验证办法:搜代码里的色阶标识,若能读出交互语义,就还没分开;应只能读出位置。

延伸

  • 同组F5.13.1 色阶级数需要在精细控制与维护成本之间取舍 · F5.13.3 算法生成的色阶仍需人工校正视觉跳变明显的档位 · F5.13.4 色阶体系一旦发布,中途改变级数会波及所有引用组件
  • 相邻F5.09 色板的感知要求 · F5.02 语义色
  • 站内检索token naming · colour scale index · semantic drift

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F5.13.2