# Themes — index

The single source of the dark UI theme. See [`schema.md`](../schema.md) for the
memory-map conventions.

| File | Purpose |
|------|---------|
| `Controls.xaml` | All custom control styles/templates: `YtButton`, `YtButtonSecondary`, `IconButton`, `YtTextBox`, `YtComboBox`, scrollbar/slider/tooltip/context-menu/menu-item/separator/list-item (implicit where app-wide), `YtListBoxItem`, `YtLabel`, `SectionHeader` |

How it's wired:
- Merged once in [`App.xaml`](../App.xaml) — app-wide. New windows get the theme
  automatically; **do not re-merge per-window**.
- Palette: window `#1a1a2e`, fields `#0f3460`, borders `#2a3a5e`, popups
  `#16213e`, accent `#e94560`, hover `#26ffffff`, text `#e0e0e0`.

Gotchas learned the hard way:
- `MenuItemRole` has **no `Separator` value** — separators are standalone
  `Separator` controls with their own implicit style.
- A custom `ComboBox` template must put the `ContentPresenter` (`SelectionBoxItem`)
  **inside the ComboBox template, not the ToggleButton template** — the latter
  resolves against the wrong TemplatedParent and renders nothing.

Related: [`Helpers/index.md`](../Helpers/index.md) (custom controls the theme
styles), the XAML files at repo root that consume these styles.
