当前位置: 首页 > news >正文

设计 Token 语义化:不要把颜色命名成 blue-500 就结束

设计 Token 语义化:不要把颜色命名成 blue-500 就结束

一、Token 命名决定协作成本

设计 Token 常从颜色和字号开始。很多团队会用blue-500gray-100这类命名,短期很直观。但业务组件真正需要的是语义:主按钮背景、危险文本、边框弱化、页面背景。只靠色值命名,后续主题和暗色模式会很痛苦。

语义化 Token 的目标,是让设计和代码共享同一套意图。颜色可以变,但语义不变。这样设计系统才能支持主题、品牌和状态演进。

二、Token 要分层

flowchart TD A[基础 Token] --> B[语义 Token] B --> C[组件 Token] C --> D[组件实现]

基础 Token 描述色板,如 blue-500。语义 Token 描述用途,如 color-primary-bg。组件 Token 描述具体组件插槽,如 button-primary-bg。三层职责不同。

如果组件直接使用基础 Token,主题切换时会很难控制。语义层提供了中间抽象,让“主色”在不同主题下映射到不同基础色。

三、代码生成要读取语义

{ "color": { "primary": { "bg": "{palette.blue.500}", "text": "{palette.white}" }, "danger": { "text": "{palette.red.600}" } } }

AI 生成组件时,应读取语义 Token,而不是猜色值。提示词里也要明确:禁止硬编码 hex,禁止使用未登记颜色,组件状态必须引用语义 Token。

.dangerText { color: var(--color-danger-text); }

这样生成结果更容易进入设计系统,也更容易被自动检查。硬编码颜色可以直接作为阻塞项。

四、语义层要定期清理

语义 Token 不是越多越好。若每个页面都新增一个专用语义,系统会变成另一种混乱。新增 Token 前要确认是否已有语义可复用,是否代表稳定意图。

Token 变更要有影响分析。修改color-primary-bg可能影响所有主按钮、导航、链接和强调区域。设计系统需要能列出受影响组件,而不是靠人工猜。

语义 Token 还要覆盖状态。默认、hover、active、focus、disabled、selected、error 都应有明确语义。很多系统只有默认色,状态色靠组件自己推导,最后不同组件的反馈会不一致。

命名也要保持稳定。Token 名称应表达用途,不要夹带当前视觉结果。比如color-action-primary-bgcolor-blue-button更适合长期演进。主题变化后,主按钮可能不再是蓝色,但它仍然是主操作。

设计工具和代码仓库之间要有同步机制。Token 从设计工具导出后,需要经过校验、版本化和 changelog,再进入前端包。直接复制 JSON,缺少审计和影响分析,出错后很难追溯。

最后,废弃 Token 要有迁移路径。不能简单删除旧变量,否则历史组件会突然失效。可以先标记 deprecated,给出替代项,再在大版本清理。

Token 校验也应进入 CI。新增样式如果使用未登记变量、硬编码颜色或跳过语义层,应直接失败。这样语义化不是靠自觉,而是成为代码合并的一部分。

五、总结

设计 Token 要从基础色板走向语义 Token 和组件 Token。AI 生成 UI 时应引用语义 Token,避免硬编码色值。

blue-500描述的是颜色,不是设计意图。语义化 Token 才能支撑主题、状态和长期协作。

http://www.jsqmd.com/news/1125405/

相关文章:

  • AIGC 内容指纹:生成内容入库前先做可追踪设计
  • 从扩展方法到流畅的程序体验
  • 太香了!这个 GitHub 开源项目,让安卓模拟器直接跑在浏览器里,搞 AI 的必看
  • 项目汇报PPT工具怎么选?6款常用平台介绍
  • 2026年论文查重免费网站真的靠谱吗?5大平台横向测评与真相揭秘
  • CC Switch 接入 Codex 详细教程
  • 基于SpringBoot体质测试分析与可视化平台开发任务书
  • LB200倒置相差显微镜:类器官与器官芯片生命科学的前沿窗口
  • 【考研】2026/7/4
  • 人工智能训练的核心秘密:梯度下降与L1/L2正则化
  • 第【54期】--基于强化学习的NOMA通信系统资源动态调度算法研究--matlab完整代码
  • Go 调度器 GMP 模型的完整解析:从 goroutine 创建到抢占调度的全链路
  • CSDN文章如何轻松破百赞
  • TD-Learning 时序差分学习 和 Q-Learning 最优动作价值学习
  • 基于单片机人脸识别电子密码锁智能门禁指纹识别语音提醒防盗成品12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Linux gpg命令超全详解|文件加密解密、密钥管理、签名验证实战教程
  • 【监控与可观测性】05-OpenTelemetry入门:统一链路追踪落地方案
  • Windows部署OpenClaw AI智能体框架:从环境配置到实战应用全指南
  • WinForm/ASP.NET上使用实践
  • GORM Session 最佳实践:灵活控制数据库会话的六种策略
  • Cube v0.5.0发布:自动暂停 · ARM 支持· 一键集群部署,把沙箱送进生产
  • 【机器人 / 强化学习】SERL:让真机强化学习从“难用”走向“可复现”的强化学习框架 ----(4)算法篇(DrQ vs VICE)
  • Topit:macOS窗口置顶技术的深度解析与实战指南
  • Makerbase ODrive v3.6 霍尔电机位置环配置:3个关键参数调优与电机抖动解决
  • 《HarmonyOS技术精讲-Core Speech Kit(基础语音服务)》第2篇:语音识别核心功能——流式与非流式实现
  • 可穿戴设备数据的 AI 分析:从 PPG 信号解码到运动负荷的实时建模
  • HelloAgents:RAG——让 Agent 学会检索知识
  • 记录arm64内核调试环境搭建qemu_arm64_linux_01
  • 金融职业发展:应用统计 vs 大数据管理,如何选择?
  • Tokio 背压设计:通道满了,比内存爆了更早告诉你问题