Communitygithub.com

danielhall/agent-skills

将现有网站页面在 Figma 中重建为可编辑、基于设计系统的画框(包含变量、文本样式、组件、桌面和移动端断点),使用 Figma MCP 服务器的 use_figma 工具。当用户要求将网站导入 Figma、在 Figma 中重新创建页面以进行重新设计、将代码推送到 Figma 或从运行中的 Web 应用构建 Figma 文件时使用。涵盖参考捕获、真实数据和图标导出、令牌与组件设置、页面组装以及 Plugin API 陷阱。

agent-skills 是什么?

该技能能够将运行中的 Web 应用自动转换为 Figma 设计文件,使设计师可以直接基于真实副本、真实图标、颜色与间距变量(支持亮/暗模式)、文本样式、可复用组件以及多断点页面进行重新设计。截图仅作为参考,绝不是最终交付物。它基于 Figma MCP 服务器的 `use_figma` 工具,并依赖 `figma-use`、`figma-generate-design` 和 `figma-generate-library` 等插件技能。工作流程包括使用 Playwright 捕获参考截图、从代码库导出真实数据和图标、逐步构建变量集合、文本样式、效果样式和组件(从图标到原语再到复合组件),最后从组件实例组装页面,并确保高度与参考截图一致。该技能还提供了详细的陷阱说明(如绑定不透明度、resize() 锁定自动布局、属性键重键等)以及辅助函数文档,帮助用户避免常见错误。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/danielhall/agent-skills/tree/HEAD/skills/figma-site-to-design

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

网站到 Figma 设计文件

将运行中的 Web 应用转换为 Figma 文件,设计师可以直接从中进行重新设计:包含真实文案、真实图标、颜色与间距变量(支持亮/暗模式)、文本样式、可复用组件,以及由这些组件的实例构建的每个页面。截图仅作为参考,绝不是最终交付物。

此技能建立在 Figma 插件自身技能之上。在任何 use_figma 调用之前加载 figma-use 和 figma-generate-design,在创建组件或变量时加载 figma-generate-library。

何时使用

  • "将我的网站导入 Figma,以便我重新设计"
  • "在 Figma 中重新创建这些页面" / "将此应用推送到 Figma"
  • 向以这种方式构建的 Figma 文件添加移动端画框或新页面

步骤

1. 读取事实来源

  • 运行中的应用和全局样式表优先于设计文档。文档在重新设计期间可能会发生偏离;如果发现不匹配,请明确指出。
  • 收集:主题令牌(亮和暗)、字体系列和粗细、布局网格(边距、轨道、列宽),以及每个页面部分背后的组件文件。
  • 在编写样式之前,使用 figma.listAvailableFontsAsync() 检查字体是否存在于 Figma 中。切勿静默地回退到 Inter。

2. 使用 Playwright 捕获参考截图,而非页面捕获

使用 scripts/ref-screenshots.mjs 在每个目标宽度(例如 1440 和 390)下运行。它会设置 reducedMotion: "reduce",因此滚动揭示和进入动画不会隐藏内容。

generate_figma_design 页面捕获对于此任务不可靠:视图内动画后面的内容会被空白捕获,并且在后台浏览器标签页中打开的捕获经常会永远处于 pending 状态。如果你确实使用它们,请一次只打开一个标签页,并在其作为参考后立即删除捕获。如果你将捕获脚本注入应用,之后务必将其移除。

3. 从代码库导出真实数据和图标

编写一个一次性 tsx 脚本(在仓库外部,或之后删除),该脚本导入应用自身的数据模块,并使用 react-dom/server 的 renderToStaticMarkup 将图标组件渲染为 SVG 字符串。然后:

  • 将 currentColor 替换为真实颜色,并为每个 SVG 提供明确的 width/height。图标库通常输出 1em,Figma 无法调整其大小。
  • 根据路径数据对图标去重。品牌映射经常将多个名称别名指向同一个标志。
  • 使用 CMS 客户端拉取 CMS 内容(标题、摘要、分类),而不是重新输入。

4. 首先构建基础

每个操作调用一次,返回所有创建的 ID:

  1. 页面:基础、组件、每个断点一个页面。
  2. 变量集合:主题颜色(亮/暗模式)、分类或品牌颜色、布局令牌(桌面/移动端模式)。设置明确的 scopes 和 WEB 代码语法。
  3. 为每种类型角色创建文本样式,以及显示尺寸的移动端变体。
  4. 为任何共享阴影创建效果样式。

5. 构建组件,从最小的开始

图标,然后是原语(按钮、链接、磁贴、徽章、芯片),然后是复合材料(页眉、页脚、英雄区、卡片)。公开 TEXT、BOOLEAN 和 INSTANCE_SWAP 属性,以便页面可以在不分离的情况下填充。为响应式组件提供 Breakpoint 变体,而不是在实例上覆盖尺寸。每组截图一次,修复问题后再继续。

6. 从实例组装页面

  • 每个页面一次 use_figma 调用,使用固定的画布位置,以便页面可以并行构建。
  • 使用自动布局内边距(例如轨道和边距)镜像 CSS 网格,而不是绝对定位。
  • 明确按行均衡卡片高度;Figma 不像 CSS 网格那样拉伸同级元素。
  • 将每个页面的总高度和截图与参考进行比较。高度在百分之几以内表示间距正确。

7. 将组件链接回代码

Code Connect 仅适用于组织版和企业版计划。首先检查 whoami。在其他计划上,将源代码路径、组件名称和属性映射写入每个组件的 description 中,并将 documentationLinks 设置为 GitHub 上的文件。开发者模式会同时显示两者。不要将 .figma.ts 文件添加到无法发布它们的仓库中;没有 Code Connect 包,它们会破坏 tsc。

8. 清理

删除参考捕获,移除任何注入的脚本,停止你启动的开发服务器,并确认 git status 是干净的。

陷阱

在编写组件或页面脚本之前,请阅读 references/plugin-api-pitfalls.md。它列出了最耗时的失败,每个都附有修复方法:绑定不透明度、resize() 锁定自动布局大小、属性键被重新键控、克隆变体上丢失引用、每次调用的尺寸限制等等。

references/helpers.md 包含值得在每个页面构建脚本顶部粘贴的小型辅助函数。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能