SuperAPI AI 工具集

analyze-component-set-figma

设计与创作

查看项目

更新于 10-16 01:28

技能介绍

用途:该技能用于把 Figma 的 COMPONENT_SET(承载同一组件全部变体的紫色虚线容器)转换为代码生成蓝图:区分哪些属性轴属于状态轴、哪些属于尺寸轴,每个状态如何映射到 CSS 伪类或 ARIA 属性,以及每个状态相对默认变体只产生哪些最小视觉差异。它衔接“Figma 中有 12 个按钮变体”和“只输出一个 .btn 规则加 :hover/:disabled 覆盖”两类工作。

主要能力:脚本返回 variantAxes(每个轴及其选项)、componentProps(非变体类型的 TEXT/BOOLEAN/INSTANCE_SWAP 属性,可转为代码 props)、stateMachine(含 cssMapping,即状态名到 CSS 选择器的映射,以及 defaultSignature)和每个变体的 diffFromDefault。状态轴取值会按不区分大小写归一化为选择器,例如 default 对应基础规则、hover 对应 :hover、focus/focused/focus-visible 对应 :focus-visible、active/pressed 对应 :active、disabled 对应 :disabled 与 [aria-disabled="true"]、error/invalid 对应 [aria-invalid="true"]、selected 对应 [aria-selected="true"]、checked 对应 :checked、loading 对应 [aria-busy="true"]、filled 对应 .has-value。

使用方式:先取到 COMPONENT_SET 的 id(来自选中项、搜索或用户粘贴的节点 id,必须是集合而非单个变体);在脚本顶部设置 const COMPONENT_SET_ID;通过 use_figma 运行 scripts/analyze-component-set.js,skillNames 为 "analyze-component-set-figma";读取结果后按 defaultSignature 实现默认变体,再为 cssMapping 中每条映射添加只应用该变体 diffFromDefault 的规则;将 componentProps 映射到框架 props(BOOLEAN→boolean,TEXT→string,INSTANCE_SWAP→ReactNode/slot,VARIANT→联合类型);最后校验每个状态都有对应 CSS 规则、差异中的 token 名可解析到导出的 token。脚本依赖 figma-use 技能规则:普通 JS、顶层 await 加 return、输入内联为顶部 const、颜色 0–1、文本操作前加载字体、await figma.getNodeByIdAsync,错误为原子性(失败脚本不产生任何改动)。

适用场景与限制:适用于设计系统到代码的状态机式生成,这是原生 MCP 的 get_design_context / get_metadata 不提供的能力。差异基于默认变体计算,因此只应输出发生变化的属性覆盖;boundVariables 能解析时用 token 名,否则回退原始十六进制;轴识别是启发式的(state/status/interaction 视为状态轴,size/scale 视为尺寸轴),若轴命名不同,cssMapping 可能为空,需自行读取 variantAxes 并手动映射。完整递归树、变体重排、增删属性等需求应使用其他对应技能。