orval
Generate type-safe API clients, TanStack Query/SWR hooks, Zod schemas, MSW mocks, Hono server handlers, MCP servers, and…
像素级 750px 图片转代码与切图工作流。当 Codex 需要把当前选中的 UI 图片、截图、App/Web 设计稿、Figma 图片导出稿或设计长图转换为代码,并输出独立透明 PNG 切图资源时使用。适用于严格 1:1 等比例还原、画板宽度精确 750px、禁止自动排版优化、文本可编辑、简单图形原生矢量/代码化、图标和位图独立透明 PNG 提取,以及按矢量层、文本层、位图/图标切图三类模块独立验收的任务。
Claude Code
$ npx -y skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code --agent claude-code
Codex
$ npx skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code -a codex -y
Cursor
$ npx skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code -a cursor -y
Gemini CLI
$ npx skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code -a gemini-cli -y
GitHub Copilot
$ npx skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code -a github-copilot -y
OpenCode
$ npx skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code -a opencode -y
Windsurf
$ npx skills add SemineChen/yueban-image-to-code --skill yueban-image-to-code -a windsurf -y
name: yueban-image-to-code description: 像素级 750px 图片转代码与切图工作流。当 Codex 需要把当前选中的 UI 图片、截图、App/Web 设计稿、Figma 图片导出稿或设计长图转换为代码,并输出独立透明 PNG 切图资源时使用。适用于严格 1:1 等比例还原、画板宽度精确 750px、禁止自动排版优化、文本可编辑、简单图形原生矢量/代码化、图标和位图独立透明 PNG 提取,以及按矢量层、文本层、位图/图标切图三类模块独立验收的任务。
把用户提供或当前选中的 UI 图片还原为代码,并导出必要的独立切图资源。
原图就是视觉合同。不要把它重新设计成“更合理”的界面,不要做排版优化,不要主观调整间距。必须先按 750px 宽度等比归一化,再按原图元素的位置、比例、层级、颜色、透明度和样式进行还原。
当用户要求“严格等比例缩放至画板宽度精确 750px”时,这条规则高于所有常规前端、设计和响应式建议。
无论用户在哪个项目文件夹调用本 skill,都必须只以本次用户提供/选中的原图为视觉源。不要沿用其他会话、其他文件夹、旧示例或历史任务里的结构、素材、配色、页面区域和实现假设。
1. 检查输入图片和项目约束。 2. 把原图等比归一化到 750px 宽度。 3. 建立 `layers.manifest.json`:记录每个图层的原图 bbox、缩放后 bbox、类型、z-index、导出文件名。 4. 先按 manifest 导出切图资源,再写代码。禁止先凭感觉写代码再补切图。 5. 在 750px 画板中使用 manifest 的精确坐标实现代码。 6. 分模块校验:矢量、文本、位图/图标切图分别验收。 7. 做整页 750px 叠图复核。 8. 根据具体错位、缺图、裁切、样式差异继续迭代。 9. 交付代码、切图资源、manifest 和简短还原报告。
开始前先确认:
如果仓库已有框架,遵循现有框架。没有项目时,静态页面优先使用 HTML/CSS/JS;只有在组件结构或交互确实需要时才使用 React/Vite。
假设原图尺寸为 `source_width x source_height`:
scale = 750 / source_width final_width = 750 final_height = round(source_height * scale) scaled_x = original_x * scale scaled_y = original_y * scale scaled_width = original_width * scale scaled_height = original_height * scale
同一个 `scale` 必须应用到:
主交付物是锁定的 750px 定稿画板。不要让响应式规则影响 750px 版本。如果用户还需要响应式版本,必须在 750px 还原完成后再单独适配。
任何图片转代码 + 切图任务都必须先创建 manifest。manifest 是布局和切图的唯一数据源,不允许在代码里重新估算位置。
每个图层至少记录:
{
"id": "card-wallet-illustration",
"type": "bitmap",
"source_bbox": { "x": 338, "y": 520, "width": 116, "height": 122 },
"scaled_bbox": { "x": 338, "y": 520, "width": 116, "height": 122 },
"z_index": 24,
"asset": "assets/illustrations/card-wallet-illustration.png",
"transparent_required": true,
"notes": "从当前源图裁切,保持原图露出比例"
}规则:
切图区域不能凭感觉。每个需要导出的资源必须先完成 bbox 预览校验,再导出 PNG。
流程:
1. 在原图原始尺寸上测量 `source_bbox`,不要在浏览器缩放预览图上估算。 2. bbox 必须覆盖完整元素外框,包括透明留白、浅色底形、阴影、半透明边缘和被遮挡但可见的外缘。 3. 对边界不确定的资源,建立 2-3 个候选 bbox,选择能完整覆盖且不多带相邻元素的最大安全框。 4. 使用 `scripts/preview_bboxes.py` 或等效方式,把 manifest 中的 bbox 画到源图上生成预览图。 5. 只有当预览框与原图元素完整外框对齐后,才允许切图。 6. 如果预览框框到了相邻文字、相邻图标、卡片背景大块区域,必须修 bbox。 7. 如果导出后发现缺失、贴边、白底、灰底,必须回到 bbox 预览步骤重测,不能只在 PNG 上修补。
交付报告必须包含 bbox 预览图路径或说明已做等效原图框选复核。
实现前必须把每个可见元素归类:
每个独立图标和位图都必须保持独立图层和独立文件。不得合并、编组导出或做成 sprite,除非用户明确要求。
编码前先为自己写一份简短视觉提取记录:
尽量使用测量工具、截图、图像采样和浏览器计算样式,不要只靠目测。无法获得原字体时,选择最接近的可用字体,并通过字号、字重、行高和间距微调到视觉一致。
布局不允许使用自动流式排版来“复刻大概结构”。必须用 750px 画板坐标系锁定。
不要把整张设计稿切成一张大图,除非用户明确要求静态位图。文字、按钮、卡片、边框、分割线等应尽量用代码实现。但复杂插画、头像和图标必须从当前源图裁切,不能重绘。
必须导出独立透明 PNG 的内容:
不要为这些内容导出切图:
涉及切图时必须阅读 `references/slicing.md`,按其中的命名、格式、透明背景和禁止裁边规则执行。
优先使用或等效执行 `scripts/extract_png_asset.py` 从源图按 bbox 导出 PNG。该脚本不会自动 trim,输出画布固定等于 bbox,可选择移除纯色背景并保留 alpha。
导出前必须先用 `scripts/preview_bboxes.py` 检查 bbox 区域。没有 bbox 预览校验的切图结果不可信。
下列行为全部视为失败,即使页面看起来“更规整”或“更清晰”:
如果无法精准矢量化或代码化某个复杂元素,必须把该元素从源图按完整外框提取为 PNG,而不是近似重绘。
凡是 manifest 中 `transparent_required: true` 的资源,最终 PNG 必须有 alpha 通道,并且目标背景必须透明。
切图宁可画布偏大并保留透明留白,也绝不能裁掉任何一段内容。任何“只截到一段”“边缘缺一块”“阴影/浅色底被削掉”“图标贴边”的结果都判定为失败。
yueban-image-to-code 是一个用于 Codex 的图片转代码与切图 skill,目标是把选中的 UI 图片或设计截图按 750px 画板宽度进行像素级还原,并导出独立透明 PNG 切图资源。 调用名:
Generate type-safe API clients, TanStack Query/SWR hooks, Zod schemas, MSW mocks, Hono server handlers, MCP servers, and…
Use the Modern Go Guidelines CLI whenever writing, modifying, fixing, or refactoring Go code. Apply its version-specific guidance…
Use this skill when the user is building against Anthropic APIs or SDKs, including `@anthropic-ai/sdk`, `anthropic`, or Agent SDK…
Writing or converting formatted output in ripwire's C++ source — std::print/std::format via rw::emitTo, emitRaw and formatTo,…