theme

package
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: May 4, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package theme provides semantic design tokens and lipgloss styles for the dashboard TUI. Only this package and internal/cli may reference raw color values — all other dashboard packages consume styles from here.

Index

Constants

View Source
const (
	TokenBorderFocused   = "border-focused"
	TokenBorderUnfocused = "border-unfocused"
	TokenHeader          = "header"
	TokenTimelineNow     = "timeline-now"
	TokenTimelineRecent  = "timeline-recent"
	TokenTimelineEarlier = "timeline-earlier"
	TokenTimelineSync    = "timeline-sync"
	TokenTimelineSession = "timeline-session"
	TokenTimelineMurmur  = "timeline-murmur"
	TokenNavSelected     = "nav-selected"
	TokenNavSection      = "nav-section"
	TokenNavLeaf         = "nav-leaf"
	TokenStatusHealthy   = "status-healthy"
	TokenStatusWarning   = "status-warning"
	TokenStatusError     = "status-error"
	TokenInspectorLabel  = "inspector-label"
	TokenInspectorValue  = "inspector-value"
	TokenInspectorTitle  = "inspector-title"
)

Semantic token name constants document which visual role each style fills. They are used as human-readable labels (e.g., in future theme-config files) but are not referenced at runtime by the style definitions below.

Variables

View Source
var (
	PaneBorderFocused = lipgloss.NewStyle().
						Border(lipgloss.DoubleBorder()).
						BorderForeground(cli.ColorPrimary)

	PaneBorderUnfocused = lipgloss.NewStyle().
						Border(lipgloss.RoundedBorder()).
						BorderForeground(cli.ColorDim)
)

Pane chrome — focused pane uses a double border to stand out clearly.

View Source
var (
	HeaderStyle = lipgloss.NewStyle().
				Bold(true).
				Foreground(cli.ColorPrimary)

	HeaderDimStyle = lipgloss.NewStyle().
					Foreground(cli.ColorDim)
)

Header row styles.

View Source
var (
	NavSectionStyle = lipgloss.NewStyle().
					Bold(true).
					Foreground(cli.ColorSecondary)

	NavSelectedStyle = lipgloss.NewStyle().
						Bold(true).
						Foreground(lipgloss.Color("#1A1D1C")).
						Background(cli.ColorPrimary)

	NavItemStyle = lipgloss.NewStyle().
					Foreground(lipgloss.Color("#C8D0C8"))

	NavDimStyle = lipgloss.NewStyle().
				Foreground(cli.ColorDim)
)

Navigation tree styles.

View Source
var (
	TimelineNowLabel = lipgloss.NewStyle().
						Bold(true).
						Foreground(lipgloss.Color("#5fef8f"))

	TimelineRecentLabel = lipgloss.NewStyle().
						Bold(true).
						Foreground(cli.ColorPrimary)

	TimelineEarlierLabel = lipgloss.NewStyle().
							Foreground(cli.ColorDim)

	TimelineDivider = lipgloss.NewStyle().
					Foreground(cli.ColorSecondary)

	TimelineEntryActive = lipgloss.NewStyle().
						Foreground(lipgloss.Color("#C8D0C8"))

	TimelineEntryMuted = lipgloss.NewStyle().
						Foreground(cli.ColorDim)

	TimelineMurmurStyle = lipgloss.NewStyle().
						Foreground(cli.ColorSecondary)

	TimelineSelectedStyle = lipgloss.NewStyle().
							Bold(true).
							Foreground(lipgloss.Color("#1A1D1C")).
							Background(cli.ColorSecondary)

	TeamPulseHeaderStyle = lipgloss.NewStyle().
							Bold(true).
							Foreground(cli.ColorPrimary)

	TeamPulseMetaStyle = lipgloss.NewStyle().
						Foreground(lipgloss.Color("#C8D0C8"))

	MurmurHotStyle = lipgloss.NewStyle().
					Bold(true).
					Foreground(cli.ColorSecondary)

	MurmurWarmStyle = lipgloss.NewStyle().
					Foreground(cli.ColorInfo)

	MurmurCoolStyle = lipgloss.NewStyle().
					Foreground(cli.ColorDim)

	// Topic badge styles with background color "pill" look.
	TopicBadgeWIP = lipgloss.NewStyle().
					Background(lipgloss.Color("#2d4a1e")).
					Foreground(lipgloss.Color("#a8d08a")).
					Padding(0, 1)

	TopicBadgeBlocked = lipgloss.NewStyle().
						Background(lipgloss.Color("#4a2010")).
						Foreground(lipgloss.Color("#f09070")).
						Padding(0, 1)

	TopicBadgeDecision = lipgloss.NewStyle().
						Background(lipgloss.Color("#1a3050")).
						Foreground(lipgloss.Color("#7fc0f0")).
						Padding(0, 1)

	TopicBadgeReview = lipgloss.NewStyle().
						Background(lipgloss.Color("#302050")).
						Foreground(lipgloss.Color("#c090f0")).
						Padding(0, 1)

	TopicBadgeDefault = lipgloss.NewStyle().
						Background(lipgloss.Color("#2a2e2a")).
						Foreground(cli.ColorDim).
						Padding(0, 1)

	// SparklineActiveStyle is used for sparklines representing recent/live activity.
	SparklineActiveStyle = lipgloss.NewStyle().Foreground(cli.ColorSecondary)

	// SparklineDimStyle is used for sparklines with little or no activity.
	SparklineDimStyle = lipgloss.NewStyle().Foreground(cli.ColorDim)
)

Timeline pane styles.

View Source
var (
	InspectorTitleStyle = lipgloss.NewStyle().
						Bold(true).
						Foreground(cli.ColorSecondary)

	InspectorLabelStyle = lipgloss.NewStyle().
						Foreground(cli.ColorPrimary).
						Width(12)

	InspectorValueStyle = lipgloss.NewStyle().
						Foreground(lipgloss.Color("#C8D0C8"))

	InspectorDimStyle = lipgloss.NewStyle().
						Foreground(cli.ColorDim)

	InspectorHintStyle = lipgloss.NewStyle().
						Foreground(lipgloss.Color("#5a6066")).
						Italic(true)
)

Inspector pane styles.

View Source
var (
	StatusBarBase = lipgloss.NewStyle().
					Padding(0, 1)

	StatusHealthy = lipgloss.NewStyle().
					Bold(true).
					Foreground(lipgloss.Color("#5fef8f"))

	StatusWarning = lipgloss.NewStyle().
					Bold(true).
					Foreground(cli.ColorWarning)

	StatusError = lipgloss.NewStyle().
				Bold(true).
				Foreground(cli.ColorError)

	StatusDim = lipgloss.NewStyle().
				Foreground(cli.ColorDim)

	StatusSeparator = lipgloss.NewStyle().
					Foreground(lipgloss.Color("#3a3f3c"))
)

Status bar styles.

Functions

func PaneTitle

func PaneTitle(title string, focused bool) string

PaneTitle renders a styled pane title. When focused the title uses the secondary (warm amber) color; when unfocused it is dimmed so the active pane stands out.

Types

This section is empty.

Jump to

Keyboard shortcuts

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