mirror of
https://github.com/RWejlgaard/org.git
synced 2026-05-06 04:34:45 +00:00
40 lines
1.6 KiB
Go
40 lines
1.6 KiB
Go
package ui
|
|
|
|
import (
|
|
"github.com/charmbracelet/lipgloss"
|
|
"github.com/rwejlgaard/org/internal/config"
|
|
)
|
|
|
|
// styleMap holds all the styles used in the UI
|
|
type styleMap struct {
|
|
todoStyle lipgloss.Style
|
|
progStyle lipgloss.Style
|
|
blockStyle lipgloss.Style
|
|
doneStyle lipgloss.Style
|
|
cursorStyle lipgloss.Style
|
|
titleStyle lipgloss.Style
|
|
scheduledStyle lipgloss.Style
|
|
overdueStyle lipgloss.Style
|
|
statusStyle lipgloss.Style
|
|
noteStyle lipgloss.Style
|
|
foldedStyle lipgloss.Style
|
|
}
|
|
|
|
// newStyleMapFromConfig creates a styleMap from configuration
|
|
func newStyleMapFromConfig(cfg *config.Config) styleMap {
|
|
colors := cfg.Colors
|
|
|
|
return styleMap{
|
|
todoStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Todo)),
|
|
progStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Progress)),
|
|
blockStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Blocked)),
|
|
doneStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Done)),
|
|
cursorStyle: lipgloss.NewStyle().Background(lipgloss.Color(colors.Cursor)),
|
|
titleStyle: lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(colors.Title)),
|
|
scheduledStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Scheduled)),
|
|
overdueStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Overdue)),
|
|
statusStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Status)).Italic(true),
|
|
noteStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Note)).Italic(true),
|
|
foldedStyle: lipgloss.NewStyle().Foreground(lipgloss.Color(colors.Folded)),
|
|
}
|
|
}
|