关于 figma-import-tokens
将 DTCG JSON、Tailwind 或 SCSS 导出内容及令牌对象转换为 Figma 变量的技能。支持别名和多模式,并匹配已有变量进行更新,避免重复创建。
主要功能
- 01从多种格式导入令牌
- 02支持别名和多种模式
- 03更新前匹配已有变量
- 04确定性解析 DTCG 令牌
- 05先应用字面值再处理别名
适用场景
- 01将 DTCG 令牌文件导入 Figma
- 02根据令牌导出内容更新 Figma 变量
- 03重复导入令牌而不创建重复变量
MCP 相关
此技能通过 `use_figma` 将导入的令牌应用到 Figma;README 未说明 MCP 连接。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ southleft/ figma-console-mcp-skills --skill figma-import-tokens安装后在 Claude Code 中输入/figma-import-tokens确认已加载。
附带文件scripts/apply-tokens.jsscripts/parse-tokens.mjs
详细介绍
figma-import-tokens — 设计令牌 → Figma 变量
从令牌源(DTCG tokens.json、Tailwind/SCSS 导出文件或纯令牌对象)创建并更新 Figma 变量。支持别名和多模式值。重复运行是安全的:变量按已保存的 Figma id → key → 完全匹配的名称进行匹配,因此更新会原位修改变量,而不会重复创建。
技能边界
use_figma规则 — 首先加载官方figma-use技能;它是完整的 Figma Plugin API 参考。这些脚本依赖的要点:使用带顶层await和return的纯 JS(不要使用 IIFE 或figma.closePlugin();console.log不会作为返回值返回);在每个脚本顶部以内联const定义输入;颜色值范围为 0–1;任何文本操作前先加载字体;使用await figma.getNodeByIdAsync(...);以及原子错误(脚本失败时不会应用任何更改——读取错误、修复后重试)。- 反向转换(Figma → 代码)→
figma-export-tokens。
工作流
- 确定性地将源数据解析为规范令牌列表。 对于 DTCG 输入(包括
figma-export-tokens生成的内容),请运行内置解析器,而不要手动展平:
它会输出可粘贴到应用脚本中的确切node scripts/parse-tokens.mjs tokens.tokens.json --default-mode Light --collection Brand # --strip-prefix "ds-" drops a leading name prefix on import (e.g. ds-color/x → color/x)COLLECTION_NAME/MODES/TOKENS常量,并处理$type→Figma 类型、{ref}别名、多模式($extensions…modes)、dimension单位剥离和variableId往返。对于非 DTCG 来源(如 Tailwind/SCSS 导出文件),请先导出为 DTCG,或手动构建TOKENS数组:{ name: "Color/Brand/Primary", type: "COLOR"|"FLOAT"|"STRING"|"BOOLEAN", values: { <mode>: literal | { reference: "{Color.Brand.500}" } }, figmaVariableId? }。 - 确定冲突策略。 默认情况下,以代码中的值为准,但未经询问绝不删除 Figma 中独有的变量。确认目标集合名称和模式列表(第一个模式为默认模式)。
- 应用。 将解析后的数据放入
scripts/apply-tokens.js顶部的常量中,并通过use_figma运行(skillNames: "figma-import-tokens")。脚本分两轮运行——先处理字面值,再处理别名——并返回{ created, updated, errors, variableIds }。 - 报告并验证。 告知创建数、更新数和任何
errors。执行回读(使用figma-export-tokens读取脚本或get_variable_defs),确认值已写入。
注意事项与易错点
- 必须分两轮处理——创建
createVariableAlias前,别名目标必须已存在。脚本会处理此步骤;不要合并为一轮。 - 颜色接受十六进制字符串(3/6/8 位),并会自动转换为范围为 0–1 的
{r,g,b,a}。 - 作用域:新变量默认使用
ALL_SCOPES,这会让变量出现在所有选择器中。导入后,可考虑设置variable.scopes(参见figma-manage-variables),以限定到正确的界面区域。 - 往返转换:导入先前由
figma-export-tokens生成的文件是最理想的情况——暂存的variableId可实现精确匹配。
评论
支持 Markdown