关于 design-compare
Design Compare 用于对照 Figma 设计与本地预览截图,并生成结构化视觉审查结果。它还会创建交互式 HTML 对比页面,支持在同一报告中比较多个屏幕。
主要功能
- 01对比 Figma 与预览截图
- 02检查布局、字体、颜色、组件和尺寸
- 03生成按重要性排序的 Markdown 表格
- 04生成交互式 HTML 对比页面
- 05在一份报告中支持多个屏幕
适用场景
- 01检查界面与 Figma 设计是否一致
- 02查找多个屏幕间的视觉差异
- 03分享滑动或并排对比报告
MCP 相关
工作流可使用 Figma MCP 工具获取设计截图,并使用 Xcode MCP 渲染新预览。随后技能对比图像并生成报告。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ artemnovichkov/ skills --skill design-compare安装后在 Claude Code 中输入/design-compare确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.md.claude-plugin/plugin.jsonassets/compare.htmlscripts/export-figma-node.sh详细介绍
设计对比
将 Figma 设计截图与本地预览截图进行对比,生成结构化的视觉评审和交互式 HTML 对比页面。支持在单个报告中对比多个屏幕。
设置
$SKILL_DIR 指包含此 SKILL.md 文件的目录。请根据技能的安装位置解析路径(例如 .claude/skills/design-compare、.agents/skills/design-compare 等)。
前置条件
导出脚本需要 FIGMA_ACCESS_TOKEN 环境变量。请将其存储在仓库根目录的 .env 中:
FIGMA_ACCESS_TOKEN=figd_...
脚本会自动从仓库根目录加载 .env。请从 https://www.figma.com/developers/api#access-tokens 获取令牌。
重要: 确保 .env 已列入 .gitignore,以免提交令牌。
工作流
第 1 步:获取每个屏幕的图像
对每个要对比的屏幕重复此操作。使用 slug(例如 empty-state、list-view)为文件命名。
根据项目或上下文名称确定报告文件夹,例如 design-compare-reports/LayoutCheckExample/。在此文件夹中,按源文件名(不含扩展名)创建各视图的子文件夹来存放图像,例如 ContentView/、SliderView/。报告文件夹中存放一个共享的 config.js 和 report.html。
Figma 设计图像:
- 从 Figma URL 中提取
fileKey和nodeId。 - 使用提取的参数调用
mcp__figma__get_screenshot。截图会以内嵌形式返回,供第 2 步进行视觉对比。 - 要将截图保存为 HTML 页面所用的文件,请运行导出脚本:
脚本会验证mkdir -p "design-compare-reports/<ReportName>/<ViewName>" bash "$SKILL_DIR/scripts/export-figma-node.sh" "<fileKey>" "<nodeId>" "design-compare-reports/<ReportName>/<ViewName>/<slug>_figma.png"fileKey是否为字母数字字符(可包含连字符和下划线),并验证nodeId是否符合数字加冒号或连字符的格式。无效输入会被拒绝。 脚本会以 3 倍比例导出,并设置use_absolute_bounds=true,以匹配设备像素密度并精确裁切到画框边界。 - 如果脚本失败(缺少令牌),请让用户提供 Figma 截图文件。
预览图像:
- 如果使用 Xcode MCP,请调用
mcp__xcode__RenderPreview生成新的预览,并使用返回的previewSnapshotPath。 - 否则,请接受用户提供的预览图像路径。
- 将图像复制到报告文件夹:
cp "<preview_path>" "design-compare-reports/<ReportName>/<ViewName>/<slug>_preview.png"
第 2 步:视觉对比
读取或查看两张图像(Figma 内嵌截图和预览文件)并进行分析。评估以下方面:
- 布局 - 位置、对齐方式、元素间距
- 排版 - 字体大小、字重、行高、文本内容
- 颜色 - 背景色、文本颜色、色调、透明度
- 组件 - 按钮、工具栏、图标、导航元素
- 尺寸 - 元素尺寸、内边距、外边距
第 3 步:输出对比摘要
生成一个按视觉重要性排序的 Markdown 表格:
| 状态 | 方面 | 详情 |
|---|---|---|
| ✅ | 布局对齐 | 与设计一致 |
| ❌ | 背景颜色 | 应为 #1A1A1A,实际为 #FFFFFF |
匹配项使用 ✅,不匹配项使用 ❌。每行保持简洁(单行)。对于不匹配项,请说明差异及修复方法。
第 4 步:生成 HTML 对比页面
所有共享资源(config.js、report.html)均存放在 design-compare-reports/<ReportName>/ 中。图像存放在各视图的子文件夹(<ViewName>/)中。
-
使用屏幕元数据生成
config.js。图像路径使用<ViewName>/前缀。将以下 JavaScript 写入design-compare-reports/<ReportName>/config.js:// config.js — generated by design-compare skill const reportConfig = { generatedAt: "TIMESTAMP", // replace with current date/time screens: [ { name: "SCREEN_NAME", // replace with human-readable name figma: "VIEW_NAME/SLUG_figma.png", preview: "VIEW_NAME/SLUG_preview.png", figmaUrl: "FIGMA_URL" // replace with full Figma URL for the node } ] };替换占位符:
TIMESTAMP→ 当前日期和时间,SCREEN_NAME→ 易读的名称,VIEW_NAME→ 源文件名(不含扩展名),SLUG→ 文件 slug,FIGMA_URL→ 完整的 Figma URL。对于多个屏幕,请在
screens数组中添加条目。 -
复制 HTML 模板:
cp "$SKILL_DIR/assets/compare.html" "design-compare-reports/<ReportName>/report.html" -
使用
open design-compare-reports/<ReportName>/report.html打开文件。
HTML 页面提供滑动对比(默认)和并排对比模式、多屏幕报告的屏幕标签页,以及 Figma 直达链接。