// Package theme resolves the named colour scheme the TUI renders with. A theme // is a flat set of semantic tokens — roles like "muted" or "firing", never hues // — so a new scheme is a table of colours rather than a change to the views. package theme import "github.com/charmbracelet/lipgloss" // Theme is the palette the UI draws from. Every token is a foreground except // OnPrimary, which is the text colour for the two places that invert: the // active tab and the selected table row. // // Colours are truecolor hex; lipgloss downsamples them for 256- and 16-colour // terminals and drops them entirely under NO_COLOR, so themes do not carry // fallbacks of their own. type Theme struct { Name string Primary lipgloss.Color // header, tab highlight, selection OnPrimary lipgloss.Color // text drawn on a Primary background Text lipgloss.Color // default emphasis foreground Muted lipgloss.Color // secondary text, dividers, borders Accent lipgloss.Color // status line, acknowledged, by-day chart Firing lipgloss.Color Resolved lipgloss.Color Error lipgloss.Color SevCritical lipgloss.Color SevError lipgloss.Color SevWarning lipgloss.Color SevInfo lipgloss.Color // Identity tells things like teams apart from one another — not a status // or a severity, so none of the six carries a meaning of its own. Identity [6]lipgloss.Color }