Skip to content

Commit ea5699c

Browse files
wesmclaude
andauthored
TUI: inherit terminal background colors (#258)
## Summary - Remove forced `#ffffff`/`#000000` backgrounds from TUI styles so the interface respects the user's terminal color scheme - Cursor row, title bar, alt rows, and search highlight retain explicit backgrounds for contrast Addresses user feedback that the TUI clashes with non-default terminal themes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 9f3b7eb commit ea5699c

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

internal/tui/view.go

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import (
99
"github.com/wesm/msgvault/internal/textutil"
1010
)
1111

12-
// Monochrome theme - adaptive for light and dark terminals
12+
// Monochrome theme - inherits terminal background where possible.
13+
// Only cursor, title bar, and alt rows use explicit backgrounds.
1314
var (
14-
// Background colors - adaptive for light/dark terminals
15-
bgBase = lipgloss.AdaptiveColor{Light: "#ffffff", Dark: "#000000"}
15+
// Explicit backgrounds only for elements that need contrast
1616
bgAlt = lipgloss.AdaptiveColor{Light: "#f0f0f0", Dark: "#181818"}
1717
bgCursor = lipgloss.AdaptiveColor{Light: "#e0e0e0", Dark: "#282828"}
1818

@@ -25,68 +25,58 @@ var (
2525

2626
statsStyle = lipgloss.NewStyle().
2727
Foreground(lipgloss.AdaptiveColor{Light: "#555555", Dark: "#999999"}).
28-
Background(bgBase).
2928
Padding(0, 1)
3029

3130
// Spinner style - NOT faint so it's visible
3231
spinnerStyle = lipgloss.NewStyle().
33-
Bold(true).
34-
Background(bgBase)
32+
Bold(true)
3533

3634
tableHeaderStyle = lipgloss.NewStyle().
37-
Bold(true).
38-
Background(bgBase)
35+
Bold(true)
3936

4037
// Separator line style for under headers
4138
separatorStyle = lipgloss.NewStyle().
42-
Faint(true).
43-
Background(bgBase)
39+
Faint(true)
4440

45-
// Cursor row: subtle lighter background
41+
// Cursor row: subtle background for visibility
4642
cursorRowStyle = lipgloss.NewStyle().
4743
Background(bgCursor)
4844

49-
// Selected (checked) rows: bold
45+
// Selected (checked) rows: bold, inherits terminal background
5046
selectedRowStyle = lipgloss.NewStyle().
51-
Bold(true).
52-
Background(bgBase)
47+
Bold(true)
5348

54-
// Normal rows need background to clear old content
55-
normalRowStyle = lipgloss.NewStyle().
56-
Background(bgBase)
49+
// Normal rows inherit terminal background
50+
normalRowStyle = lipgloss.NewStyle()
5751

58-
// Alternating rows: very subtle gray background
52+
// Alternating rows: very subtle shift from terminal default
5953
altRowStyle = lipgloss.NewStyle().
6054
Background(bgAlt)
6155

6256
footerStyle = lipgloss.NewStyle().
6357
Foreground(lipgloss.AdaptiveColor{Light: "#555555", Dark: "#999999"}).
64-
Background(bgBase).
6558
Padding(0, 1)
6659

6760
errorStyle = lipgloss.NewStyle().
68-
Bold(true).
69-
Background(bgBase)
61+
Bold(true)
7062

7163
loadingStyle = lipgloss.NewStyle().
72-
Italic(true).
73-
Background(bgBase)
64+
Italic(true)
7465

7566
selectedIndicatorStyle = lipgloss.NewStyle().
7667
Bold(true)
7768

7869
modalStyle = lipgloss.NewStyle().
7970
Border(lipgloss.RoundedBorder()).
8071
Padding(1, 2).
81-
Background(bgBase)
72+
Background(lipgloss.AdaptiveColor{Light: "#ffffff", Dark: "#000000"})
8273

8374
modalTitleStyle = lipgloss.NewStyle().
8475
Bold(true)
8576

8677
flashStyle = lipgloss.NewStyle().
8778
Italic(true).
88-
Foreground(lipgloss.AdaptiveColor{Light: "#996600", Dark: "#ffcc00"}). // Amber for visibility
89-
Background(bgBase)
79+
Foreground(lipgloss.AdaptiveColor{Light: "#996600", Dark: "#ffcc00"}) // Amber for visibility
9080

9181
highlightStyle = lipgloss.NewStyle().
9282
Foreground(lipgloss.AdaptiveColor{Light: "#000000", Dark: "#000000"}).

0 commit comments

Comments
 (0)