game/assets/theme/ —— UI 全局主题资源
- 主文件:
main_theme.tres(Godot 4 Theme 资源,挂project.godot的gui/theme/custom) - 生成脚本:
tools/gen_theme_icons.py(可重跑,幂等)→ 小位图落../art/ui/gen/ - 依据:UI 全局主题 v1.2(git 历史可考)
本目录不含内联注释(.tres 注释语法不赌),全部溯源信息以本表为准。色值一律取自
game/presentation/views/ui_kit.gd 既有常量,零新增色值(现行契约:不新增美术素材)。
色值溯源表(字面量 ↔ 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 源码实证) |
| 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)。
专项观察点(归用户目检)
- 滑轨柄 CANDLE 色是否比「关闭」按钮抢眼(违反焦点预算嫌疑)——若是走 L2 微调(候选 STONE 灰石系)。
- 滚动条槽 BG_OVERLAY α0.35 叠 BG_ROOT 上是否可见——若否走 L2 微调(候选提不透明度或 SLOT_BACKDROP #3E362C)。