Files
sunhpc-go/pkg/wizard/styles.go
2026-02-27 23:25:43 +08:00

118 lines
2.8 KiB
Go

package wizard
import "github.com/charmbracelet/lipgloss"
// 颜色定义
var (
primaryColor = lipgloss.Color("#7C3AED")
secondaryColor = lipgloss.Color("#10B981")
titleColor = lipgloss.Color("#8b19a2")
errorColor = lipgloss.Color("#EF4444")
warnColor = lipgloss.Color("#F59E0B")
btnTextColor = lipgloss.Color("#666666") // 深灰色
btnbordColor = lipgloss.Color("#3b4147")
btnFocusColor = lipgloss.Color("#ffffff")
// 背景色设为无,让终端自己的背景色生效,避免黑块
bgColor = lipgloss.Color("#1F2937")
textColor = lipgloss.Color("#FFFFFF")
mutedColor = lipgloss.Color("#B0B0B0")
)
// 容器样式
var (
// 基础布局样式
appStyle = lipgloss.NewStyle().
Padding(1, 1).
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(primaryColor).
Foreground(textColor).
Align(lipgloss.Center).
Height(40)
// 标题样式
titleStyle = lipgloss.NewStyle().
Foreground(titleColor).
Padding(0, 1).
Bold(true).
Align(lipgloss.Center)
// 子标题/标签样式
labelStyle = lipgloss.NewStyle().
Width(30).
Align(lipgloss.Right).
PaddingRight(2)
valueStyle = lipgloss.NewStyle().
Foreground(textColor).
Width(50)
// 输入框/列表内容样式
inputBoxStyle = lipgloss.NewStyle().
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor).
Padding(0, 1).
Width(50)
// 按钮基础样式
btnBaseStyle = lipgloss.NewStyle().
Foreground(btnTextColor).
Padding(0, 2).
Margin(1, 1).
Border(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor)
// 按钮选中/聚焦样式
btnSelectedStyle = lipgloss.NewStyle().
Foreground(btnFocusColor).
Padding(0, 2).
Margin(1, 1).
Border(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor)
splitlineStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888"))
// 协议文本样式
licenseTextStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#f8f8f2")).
Width(76)
// 提示文本样式
hintStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888")).
Width(76)
infoStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888")).
Border(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor)
// 成功/错误提示样式
successTitle = lipgloss.NewStyle().
Foreground(secondaryColor).
Bold(true)
successMsg = lipgloss.NewStyle().
Foreground(textColor)
// quit 提示样式
quitStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888")).
Bold(true).
Width(76)
// 错误提示样式
errorStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#ff5555")).
Bold(true).
Width(76)
errorTitle = lipgloss.NewStyle().
Bold(true).
Foreground(errorColor)
errorMsg = lipgloss.NewStyle().
Foreground(textColor)
)