// Styles derived from the active Omarchy theme (or the ANSI fallback). Kept in // one place so the login, browse and playing views share a consistent look. package tui import ( "github.com/charmbracelet/lipgloss" "tsplay/internal/theme" ) type styles struct { title lipgloss.Style accent lipgloss.Style muted lipgloss.Style good lipgloss.Style bad lipgloss.Style help lipgloss.Style barFill lipgloss.Style barEmpty lipgloss.Style box lipgloss.Style } func newStyles(t theme.Theme) styles { return styles{ title: lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(t.Accent)), accent: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Accent)), muted: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Muted)), good: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Good)), bad: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Bad)), help: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Muted)), barFill: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Accent)), barEmpty: lipgloss.NewStyle().Foreground(lipgloss.Color(t.Muted)), box: lipgloss.NewStyle(). Border(lipgloss.RoundedBorder()). BorderForeground(lipgloss.Color(t.Accent)). Padding(1, 2), } }