|
1 | 1 | package marathon
|
2 | 2 |
|
3 |
| -import "github.com/charmbracelet/lipgloss" |
| 3 | +import ( |
| 4 | + "github.com/Broderick-Westrope/tetrigo/internal/config" |
| 5 | + "github.com/charmbracelet/lipgloss" |
| 6 | +) |
4 | 7 |
|
5 | 8 | type Styles struct {
|
6 | 9 | Playfield lipgloss.Style
|
@@ -44,3 +47,30 @@ func defaultStyles() *Styles {
|
44 | 47 | }
|
45 | 48 | return &s
|
46 | 49 | }
|
| 50 | + |
| 51 | +func CreateStyles(theme *config.Theme) *Styles { |
| 52 | + s := Styles{ |
| 53 | + Playfield: lipgloss.NewStyle().Border(lipgloss.RoundedBorder()).Padding(0), |
| 54 | + ColIndicator: lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.EmptyCell)), |
| 55 | + TetriminoStyles: map[byte]lipgloss.Style{ |
| 56 | + 'I': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.I)), |
| 57 | + 'O': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.O)), |
| 58 | + 'T': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.T)), |
| 59 | + 'S': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.S)), |
| 60 | + 'Z': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.Z)), |
| 61 | + 'J': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.J)), |
| 62 | + 'L': lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.TetriminoCells.L)), |
| 63 | + }, |
| 64 | + GhostCell: lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Colours.GhostCell)), |
| 65 | + Hold: holdStyles{ |
| 66 | + View: lipgloss.NewStyle().Width(10).Height(5).Border(lipgloss.RoundedBorder(), true, false, true, true).Align(lipgloss.Center, lipgloss.Center), |
| 67 | + Label: lipgloss.NewStyle().Width(10).PaddingLeft(1).PaddingBottom(1), |
| 68 | + Item: lipgloss.NewStyle().Width(10).Height(2).Align(lipgloss.Center, lipgloss.Center), |
| 69 | + }, |
| 70 | + Information: lipgloss.NewStyle().Width(13).Align(lipgloss.Left, lipgloss.Top), |
| 71 | + RowIndicator: lipgloss.NewStyle().Foreground(lipgloss.Color(theme.Characters.EmptyCell)).Align(lipgloss.Left).Padding(0, 1, 0), |
| 72 | + Bag: lipgloss.NewStyle().PaddingTop(1), |
| 73 | + } |
| 74 | + return &s |
| 75 | + |
| 76 | +} |
0 commit comments