- Primary background:
RGB(31,25,66)(#1F1942) used forWindowBg,ChildBg,FrameBg, tabs and borders (Menu.cpp:78–90). - Accent A (pink):
RGB(235,5,90)(#EB055A) used for check marks, slider grab, header text layer (Menu.cpp:83,123; Feature accents). - Accent B (violet):
RGB(70,50,240)(#4632F0) used for active slider, header text layer, minimize button styling (Menu.cpp:85,124,156–163). - Neutral text:
RGB(255,255,255)used for standard text (Header title base layer) (Menu.cpp:111,125). - Backdrop base:
IM_COL32(51,51,51,60)and hover:IM_COL32(51,51,51,90)for subtle control rows (Menu.cpp:17; UIUtils.hpp:28–39,44–57). - Separator: thin rule in content area uses
Hex(51,51,51,1.0f)(Menu.cpp:185–186).
- Primary fonts:
JosefinSans-Regular.ttfat 16 andJosefinSans-Bold.ttfat 18 (Menu.cpp:100–105). - Fallback: ImGui default font if files not present (Menu.cpp:102,104).
- Usage: Bold for section headers and the animated program title; Regular for body labels and controls.
- Header title: Retro dual-layer animation with phase-cycled 2D offsets on accent layers A/B under a white base. Phases swap every ~100ms (Menu.cpp:114–126).
- Sidebar nav underline: Smooth ease-out growth on hover/selection, driven by
easeOutCubicand per-itemunderlinestate (Menu.cpp:29–31,53–56). - Sidebar icon dot: Color morph from grey → red with clamped animated factor; transitions at
dt*4for responsiveness (Menu.cpp:35–39,40–48). - Sidebar expand/collapse: Animated child height using ease-out and
expandstate (dt*6) (Menu.cpp:205–213,206–208). - Feature checkbox color: Animated text color red ↔ green reflecting activation state (UIUtils.hpp:66–86).
- Top bar controls:
_(minimize) uses Accent B styling;X(close) uses Accent A. The top controls region is transparent to reveal the header animation (Menu.cpp:150–173). - Draggable caption area: 60px within client area (
top_bar = 60) for frameless dragging; clicks on ImGui widgets are respected via mouse capture (GuiMain.cpp:138–159,146). - Hit-testing policy: When
ImGui::GetIO().WantCaptureMouseis true, non-client hit-test returnsHTCLIENTto allow ImGui to handle clicks; otherwise header area yieldsHTCAPTIONfor drag (GuiMain.cpp:148–155). - Input/Output fields: Thin separator line visually separates the two rows for clarity (Menu.cpp:183–186).
- Background:
#1F1942 - Accent A:
#EB055A - Accent B:
#4632F0 - Neutral text:
#FFFFFF - Backdrop base:
rgba(51,51,51,0.24) - Backdrop hover:
rgba(51,51,51,0.35) - Rounding: window
4.0, frame3.0, grab2.0(Menu.cpp:74–76) - Spacing: window padding
0,0; item spacing12,8; frame padding10,6(Menu.cpp:67–70)
- Backdrop helpers: Use
DrawBackdropForNextItemfor compact control backdrops,DrawBackdropRowFullfor full-width rows (UIUtils.hpp:28–39,44–57). - Feature labels block: Uses dark backdrop child with no scrollbar to keep rows visually grouped (Menu.cpp:269–281 and similar blocks in other sections).
- Consistency: All new UI elements should prefer the primary background and accents A/B, and retain rounding/spacing values to match the existing visual language.