# 新增暗金荒野主题计划 ## 目标 在不替换现有 Warframe 主题的前提下,新增一个可独立选择、可直接对比的“暗金荒野”主题;使用用户提供的背景图和图标板,保持现有功能与响应式布局完整。 ## 阶段 1. [COMPLETE] 审计现有 `gilded`/Warframe 未提交实现并建立合并边界 2. [COMPLETE] 建立主题任务规格与资产方案 3. [COMPLETE] 切分并优化暗金主题图像资产 4. [COMPLETE] 新增暗金荒野主题样式与主题注册 5. [COMPLETE] 补充主题切换和资源回归测试 6. [IN_PROGRESS] 执行静态检查与自动化回归 7. [TODO] 启动页面并进行多视口视觉验收 8. [TODO] 逐项对照参考图复核构图边框与图标 ## 视觉方向 - 视觉主张:熄灭后的王庭——背景人物必须清晰完整地固定在右侧;界面是悬浮其上的薄黑铁框架,不是把背景压黑后铺满金边卡片。 - 内容计划:以现有应用工作台为主体,依次统一侧栏导航、聊天消息、工具执行块、输入区和设置/弹层,不新增无业务意义的装饰区块。 - 交互主张:只保留主题短淡入、旧金线条扫光和按钮 1px 位移;取消余烬粒子与消息逐条入场等抢眼装饰。 ## 视觉返工准则(用户验收失败后追加) - 当前版本被用户明确判定为“不像参考图”,不得以自动化通过代替视觉完成。 - 边框使用 1px、低饱和暗铜和 6–8px 小切角;只在主按钮、输入框、工具执行块保留框架感,普通消息与列表不再全部 `clip-path`。 - 面板以近黑半透明层级为主,取消大面积金色渐变、粗边、重投影和卡片化堆叠。 - 图标继续来自用户图标板,但小控件改用 PNG alpha 作为 CSS mask,统一旧金材质和 18/22/28px 三档尺寸,避免当前 64px 彩色切图直接缩到 22px 的糊、脏、比例失衡。 - 背景人物必须保持原图清晰度,不加 blur;左侧遮罩和消息面板只保证文字可读,不得覆盖右侧人物主体。 - 主文字保持用户指定的 `#fff`。 ## 决策与约束 - 原 Warframe 保留内部 ID `gilded`,移除其 `hidden` 限制和 `gilded -> washi` 启动迁移,使它重新成为可选主题。 - 新主题使用独立内部 ID `wasteland`,显示名“暗金荒野”;不得复用或覆盖 `gilded`。 - 主题选择器必须同时展示 `gilded`(Warframe Wasteland)和 `wasteland`(暗金荒野),默认主题仍保持 `washi`。 - 图标从用户提供的图标板切分为本地主题资产,不依赖运行时 CSS 裁剪。 - 优先新增隔离文件;修改已有脏文件前先核对差异,避免覆盖用户改动。 - 不新增前端框架或重量级依赖。 ## 资产清单 - 完整界面参考:`sessions/_attachments/f01c1388-b603-434a-b226-2ff5771d4925.webp` - 新主题背景源图:`sessions/_attachments/094d7907-875d-41f4-9985-992c87c9b9cc.webp` - 图标板源图:`sessions/_attachments/43bd9ed6-2ba6-4c9d-bd9d-25b068cb4711.webp` - 新建对话欢迎页参考:`sessions/_attachments/33cd7ba3-208a-4d7f-9c53-672fcc22f127.webp` - 新建对话欢迎卡素材板:`sessions/_attachments/2b88b81d-c5a8-4d92-a518-afeea691eade.webp` - 目标背景:`public/assets/themes/wasteland/background.webp` - 目标图标目录:`public/assets/themes/wasteland/icons/`,输出透明 PNG,优先切分 32px 档的 16 个常用图标。 - 欢迎卡资产:`public/assets/themes/wasteland/frames/welcome-card.png` 与 `public/assets/themes/wasteland/textures/welcome-card-surface.webp`。 - 常用图标范围:新会话、搜索、下拉、主题、AI、在线状态、附件、发送、停止、设置、用户、终端、复制、刷新、聊天、关闭/确认。 ## 脏改动合并边界 - 实施前分别审计 `public/app.js`、`public/index.html`、`public/style.css`、`scripts/regression.js` 和 `public/assets/themes/` 的未提交差异。 - 记录本任务开始前相关文件的差异与资产清单;只追加 `wasteland` 注册、样式和断言,并对恢复 `gilded` 可见性做最小精确修改。 - 不重排或格式化现有大文件,不修改与主题无关的区块。 ## 错误记录 | 错误 | 尝试 | 处理 | |---|---:|---| | `rg` 把以 `--target` 开头的模式误解析为命令参数 | 1 | 后续检索使用 `rg -- ''`,不重复原命令 | | 全量回归在专项通过后命中旧 `gilded hidden` 断言 | 1 | 判定为外部运行会话回写 `scripts/regression.js`;等待共享写入稳定后重新合并当前契约 | | 跨会话协调消息返回 `target_running` | 1 | 不重复即时发送;先等待目标会话完成当前处理,再查询状态或采用本地最终合并 | | 外部会话第三次回写 `gilded hidden`、启动迁移和旧 cache bust | 3 | 已满足重复冲突阈值;停止反复覆盖,等待用户停止 `定制暗金荒野主题` 会话后再做最终合并与全量回归 | | 用户视觉验收明确失败:边框、图标、整体质感不像参考图 | 1 | 回滚“实现完成”判断;建立本地可截图 mock,逐项按参考图重做并新增最终对照步骤 | | Headless Firefox 无法输出本地视觉 mock 截图 | 2 | 默认 profile 超时;独立 profile 又因 SWGL framebuffer 映射失败,环境无 Xvfb;停止重复尝试,不安装依赖,改用参考图几何审计 + 用户实时页面反馈 |