theme

package
v1.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ThemeDark  = "dark"
	ThemeLight = "light"
)

Theme name constants. Two palettes are shipped — keep this list in sync with the cycle in app.go (cycleTheme) and the catalog in PaletteFor.

View Source
const (
	Space0 = 0
	Space1 = 1
	Space2 = 2
	Space3 = 3
	Space4 = 4
	Space6 = 6
	Space8 = 8
)

Spacing tokens (in terminal cells / chars).

Variables

View Source
var (
	BorderNone    = lipgloss.HiddenBorder()
	BorderHair    = lipgloss.NormalBorder()
	BorderThin    = lipgloss.ThickBorder() // use sparingly
	BorderRounded = lipgloss.RoundedBorder()
	BorderDouble  = lipgloss.DoubleBorder()
)

Border styles.

View Source
var LightPalette = paletteSet{

	Base:    lipgloss.Color("#fdf6e3"),
	Surface: lipgloss.Color("#eee8d5"),
	Subtle:  lipgloss.Color("#d8c890"),
	Overlay: lipgloss.Color("#93a1a1"),

	Text:  lipgloss.Color("#073642"),
	Muted: lipgloss.Color("#586e75"),
	Faint: lipgloss.Color("#93a1a1"),

	Primary: lipgloss.Color("#b58900"),
	Accent:  lipgloss.Color("#cb4b16"),
	Accent2: lipgloss.Color("#d33682"),

	Success: lipgloss.Color("#859900"),
	Warning: lipgloss.Color("#cb4b16"),
	Danger:  lipgloss.Color("#dc322f"),
	Info:    lipgloss.Color("#268bd2"),

	Critical: lipgloss.Color("#dc322f"),
	High:     lipgloss.Color("#cb4b16"),
	Medium:   lipgloss.Color("#b58900"),
	Low:      lipgloss.Color("#586e75"),
	InfoSev:  lipgloss.Color("#268bd2"),
}

LightPalette — warm light theme based on Solarized Light. Picked for daytime / projector use; contrast checked at WCAG AA for body text.

View Source
var Palette = paletteSet{

	Base:    lipgloss.Color("#1e1e2e"),
	Surface: lipgloss.Color("#313244"),
	Subtle:  lipgloss.Color("#45475a"),
	Overlay: lipgloss.Color("#585b70"),

	Text:  lipgloss.Color("#cdd6f4"),
	Muted: lipgloss.Color("#a6adc8"),
	Faint: lipgloss.Color("#6c7086"),

	Primary: lipgloss.Color("#cba6f7"),
	Accent:  lipgloss.Color("#94e2d5"),
	Accent2: lipgloss.Color("#b4befe"),

	Success: lipgloss.Color("#a6e3a1"),
	Warning: lipgloss.Color("#f9e2af"),
	Danger:  lipgloss.Color("#f38ba8"),
	Info:    lipgloss.Color("#89b4fa"),

	Critical: lipgloss.Color("#ff5555"),
	High:     lipgloss.Color("#fab387"),
	Medium:   lipgloss.Color("#f9e2af"),
	Low:      lipgloss.Color("#a6adc8"),
	InfoSev:  lipgloss.Color("#74c7ec"),
}

Palette — the dark (default) palette. Single source of truth for all colors when no theme override is active. Catppuccin Mocha tuned for dark terminals.

Functions

func PaletteFor

func PaletteFor(name string) *paletteSet

PaletteFor returns the palette matching the named theme. Unknown names fall back to the dark palette so a stale config never wedges the TUI.

Types

type Styles

type Styles struct {
	// App-level
	App        lipgloss.Style
	Header     lipgloss.Style
	Footer     lipgloss.Style
	Divider    lipgloss.Style
	Title      lipgloss.Style
	Subtitle   lipgloss.Style
	Breadcrumb lipgloss.Style

	// Containers
	Panel       lipgloss.Style
	PanelActive lipgloss.Style
	Card        lipgloss.Style
	Box         lipgloss.Style

	// Text
	Text      lipgloss.Style
	Muted     lipgloss.Style
	Faint     lipgloss.Style
	Bold      lipgloss.Style
	Italic    lipgloss.Style
	Code      lipgloss.Style
	CodeBlock lipgloss.Style
	Link      lipgloss.Style
	Help      lipgloss.Style

	// Status
	Success lipgloss.Style
	Warning lipgloss.Style
	Danger  lipgloss.Style
	Info    lipgloss.Style
	Running lipgloss.Style
	Skipped lipgloss.Style

	// Severity (security)
	Critical lipgloss.Style
	High     lipgloss.Style
	Medium   lipgloss.Style
	Low      lipgloss.Style
	SevInfo  lipgloss.Style

	// Menu
	MenuItem         lipgloss.Style
	MenuItemActive   lipgloss.Style
	MenuItemSelected lipgloss.Style
	MenuIcon         lipgloss.Style
	MenuShortcut     lipgloss.Style
	MenuDesc         lipgloss.Style

	// Table
	TableHeader lipgloss.Style
	TableCell   lipgloss.Style
	TableRow    lipgloss.Style

	// Progress
	ProgressBar   lipgloss.Style
	ProgressTrack lipgloss.Style
	Spinner       lipgloss.Style

	// Search
	SearchInput  lipgloss.Style
	SearchPrompt lipgloss.Style
	SearchMatch  lipgloss.Style

	// Modal
	Modal         lipgloss.Style
	ModalBackdrop lipgloss.Style

	// Button
	Button       lipgloss.Style
	ButtonActive lipgloss.Style
	ButtonDanger lipgloss.Style

	// Tab
	Tab         lipgloss.Style
	TabActive   lipgloss.Style
	TabInactive lipgloss.Style

	// Toast
	Toast lipgloss.Style
}

Styles bundles every reusable style. Components compose these via .Copy() rather than defining new ad-hoc styles, to keep the visual language tight.

func Default

func Default() *Styles

Default returns the canonical SIN-Code dark theme.

func Light

func Light() *Styles

Light returns the warm-light theme. Same shape as Default, swapped palette.

func New

func New(name string) *Styles

New returns the styles for the named theme. Unknown names fall back to dark so a corrupt config never makes the TUI unrenderable.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL