summaryrefslogtreecommitdiff
path: root/internal/tui/styles.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/tui/styles.go')
-rw-r--r--internal/tui/styles.go69
1 files changed, 55 insertions, 14 deletions
diff --git a/internal/tui/styles.go b/internal/tui/styles.go
index 247411c..c131c1f 100644
--- a/internal/tui/styles.go
+++ b/internal/tui/styles.go
@@ -4,38 +4,79 @@ import "github.com/charmbracelet/lipgloss"
// Styles groups visual styles for the root TUI scaffold.
type Styles struct {
- App lipgloss.Style
- Header lipgloss.Style
- Tab lipgloss.Style
- ActiveTab lipgloss.Style
- Body lipgloss.Style
- Help lipgloss.Style
- Hint lipgloss.Style
+ App lipgloss.Style
+ Header lipgloss.Style
+ Tab lipgloss.Style
+ ActiveTab lipgloss.Style
+ Body lipgloss.Style
+ Help lipgloss.Style
+ Hint lipgloss.Style
+ Status lipgloss.Style
+ TableHeader lipgloss.Style
+ TableCell lipgloss.Style
+ TableSelected lipgloss.Style
+ SearchMatch lipgloss.Style
+ Error lipgloss.Style
+ Warning lipgloss.Style
}
// DefaultStyles returns the default style set.
func DefaultStyles() Styles {
+ return StylesFromTheme(DefaultTheme())
+}
+
+// StylesFromTheme builds styles from a theme palette.
+func StylesFromTheme(theme Theme) Styles {
return Styles{
App: lipgloss.NewStyle().
- Padding(1, 2),
+ Padding(0, 1),
Header: lipgloss.NewStyle().
- Foreground(lipgloss.Color("#8A8A8A")).
+ Foreground(lipgloss.Color(theme.HeaderFG)).
+ Background(lipgloss.Color(theme.StatusBG)).
+ Padding(0, 1).
Bold(true),
Tab: lipgloss.NewStyle().
Padding(0, 1).
- Foreground(lipgloss.Color("#B5B5B5")),
+ Foreground(lipgloss.Color(theme.StatusFG)),
ActiveTab: lipgloss.NewStyle().
Padding(0, 1).
- Foreground(lipgloss.Color("#101010")).
- Background(lipgloss.Color("#8BD3DD")).
+ Foreground(lipgloss.Color(theme.SelectedFG)).
+ Background(lipgloss.Color(theme.SelectedBG)).
Bold(true),
Body: lipgloss.NewStyle().
PaddingTop(1),
Help: lipgloss.NewStyle().
PaddingTop(1).
- Foreground(lipgloss.Color("#A0D568")),
+ Foreground(lipgloss.Color(theme.HeaderFG)),
Hint: lipgloss.NewStyle().
PaddingTop(1).
- Foreground(lipgloss.Color("#777777")),
+ Foreground(lipgloss.Color("245")),
+ Status: lipgloss.NewStyle().
+ Foreground(lipgloss.Color(theme.StatusFG)).
+ Background(lipgloss.Color(theme.StatusBG)).
+ Padding(0, 1),
+ TableHeader: lipgloss.NewStyle().
+ Bold(true).
+ Foreground(lipgloss.Color(theme.HeaderFG)).
+ Background(lipgloss.Color(theme.SelectedBG)).
+ Padding(0, 1),
+ TableCell: lipgloss.NewStyle().
+ Foreground(lipgloss.Color(theme.RowFG)).
+ Background(lipgloss.Color(theme.RowBG)).
+ Padding(0, 1),
+ TableSelected: lipgloss.NewStyle().
+ Bold(true).
+ Foreground(lipgloss.Color(theme.SelectedFG)).
+ Background(lipgloss.Color(theme.SelectedBG)).
+ Padding(0, 1),
+ SearchMatch: lipgloss.NewStyle().
+ Foreground(lipgloss.Color(theme.SearchFG)).
+ Background(lipgloss.Color(theme.SearchBG)),
+ Error: lipgloss.NewStyle().
+ Foreground(lipgloss.Color("196")).
+ Bold(true),
+ Warning: lipgloss.NewStyle().
+ Foreground(lipgloss.Color("214")).
+ Bold(true),
}
}