61 lines
2.6 KiB
Go
61 lines
2.6 KiB
Go
package style
|
|
|
|
import (
|
|
"charm.land/lipgloss/v2"
|
|
)
|
|
|
|
// ── palette: cool gray + single accent (teal) ──
|
|
var (
|
|
BgDark = lipgloss.Color("#1a1b26") // deep navy
|
|
BgPanel = lipgloss.Color("#292e42") // panel bg / borders
|
|
Dim = lipgloss.Color("#565f89") // muted text
|
|
Fg = lipgloss.Color("#a9b1d6") // normal text
|
|
Bright = lipgloss.Color("#c0caf5") // bright text
|
|
Accent = lipgloss.Color("#7aa2f7") // blue accent
|
|
Success = lipgloss.Color("#9ece6a") // green
|
|
Warning = lipgloss.Color("#e0af68") // yellow
|
|
Cyan = lipgloss.Color("#7dcfff") // cyan highlight
|
|
Purple = lipgloss.Color("#bb9af7") // purple for selected
|
|
Red = lipgloss.Color("#f7768e") // red
|
|
|
|
// ── component styles ──
|
|
TitleStyle = lipgloss.NewStyle().Bold(true).Foreground(Accent)
|
|
SubtitleStyle = lipgloss.NewStyle().Foreground(Dim)
|
|
|
|
TabActiveStyle = lipgloss.NewStyle().Bold(true).Background(BgPanel).Foreground(Bright).Padding(0, 1)
|
|
TabInactiveStyle = lipgloss.NewStyle().Foreground(Dim).Padding(0, 1)
|
|
TabSep = lipgloss.NewStyle().Foreground(BgPanel)
|
|
|
|
SelStyle = lipgloss.NewStyle().Foreground(BgDark).Background(Purple).Bold(true)
|
|
NormStyle = lipgloss.NewStyle().Foreground(Fg)
|
|
NumStyle = lipgloss.NewStyle().Foreground(Cyan)
|
|
MarkStyle = lipgloss.NewStyle().Foreground(Success).Bold(true)
|
|
|
|
HelpStyle = lipgloss.NewStyle().Foreground(Dim)
|
|
InputStyle = lipgloss.NewStyle().Foreground(Warning).Bold(true)
|
|
|
|
KeyStyle = lipgloss.NewStyle().Foreground(Dim).Width(6).Inline(true)
|
|
ValStyle = lipgloss.NewStyle().Foreground(Fg).Inline(true)
|
|
TechStyle = lipgloss.NewStyle().Foreground(Accent).Bold(true).Inline(true)
|
|
DeployStyle = lipgloss.NewStyle().Foreground(Success).Inline(true)
|
|
DetailTitle = lipgloss.NewStyle().Foreground(Cyan).Bold(true)
|
|
)
|
|
|
|
var GroupStyles = map[string]lipgloss.Style{
|
|
"CORE": lipgloss.NewStyle().Bold(true).Foreground(Red),
|
|
"LAB": lipgloss.NewStyle().Bold(true).Foreground(Success),
|
|
"TOOLS": lipgloss.NewStyle().Bold(true).Foreground(Warning),
|
|
"ME": lipgloss.NewStyle().Bold(true).Foreground(Purple),
|
|
"TEMP": lipgloss.NewStyle().Bold(true).Foreground(Cyan),
|
|
"HISTORY": lipgloss.NewStyle().Bold(true).Foreground(Cyan),
|
|
}
|
|
|
|
// --- 历史会话专用样式 ---
|
|
var (
|
|
SessionTimeStyle = lipgloss.NewStyle().Foreground(Dim).Width(12).Inline(true)
|
|
SessionMsgCntStyle = lipgloss.NewStyle().Foreground(Accent).Inline(true)
|
|
SessionSummaryStyle = lipgloss.NewStyle().Foreground(Dim).Italic(true).Inline(true)
|
|
DirCountStyle = lipgloss.NewStyle().Foreground(Accent).Inline(true)
|
|
ScanningStyle = lipgloss.NewStyle().Foreground(Warning).Bold(true)
|
|
)
|