Files
2026-07-18 10:14:38 +08:00

5.6 KiB
Raw Permalink Blame History

Warframe 主题美术重构计划

目标

把 gilded 从“暗色换色皮肤”重构为完整 Warframe 主题:保留原始荒野画作作为主视觉, 将用户提供的三张画作作为真实可见的次级画面,通过切片、遮罩、景深和界面骨架融合成 一套连续构图;导航、按钮、输入框、选中态和动效统一采用 Orokin/星际战甲视觉语言, 同时保持正文阅读表面的高对比度。

视觉策略

  • 视觉论点: 黑曜石舰舱中展开的 Orokin 档案界面,暗金骨架承载冷青能量与赤红战场, 四张画面组成一个连续视觉场,而不是四张并排海报。
  • 内容规划: 欢迎态负责完整主题表达;导航负责定位;聊天区负责阅读;输入区负责行动。
  • 交互论点: 主视觉分层进场;画面切片在 hover/focus 时产生克制景深;按钮和会话选中态 使用切角、能量线和短距离位移;减少动态模式下全部取消。

执行步骤

  1. [complete] 建立四图主题构图与素材契约
  2. [complete] 保存并校验三张参考画作资源
  3. [complete] 重构欢迎态为连续多图主视觉
  4. [complete] 统一导航输入按钮的 Warframe 组件语言
  5. [complete] 完成桌面移动响应式和加载降级
  6. [complete] 更新回归契约与缓存版本
  7. [in_progress] 运行专项全量回归并检查实际资源加载

完成标准

  • 原始 1000×1500 画作继续作为主视觉;三张用户提供的 Displate 画作保存为本地静态资源, 不依赖远程热链,四张图在欢迎态真实可见并有明确主次。
  • 不是相册、卡片墙或简单并排:桌面端通过不规则切片、层叠深度和统一骨架线组成一个连续 视觉场;移动端重排成主画面加叙事切片,不能横向溢出。
  • 导航、标题栏、会话项、按钮、输入框、菜单与焦点态共享切角、暗金骨架、冷青能量高光; 不能只改颜色,也不能用图案牺牲文字可读性。
  • 普通聊天正文仍使用不透明表面;主/次/弱文字最低对比度保持 7:1 / 5.5:1 / 4.5:1。
  • 所有图片由真实 <img> 或稳定本地资源加载;单图失败时保留结构和可读界面,不出现空白块。
  • scripts/regression.js 必须移除旧的“原图只引用 2 次 / 只有 .welcome-art”单图契约, 改为断言四个本地资源存在且 hash/尺寸固定、动态与静态欢迎态均含四个 <img>、连续构图 容器和四种图层类存在、UI 不含远程热链、聊天正文不使用图片背景、移动端有明确重排。
  • npm run regression -- --target gilded-themenpm run regressiongit diff --check 和 四张图片的本地 HTTP 200 / 正确 Content-Type 检查全部通过。

素材契约

  1. 主图:public/assets/themes/gilded-wasteland.png → 保持原路径1000×1500 PNG SHA-256 11bf3ffed4422c08f6be217c63060ba68d63367e747a3604fc2d7b877e9c5955 用途为最大荒野主画面,不能被替换。
  2. 赤红群像:用户 URL ce5c50d5-7712-494e-9605-0cf6fa28118a.jpg?speedsize=w_480 当前 /tmp/warframe-candidate-1.jpg → 目标 public/assets/themes/warframe-ember-squad.jpg480×673 JPEGSHA-256 a9c89c5ec1f94445fbdce6b24d7a0a54e492d003cfbee395601fbaba405c6d65 用途为带太阳与中央角色的横向战场切片。
  3. 冷蓝近景:用户 URL fc78630c-3914-4140-b64a-8e181f41c62f.jpg?speedsize=w_480 当前 /tmp/warframe-candidate-2.jpg → 目标 public/assets/themes/warframe-orokin-figure.jpg480×672 JPEGSHA-256 80c2dec24353ddc38629ae25568802cf3201d9da67b4b948047201952e5fc95b 用途为保留头肩轮廓的冷青窄幅前景。
  4. The Sacrifice用户 URL ddd18c99-c3ba-466b-bcbe-690276d29aea.jpg?speedsize=w_480 当前 /tmp/warframe-candidate-3.jpg → 目标 public/assets/themes/warframe-sacrifice.jpg480×672 JPEGSHA-256 792ab3eb2bd0b491f24676c2c42273a2b5167b4450aeb7edd579338f0b777b76 用途为暗青深景、纵向金色中轴和底部标题层。

约束

  • 保留现有无关未提交改动尤其子代理卡片逻辑、Trellis 任务和发布包。
  • 不重启 cc-web静态文件由当前服务直接提供。
  • 不伪造浏览器截图;若仍没有可用浏览器运行时,明确记录视觉验证边界。

错误记录

  • 首次在 /tmp 全目录检索候选图时命中 systemd 私有目录权限错误;候选文件仍成功定位, 后续只读取四个精确路径,不再扫描受限目录。
  • codebase-memory MCP 的 list_projectsindex_status 均返回 Transport closed;按项目 约定降级为 rg/sed 精确定位,并保留最终行号交叉验证。
  • 当前环境没有 ImageMagick 的 identify/convert;图片尺寸改用 file 和已有 JPG/PNG 元数据核验,色彩与裁切根据已查看的原始像素图判断,不重复调用缺失命令。
  • /usr/bin/firefox 的 Snap 包装层因 mount namespace 限制超时;改用 /snap/firefox/current/usr/lib/firefox/firefox 直接运行后截图成功,不重复调用包装层。
  • 首次修正四图 BEM 类名的组合补丁因 app.js 实际为多行模板而未匹配;读取精确上下文后 改用逐行小补丁成功,未产生部分修改。
  • 四图专项回归首次命中按钮金色渐变暗端对比度仅 6.85:1将暗端由 #b9995c 提亮为 #c2a5667.81:1保留渐变层次而不降低 7:1 验收标准。
  • 首次全量回归在既有 Codex App steer mock 时序处返回 no active turn to steer,主题专项 断言此前已通过;先检查遗留 mock 进程,再以 60 秒上限复跑,不把该非主题错误算作通过。