5.6 KiB
5.6 KiB
Warframe 主题美术重构计划
目标
把 gilded 从“暗色换色皮肤”重构为完整 Warframe 主题:保留原始荒野画作作为主视觉, 将用户提供的三张画作作为真实可见的次级画面,通过切片、遮罩、景深和界面骨架融合成 一套连续构图;导航、按钮、输入框、选中态和动效统一采用 Orokin/星际战甲视觉语言, 同时保持正文阅读表面的高对比度。
视觉策略
- 视觉论点: 黑曜石舰舱中展开的 Orokin 档案界面,暗金骨架承载冷青能量与赤红战场, 四张画面组成一个连续视觉场,而不是四张并排海报。
- 内容规划: 欢迎态负责完整主题表达;导航负责定位;聊天区负责阅读;输入区负责行动。
- 交互论点: 主视觉分层进场;画面切片在 hover/focus 时产生克制景深;按钮和会话选中态 使用切角、能量线和短距离位移;减少动态模式下全部取消。
执行步骤
- [complete] 建立四图主题构图与素材契约
- [complete] 保存并校验三张参考画作资源
- [complete] 重构欢迎态为连续多图主视觉
- [complete] 统一导航输入按钮的 Warframe 组件语言
- [complete] 完成桌面移动响应式和加载降级
- [complete] 更新回归契约与缓存版本
- [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-theme、npm run regression、git diff --check和 四张图片的本地 HTTP 200 / 正确 Content-Type 检查全部通过。
素材契约
- 主图:
public/assets/themes/gilded-wasteland.png→ 保持原路径;1000×1500 PNG; SHA-25611bf3ffed4422c08f6be217c63060ba68d63367e747a3604fc2d7b877e9c5955; 用途为最大荒野主画面,不能被替换。 - 赤红群像:用户 URL
ce5c50d5-7712-494e-9605-0cf6fa28118a.jpg?speedsize=w_480, 当前/tmp/warframe-candidate-1.jpg→ 目标public/assets/themes/warframe-ember-squad.jpg;480×673 JPEG;SHA-256a9c89c5ec1f94445fbdce6b24d7a0a54e492d003cfbee395601fbaba405c6d65; 用途为带太阳与中央角色的横向战场切片。 - 冷蓝近景:用户 URL
fc78630c-3914-4140-b64a-8e181f41c62f.jpg?speedsize=w_480, 当前/tmp/warframe-candidate-2.jpg→ 目标public/assets/themes/warframe-orokin-figure.jpg;480×672 JPEG;SHA-25680c2dec24353ddc38629ae25568802cf3201d9da67b4b948047201952e5fc95b; 用途为保留头肩轮廓的冷青窄幅前景。 - The Sacrifice:用户 URL
ddd18c99-c3ba-466b-bcbe-690276d29aea.jpg?speedsize=w_480, 当前/tmp/warframe-candidate-3.jpg→ 目标public/assets/themes/warframe-sacrifice.jpg;480×672 JPEG;SHA-256792ab3eb2bd0b491f24676c2c42273a2b5167b4450aeb7edd579338f0b777b76; 用途为暗青深景、纵向金色中轴和底部标题层。
约束
- 保留现有无关未提交改动,尤其子代理卡片逻辑、Trellis 任务和发布包。
- 不重启 cc-web;静态文件由当前服务直接提供。
- 不伪造浏览器截图;若仍没有可用浏览器运行时,明确记录视觉验证边界。
错误记录
- 首次在
/tmp全目录检索候选图时命中 systemd 私有目录权限错误;候选文件仍成功定位, 后续只读取四个精确路径,不再扫描受限目录。 - codebase-memory MCP 的
list_projects与index_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提亮为#c2a566(7.81:1),保留渐变层次而不降低 7:1 验收标准。 - 首次全量回归在既有 Codex App steer mock 时序处返回
no active turn to steer,主题专项 断言此前已通过;先检查遗留 mock 进程,再以 60 秒上限复跑,不把该非主题错误算作通过。