docs: UI全局主题批需求卡片v1.2——审核六点补充落文(中文字体防御+基线订正+CheckButton词条名+两个目检观察点+08未跟踪提示)
审核(2026-10-13 用户发起)六点,除两处提请注意外全部落文: ①必修-新主题显式设 default_font(§6 T0第4步+新增断言V6):挂项目主题后 custom_font 是否仍生效无权威依据可证,失效=全游戏中文字形缺失,违反HUD框架可访问性基线;指向同一字体文件=观感零变化,纯消不确定性;不设 default_font_size(全站字号走 UiKit.FS_* 逐实例override)。 ②V5基线数订正 864/0→938/0(v1.1自审声称已修正但正文未落实)。 ③CheckButton图标词条名=on/off,非CheckBox的checked/unchecked(Godot 4),不可共用一套名。 ④目检增补两观察点:滑轨柄CANDLE是否抢焦点(§7.2主操作色/§3.4焦点预算)、滚动条槽BG_OVERLAY α0.35叠BG_ROOT是否可见;两者归L2通道,色值已冻结不改。 ⑤§5标注 08-Alpha版本标准.md 至今仍git未跟踪(并行会话484条 untracked禁碰留置),本批改前须确认状态并手工搬运。 ⑥v1.2记录同时订正审核方上一轮诊断失真:滑轨两段实为#B8A582与#7A5232(对比2.84:1),「偏难辨」成立而「同色」不成立。 已跑结构审计闸=PASS(新增 assets/theme/ 与 art/ui/gen/*.png 命中图像白名单 game/assets/,无需修订 CLAUDE.md);doc_link_audit 死链3处全存量零新增。
This commit is contained in:
1 parent
ecff83265c
commit
4148f04088
1 file changed
+11
-4
@@ -1,6 +1,7 @@
|
|||||||
# 需求卡片:UI 全局主题批(引擎原生控件接管皮肤)
|
# 需求卡片:UI 全局主题批(引擎原生控件接管皮肤)
|
||||||
|
|
||||||
- 版本:v1.1(2026-10-13 grilling 复核三裁点落定+自审事实修正+并行改名批换代重验;**卡片成立**,零待裁点,开工门=U0)
|
- 版本:v1.2(2026-10-13 审核补充批——中文字体防御性条款+V5 基线数订正+CheckButton 词条名补注+两处目检观察点+08 未跟踪状态提示;**卡片成立**,零待裁点,开工门=U0)
|
||||||
|
- v1.2 记录:同日用户对卡片发起审核,发现六点,除两处「提请注意」外全部落文。①**新主题必须显式设 `default_font`**(必修,见 §6 T0 第 4 步+新增断言 V6)——挂上项目主题后 `project.godot` 既有的 `theme/custom_font` 是否仍然生效,无权威依据可证实(官方文档对应页缺失,未跑测试);一旦失效后果是**全游戏中文字形缺失**,直接违反 HUD框架可访问性基线「中文字体随包内置并设为默认」。指向同一字体文件=观感零变化,纯粹消除不确定性。②V5 基线数订正 864/0 → **938/0**(v1.1 自审声称该项已修正,但正文数字从未落实)。③CheckButton 图标词条名为 `on`/`off`,不是 CheckBox 的 `checked`/`unchecked`(Godot 4),两者不可共用一套名。④目检增补两个观察点(滑轨柄是否抢焦点、滚动条槽是否可见)。⑤§5 标注 08-Alpha版本标准 至今仍是 git 未跟踪文件。**另已跑结构审计闸=PASS**:新增 `game/assets/theme/` 与 `game/assets/art/ui/gen/*.png` 均命中图像白名单 `game/assets/`,**无需**修订 CLAUDE.md Project Layout。**审核方订正**:其上一轮「界面美化三层诊断」称设置屏音量滑轨「已填段与未填段同一个深棕色」,实查两段为 #B8A582 与 #7A5232(对比 2.84:1,低于图形元素 3:1 参考线),「偏难辨」成立而「同色」不成立;且默认值 100 时无未填段。卡片 §2 末的疑点披露与此处理维持有效。
|
||||||
- v1.1 记录:grilling 三裁点=①focus 族词条全不定义(弃 LineEdit focus 豁免案)②PopupMenu 并入预盖③色值卡审即冻结;自审修正=V5 基线数过期、新增 PNG 导入流程补写、LineEdit 占位文字色词条补入、.tres 溯源改 README;换代重验=状态面板改名批(master 7d1e9cb)后全部 file:line 逐一复验存活,pause_overlay.gd → status_panel.gd 一处文件名换代
|
- v1.1 记录:grilling 三裁点=①focus 族词条全不定义(弃 LineEdit focus 豁免案)②PopupMenu 并入预盖③色值卡审即冻结;自审修正=V5 基线数过期、新增 PNG 导入流程补写、LineEdit 占位文字色词条补入、.tres 溯源改 README;换代重验=状态面板改名批(master 7d1e9cb)后全部 file:line 逐一复验存活,pause_overlay.gd → status_panel.gd 一处文件名换代
|
||||||
- 来源:[06-待办清单](../gdd/06-待办清单.md)「UI 全局主题资源缺失——引擎原生控件没有接管皮肤」(2026-10-13 登记,UI 美化三层诊断 · 第一层);[08-Alpha版本标准](../gdd/08-Alpha版本标准.md) 三·界面表同名行
|
- 来源:[06-待办清单](../gdd/06-待办清单.md)「UI 全局主题资源缺失——引擎原生控件没有接管皮肤」(2026-10-13 登记,UI 美化三层诊断 · 第一层);[08-Alpha版本标准](../gdd/08-Alpha版本标准.md) 三·界面表同名行
|
||||||
- 归属:呈现层表现批(纯工程改动,零美术素材,不动美术圣经 §7 定稿规格)
|
- 归属:呈现层表现批(纯工程改动,零美术素材,不动美术圣经 §7 定稿规格)
|
||||||
@@ -50,7 +51,7 @@
|
|||||||
| 文档 | 关联点 | 同步义务 |
|
| 文档 | 关联点 | 同步义务 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| [06-待办清单](../gdd/06-待办清单.md) | ①「UI 全局主题资源缺失」条;②「UI 元素细节修」条之①(滑轨两段难辨) | 两条随批收口销号(事项解决即移除);「UI 元素细节修」余下②③④保留。**机械面,随批** |
|
| [06-待办清单](../gdd/06-待办清单.md) | ①「UI 全局主题资源缺失」条;②「UI 元素细节修」条之①(滑轨两段难辨) | 两条随批收口销号(事项解决即移除);「UI 元素细节修」余下②③④保留。**机械面,随批** |
|
||||||
| [08-Alpha版本标准](../gdd/08-Alpha版本标准.md) | 三·界面表「UI 全局主题资源(引擎原生控件接管皮肤)」行状态=待做 | 入库后回填。**机械面,随批** |
|
| [08-Alpha版本标准](../gdd/08-Alpha版本标准.md) | 三·界面表「UI 全局主题资源(引擎原生控件接管皮肤)」行状态=待做 | 入库后回填。**机械面,随批**。**实现前注意**:该文件**至今仍是 git 未跟踪文件**(并行会话 active.md 484 号条目明确「untracked 禁碰留置」——因其内含「暂停」字样,改名批故意不碰);本批改它前须先确认 git 状态,并在 worktree 内手工搬运(未跟踪文件不会随 worktree 自动出现) |
|
||||||
| [07-体验验证清单](../gdd/07-体验验证清单.md) | 本批新增目检观测项 | 随批登记:滚动条/滑轨/气泡/输入件全屏巡检+音量滑轨拖到中点两段一眼可辨+预盖件无实役(登记注记)。**机械面,随批**(登记不阻塞) |
|
| [07-体验验证清单](../gdd/07-体验验证清单.md) | 本批新增目检观测项 | 随批登记:滚动条/滑轨/气泡/输入件全屏巡检+音量滑轨拖到中点两段一眼可辨+预盖件无实役(登记注记)。**机械面,随批**(登记不阻塞) |
|
||||||
| active.md | 批收口快照惯例 | 收口批登记。**机械面,随批** |
|
| active.md | 批收口快照惯例 | 收口批登记。**机械面,随批** |
|
||||||
| roadmap | 本批尚未编入迭代行 | 编入时随编入批更新;本卡不动 roadmap |
|
| roadmap | 本批尚未编入迭代行 | 编入时随编入批更新;本卡不动 roadmap |
|
||||||
@@ -75,11 +76,12 @@
|
|||||||
| LineEdit normal | PANEL_DATA #E9D9B8 底+PANEL_BORDER 边+INK 字;**占位文字色=STONE_DEEP #554D41**(对底 ≈6:1;种子框用 placeholder,漏配会显示引擎灰) | PANEL_DATA 等 |
|
| LineEdit normal | PANEL_DATA #E9D9B8 底+PANEL_BORDER 边+INK 字;**占位文字色=STONE_DEEP #554D41**(对底 ≈6:1;种子框用 placeholder,漏配会显示引擎灰) | PANEL_DATA 等 |
|
||||||
| SpinBox | 底同 LineEdit;箭头=生成 INK 色三角 | 同上 |
|
| SpinBox | 底同 LineEdit;箭头=生成 INK 色三角 | 同上 |
|
||||||
| HSeparator/VSeparator | PANEL_BORDER α0.6 单线 | PANEL_BORDER |
|
| HSeparator/VSeparator | PANEL_BORDER α0.6 单线 | PANEL_BORDER |
|
||||||
| CheckBox/CheckButton | 空框=PANEL_DATA+PANEL_BORDER 14×14;选中=INK 实心/对勾(生成图) | 同上 |
|
| CheckBox/CheckButton | 空框=PANEL_DATA+PANEL_BORDER 14×14;选中=INK 实心/对勾(生成图)。**⚠ 两者图标词条名不同**:CheckBox 用 `checked`/`unchecked`(+`_disabled` 两态),CheckButton 用 `on`/`off`(+`_disabled`),不可共用一套名,否则 CheckButton 预盖静默空转 | 同上 |
|
||||||
| OptionButton | normal/hover/pressed=button_stone 九宫格(与手盖按钮同观感,8px 边距同参)+INK 字 | 既有贴图与常量 |
|
| OptionButton | normal/hover/pressed=button_stone 九宫格(与手盖按钮同观感,8px 边距同参)+INK 字 | 既有贴图与常量 |
|
||||||
| PopupMenu(OptionButton 弹层) | panel=PANEL_DATA+PANEL_BORDER;条目 hover=GOLD_LIT #E6BE5A 底+INK_ON_GOLD #3C2C14 字;字色 INK、字号 16 | 四常量(候选高亮语义沿用 GOLD_LIT 既有分工) |
|
| PopupMenu(OptionButton 弹层) | panel=PANEL_DATA+PANEL_BORDER;条目 hover=GOLD_LIT #E6BE5A 底+INK_ON_GOLD #3C2C14 字;字色 INK、字号 16 | 四常量(候选高亮语义沿用 GOLD_LIT 既有分工) |
|
||||||
|
|
||||||
4. `project.godot` 挂 `gui/theme/custom="res://assets/theme/main_theme.tres"`。
|
4. `project.godot` 挂 `gui/theme/custom="res://assets/theme/main_theme.tres"`。
|
||||||
|
- 🔴 **同时在新主题内部显式设 `default_font`=`res://assets/fonts/ui_font_fusion_pixel_zh_hans.ttf`**(与 `project.godot` 既有 `theme/custom_font` 指向**同一个文件**)。理由:挂上项目主题后,原有的 `custom_font` 是否仍然生效,在 Godot 4.7 上无权威依据可证实(官方文档对应页缺失,本批不跑测试);而失效后果是**全游戏中文字形缺失**,直接违反 HUD框架可访问性基线「中文字体随包内置并设为默认」。指向同一文件=观感零变化,纯粹消除不确定性。**不设 `default_font_size`**——全站字号走 `UiKit.FS_*` 逐实例 override,设全局字号会顶掉既有六档。验收见 §7 V6。
|
||||||
|
|
||||||
### T1 换代退役与消费方收口(≈0.25d)
|
### T1 换代退役与消费方收口(≈0.25d)
|
||||||
|
|
||||||
@@ -102,10 +104,15 @@
|
|||||||
- V2 滑轨修复:grabber_area 与 slider 词条色值断言(冻结值 BG_ROOT 对 #B8A582 ≈5.5:1)。
|
- V2 滑轨修复:grabber_area 与 slider 词条色值断言(冻结值 BG_ROOT 对 #B8A582 ≈5.5:1)。
|
||||||
- V3 预盖件:临时实例化 CheckBox 读 `get_theme_icon("checked")` 非空+PopupMenu 词条存在(无实役控件的运行时证词)。
|
- V3 预盖件:临时实例化 CheckBox 读 `get_theme_icon("checked")` 非空+PopupMenu 词条存在(无实役控件的运行时证词)。
|
||||||
- V4 换代退役:`UiKit.styled_slider` / `tooltip_theme` 引用全库零残留(删函数后编译期即闸)+ `ui_assembler` 无 `overlay.theme` 残留。
|
- V4 换代退役:`UiKit.styled_slider` / `tooltip_theme` 引用全库零残留(删函数后编译期即闸)+ `ui_assembler` 无 `overlay.theme` 残留。
|
||||||
- V5 回归:冒烟全绿(**基线以开工日 run_all 实测为准**;最近记录 864/0)——按钮/面板逐实例 override 优先级保证存量观感零变化,存量断言即回归网。
|
- V5 回归:冒烟全绿(**基线以开工日实测为准**;最近记录 **938/0**——v1.2 订正,原写 864/0 系迭代 21 时代旧数)——按钮/面板逐实例 override 优先级保证存量观感零变化,存量断言即回归网。
|
||||||
|
- **V6 中文字体防御**(v1.2 新增,对应 §6 T0 第 4 步):`ThemeDB.get_project_theme()` 的 `default_font` 非空,且实例化一个 Label 后取其实际字体非空——**防止项目主题顶掉 `custom_font` 导致中文字形缺失**(HUD框架可访问性基线硬条款,失效即全站豆腐块)。可直接并入 V1 断言段同批实现。
|
||||||
|
|
||||||
**正常流程体验(用户目检;谁验=用户自排,登记 07 不阻塞)**:营地滚动条、战斗日志滚动条、设置音量滑轨拖动全程、全屏悬停气泡、调试浮窗输入件、分隔线——巡检无引擎默认灰残留;音量滑轨拖到中点两段一眼可辨。
|
**正常流程体验(用户目检;谁验=用户自排,登记 07 不阻塞)**:营地滚动条、战斗日志滚动条、设置音量滑轨拖动全程、全屏悬停气泡、调试浮窗输入件、分隔线——巡检无引擎默认灰残留;音量滑轨拖到中点两段一眼可辨。
|
||||||
|
|
||||||
|
**两个专项观察点(v1.2 增补,属 L2 观感,不阻塞,记录即继续)**:
|
||||||
|
1. **滑轨柄是否抢焦点**——柄色取 CANDLE #F6C667,而 §7.2「琥珀双岗注记」把烛光黄定义为主操作色(主按钮/候选节点/钥石徽章底)。滑轨柄并非主操作,用它有违反 §3.4 焦点预算的嫌疑。目检判据:**设置屏上滑轨是否比「关闭」按钮还抢眼**;若是,走 §8 L2 通道微调(候选降档:STONE 灰石系)。色值已冻结,目检前不改。
|
||||||
|
2. **滚动条槽是否看得见**——槽取 BG_OVERLAY #362B20 α0.35,叠在 BG_ROOT #3A2E22 背景上明度极接近,有可能根本看不出槽的存在。目检判据:**滚得动的内容里,能否一眼看出滚动条在哪**;若否,同上走 L2 微调(候选:提高不透明度或改取 SLOT_BACKDROP #3E362C)。
|
||||||
|
|
||||||
## 8. 异常分级
|
## 8. 异常分级
|
||||||
|
|
||||||
- L1(自救):手写 .tres 语法错导致加载失败/词条名拼错(Godot 4 词条名以引擎文档为准,拼写错=静默回退默认)——冒烟 V1 立红即修。
|
- L1(自救):手写 .tres 语法错导致加载失败/词条名拼错(Godot 4 词条名以引擎文档为准,拼写错=静默回退默认)——冒烟 V1 立红即修。
|
||||||
|
|||||||
Reference in new issue
Block a user