关于 figma-generate-component-doc
将收集的 Figma 组件数据转换为结构化 Markdown 文档的技能。它结合 Figma 数据采集与确定性 Node 转换器,使相同 JSON 始终生成一致文档。
主要功能
- 01采集组件及变体数据
- 02使用 Node 转换器生成 Markdown
- 03记录令牌、排版和无障碍信息
- 04可选添加代码一致性和 YAML frontmatter
- 05相同 JSON 生成可重复结果
适用场景
- 01为 Figma 组件生成文档
- 02检查变体、令牌和排版详情
- 03加入实现信息及设计与代码一致性
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ southleft/ figma-console-mcp-skills --skill figma-generate-component-doc安装后在 Claude Code 中输入/figma-generate-component-doc确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/doc-template.mdscripts/collect-component-data.jsgenerate-doc.mjs详细介绍
figma-generate-component-doc — Figma 组件 → Markdown 文档
为一个组件或组件集生成完整的文档页面:概述、结构树、设计令牌、变体/状态矩阵、排版、无障碍性、内容指南,以及(可选的)设计与代码一致性和 YAML frontmatter。此技能会通过
use_figma 收集文件中的结构化数据,然后由一个确定性的 Node 转换器(scripts/generate-doc.mjs)生成 Markdown —
相同的收集结果 JSON 始终会生成相同的 Markdown。不要根据文字说明手动编写文档。
技能边界
use_figma规则 — 先加载官方的figma-use技能;其中包含完整的 Figma Plugin API 参考。本脚本依赖的要点:使用顶层await+return的普通 JS(不使用 IIFE 或figma.closePlugin();console.log不会作为返回值),在每个脚本顶部以内联的const声明输入,颜色范围为 0–1,在任何文本操作前加载字体,使用await figma.getNodeByIdAsync(...),以及原子错误处理(脚本失败时不会应用任何更改 — 阅读错误信息、修复并重试)。- 收集脚本可在任何地方运行(
use_figma);转换器使用 Node,并在终端中运行(node scripts/generate-doc.mjs ...)。与figma-export-tokens的分工相同。如果无法运行 Node,就无法生成文档 — 请如实说明,不要手动编写。 - Markdown 章节布局和
cleanVariantName规则 → references/doc-template.md。转换器已实现该文件中的所有规则;应将其视为规范,而不是手动组装文档的清单。 - 将注释作为独立规范进行读写 → 使用
figma-annotations技能。 - 导出整个令牌系统(而非仅一个组件的令牌)→ 使用
figma-export-tokens。
工作流
- 确定目标。 从当前选区或用户提供的 URL/ID 中获取组件或组件集节点 ID。包含变体的组件集能生成最丰富的文档。在收集脚本中设置
NODE_ID。同时记下文件 URL(用于figma:链接/frontmatter)。 - 收集数据 → 保存 JSON。 通过
use_figma运行scripts/collect-component-data.js(skillNames: "figma-generate-component-doc")。它会返回结构树、每个变体的颜色(包含绑定的令牌 ID 和名称)、排版(字体系列、数字字重及名称、字号、行高、字间距)、间距令牌、组件属性定义(变体/布尔值/文本属性)、描述和注释(包含类别名称)。将返回的 JSON 保存到文件(例如collected.json)。 - 生成 Markdown(确定性)。 在终端中运行 Node 转换器:
它会精确移植源生成器的章节逻辑:概述(包括从描述中解析的“何时使用/何时不使用”)、组件结构、变体(矩阵 + 图标映射 + 可配置属性)、令牌规范(颜色 + 间距表)、排版、内容指南、无障碍性、设计注释;使用node scripts/generate-doc.mjs collected.json [--code-info codeInfo.json] [--out docs/components/Button.md] [--frontmatter] [--file-url <figma-url>]--code-info时还会生成实现、设计与代码一致性以及变更日志。cleanVariantName会自动应用(Type=Image, Size=12→Image / 12)。相同输入 → 相同输出。 - 可选:代码一致性。 若要添加实现/一致性/
[View Source]和[Storybook]链接,请阅读组件源代码并编写codeInfo.json(包含 props、importStatement、sourceFiles、baseComponent、changelog 等),然后传入--code-info codeInfo.json。 - 可选:frontmatter。 传入
--frontmatter,在文档开头添加 YAML frontmatter(标题、状态、版本、标签、Figma URL、最后更新日期)。 - 检查并交付。 阅读生成的 Markdown,做合理性检查,然后写入或返回文档。报告文件路径并附上一句摘要(变体数量、令牌数量)。
说明
- 字体加载: 如果添加了向 Figma 写入文本的步骤(例如将文档盖印回画布),请先执行
await figma.loadFontAsync(...)。纯文档生成只会读取内容。 - 收集脚本使用
MAX_DEPTH来控制深层树结构的负载大小;只有在结构信息看起来被截断时才提高此值。 - 令牌名称来自
boundVariables;没有绑定变量的颜色或间距在令牌表中会显示为—(表示需要用令牌替换的硬编码值)。 - 此转换器不依赖任何依赖项(Node 18+,ESM)。如果 JSON 缺失或格式错误,它会以非零状态码退出,并显示清晰的提示。
- 这些收集工具需要 Figma Desktop 应用(浏览器中无法使用 Plugin API)。
评论
支持 Markdown