67 lines
1.9 KiB
Go
67 lines
1.9 KiB
Go
package tui
|
|
|
|
import (
|
|
"github.com/lixenwraith/color"
|
|
)
|
|
|
|
// Theme defines semantic colors for TUI components
|
|
type Theme struct {
|
|
Bg color.RGB
|
|
Fg color.RGB
|
|
FocusBg color.RGB
|
|
CursorBg color.RGB
|
|
|
|
Selected color.RGB
|
|
Unselected color.RGB
|
|
Partial color.RGB
|
|
Error color.RGB
|
|
Warning color.RGB
|
|
|
|
Border color.RGB
|
|
HeaderBg color.RGB
|
|
HeaderFg color.RGB
|
|
StatusFg color.RGB
|
|
HintFg color.RGB
|
|
InputBg color.RGB
|
|
|
|
DirFg color.RGB
|
|
FileFg color.RGB
|
|
SymbolFg color.RGB
|
|
|
|
SyntaxComment color.RGB
|
|
SyntaxString color.RGB
|
|
SyntaxKeyword color.RGB
|
|
SyntaxType color.RGB
|
|
SyntaxNumber color.RGB
|
|
SyntaxSymbol color.RGB
|
|
}
|
|
|
|
// DefaultTheme provides reasonable defaults
|
|
var DefaultTheme = Theme{
|
|
Bg: color.RGB{R: 20, G: 20, B: 30},
|
|
Fg: color.RGB{R: 200, G: 200, B: 200},
|
|
FocusBg: color.RGB{R: 30, G: 35, B: 45},
|
|
CursorBg: color.RGB{R: 50, G: 50, B: 70},
|
|
Selected: color.RGB{R: 80, G: 200, B: 80},
|
|
Unselected: color.RGB{R: 100, G: 100, B: 100},
|
|
Partial: color.RGB{R: 80, G: 160, B: 220},
|
|
Error: color.RGB{R: 255, G: 80, B: 80},
|
|
Warning: color.RGB{R: 255, G: 80, B: 80},
|
|
Border: color.RGB{R: 60, G: 80, B: 100},
|
|
HeaderBg: color.RGB{R: 40, G: 60, B: 90},
|
|
HeaderFg: color.RGB{R: 255, G: 255, B: 255},
|
|
StatusFg: color.RGB{R: 140, G: 140, B: 140},
|
|
HintFg: color.RGB{R: 100, G: 180, B: 200},
|
|
InputBg: color.RGB{R: 30, G: 30, B: 50},
|
|
DirFg: color.RGB{R: 130, G: 170, B: 220},
|
|
FileFg: color.RGB{R: 200, G: 200, B: 200},
|
|
SymbolFg: color.RGB{R: 180, G: 220, B: 220},
|
|
SyntaxComment: color.RGB{R: 100, G: 110, B: 120},
|
|
SyntaxString: color.RGB{R: 180, G: 220, B: 140},
|
|
SyntaxKeyword: color.RGB{R: 180, G: 140, B: 220},
|
|
SyntaxType: color.RGB{R: 80, G: 200, B: 200},
|
|
SyntaxNumber: color.RGB{R: 220, G: 180, B: 120},
|
|
SyntaxSymbol: color.RGB{R: 220, G: 180, B: 80},
|
|
}
|
|
|