Meta把内部设计系统开源了:支撑内部13000+应用:专为Agent调优
2026-07-03
2026-07-09 0
适用场景:UI 设计稿还原、需求文档截图、报错信息截图、流程图/架构图识别等所有需要 Claude Code 理解图片内容的开发场景。

| 场景 | 常见问题 |
|---|---|
| UI 设计稿截图 | 颜色值识别偏差、间距尺寸估算错误、遗漏微小元素(如图标、分割线) |
| 需求文档截图 | 文字 OCR 错误(特别是中英文混合)、表格结构错乱、编号列表识别混乱 |
| 报错信息截图 | 堆栈信息截断、关键错误行遗漏、文件路径识别错误 |
| 流程图/架构图 | 箭头方向搞反、节点关系理解错误、层级结构 flatten 化 |
| 手写/标注截图 | 手写文字识别率低、标注框位置偏差、涂鸦内容被忽略 |
Claude Code(以及所有多模态大模型)在图片理解上存在以下技术局限:
核心原则:不要让 Claude Code 去"猜",而是给它"确定性输入"
针对 UI 设计稿:
针对需求文档:
针对报错信息:
grep --color 或 bat 命令)| 原格式 | 优化方案 | 效果提升 |
|---|---|---|
| 手机拍照的照片 | 裁剪掉无关背景,只保留核心内容区域 | 减少干扰信息 |
| 低分辨率截图 | 使用工具放大 2x 后上传(推荐 waifu2x 或 Real-ESRGAN) | 文字边缘更清晰 |
| 带有滚动条的长截图 | 拆分为 2-3 张短截图,分别上传 | 每张图信息密度降低 |
| 压缩严重的 JPG | 转为 PNG 格式重新保存 | 消除压缩伪影 |
| 暗色模式截图 | 调整为亮色模式后再截取 | OCR 识别率提升约 15-20% |
# 方案1:ImageMagick 批量优化(命令行) # 放大 2x + 增强锐度 + 提高对比度 convert input.png -resize 200% -sharpen 0x1.0 -brightness-contrast 0x10 output.png # 方案2:使用专用工具 # - Squoosh (Web): https://squoosh.app/ - 可视化压缩/放大 # - Upscayl (Desktop): 开源 AI 图片放大工具 # - CleanShot X (Mac): 专业截图工具,带标注和放大功能
这是最关键的策略。单独丢一张图,Claude Code 只能"看";图+结构化文字,Claude Code 才能真正"理解"。
模板 A:UI 设计稿还原
【图片说明】 - 页面名称:用户个人中心页 - 设计尺寸:375px(移动端) - 设计规范:使用 Ant Design Mobile 组件库 【图片内容描述】 顶部区域: - 头像:80x80px 圆形,位于页面水平居中 - 用户名:头像下方 16px,18px 粗体,颜色 #333333 - 用户ID:用户名下方 8px,14px 常规体,颜色 #999999 中部区域(功能菜单): - 列表项高度:56px - 图标:24x24px,位于列表左侧,颜色 #666666 - 文字:16px,颜色 #333333,右对齐箭头图标 - 分割线:1px #EEEEEE,位于每项底部 底部区域: - TabBar:高度 49px,背景白色,上边框 1px #EEEEEE - 选中态:图标颜色 #1890FF,文字颜色 #1890FF 【特别关注】 - 第 3 个列表项右侧有一个红点 Badge,需要实现 - 整体背景色是 #F5F5F5
模板 B:需求文档截图
【图片说明】 - 文档类型:PRD 需求文档截图(飞书文档) - 所属模块:订单管理 - 退款流程 - 当前状态:截图中有 3 处产品同学的手写批注(红色文字) 【图片内容转录】 文字内容(原文): > 3.2 退款审核流程 > > 当用户提交退款申请后,系统需要: > 1. 自动校验订单状态是否为"已发货"或"已完成" > 2. 校验退款金额是否 <= 订单实付金额 > 3. 校验申请时间是否在签收后 7 天内 > 4. 以上全部通过后,自动通过退款申请;任一条件不满足,转人工审核 【手写批注转录】 - 第 2 条旁边批注:"注意要排除优惠券抵扣部分" - 第 3 条旁边批注:"生鲜类商品改为 24 小时" - 页面底部批注:"需要增加退款原因必填项" 【我的理解/疑问】 - 优惠券抵扣排除是指用实付金额 - 优惠券金额? - 生鲜类的判断逻辑是基于商品类目编码吗?
模板 C:报错信息截图
【图片说明】 - 运行环境:Node.js v20.11.0 / macOS 14 - 触发操作:执行 `npm run build` - 项目框架:Vite 5.x + React 18 + TypeScript 【报错信息文本化】(已从图中提取)
vite v5.0.10 building for production…
transforming (128) src/components/UserCard.tsx
error during build:
RollupError: Unexpected token (Note that you need plugins to import files that are not JavaScript)
file: /Users/alice/project/src/components/UserCard.tsx:45:18
43: const handleClick = () => {
44: console.log(‘clicked’)
45: return
【补充上下文】 - 这个文件昨天还能正常构建,今天merge了同事的PR后出现此错误 - 同事PR主要改动了 tsconfig.json 的 "jsx" 配置 - tsconfig.json 当前相关配置:"jsx": "react-jsx", "moduleResolution": "bundler"
| 要点 | 说明 |
|---|---|
| 转录文字 | 把图片中的关键文字手动打出来,消除 OCR 误差 |
| 标注尺寸 | 精确到 px 的尺寸信息,不要让模型估算 |
| 说明关系 | 元素之间的位置关系、层级关系、逻辑关系 |
| 补充上下文 | 项目背景、技术栈、最近变更等模型不知道的信息 |
| 明确疑问 | 你不确定的地方主动提出,让模型聚焦解答 |
错误做法:
“这张图是一个电商后台管理系统的完整页面,帮我用 React 实现出来”
正确做法:
第一步:“这是电商后台的顶部导航栏区域截图,先帮我实现这个 NavBar 组件”
第二步:“这是侧边栏截图,基于上一步的项目,实现 Sidebar 组件”
第三步:“这是主内容区的数据表格截图,实现 Table 部分,注意分页器和批量操作按钮”
第四步:“将所有组件整合,处理布局关系(sidebar 固定 200px 宽,main 区域自适应)”
Step 1 - 组件拆分: "先不要写代码。只看这张图,帮我列出这个页面包含哪些独立的组件, 并说明每个组件的职责和 Props 设计。" Step 2 - 单个组件实现: "基于上一步的分析,先实现 [ComponentName] 组件。 这是该组件的放大截图:[图片] 这是精确的尺寸和样式说明:[文字描述]" Step 3 - 样式校准: "组件已实现,但与设计稿有差异。以下是需要调整的点: 1. 标题字号应该是 16px 而不是 14px 2. 卡片间距应该是 24px 而不是 16px 3. 按钮颜色应该是 #1677FF 而不是 #1890FF 请只修改样式部分。" Step 4 - 整合联调: "所有组件已完成,现在需要: 1. 整合到 App.tsx 中 2. 处理组件间的数据传递 3. 添加响应式布局(<768px 时 sidebar 收起)"
不要模糊地说:
“不太对,再改改”
要精确地指出:
“第三张截图中,右侧筛选面板里的’状态’下拉框,当前实现是单选,但设计稿是多选 Checkbox 组,选项包括:全部、待处理、处理中、已完成、已驳回”
| 问题类型 | 反馈模板 |
|---|---|
| 尺寸偏差 | “截图中 A 和 B 的间距是 XXpx,当前实现看起来是 YYpx,请调整为 XXpx” |
| 颜色偏差 | “截图中该区域背景色用取色器取到是 #XXXXXX,代码中写的是 #YYYYYY,请修正” |
| 遗漏元素 | “截图中 [具体位置] 有一个 [元素描述],当前实现遗漏了,请补充” |
| 逻辑错误 | “截图中的流程是 A→B→C,你实现的是 A→C→B,[说明为什么应该是 A→B→C]” |
| 文字错误 | “截图中的文字是’XXXX’,你识别成了’YYYY’,请更正” |
Step 1: 设计稿导出 ↓ 从 Figma 导出为 PNG(2x 倍图) ↓ Step 2: 图片预处理 ↓ 使用 Squoosh 压缩到合理大小(<1MB) ↓ Step 3: 信息结构化 ↓ 手动提取关键尺寸、颜色、字体信息,按模板整理 ↓ Step 4: 分步实现 ↓ 先结构 → 再样式 → 后交互 ↓ Step 5: 像素级校准 ↓ 使用浏览器 DevTools 对比,逐条反馈差异 ↓ Step 6: 响应式适配 ↓ 补充不同断点的截图,说明布局变化规则
技巧 1:提供设计 Token
与其让 Claude Code 从图中"猜测"颜色,不如直接提供设计 Token:
【设计 Token】 颜色: - 主色: #1677FF (brand-primary) - 成功: #52C41A (success) - 警告: #FAAD14 (warning) - 错误: #F5222D (error) - 文字主色: #262626 (text-primary) - 文字次色: #595959 (text-secondary) - 边框: #D9D9D9 (border) - 背景: #F5F5F5 (bg) 字体: - 标题: 16px / 500 weight - 正文: 14px / 400 weight - 辅助文字: 12px / 400 weight - 行高: 1.5 间距: - XS: 4px, SM: 8px, MD: 16px, LG: 24px, XL: 32px
技巧 2:提供组件库约束
【技术约束】 - UI 组件库:Ant Design 5.x - 图标库:@ant-design/icons - 不允许自定义组件,除非 Ant Design 无法覆盖 - 使用组件:Button, Table, Form, Input, Select, DatePicker, Modal
技巧 3:使用 Figma Dev Mode 替代截图(最佳实践)
如果有 Figma 文件访问权限,优先使用 Figma Dev Mode:
Step 1: 文档结构化 ↓ 手动转录需求文字,标注优先级和依赖关系 ↓ Step 2: 需求确认 ↓ "以下是我理解的需求,请确认是否正确:[你的理解]" ↓ Step 3: 技术方案 ↓ "基于以上需求,给出技术实现方案,包括:接口设计、状态管理、组件拆分" ↓ Step 4: 分功能实现 ↓ 每个功能点独立实现、独立测试 ↓ Step 5: 边界条件补充 ↓ 针对截图中的模糊地带,提出假设让 Claude Code 处理
【新增】、【修改】、【删除】 标注变更点Step 1: 文本化优先 ↓ 尽可能复制错误文本,截图仅作为辅助 ↓ Step 2: 环境信息补充 ↓ 提供完整的运行环境信息 ↓ Step 3: 上下文关联 ↓ 提供相关代码片段 + 最近变更 ↓ Step 4: 分步诊断 ↓ 先定位 → 再分析 → 最后给修复方案
【错误文本】
(完整错误文本,不要截断)
【运行环境】
- OS: macOS 14.2 / Windows 11 / Ubuntu 22.04
- Node.js: v20.11.0
- Package Manager: pnpm 8.15
- 相关依赖版本:
- react: ^18.2.0
- typescript: ^5.3.0
- vite: ^5.0.10
【触发条件】
- 执行命令:npm run build
- 触发文件:src/components/UserCard.tsx
- 最近变更:merge 了 feature/user-profile 分支,该分支修改了 tsconfig.json
【相关代码】
```tsx
// src/components/UserCard.tsx(精简后的关键代码)
const UserCard = ({ user }: Props) => {
// ... 关键逻辑
}
【已尝试方案】
---
### 3.4 场景四:流程图/架构图 → 代码实现
#### 特殊挑战
流程图的核心是**关系**,而图片中的关系最难被 AI 准确识别。
#### 推荐方案:图片 + Mermaid 文本双轨制
**Step 1**:自己先用 Mermaid 将流程图转为文本描述(即使不熟练, Claude Code 也可以帮你完成这一步):
```markdown
【流程图说明】
这是用户下单的流程图,我已经用 Mermaid 将其结构化:
```mermaid
graph TD
A[用户提交订单] --> B{库存校验}
B -->|库存充足| C[创建订单]
B -->|库存不足| D[返回缺货提示]
C --> E{支付校验}
E -->|支付成功| F[更新订单状态为已支付]
E -->|支付失败| G[取消订单]
F --> H[通知仓库发货]
H --> I[更新订单状态为已发货]
【关键说明】
**Step 2**:将 Mermaid 代码 + 原始截图一起发给 Claude Code: > "我已经把流程图转为了 Mermaid 代码,请对照原始截图确认理解是否正确。如果一致,请基于此实现订单服务的核心逻辑。" #### 工具推荐 - **Mermaid Live Editor**:[https://mermaid.live](https://mermaid.live) - 在线编辑和预览 - **Excalidraw**:[https://excalidraw.com](https://excalidraw.com) - 手绘风格图表,支持导出为图片+结构化数据 - **Draw.io**:[https://app.diagrams.net](https://app.diagrams.net) - 支持导出为 XML,可用文本描述 --- ## 四、工具链推荐:让图片识别更准确的辅助工具 ### 4.1 截图/标注工具 | 工具 | 平台 | 用途 | 推荐理由 | |------|------|------|---------| | **CleanShot X** | macOS | 截图+标注 | 支持区域截图、放大镜、尺寸标注,输出的图片质量高 | | **Snipaste** | Win/Mac | 截图+贴图 | 可以截图后直接贴到屏幕上对比,F3 贴图功能极其方便 | | **Xnip** | macOS | 滚动截图 | 长页面无缝滚动截图,自动拼接 | | **ShareX** | Windows | 全能截图 | 开源免费,支持 OCR、标注、上传图床 | | **Shottr** | macOS | 像素级截图 | 支持测量像素距离、取色、标注,前端开发神器 | ### 4.2 图片优化工具 | 工具 | 类型 | 用途 | |------|------|------| | **Squoosh** | Web | Google 出品,可视化压缩/放大/格式转换 | | **Upscayl** | Desktop | 开源 AI 放大工具,适合将低分辨率截图放大 2-4x | | **ImageMagick** | CLI | 命令行批量处理,适合自动化脚本 | | **TinyPNG** | Web | 智能压缩 PNG/JPG,减少文件大小同时保持清晰度 | ### 4.3 OCR/文字提取工具 | 工具 | 特点 | 适用场景 | |------|------|---------| | **Mac 自带预览** | 选中文字直接复制 | 简单文档截图 | | **QQ 截图 (Ctrl+Alt+O)** | 截图后按 O 直接 OCR | 快速提取图中文字 | | **微信截图 (Alt+A)** | 截图后按"提取文字" | 中文识别效果好 | | **PearOCR** | Web 端免费 OCR | 无需安装,隐私安全 | | **PaddleOCR** | 开源本地 OCR | 技术向用户,可本地部署 | ### 4.4 设计稿转代码工具(配合 Claude Code 使用) | 工具 | 功能 | 与 Claude Code 的配合方式 | |------|------|------------------------| | **Figma Dev Mode** | 导出 CSS / 测量尺寸 | 导出 CSS + 截图 → 一起发给 Claude Code 作为参考 | | **Codia AI** | Figma 插件,生成 React/Vue 代码 | 先用 Codia 生成初版代码,再用 Claude Code 优化调整 | | **Locofy** | Figma/Adobe XD 转代码 | 导出代码后,用 Claude Code 做代码审查和重构 | | **MarsX** | 设计稿转 React | 类似思路,AI 生成初版 + Claude Code 精调 | ### 4.5 Claude Code 的辅助 MCP/插件 > 以下工具可以作为 Claude Code 的"眼睛",增强其对图片和设计的理解能力: | 工具类型 | 推荐方案 | 说明 | |---------|---------|------| | **浏览器自动化** | Playwright MCP | 让 Claude Code 直接操作浏览器查看设计稿,而非依赖截图 | | **设计文件读取** | Figma API | 直接读取 Figma 文件的结构化数据,绕过图片识别 | | **本地文件预览** | 本地 HTTP 服务器 | 启动 `npx serve` 让 Claude Code 通过浏览器访问本地预览 | --- ## 五、高级技巧:构建可复用的图片识别工作流 ### 5.1 创建项目级的 Prompt 模板 在你的项目根目录创建 `.claude/templates/` 目录,存放各类场景的模板:
project-root/
├── .claude/
│ └── templates/
│ ├── ui-component.md # UI 组件实现模板
│ ├── bug-report.md # 报错排查模板
│ ├── requirement-prd.md # 需求分析模板
│ └── design-token.md # 设计 Token 文件
**`ui-component.md` 示例:**
```markdown
# UI 组件实现请求
## 组件定位
- 页面:{page_name}
- 组件名:{component_name}
- 在页面中的位置:{position_description}
## 设计稿
{screenshot}
## 设计说明
- 宽度:{width}px / 百分比
- 高度:{height}px / auto
- 背景色:{bg_color}
- 边框:{border_description}
- 内边距:{padding}
- 外边距:{margin}
## 子元素列表
| 元素 | 类型 | 尺寸 | 颜色 | 备注 |
|------|------|------|------|------|
| {element_name} | text/icon/button | {size} | {color} | {notes} |
## 交互说明
- hover 态:{hover_description}
- click 行为:{click_behavior}
- 禁用态:{disabled_description}
## 技术约束
- 使用组件库:{component_library}
- 样式方案:{css_solution} (CSS Modules / Styled Components / Tailwind)
- 需要响应式:是/否
使用时:
# 复制模板并填充内容 claude -p "请基于 .claude/templates/ui-component.md 的模板,实现以下组件:" # 然后粘贴填充好的模板内容
创建一个预处理脚本,一键优化截图:
#!/bin/bash
# scripts/prepare-screenshot.sh
INPUT="$1"
OUTPUT="${INPUT%.*}_optimized.png"
# 1. 放大 2x(提高 OCR 精度)
# 2. 锐化边缘
# 3. 提高对比度
# 4. 压缩到合理大小
convert "$INPUT"
-resize 200%
-sharpen 0x1.5
-brightness-contrast 0x15
-define png:compression-level=9
"$OUTPUT"
echo "优化完成: $OUTPUT"
echo "文件大小: $(du -h "$OUTPUT" | cut -f1)"
如果团队多人使用 Claude Code,建议共建一个设计规范知识库:
# design-system.md ## 颜色 (以色板截图 + Token 对照表的形式) ## 字体 (字体栈、字号阶梯截图 + 实际 CSS 变量) ## 间距 (间距示意图 + Token 值) ## 组件示例 (每个组件的截图 + 正确的 Props + 常见错误示例) ## 布局规则 (栅格系统截图 + 断点定义 + 响应式行为说明)
团队成员使用 Claude Code 时,先引入这个文件:
“请先阅读 docs/design-system.md,这是本项目的设计规范。后续所有 UI 实现都需要遵循此规范。”
真相:即使 4K 高清图,Claude Code 对精确尺寸、颜色值、层级关系的判断仍然会有偏差。文字描述是对图片信息的"校验层"。
真相:长截图(>1000px 高度)的信息密度过高,模型容易"看漏"。拆分为 2-3 张短截图,每张聚焦一个区域,识别准确率显著提升。
真相:Claude Code 的能力边界是已知的。作为开发者,我们的职责是将模糊的需求(截图)转化为结构化的输入(截图+文字),这是"AI 时代的需求工程"。
真相:重复发同样的图大概率得到同样的错误结果。正确的做法是换一种表达方式——补充文字描述、提供结构化数据、缩小问题范围。
真相:OCR 对代码片段、专业术语、中英文混合的识别仍有错误率。务必人工检查 OCR 结果,尤其是:变量名、API 路径、版本号、数字。
在向 Claude Code 发送截图之前,逐项检查:
1. 截图 + 结构化文字描述(推荐,90% 场景适用) 2. 截图 + OCR 文本 + 手动校验(适合文字密集型图片) 3. 截图 + Mermaid/PlantUML 图(适合流程图、架构图) 4. 截图 + Figma Dev Mode CSS(适合 UI 设计稿) 5. 纯文字描述 + 代码示例(截图质量极差时的保底方案) 6. 直接分享文件链接(Figma/Notion/飞书文档链接,如果模型可访问)
“把 Claude Code 当成一个视力 1.0 但有点粗心的人类同事——给他清晰的图片,配上详细的文字说明,分步骤沟通,及时纠正偏差。”
猜你喜欢