Differentiate terminal tab states with an adaptive brightness ladder#327
Closed
onevcat wants to merge 1 commit into
Closed
Differentiate terminal tab states with an adaptive brightness ladder#327onevcat wants to merge 1 commit into
onevcat wants to merge 1 commit into
Conversation
The selected tab was hard to tell apart from inactive tabs and the bar background, especially in dark mode: controlBackgroundColor is actually darker than windowBackgroundColor there, so the selection sank into the bar. In dark mode, layer a labelColor-based brightness ladder over the bar (bar < inactive < hovered < active) so all three read distinctly regardless of surface background opacity. In light mode, keep the original native look (a white tab floating on the gray bar), since the same tint would darken the tab unnaturally. Colors resolve via a dynamic NSColor, so call sites are unchanged.
onevcat
added a commit
that referenced
this pull request
May 23, 2026
PR #331 reshaped the terminal tab bar (glass capsule tabs, removed bar background and dividers, changed corner & spacing metrics), which was not the preferred look. Restore the tab bar structure, layout, and metrics to their pre-#331 state, and convey tab selection via the appearance-aware brightness ladder from #327 (TerminalTabBarColors): a labelColor-based bar < inactive < hovered < active ladder in dark mode, with the original native look preserved in light mode.
Owner
Author
|
Covered by #332 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The selected terminal tab was hard to distinguish from inactive tabs and the bar background — particularly in dark mode, where
controlBackgroundColor(used for the selected tab) is actually darker thanwindowBackgroundColor(the bar), so the selection sank into the bar. This got worse when the surface background was opaque, because the selection no longer had any wallpaper/terminal contrast to ride on.Change
Convey selection with a brightness ladder layered over the bar, made appearance-aware via a dynamic
NSColor(so call sites stay unchanged):labelColor @ 0.14controlBackgroundColor(white tab on gray bar)labelColor @ 0.08controlBackgroundColor @ 0.5labelColor @ 0.035.clearwindowBackgroundColorwindowBackgroundColorlabelColor-based ladder keepsbar < inactive < hovered < activedistinct regardless of background opacity. (labelColoris opaque in dark, sowithAlphaComponent(0.14)matches the previousColor.primary.opacity(0.14)exactly.)Only
TerminalTabBarColorschanged; tab bar structure, layout, and all interactions are untouched.Testing
make build-app✅make check✅Closes #311