Files
XCEngine/docs/api/XCEngine/Editor/UI/BaseTheme/BaseTheme.md

50 lines
1.4 KiB
Markdown
Raw Normal View History

2026-03-27 14:40:29 +08:00
# BaseTheme
**命名空间**: `XCEngine::Editor::UI`
**类型**: `header-helper`
**源文件**: `editor/src/UI/BaseTheme.h`
**描述**: 定义编辑器默认 Dear ImGui 主题的颜色与尺寸指标。
## 概述
`BaseTheme.h` 把编辑器默认外观拆成三层函数:
- `ApplyBaseThemeColors`
- `ApplyBaseThemeMetrics`
- `ApplyBaseTheme`
这让主题既能整体应用,也能在需要时分别覆盖颜色或间距。
## 当前实现
- 主题整体是偏中性、低饱和的灰色编辑器风格
- Docking 标签、按钮、工具栏、表格、滚动条等颜色都在这里集中定义
- 圆角、边框、间距和 padding 也都由这里设置
- [`ImGuiSession`](../ImGuiSession/ImGuiSession.md) 和 `Theme.cpp` 会使用这组 helper
## 设计说明
商业编辑器通常不会把颜色和 spacing 散落在所有面板里,而是会先建立一套基础主题。
这样做的好处是:
- 新面板默认继承统一视觉语言
- 后续品牌化或皮肤切换时有一个集中入口
- 设计 token 和实际 ImGui style 之间的边界更清楚
当前实现已经具备这个方向,虽然还不是完整可换肤系统。
## 当前限制
- 主题参数主要是硬编码值
- 没有亮色主题或用户配置
- 主题切换和局部覆盖机制尚未成体系
## 相关文档
- [UI](../UI.md)
- [StyleTokens](../StyleTokens/StyleTokens.md)
- [ImGuiSession](../ImGuiSession/ImGuiSession.md)