Profpatsch/users/Profpatsch/git-blimey/color_scheme.go
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main

import "github.com/charmbracelet/lipgloss"

// Color role constants define all colors used in the UI with semantic role names.
const (
	// Status indicators
	ColorUncommittedChanges lipgloss.Color = "14" // Bright cyan - Uncommitted local changes marker
	ColorError              lipgloss.Color = "9"  // Bright red - Error states

	// UI chrome and borders
	ColorTextDim             lipgloss.Color = "246"     // Dim gray - Line numbers, help text, instructions
	ColorTextSecondary       lipgloss.Color = "240"     // Darker gray - Spinners, loading placeholders
	ColorTableBorder         lipgloss.Color = "240"     // Darker gray - Main table border
	ColorDetailBorder        lipgloss.Color = "#874BFD" // Purple - Detail/help view border
	ColorErrorModalBorder    lipgloss.Color = "1"       // Red - Error modal border
	ColorSelectionBackground lipgloss.Color = "8"       // Bright black/gray - Selected row background

	// Text hierarchy
	ColorWarningText lipgloss.Color = "11" // Bright yellow - Warnings and file change indicators

	// Age gradient (newest to oldest)
	ColorAgeNewest lipgloss.Color = "10" // Bright green - Most recent commits
	ColorAgeNewer  lipgloss.Color = "2"  // Green
	ColorAgeMid    lipgloss.Color = "11" // Bright yellow
	ColorAgeOlder  lipgloss.Color = "3"  // Yellow
	ColorAgeOldest lipgloss.Color = "8"  // Gray - Oldest commits

	// Performance indicators (debug mode)
	ColorPerfGood    lipgloss.Color = "2" // Green
	ColorPerfWarning lipgloss.Color = "3" // Yellow
	ColorPerfBad     lipgloss.Color = "1" // Red
)

// Commit hash colors (excluding black and red for visibility)
var commitHashColors = []lipgloss.Color{
	"2", // Green
	"3", // Yellow
	"4", // Blue
	"5", // Magenta
	"6", // Cyan
	"7", // White
}

// Age gradient colors as slice for easy iteration
var ageGradientColors = []lipgloss.Color{
	ColorAgeNewest, // Bright green (newest)
	ColorAgeNewer,  // Green
	ColorAgeMid,    // Bright yellow
	ColorAgeOlder,  // Yellow
	ColorAgeOldest, // Gray (oldest)
}