You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Every dock node draws the focused-window accent overline on its selected tab: TabDimmedSelectedOverline == TabSelectedOverline (opaque Primary High) in all 38 themes #164
ImGuiPaletteMapper maps both overline slots to the same opaque colour (ThemeProvider.ImGui/ImGuiPaletteMapper.cs:94 and :98):
{ImGuiCol.TabSelectedOverline,new(SemanticMeaning.Primary,Priority.High)},// Tabs in an unfocused window drop to neutral so the focused window's tabs stand out....{ImGuiCol.TabDimmedSelectedOverline,new(SemanticMeaning.Primary,Priority.High)},
Neither slot has an entry in alphaOverrides (:124-131), so both come out fully opaque. ImGui draws TabSelectedOverline on the selected tab of the focused window or dock node, and TabDimmedSelectedOverline on the selected tab of every unfocused one. With the two slots identical, every docked window's selected tab carries the same bright accent line. The overline's whole purpose is to show which window has focus, and that signal is lost.
That contradicts the comment directly above TabDimmed, which says unfocused tabs "drop to neutral so the focused window's tabs stand out". It also departs from stock ImGui. In Hexa.NET.ImGui 2.2.9, ImGui.StyleColorsDark() gives:
Slot
Stock dark
ThemeProvider (any theme)
TabSelectedOverline
(0.26, 0.59, 0.98, 1.00)
Primary High, α 1
TabDimmedSelectedOverline
(0.50, 0.50, 0.50, 0.00), invisible
Primary High, α 1, identical
Mapping all 38 built-in themes gives TabDimmedSelectedOverline == TabSelectedOverline in every one of them. Checked at 934581c.
Why it matters
In a docked layout with several nodes, such as an editor beside a properties panel and a log, every node's selected tab gets the accent overline. Users can't see which panel keyboard input will go to. Since #163 the tab fill still differs slightly, but the overline is the cue ImGui puts there for exactly this purpose.
Suggested fix
Match stock behaviour by hiding the dimmed overline: add { ImGuiCol.TabDimmedSelectedOverline, 0f } to alphaOverrides. Alternatively, map it to a neutral (for example Neutral, MediumHigh) to fit the comment's "drop to neutral" intent.
Acceptance criteria
In every built-in theme, the mapped TabDimmedSelectedOverline differs from TabSelectedOverline: either it is transparent or it is no longer the Primary accent.
Suggested fix: map TabDimmedSelectedOverline to a neutral colour, or add an alpha override of 0 so it matches stock ImGui. Add a test that asserts the two overline slots differ in every built-in theme.
Activity
matt-edmondson commentedon Nov 4, 2026
Triage
ThemeProvider.ImGui/ImGuiPaletteMapper.cs(slot map :94/:98,alphaOverrides:124-131)TabDimmedSelectedOverlineto a neutral colour, or add an alpha override of 0 so it matches stock ImGui. Add a test that asserts the two overline slots differ in every built-in theme.Generated by Claude Code