Files
sunhpc-go/pkg/wizard/styles.go
2026-02-21 20:22:21 +08:00

100 lines
2.3 KiB
Go

package wizard
import "github.com/charmbracelet/lipgloss"
// 颜色定义
var (
primaryColor = lipgloss.Color("#7C3AED")
secondaryColor = lipgloss.Color("#10B981")
errorColor = lipgloss.Color("#EF4444")
warnColor = lipgloss.Color("#F59E0B")
// 背景色设为无,让终端自己的背景色生效,避免黑块
bgColor = lipgloss.Color("#1F2937")
textColor = lipgloss.Color("#FFFFFF")
mutedColor = lipgloss.Color("#B0B0B0")
)
// 容器样式
var containerStyle = lipgloss.NewStyle().
Padding(2, 4).
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(primaryColor).
//Background(bgColor). // 注释掉背景色,防止在某些终端出现黑块
Foreground(textColor).
//Width(80).
Align(lipgloss.Center)
// 标题样式
var titleStyle = lipgloss.NewStyle().
Bold(true).
Foreground(primaryColor).
MarginBottom(1)
var subTitleStyle = lipgloss.NewStyle().
Foreground(mutedColor).
MarginBottom(2)
// 按钮样式
var normalButton = lipgloss.NewStyle().
Padding(0, 2).
Foreground(lipgloss.Color("#666666")) // 深灰色,更暗
var selectedButton = lipgloss.NewStyle().
Padding(0, 2).
Foreground(lipgloss.Color("#3d4747ff")). // 亮绿色
Bold(true)
// 输入框样式
var inputBox = lipgloss.NewStyle().
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(primaryColor).
Padding(0, 1)
var labelStyle = lipgloss.NewStyle().
Foreground(mutedColor).
Width(12).
Align(lipgloss.Right)
// 协议框样式
var agreementBox = lipgloss.NewStyle().
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(warnColor).
Padding(1, 2).
//Width(70).
Align(lipgloss.Left)
// 总结框样式
var summaryBox = lipgloss.NewStyle().
BorderStyle(lipgloss.DoubleBorder()).
BorderForeground(primaryColor).
Padding(0, 0).
Foreground(textColor)
// 进度条样式
var progressStyle = lipgloss.NewStyle().Foreground(primaryColor)
// 提示信息样式
var hintStyle = lipgloss.NewStyle().
Foreground(mutedColor).
Italic(true)
// 成功/错误样式
var successTitle = lipgloss.NewStyle().
Bold(true).
Foreground(secondaryColor)
var successMsg = lipgloss.NewStyle().
Foreground(textColor)
var errorTitle = lipgloss.NewStyle().
Bold(true).
Foreground(errorColor)
var errorMsg = lipgloss.NewStyle().
Foreground(textColor)
var infoStyle = lipgloss.NewStyle().
Foreground(primaryColor).
Bold(true)