从一个品牌色生成完整、可直接上线的设计 Token 系统:让每一个中性表面(背景、边框、文字、阴影、语义色、渐变、图标、暗色模式)都带上一小撮品牌色的温度,而不是使用纯中性色。当用户想用品牌色 / hex 生成、构建或设计 UI 颜色 Token、设计系统、CSS 变量、染色配色或品牌主题,或想通过修正扁平中性色让现有 UI 显得更高级时使用。触发语示例:给我生成一套设计Token、用这个品牌色出一套配色、UI颜色太廉价了、生成染色中性色系统、build a design system from #XXX
丁丁UI Tokens技能(品牌色UI 设计 Token技能).是一项面向实际任务的技能,主要用于Overview. 将一个品牌颜色转换成完整的设计-token系统,其中品牌"流经"界面而不是坐在顶端.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
将单一品牌色转化为一整套设计 Token 系统,使品牌色“贯穿”整个界面,而非简单地“叠加”于其上。核心方法(源自文章《你的UI廉价,错在颜色》)是:绝不使用纯中性色——将品牌色相以 2–3% 的比例混合进每一个背景、表面、边框、文字层、阴影、语义色、渐变和图标中。最终效果呈现出“经过精心设计”的观感,而非“拼凑而成”。
配套生成器(scripts/generate_tokens.py)与品牌无关:它通过将每条中性色阶朝给定品牌色相方向混合,推导出整套系统的“温度”,因此适用于任意颜色,而不仅限于原文中提到的两套配色方案。
本技能是agent-agnostic(与具体 agent 无关)的。WorkBuddy 和 Claude Code 直接读取本 SKILL.md;其余所有 agent(Cursor、OpenAI Codex、Cline、Aider、WindSurf、GitHub Copilot、Gemini CLI)均采用 INSTRUCTIONS.md 中的同一套指令,并通过 agents/ 目录下的文档完成接入——各 agent 的唯一差异仅在于规则文件的存放位置。引擎(scripts/generate_tokens.py)在所有环境中完全一致。详见 README.md 中的「Cross-Agent Compatibility」表。
中文:本技能与具体 agent 无关。WorkBuddy 与 Claude Code 直接读取本
SKILL.md; 其余 agent(Cursor、OpenAI Codex、Cline、Aider、WindSurf、GitHub Copilot、Gemini CLI) 使用INSTRUCTIONS.md中的同一份指令,并按agents/下的文档接入——差异只在规则文件的位置。引擎(scripts/generate_tokens.py)各处一致。 详见README.md的「跨 Agent 兼容性」表。
中文:内置生成器(
scripts/generate_tokens.py)是品牌无关的——它把每条中性色阶朝给定品牌色相方向混合,从而推导出整套系统的温度,因此对任意颜色都适用,而不局限于原文中的两套配色。
仅需品牌色即可启动流程。若缺失,请主动询问:
#2563EB 这样的十六进制值)。该值定义整套系统的“温度”。切勿过度索取信息。一个十六进制值足以生成整套 Token 系统。
使用 Python 3.10+(WorkBuddy 上请使用托管运行时;其他 agent 上可使用任意系统级 python 或 python3):
python scripts/generate_tokens.py --brand "#2563EB" --name "Acme" --out "./out"
--brand(必需):任意十六进制颜色值。--name(可选):预览页头部显示的标签名。--out(可选):输出目录,若不存在则自动创建。--format css|html|both|json|tailwind|scss|all(可选,默认为 both):
json = 符合 W3C DTCG 规范的 Token 格式,
tailwind = 适配 tailwind.config.js 的配置格式,
scss = SCSS 变量格式,
all = 同时生成 css + html + json + tailwind + scss。--tint-strength subtle|normal|strong(可选,默认为 normal):控制所有中性色向品牌色相偏移的强度。脚本将生成 tokens.css(可直接注入的 :root 及 [data-theme="dark"] 自定义属性)和 preview.html(含明 / 暗模式切换功能的自包含实时演示页面)。同时输出检测到的系统“温度”(warm / cool / balanced)及关键数值。
使用 present_files 展示 preview.html(将在实时预览面板中打开)和 tokens.css。向用户说明检测到的系统温度,并强调所有中性色均已按品牌色进行微调。同时主动提供以下选项:使用不同品牌色重新生成,或手动精细调整特定 Token。
如需解释某项取值逻辑或进行调整,请先查阅 references/principles.md(其中详述了每个 Token 的设计依据),再执行编辑。常见微调方式包括:
--tint-strength subtle|normal|strong 参数(无需修改代码)。
strong 将放大所有混合系数,使品牌存在感更突出。semantic() 函数中使用的 0.06 混合系数。tokens.css 在 :root / [data-theme="light"] 和 [data-theme="dark"] 下定义以下变量:
--color-brand、--color-brand-subtle、--color-on-brand
(可在 --color-brand 上清晰显示的文字 / 图标颜色)--color-bg、--color-surface、--color-surface-2、--color-border、--color-border-strong--color-text、--color-text-2、--color-text-muted--color-error / -subtle、--color-warning / -subtle、--color-success / -subtle--shadow-sm、--shadow-md、--shadow-lg输出中不包含任何纯 #FFFFFF、#000000 或 #808080。所有文字-背景组合均满足 WCAG AA 标准(已自动校验并按需微调)。
references/principles.md —— 生成器所遵循的设计规则,以及用于验证整套系统有效性的灰度测试方法。