Ultralight/ui/theme.go
2024-04-03 18:18:55 -04:00

83 lines
1.7 KiB
Go

package ui
import (
"github.com/charmbracelet/lipgloss"
)
// base - background
// surface - not active popups, inputs, etc
// overlay - active popups, inputs ,etc
// muted - ignored, not needed
// subtle - inactive tabs, items, etc
// text - text color
// err - errors
// info - informational messages
// cyan, green, blue, magenta - accessory colors for styling
type rosepine struct {
base lipgloss.AdaptiveColor
surface lipgloss.AdaptiveColor
overlay lipgloss.AdaptiveColor
muted lipgloss.AdaptiveColor
subtle lipgloss.AdaptiveColor
text lipgloss.AdaptiveColor
err lipgloss.AdaptiveColor
info lipgloss.AdaptiveColor
cyan lipgloss.AdaptiveColor
green lipgloss.AdaptiveColor
blue lipgloss.AdaptiveColor
magenta lipgloss.AdaptiveColor
}
func MakeTheme() rosepine {
return rosepine{
base: lipgloss.AdaptiveColor{
Light:"#faf4ed",
Dark:"#232136",
},
surface: lipgloss.AdaptiveColor{
Light:"#fffaf3",
Dark:"#2a273f",
},
overlay: lipgloss.AdaptiveColor{
Light:"#f2e9e1",
Dark:"#393552",
},
muted: lipgloss.AdaptiveColor{
Light:"#9893a5",
Dark:"#6e6a86",
},
subtle: lipgloss.AdaptiveColor{
Light:"#797593",
Dark:"#908caa",
},
text: lipgloss.AdaptiveColor{
Light:"#575279",
Dark:"#e0def4",
},
err: lipgloss.AdaptiveColor{
Light:"#b4637a",
Dark:"#eb6f92",
},
info: lipgloss.AdaptiveColor{
Light:"#ea9d34",
Dark:"#f6c177",
},
cyan: lipgloss.AdaptiveColor{
Light:"#d7827e",
Dark:"#ea9a97",
},
green: lipgloss.AdaptiveColor{
Light:"#286983",
Dark:"#3e8fb0",
},
blue: lipgloss.AdaptiveColor{
Light:"#56949f",
Dark:"#9ccfd8",
},
magenta: lipgloss.AdaptiveColor{
Light:"#907aa9",
Dark:"#c4a7e7",
},
}
}