119 lines
2.8 KiB
Go
119 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).
|
|
MarginBottom(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)
|
|
)
|