Files
gplan-2/game/assets/theme
DKChan af2d834e78 feat(迭代25): UI 全局主题批 T0-T2——全局主题资源挂载+两处局部做法退役+冒烟 V1-V6 断言
- T0: game/assets/theme/main_theme.tres 挂 project.godot gui/theme/custom——
  15 类型全覆盖(V/HScrollBar·ScrollContainer·H/VSlider·TooltipPanel/Label·
  LineEdit·SpinBox·H/VSeparator)+预盖 CheckBox/CheckButton/OptionButton/
  PopupMenu 弹层;default_font 显式指现役同字体(V6 中文字形防御);
  位图生成脚本 tools/gen_theme_icons.py(9 张纯色/几何小位图→assets/art/ui/gen/,
  按 .gitignore 政策本地生成不入库);色值溯源表 game/assets/theme/README.md
- T1: ui_kit.gd 删 tooltip_theme()/_tip_theme 与 styled_slider()、ui_assembler.gd
  删挂载行(旧实现同批删除);settings_overlay 几何内联、debug_overlay 双轨消隐
- T2: 冒烟 _smoke_global_theme() 38 断言(V1 类型覆盖+Button/focus 双红线+
  V2 冻结值 5.49:1+V3 预盖证词+V4 退役零残留+V6 字体防御)
- 引擎事实(4.7.2 源码+默认主题链双查):CheckButton 与 CheckBox 同套
  checked/unchecked 图标名;Slider 无 grabber_pressed 槽;ScrollBar 柄=StyleBox
2026-10-13 21:39:01 +08:00
..

game/assets/theme/ —— UI 全局主题资源(迭代 25 · UI 全局主题批)

  • 主文件:main_theme.tres(Godot 4 Theme 资源,挂 project.godot 的 gui/theme/custom)
  • 生成脚本:tools/gen_theme_icons.py(可重跑,幂等)→ 小位图落 ../art/ui/gen/
  • 依据:需求卡片 design/research/需求卡片-UI全局主题批-2026-10-13.md v1.2(2026-10-13)

本目录不含内联注释(.tres 注释语法不赌),全部溯源信息以本表为准。色值一律取自 game/presentation/views/ui_kit.gd 既有常量,零新增色值(迭代 25 契约:不新增美术素材)。

色值溯源表(字面量 ↔ ui_kit 常量)

ui_kit 常量 值 本主题用途
BG_OVERLAY #362B20 α0.35 滚动条槽(V/H)
PANEL_BORDER #786E58 滚动条柄·常、滑轨槽描边、LineEdit/PopupMenu 边、分隔线 α0.6、勾选框边、滑轨柄描边、SpinBox 箭头底系
STONE_FAINT #8C7C64 滚动条柄·悬、SpinBox 箭头底·悬(α0.6,白名单#5)
STONE_DEEP #554D41 滚动条柄·按、滑轨柄·废、勾选框·废、SpinBox 箭头底·按、LineEdit 占位字色
BG_ROOT #3A2E22 滑轨已填充段 grabber_area(+highlight)
暖石(无常量,ui_kit.gd:743 字面量) #B8A582 滑轨槽 slider(承 styled_slider 现值)
CANDLE #F6C667 滑轨柄·常
CANDLE 提亮档(lightened≈12%,≈#F7E08C) — 滑轨柄·悬(白名单#5;Godot lightened 同式)
GOLD_DEEP #B07A14 滑轨柄·按——Godot 4.7 Slider 无 grabber_pressed 图标槽(实证:引擎源码+默认主题链双查),值留档未落位
WARM #F0E2C8 TooltipLabel 字色(承 tooltip_theme() 现值)
tooltip 面板底/边(ui_kit.gd:757-759 现值) Color(0.09,0.07,0.05,0.96) / #5A5044 TooltipPanel
PANEL_DATA #E9D9B8 LineEdit 底、勾选框空框底、PopupMenu 面板底
INK #33261B LineEdit/PopupMenu/OptionButton 字色、SpinBox 箭头、勾选框对勾
INK α0.45 — OptionButton 废字色(同 _apply_button_skin 惯例)
GOLD_LIT #E6BE5A PopupMenu 条目 hover 底
INK_ON_GOLD #3C2C14 PopupMenu 条目 hover 字色
RADIUS_OBJECT 5 LineEdit 圆角(同数据框惯例 ui_kit.gd:476)
默认字体 res://assets/fonts/ui_font_fusion_pixel_zh_hans.ttf 主题 default_font(与 project.godot theme/custom_font 同文件——v1.2 防御条款,防挂主题后中文字形缺失)

词条落位总览

类型 词条 载体
VScrollBar / HScrollBar scroll / grabber / grabber_highlight / grabber_pressed StyleBoxFlat 纯色(Godot 4 滚动条柄是 StyleBox 非 Icon,无需位图;content margin 4 = 8px 粗细,柄最小 8px)
ScrollContainer panel StyleBoxFlat 全透明(默认即 Empty 不可见,显式接管)
HSlider / VSlider slider / grabber_area / grabber_area_highlight / grabber / grabber_highlight / grabber_disabled StyleBoxFlat + 生成位图(12×12 方柄;VSlider 边距为 H 的旋转换位)
TooltipPanel / TooltipLabel panel / font_color / font_size 承 tooltip_theme() 现值原样迁入
LineEdit normal / font_color / font_placeholder_color StyleBoxFlat + 色词条(占位色词条名 = font_placeholder_color,4.7.2 实证;font_color_placeholder 不存在)
SpinBox updown / up·down_background_hovered·pressed Godot 4 SpinBox 走 updown 合并图标槽(定义了它就不再画 up/down 分件,引擎源码实证);hover/pressed 箭头底默认主题可见,按白名单#5 覆盖
HSeparator / VSeparator separator StyleBoxLine(PANEL_BORDER α0.6 单线,1px)
CheckBox / CheckButton unchecked / checked / unchecked_disabled / checked_disabled 两类共用同一套图标名(checked/unchecked,4.7.2 源码实证——卡片 v1.2 注③「CheckButton 用 on/off」不成立,已按引擎事实落位并呈报追认)
OptionButton normal / hover / pressed / disabled / font_* / arrow button_stone 九宫格(8px 边距,同 _apply_button_skin 观感)+ INK 字 + 生成箭头
PopupMenu panel / hover / font_color / font_hover_color / font_size StyleBoxFlat(预盖件,含弹层)

红线遵守记录

  • Button 类型词条零接触(五态矩阵归 06 第一层第二条);OptionButton 为独立主题类型(预盖件)。
  • focus 族词条零定义(scroll_focus / LineEdit focus / font_focus_color 等一律不写)。
  • 全局纹理过滤未动(rendering/textures/canvas_textures/default_texture_filter 归 06 第一层第三条); Godot 4.7.2 导入参数已无逐贴图 filter 标志(现存 art/ui/*.import 实证),小位图均为原生尺寸消费,无滤波伪影。
  • default_font_size 未设(全站字号走 UiKit.FS_* 逐实例 override)。

专项观察点(v1.2 增补,归用户目检)

  1. 滑轨柄 CANDLE 色是否比「关闭」按钮抢眼(违反焦点预算嫌疑)——若是走 L2 微调(候选 STONE 灰石系)。
  2. 滚动条槽 BG_OVERLAY α0.35 叠 BG_ROOT 上是否可见——若否走 L2 微调(候选提不透明度或 SLOT_BACKDROP #3E362C)。