# 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)。 ## 专项观察点(归用户目检) 1. 滑轨柄 CANDLE 色是否比「关闭」按钮抢眼(违反焦点预算嫌疑)——若是走 L2 微调(候选 STONE 灰石系)。 2. 滚动条槽 BG_OVERLAY α0.35 叠 BG_ROOT 上是否可见——若否走 L2 微调(候选提不透明度或 SLOT_BACKDROP #3E362C)。