feat: add core types and styles for Tier management

This commit is contained in:
Stevan Freeborn
2025-12-29 12:47:37 -06:00
parent 8be1bbb80b
commit 70e900cf4c
2 changed files with 82 additions and 0 deletions
+23
View File
@@ -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)
}
+59
View File
@@ -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)
)