Tui 重构代码逻辑

This commit is contained in:
2026-02-27 22:52:15 +08:00
parent 3a5f5ddd5d
commit d4e214fe23
8 changed files with 934 additions and 718 deletions

View File

@@ -6,8 +6,12 @@ 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")
@@ -16,82 +20,92 @@ var (
)
// 容器样式
var containerStyle = lipgloss.NewStyle().
Padding(2, 4).
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(primaryColor).
//Background(bgColor). // 注释掉背景色,防止在某些终端出现黑块
Foreground(textColor).
//Width(80).
Align(lipgloss.Center)
var (
// 基础布局样式
appStyle = lipgloss.NewStyle().
Padding(1, 1).
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(primaryColor).
Foreground(textColor).
Align(lipgloss.Center).
Height(40)
// 标题样式
var titleStyle = lipgloss.NewStyle().
Bold(true).
Foreground(primaryColor).
MarginBottom(1)
// 标题样式
titleStyle = lipgloss.NewStyle().
Foreground(titleColor).
Padding(0, 1).
Bold(true).
Align(lipgloss.Center)
var subTitleStyle = lipgloss.NewStyle().
Foreground(mutedColor).
MarginBottom(2)
// 子标题/标签样式
labelStyle = lipgloss.NewStyle().
Width(30).
Align(lipgloss.Right).
PaddingRight(2)
// 按钮样式
var normalButton = lipgloss.NewStyle().
Padding(0, 2).
Foreground(lipgloss.Color("#666666")) // 深灰色,更暗
valueStyle = lipgloss.NewStyle().
Foreground(textColor).
Width(50)
var selectedButton = lipgloss.NewStyle().
Bold(true)
// 输入框/列表内容样式
inputBoxStyle = lipgloss.NewStyle().
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor).
Padding(0, 1).
Width(50)
// 输入框样式
var inputBox = lipgloss.NewStyle().
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(primaryColor).
Padding(0, 1)
// 按钮基础样式
btnBaseStyle = lipgloss.NewStyle().
Foreground(btnTextColor).
Padding(0, 2).
Margin(1, 1).
Border(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor)
var labelStyle = lipgloss.NewStyle().
Foreground(mutedColor).
Width(12).
Align(lipgloss.Right)
// 按钮选中/聚焦样式
btnSelectedStyle = lipgloss.NewStyle().
Foreground(btnFocusColor).
Padding(0, 2).
Margin(1, 1).
Border(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor)
// 协议框样式
var agreementBox = lipgloss.NewStyle().
BorderStyle(lipgloss.RoundedBorder()).
BorderForeground(warnColor).
Padding(1, 2).
//Width(70).
Align(lipgloss.Left)
splitlineStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888"))
// 总结框样式
var summaryBox = lipgloss.NewStyle().
BorderStyle(lipgloss.DoubleBorder()).
BorderForeground(primaryColor).
Padding(0, 0).
Foreground(textColor)
// 错误提示样式
errorStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#ff5555")).
Bold(true).
Width(76)
// 进度条样式
var progressStyle = lipgloss.NewStyle().Foreground(primaryColor)
// 协议文本样式
licenseTextStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#f8f8f2")).
Width(76)
// 提示信息样式
var hintStyle = lipgloss.NewStyle().
Foreground(mutedColor).
Italic(true)
// 提示文本样式
hintStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888")).
Width(76)
// 成功/错误样式
var successTitle = lipgloss.NewStyle().
Bold(true).
Foreground(secondaryColor)
infoStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888")).
Border(lipgloss.RoundedBorder()).
BorderForeground(btnbordColor)
var successMsg = lipgloss.NewStyle().
Foreground(textColor)
// 成功/错误提示样式
successTitle = lipgloss.NewStyle().
Foreground(secondaryColor).
Bold(true)
var errorTitle = lipgloss.NewStyle().
Bold(true).
Foreground(errorColor)
successMsg = lipgloss.NewStyle().
Foreground(textColor)
var errorMsg = lipgloss.NewStyle().
Foreground(textColor)
errorTitle = lipgloss.NewStyle().
Bold(true).
Foreground(errorColor)
var infoStyle = lipgloss.NewStyle().
Foreground(primaryColor).
Bold(true)
errorMsg = lipgloss.NewStyle().
Foreground(textColor)
)