mirror of
https://github.com/marcusDenslow/terminalShop.git
synced 2026-10-25 18:08:45 +01:00
40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
package theme
|
|
|
|
import (
|
|
"github.com/charmbracelet/bubbles/help"
|
|
"github.com/charmbracelet/huh"
|
|
"github.com/charmbracelet/lipgloss"
|
|
)
|
|
|
|
// HuhTheme creates a huh form theme using this project's color palette.
|
|
func HuhTheme(t Theme) *huh.Theme {
|
|
var th huh.Theme
|
|
|
|
th.FieldSeparator = t.renderer.NewStyle().SetString("\n\n")
|
|
|
|
f := &th.Focused
|
|
f.Base = t.renderer.NewStyle().
|
|
PaddingLeft(1).
|
|
BorderStyle(lipgloss.ThickBorder()).
|
|
BorderLeft(true).
|
|
BorderForeground(t.accent)
|
|
f.Title = t.renderer.NewStyle().Foreground(t.body)
|
|
f.Description = t.renderer.NewStyle().Foreground(t.body)
|
|
f.TextInput.Cursor = t.renderer.NewStyle().Foreground(t.highlight)
|
|
f.TextInput.Placeholder = t.renderer.NewStyle().Foreground(t.dim)
|
|
f.TextInput.Prompt = t.renderer.NewStyle().Foreground(t.accent)
|
|
f.TextInput.Text = t.renderer.NewStyle().Foreground(t.accent)
|
|
f.ErrorIndicator = t.renderer.NewStyle().Foreground(t.error)
|
|
f.ErrorMessage = t.renderer.NewStyle().Foreground(t.error)
|
|
th.Help = help.New().Styles
|
|
|
|
th.Blurred = copyFieldStyles(*f)
|
|
th.Blurred.Base = th.Blurred.Base.BorderStyle(lipgloss.HiddenBorder())
|
|
th.Blurred.Title = th.Blurred.Title.Foreground(t.body)
|
|
|
|
return &th
|
|
}
|
|
|
|
// copyFieldStyles returns a copy of FieldStyles (value type, assignment is a copy).
|
|
func copyFieldStyles(f huh.FieldStyles) huh.FieldStyles { return f }
|