Files
miasma-installer/tui/styles/styles.go
tumillanino d6a284d48a
Some checks failed
Build / build (push) Has been cancelled
updated styling and installation steps
2025-10-31 22:55:30 +11:00

140 lines
3.0 KiB
Go

package styles
import "github.com/charmbracelet/lipgloss"
var (
Primary = lipgloss.Color("#7aa2f7")
Secondary = lipgloss.Color("#bb9af7")
Success = lipgloss.Color("#9ece6a")
Warning = lipgloss.Color("#e0af68")
Error = lipgloss.Color("#f7768e")
Muted = lipgloss.Color("#565f89")
Text = lipgloss.Color("#c0caf5")
Subtle = lipgloss.Color("#414868")
Border = lipgloss.Color("#7aa2f7")
)
var (
AppStyle = lipgloss.NewStyle().
Padding(1, 2)
TitleStyle = lipgloss.NewStyle().
Foreground(Primary).
Bold(true).
MarginBottom(1).
MarginTop(1)
LogoStyle = lipgloss.NewStyle().
Foreground(Secondary).
Bold(true).
Align(lipgloss.Center)
SubtitleStyle = lipgloss.NewStyle().
Foreground(Muted).
Italic(true)
BoxStyle = lipgloss.NewStyle().
Border(lipgloss.RoundedBorder()).
BorderForeground(Border).
Padding(1, 2).
MarginTop(1).
MarginBottom(1)
ActiveBoxStyle = lipgloss.NewStyle().
Border(lipgloss.ThickBorder()).
BorderForeground(Primary).
Padding(1, 2).
MarginTop(1).
MarginBottom(1)
InfoBoxStyle = lipgloss.NewStyle().
Border(lipgloss.RoundedBorder()).
BorderForeground(Secondary).
Padding(0, 1).
MarginTop(1)
WarningBoxStyle = lipgloss.NewStyle().
Border(lipgloss.RoundedBorder()).
BorderForeground(Warning).
Padding(0, 1).
MarginTop(1)
ErrorBoxStyle = lipgloss.NewStyle().
Border(lipgloss.RoundedBorder()).
BorderForeground(Error).
Padding(0, 1).
MarginTop(1)
HelpStyle = lipgloss.NewStyle().
Foreground(Muted).
MarginTop(1)
KeyStyle = lipgloss.NewStyle().
Foreground(Primary).
Bold(true)
ValueStyle = lipgloss.NewStyle().
Foreground(Text)
ActiveItemStyle = lipgloss.NewStyle().
Foreground(Primary).
Bold(true).
PaddingLeft(2)
InactiveItemStyle = lipgloss.NewStyle().
Foreground(Muted).
PaddingLeft(2)
SelectedItemStyle = lipgloss.NewStyle().
Foreground(Success).
Bold(true)
LabelStyle = lipgloss.NewStyle().
Foreground(Secondary).
Bold(true).
MarginRight(1)
InputStyle = lipgloss.NewStyle().
Foreground(Text).
Border(lipgloss.RoundedBorder()).
BorderForeground(Subtle).
Padding(0, 1)
FocusedInputStyle = lipgloss.NewStyle().
Foreground(Text).
Border(lipgloss.RoundedBorder()).
BorderForeground(Primary).
Padding(0, 1)
ProgressBarStyle = lipgloss.NewStyle().
Foreground(Primary)
ProgressTextStyle = lipgloss.NewStyle().
Foreground(Muted)
SuccessStyle = lipgloss.NewStyle().
Foreground(Success).
Bold(true)
ErrorStyle = lipgloss.NewStyle().
Foreground(Error).
Bold(true)
SpinnerStyle = lipgloss.NewStyle().
Foreground(Primary)
)
func RenderKeyValue(key, value string) string {
return KeyStyle.Render(key+":") + " " + ValueStyle.Render(value)
}
func RenderHelp(keys ...string) string {
var parts []string
for i := 0; i < len(keys); i += 2 {
if i+1 < len(keys) {
parts = append(parts, KeyStyle.Render(keys[i])+" "+HelpStyle.Render(keys[i+1]))
}
}
return HelpStyle.Render(lipgloss.JoinHorizontal(lipgloss.Left, parts...))
}