Compare commits

..

1 Commits

Author SHA1 Message Date
lerko c1955a4c80 feat(tui): overhaul theme palette for legibility
CI / test (pull_request) Successful in 1m45s
CI / lint (pull_request) Successful in 1m11s
CI / vulncheck (pull_request) Successful in 50s
Replace Nord and Gruvbox with Rosé Pine and Dracula. Add Kanagawa
and Everforest. Fix legibility issues across remaining themes:

- Tokyo Night: separate Muted from Fg, distinct SelectedBg
- Catppuccin Mocha: bolder semantic colors, tighter zebra, distinct SelectedBg
- Order themes by warm→cool color temperature for smooth cycling
2026-07-21 22:21:12 -04:00
+91 -47
View File
@@ -46,10 +46,12 @@ type Theme struct {
var themes = []Theme{
themeFlexokiDark,
themeEverforest,
themeKanagawa,
themeTokyoNight,
themeCatppuccinMocha,
themeNord,
themeGruvbox,
themeRosePine,
themeDracula,
}
var themeFlexokiDark = Theme{
@@ -80,7 +82,7 @@ var themeTokyoNight = Theme{
Panel: cc("#292e42", ""),
Border: cc("#3b4261", "8"),
Fg: cc("#c0caf5", "15"),
Muted: cc("#a9b1d6", "7"),
Muted: cc("#7982a9", "7"),
Subtle: cc("#565f89", "7"),
Success: cc("#9ece6a", "10"),
Warning: cc("#e0af68", "11"),
@@ -91,28 +93,28 @@ var themeTokyoNight = Theme{
Purple: cc("#bb9af7", "13"),
ZebraBg: cc("#1c1d28", ""),
SelectedFg: cc("#c0caf5", "15"),
SelectedBg: cc("#292e42", "4"),
SelectedBg: cc("#363c53", "4"),
}
var themeGruvbox = Theme{
Name: "Gruvbox",
Bg: cc("#282828", ""),
Surface: cc("#3c3836", ""),
Panel: cc("#504945", ""),
Border: cc("#665c54", "8"),
Fg: cc("#ebdbb2", "15"),
Muted: cc("#bdae93", "7"),
Subtle: cc("#7c6f64", "7"),
Success: cc("#b8bb26", "10"),
Warning: cc("#fabd2f", "11"),
Stale: cc("#fe8019", "3"),
Danger: cc("#fb4934", "9"),
Info: cc("#83a598", "12"),
Accent: cc("#8ec07c", "14"),
Purple: cc("#d3869b", "13"),
ZebraBg: cc("#2a2a2a", ""),
SelectedFg: cc("#fbf1c7", "15"),
SelectedBg: cc("#504945", "4"),
var themeDracula = Theme{
Name: "Dracula",
Bg: cc("#282a36", ""),
Surface: cc("#343746", ""),
Panel: cc("#44475a", ""),
Border: cc("#6272a4", "8"),
Fg: cc("#f8f8f2", "15"),
Muted: cc("#a9b0cb", "7"),
Subtle: cc("#6272a4", "7"),
Success: cc("#50fa7b", "10"),
Warning: cc("#f1fa8c", "11"),
Stale: cc("#ffb86c", "3"),
Danger: cc("#ff5555", "9"),
Info: cc("#8be9fd", "12"),
Accent: cc("#bd93f9", "14"),
Purple: cc("#ff79c6", "13"),
ZebraBg: cc("#2c2e3a", ""),
SelectedFg: cc("#f8f8f2", "15"),
SelectedBg: cc("#52556b", "4"),
}
var themeCatppuccinMocha = Theme{
@@ -124,37 +126,79 @@ var themeCatppuccinMocha = Theme{
Fg: cc("#cdd6f4", "15"),
Muted: cc("#a6adc8", "7"),
Subtle: cc("#6c7086", "7"),
Success: cc("#a6e3a1", "10"),
Warning: cc("#f9e2af", "11"),
Success: cc("#7dc47a", "10"),
Warning: cc("#f0c644", "11"),
Stale: cc("#fab387", "3"),
Danger: cc("#f38ba8", "9"),
Danger: cc("#e6546e", "9"),
Info: cc("#89b4fa", "12"),
Accent: cc("#94e2d5", "14"),
Purple: cc("#cba6f7", "13"),
ZebraBg: cc("#232334", ""),
ZebraBg: cc("#212130", ""),
SelectedFg: cc("#cdd6f4", "15"),
SelectedBg: cc("#45475a", "4"),
SelectedBg: cc("#585b70", "4"),
}
var themeNord = Theme{
Name: "Nord",
Bg: cc("#2e3440", ""),
Surface: cc("#3b4252", ""),
Panel: cc("#434c5e", ""),
Border: cc("#4c566a", "8"),
Fg: cc("#d8dee9", "15"),
Muted: cc("#d8dee9", "7"),
Subtle: cc("#4c566a", "7"),
Success: cc("#a3be8c", "10"),
Warning: cc("#ebcb8b", "11"),
Stale: cc("#d08770", "3"),
Danger: cc("#bf616a", "9"),
Info: cc("#81a1c1", "12"),
Accent: cc("#88c0d0", "14"),
Purple: cc("#b48ead", "13"),
ZebraBg: cc("#323845", ""),
SelectedFg: cc("#eceff4", "15"),
SelectedBg: cc("#434c5e", "4"),
var themeRosePine = Theme{
Name: "Rosé Pine",
Bg: cc("#191724", ""),
Surface: cc("#1f1d2e", ""),
Panel: cc("#26233a", ""),
Border: cc("#524f67", "8"),
Fg: cc("#e0def4", "15"),
Muted: cc("#908caa", "7"),
Subtle: cc("#6e6a86", "7"),
Success: cc("#9ccfd8", "10"),
Warning: cc("#f6c177", "11"),
Stale: cc("#ebbcba", "3"),
Danger: cc("#eb6f92", "9"),
Info: cc("#3e8fb0", "12"),
Accent: cc("#c4a7e7", "14"),
Purple: cc("#ebbcba", "13"),
ZebraBg: cc("#1c1a28", ""),
SelectedFg: cc("#e0def4", "15"),
SelectedBg: cc("#403d52", "4"),
}
var themeKanagawa = Theme{
Name: "Kanagawa",
Bg: cc("#1F1F28", ""),
Surface: cc("#2A2A37", ""),
Panel: cc("#363646", ""),
Border: cc("#54546D", "8"),
Fg: cc("#DCD7BA", "15"),
Muted: cc("#C8C093", "7"),
Subtle: cc("#727169", "7"),
Success: cc("#98BB6C", "10"),
Warning: cc("#E6C384", "11"),
Stale: cc("#FFA066", "3"),
Danger: cc("#E46876", "9"),
Info: cc("#7E9CD8", "12"),
Accent: cc("#7FB4CA", "14"),
Purple: cc("#D27E99", "13"),
ZebraBg: cc("#22222c", ""),
SelectedFg: cc("#DCD7BA", "15"),
SelectedBg: cc("#2D4F67", "4"),
}
var themeEverforest = Theme{
Name: "Everforest",
Bg: cc("#2F383E", ""),
Surface: cc("#343F44", ""),
Panel: cc("#3D484D", ""),
Border: cc("#56635F", "8"),
Fg: cc("#D3C6AA", "15"),
Muted: cc("#9DA9A0", "7"),
Subtle: cc("#7A8478", "7"),
Success: cc("#A7C080", "10"),
Warning: cc("#DBBC7F", "11"),
Stale: cc("#E69875", "3"),
Danger: cc("#E67E80", "9"),
Info: cc("#7FBBB3", "12"),
Accent: cc("#83C092", "14"),
Purple: cc("#D699B6", "13"),
ZebraBg: cc("#30393F", ""),
SelectedFg: cc("#D3C6AA", "15"),
SelectedBg: cc("#475258", "4"),
}
func (t Theme) HuhTheme() *huh.Theme {