diff --git a/internal/core/types.go b/internal/core/types.go new file mode 100644 index 0000000..74e90b7 --- /dev/null +++ b/internal/core/types.go @@ -0,0 +1,23 @@ +package core + +import "github.com/charmbracelet/lipgloss" + +type Item string + +type Tier struct { + Name string + Items []Item + Color lipgloss.Color +} + +type SaveState struct { + Tiers []struct { + Name string `json:"name"` + Items []Item `json:"items"` + } `json:"tiers"` +} + +type Saver interface { + Save(filename string, state SaveState) error + Load(filename string) (SaveState, error) +} diff --git a/internal/styles/styles.go b/internal/styles/styles.go new file mode 100644 index 0000000..5cdb040 --- /dev/null +++ b/internal/styles/styles.go @@ -0,0 +1,59 @@ +package styles + +import "github.com/charmbracelet/lipgloss" + +const red_color = "#FF7F7F" +const orange_color = "#FFBF7F" +const yellow_color = "#FFDF7F" +const light_yellow_color = "#FFFF7F" +const green_color = "#BFFF7F" +const blue_color = "#7F7FFF" + +var ( + TierColors = []lipgloss.Color{ + lipgloss.Color(red_color), + lipgloss.Color(orange_color), + lipgloss.Color(yellow_color), + lipgloss.Color(light_yellow_color), + lipgloss.Color(green_color), + lipgloss.Color(blue_color), + } + + TierLabelStyle = lipgloss.NewStyle(). + Width(10). + Align(lipgloss.Center). + Bold(true). + Padding(1, 0). + MarginRight(1).Foreground(lipgloss.Color("0")) + + ItemStyle = lipgloss.NewStyle(). + Padding(0, 1). + Border(lipgloss.RoundedBorder()). + BorderForeground(lipgloss.Color("240")). + MarginRight(1) + + SelectedItemStyle = ItemStyle. + BorderForeground(lipgloss.Color("69")). + Foreground(lipgloss.Color("255")) + + DraggingItemStyle = ItemStyle. + BorderForeground(lipgloss.Color("220")). + Background(lipgloss.Color("236")). + Bold(true) + + StatusStyle = lipgloss.NewStyle(). + Foreground(lipgloss.Color("241")). + MarginTop(1) + + InputBoxStyle = lipgloss.NewStyle(). + Border(lipgloss.RoundedBorder()). + BorderForeground(lipgloss.Color("62")). + Padding(0, 1). + MarginTop(1) + + HelpBoxStyle = lipgloss.NewStyle(). + Border(lipgloss.RoundedBorder()). + BorderForeground(lipgloss.Color("62")). + Padding(1, 2). + Align(lipgloss.Left) +)