From 8b4dd535ae9bc9e2b152be7b037ce0acf3b9e5e3 Mon Sep 17 00:00:00 2001 From: halice <2587203630@qq.com> Date: Mon, 6 Jul 2026 17:19:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(ai):=20=E5=85=81=E8=AE=B8=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=87=AA=E7=94=B1=E5=88=9B=E4=BD=9C=E5=A4=B1=E8=B4=A5=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/pixel-perfect-react/SKILL.md | 115 ++++++++++++++++++ .../free-create/generation-card.tsx | 11 +- 2 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 .agents/skills/pixel-perfect-react/SKILL.md diff --git a/.agents/skills/pixel-perfect-react/SKILL.md b/.agents/skills/pixel-perfect-react/SKILL.md new file mode 100644 index 0000000..9434e88 --- /dev/null +++ b/.agents/skills/pixel-perfect-react/SKILL.md @@ -0,0 +1,115 @@ +--- +name: pixel-perfect-react +description: 把 HTML 设计稿像素级精准还原成 React/TSX 组件。当任务涉及"还原页面 / 页面还原度 / HTML 转 React / 设计稿转组件 / exact 页面 React 化 / 精确到 px / 像素对齐 / visual parity / 还原度太粗糙 / 对齐设计稿",或要把 public/exact/*.html 转成 src/routes 下真 React 组件、或修一个已 React 化但还原不准的页面时使用。强制"逐字转写而非重新发挥"+ pixelmatch 像素 diff 闭环,把 diffPixels 逼到趋近 0。 +--- + +# 像素级 HTML → React 还原 + +> 路径约定:本文路径相对 **AirShelf 仓库根**(即本 `.Codex` 的上一级)。前端工程在 `core/frontend/`,设计 SSoT 在 `电商AI平台/design.md`,设计镜像在 `core/frontend/public/exact/`。 + +## 核心原则:转写,不是重画(Transcribe, don't reinterpret) + +> **React 文件 = 源 HTML 的忠实转写。只有「数据」和「事件」变,结构 / 类名 / 内联样式 / 文案逐字保留。** + +还原度变糙的 **99% 根因**:AI 把 HTML"读懂后重写"成自以为更干净 / 更语义化的结构和类名,于是 `restraint.css` 里靠这些类名和结构生效的精确样式**全部失配**——间距、字号、圆角、颜色就这么一点点漂走了。**禁止重画,只许转写。** + +--- + +## 十条铁律(每条都对应一种"变糙"的根因) + +1. **先读设计规范** — 涉及任何样式,先 `Read 电商AI平台/design.md`(§0 协作铁律、§2 token、§8 Don't List)。这是 AGENTS.md 的硬性要求。 +2. **类名逐字保留** — 源 HTML 每个 `class` 原样搬到 `className`。**禁止**改名 / 合并 / 拆分 / 换成 Tailwind utility / 换成内联样式。 +3. **DOM 结构 1:1** — 嵌套层级、兄弟顺序、看似多余的空 `
`、装饰 ``/`corner-bl` 全部保留。`restraint.css` 大量用后代选择器和 `:nth-child`,**结构一动样式就错位**。 +4. **内联样式精确搬运** — `style="width: 33%"` → `style={{ width: "33%" }}`,数值一个字符都不改;kebab-case → camelCase。**禁止"约等于"**(padding 14 写成 16、宽 33% 写成 35% 都算错)。 +5. **文案 / Mono 装饰逐字** — `// 05.14`、`[ 200 OK ]`、`[ /v1 ]`、`LIVE`、占位文本全部原样保留,**禁止改写 / 翻译 / 精简 / 补全**。这些是品牌签名。 +6. **内联 SVG 属性级保留** — `viewBox` / `path d` / `fill` / `stroke-width` 逐字抄,**禁止重画图标或换 lucide 顶替**(除非源 HTML 本就用 lucide)。 +7. **加载同一套 CSS + 字体** — React 入口必须 `import` 同一份 `restraint.css` / `styles.css` / `design-restraint.css`;**禁止**在组件里用内联 `