diff --git a/pkg/tui/model.go b/pkg/tui/model.go index 18a03a9..0ec80a6 100644 --- a/pkg/tui/model.go +++ b/pkg/tui/model.go @@ -137,9 +137,9 @@ type Model struct { splashCursor bool // toggles for blinking cursor animation // Confirmation screen — snapshot populated on checkout, cleared when leaving confirm page - ConfirmTotal int // server-confirmed order total in cents + ConfirmTotal int // server-confirmed order total in cents ConfirmItems []models.CartItem // cart items at time of purchase - ConfirmShipping *models.Address // shipping address at time of purchase + ConfirmShipping *models.Address // shipping address at time of purchase } @@ -632,7 +632,7 @@ func newModelWithRenderer(username string, renderer *lipgloss.Renderer) Model { Username: username, currentPage: splashPage, renderer: renderer, - theme: theme.BasicTheme(renderer), + theme: theme.Catppuccin(renderer), Coffees: []models.Coffee{ { Name: "Espresso", diff --git a/pkg/tui/theme/theme.go b/pkg/tui/theme/theme.go index b7272a1..d1a1539 100644 --- a/pkg/tui/theme/theme.go +++ b/pkg/tui/theme/theme.go @@ -45,6 +45,26 @@ func BasicTheme(renderer *lipgloss.Renderer) Theme { return t } +// this should resemble something like catppuccin +func Catppuccin(renderer *lipgloss.Renderer) Theme { + t := Theme{renderer: renderer} + + t.background = lipgloss.AdaptiveColor{Dark: "#1e1e2e", Light: "#eff1f5"} + t.border = lipgloss.AdaptiveColor{Dark: "#45475A", Light: "#BCC0CC"} + t.body = lipgloss.Color("#AAAAAA") + t.dim = lipgloss.Color("#6C7086") + t.accent = lipgloss.Color("#CBA6F7") + t.highlight = lipgloss.Color("#CBA6F7") + t.brand = lipgloss.Color("#CBA6F7") + t.label = lipgloss.Color("#A6ADC8") + t.success = lipgloss.Color("#A6E3A1") + t.error = lipgloss.Color("#F38BA8") + + t.base = renderer.NewStyle().Foreground(t.body) + t.form = HuhTheme(t) + return t +} + // Color accessors — use in .Foreground() / .Background() calls. func (t Theme) Background() lipgloss.TerminalColor { return t.background } func (t Theme) Border() lipgloss.TerminalColor { return t.border }