- commit
- 7fe1b232f9e5a615460ef9890cbf869625b5c4c1
- parent
- 0cf81ebf347c300547857429c8d8208086ecfa10
- author
- Dami <dami.etoile@gmail.com>
| M | game/ | 2 | +- |
| M | hashiwokakero/ | 34 | +++++++++++++++--------------- |
| M | lightsout/ | 6 | ++++-- |
| M | model.go | 4 | ++-- |
| M | sudoku/ | 18 | ++++++++++------ |
| M | takuzu/ | 18 | +++++++++------- |
| M | vhs/ | 9 | ++++++-- |
| M | vhs/ | bin | |
| M | vhs/ | 12 | ++++++---- |
| M | vhs/ | 12 | ++++++---- |
| M | vhs/ | 12 | ++++++---- |
| M | vhs/ | 12 | ++++++---- |
| M | vhs/ | 12 | ++++++---- |
| M | vhs/ | 12 | ++++++---- |
| M | vhs/ | 12 | ++++++---- |
@@ -26,7 +26,7 @@ func TitleBarView(gameName, modeName string, solved bool) string {
2626 badge := solvedBadgeStyle.Render(" SOLVED")2727 return title + badge + "\nctrl+n to play again"2828 }29- return title29+ return title + "\n"3030 }3131 3232 // DebugHeader returns the markdown heading and property table header for debug info.@@ -11,23 +11,23 @@ const cellWidth = 3
1111 1212 // Color palette — warm earth-tone theme (ANSI 256, adaptive for light/dark terminals)1313 var (14- colorIslandFg = lipgloss.AdaptiveColor{Light: "236", Dark: "187"}15- colorIslandBg = lipgloss.AdaptiveColor{Light: "187", Dark: "58"}16- colorSatisfiedFg = lipgloss.AdaptiveColor{Light: "22", Dark: "149"}17- colorSatisfiedBg = lipgloss.AdaptiveColor{Light: "194", Dark: "236"}18- colorOverFg = lipgloss.AdaptiveColor{Light: "160", Dark: "167"}19- colorOverBg = lipgloss.AdaptiveColor{Light: "224", Dark: "52"}20- colorCursorFg = lipgloss.AdaptiveColor{Light: "255", Dark: "235"}21- colorCursorBg = lipgloss.AdaptiveColor{Light: "130", Dark: "173"}22- colorSelectedFg = lipgloss.AdaptiveColor{Light: "255", Dark: "235"}23- colorSelectedBg = lipgloss.AdaptiveColor{Light: "172", Dark: "179"}24- colorAdjacentBg = lipgloss.AdaptiveColor{Light: "223", Dark: "58"}25- colorBridge = lipgloss.AdaptiveColor{Light: "137", Dark: "137"}26- colorBridgeSolved = lipgloss.AdaptiveColor{Light: "22", Dark: "149"}27- colorEmptyDot = lipgloss.AdaptiveColor{Light: "252", Dark: "239"}28- colorEmptySolved = lipgloss.AdaptiveColor{Light: "151", Dark: "107"}29- colorInfoSatisfied = lipgloss.AdaptiveColor{Light: "22", Dark: "149"}30- colorInfoText = lipgloss.AdaptiveColor{Light: "137", Dark: "137"}14+ colorIslandFg = lipgloss.AdaptiveColor{Dark: "236", Light: "187"}15+ colorIslandBg = lipgloss.AdaptiveColor{Dark: "187", Light: "58"}16+ colorSatisfiedFg = lipgloss.AdaptiveColor{Dark: "22", Light: "149"}17+ colorSatisfiedBg = lipgloss.AdaptiveColor{Dark: "194", Light: "236"}18+ colorOverFg = lipgloss.AdaptiveColor{Dark: "160", Light: "167"}19+ colorOverBg = lipgloss.AdaptiveColor{Dark: "224", Light: "52"}20+ colorCursorFg = lipgloss.AdaptiveColor{Dark: "255", Light: "235"}21+ colorCursorBg = lipgloss.AdaptiveColor{Dark: "130", Light: "173"}22+ colorSelectedFg = lipgloss.AdaptiveColor{Dark: "255", Light: "235"}23+ colorSelectedBg = lipgloss.AdaptiveColor{Dark: "172", Light: "179"}24+ colorAdjacentBg = lipgloss.AdaptiveColor{Dark: "223", Light: "58"}25+ colorBridge = lipgloss.AdaptiveColor{Dark: "137", Light: "137"}26+ colorBridgeSolved = lipgloss.AdaptiveColor{Dark: "22", Light: "149"}27+ colorEmptyDot = lipgloss.AdaptiveColor{Dark: "252", Light: "239"}28+ colorEmptySolved = lipgloss.AdaptiveColor{Dark: "151", Light: "107"}29+ colorInfoSatisfied = lipgloss.AdaptiveColor{Dark: "22", Light: "149"}30+ colorInfoText = lipgloss.AdaptiveColor{Dark: "137", Light: "137"}3131 )3232 3333 var (@@ -29,11 +29,13 @@ var (
2929 3030 gridBorderStyle = lipgloss.NewStyle().3131 Border(lipgloss.RoundedBorder()).32- BorderForeground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"})32+ BorderForeground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"}).33+ BorderBackground(colorOff)3334 3435 gridBorderSolvedStyle = lipgloss.NewStyle().3536 Border(lipgloss.RoundedBorder()).36- BorderForeground(lipgloss.AdaptiveColor{Light: "22", Dark: "149"})37+ BorderForeground(lipgloss.AdaptiveColor{Light: "22", Dark: "149"}).38+ BorderBackground(lipgloss.AdaptiveColor{Light: "151", Dark: "22"})3739 3840 statusBarStyle = lipgloss.NewStyle().3941 Foreground(lipgloss.AdaptiveColor{Light: "244", Dark: "244"}).@@ -377,7 +377,7 @@ func initList(items []list.Item, title string) list.Model {
377377 }378378 379379 func initMainMenuList() list.Model {380- return initList(mainMenuItems, "PuzzleTea")380+ return initList(mainMenuItems, "puzzletea")381381 }382382 383383 func initGameSelectList() list.Model {@@ -419,7 +419,7 @@ func (m *model) initContinueTable() {
419419 table.WithColumns(columns),420420 table.WithRows(rows),421421 table.WithFocused(true),422- table.WithHeight(10),422+ table.WithHeight(24),423423 )424424 425425 s := table.DefaultStyles()@@ -8,18 +8,20 @@ import (
88 )99 1010 var (11+ backgroundColor = lipgloss.AdaptiveColor{Light: "254", Dark: "235"}12+1113 emptyCellStyle = lipgloss.NewStyle().1214 Foreground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"}).13- Background(lipgloss.AdaptiveColor{Light: "254", Dark: "235"})15+ Background(backgroundColor)1416 1517 providedCellStyle = lipgloss.NewStyle().1618 Bold(true).1719 Foreground(lipgloss.AdaptiveColor{Light: "130", Dark: "179"}).18- Background(lipgloss.AdaptiveColor{Light: "254", Dark: "235"})20+ Background(backgroundColor)1921 2022 userCellStyle = lipgloss.NewStyle().2123 Foreground(lipgloss.AdaptiveColor{Light: "236", Dark: "187"}).22- Background(lipgloss.AdaptiveColor{Light: "254", Dark: "235"})24+ Background(backgroundColor)2325 2426 cursorCellStyle = lipgloss.NewStyle().2527 Bold(true).@@ -36,11 +38,13 @@ var (
3638 3739 gridBorderStyle = lipgloss.NewStyle().3840 Border(lipgloss.RoundedBorder()).39- BorderForeground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"})41+ BorderForeground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"}).42+ BorderBackground(backgroundColor)4043 4144 gridBorderSolvedStyle = lipgloss.NewStyle().4245 Border(lipgloss.RoundedBorder()).43- BorderForeground(lipgloss.AdaptiveColor{Light: "22", Dark: "149"})46+ BorderForeground(lipgloss.AdaptiveColor{Light: "22", Dark: "149"}).47+ BorderBackground(backgroundColor)4448 4549 statusBarStyle = lipgloss.NewStyle().4650 Foreground(lipgloss.AdaptiveColor{Light: "137", Dark: "137"}).@@ -63,7 +67,7 @@ func renderGrid(m Model, solved bool, conflicts [gridSize][gridSize]bool) string
6367 6468 // Insert vertical box separator after columns 3 and 66569 if x == 2 || x == 5 {66- sep := lipgloss.NewStyle().Foreground(boxBorderFG).Render("│")70+ sep := lipgloss.NewStyle().Foreground(boxBorderFG).Background(backgroundColor).Render("│")6771 cells = append(cells, sep)6872 }6973 }@@ -80,7 +84,7 @@ func renderGrid(m Model, solved bool, conflicts [gridSize][gridSize]bool) string
8084 sepParts = append(sepParts, "┼")8185 }8286 }83- sep := lipgloss.NewStyle().Foreground(boxBorderFG).Render(strings.Join(sepParts, ""))87+ sep := lipgloss.NewStyle().Foreground(boxBorderFG).Background(backgroundColor).Render(strings.Join(sepParts, ""))8488 rows = append(rows, sep)8589 }8690 }@@ -6,19 +6,19 @@ import (
66 )77 88 var (9- baseStyle = lipgloss.NewStyle()10-11- zeroStyle = baseStyle.9+ baseStyle = lipgloss.NewStyle()10+ backgroundColor = lipgloss.AdaptiveColor{Light: "254", Dark: "235"}11+ zeroStyle = baseStyle.1212 Foreground(lipgloss.AdaptiveColor{Light: "130", Dark: "222"}).13- Background(lipgloss.AdaptiveColor{Light: "254", Dark: "235"})13+ Background(backgroundColor)1414 1515 oneStyle = baseStyle.1616 Foreground(lipgloss.AdaptiveColor{Light: "68", Dark: "111"}).17- Background(lipgloss.AdaptiveColor{Light: "254", Dark: "235"})17+ Background(backgroundColor)1818 1919 emptyStyle = baseStyle.2020 Foreground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"}).21- Background(lipgloss.AdaptiveColor{Light: "254", Dark: "235"})21+ Background(backgroundColor)2222 2323 cursorStyle = baseStyle.2424 Bold(true).@@ -30,11 +30,13 @@ var (
3030 3131 gridBorderStyle = lipgloss.NewStyle().3232 Border(lipgloss.RoundedBorder()).33- BorderForeground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"})33+ BorderForeground(lipgloss.AdaptiveColor{Light: "250", Dark: "240"}).34+ BorderBackground(backgroundColor)3435 3536 gridBorderSolvedStyle = lipgloss.NewStyle().3637 Border(lipgloss.RoundedBorder()).37- BorderForeground(lipgloss.AdaptiveColor{Light: "22", Dark: "149"})38+ BorderForeground(lipgloss.AdaptiveColor{Light: "22", Dark: "149"}).39+ BorderBackground(backgroundColor)3840 3941 statusBarStyle = lipgloss.NewStyle().4042 Foreground(lipgloss.AdaptiveColor{Light: "244", Dark: "244"}).@@ -1,4 +1,9 @@
11 # Shared PuzzleTea VHS settings.22 # Source this file from every game tape for visual consistency.3-Set FontSize 324-Set Theme "Catppuccin Frappe"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar ColorfulBinary file.
@@ -1,10 +1,12 @@
11 Output vhs/hashiwokakero.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"@@ -1,10 +1,12 @@
11 Output vhs/lightsout.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"@@ -1,10 +1,12 @@
11 Output vhs/menu.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"@@ -1,10 +1,12 @@
11 Output vhs/nonogram.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"@@ -1,10 +1,12 @@
11 Output vhs/sudoku.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"@@ -1,10 +1,12 @@
11 Output vhs/takuzu.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"@@ -1,10 +1,12 @@
11 Output vhs/wordsearch.gif22 3-Set FontSize 134-Set Width 8545-Set Height 4806-Set Padding 407-Set Theme "Catppuccin Mocha"3+Set Theme "catppuccin-mocha"4+Set FontSize 145+Set Width 12006+Set Height 8007+Set Margin 608+Set MarginFill "#A85C40"9+Set WindowBar Colorful810 911 Env COLORTERM "truecolor"1012 Env CLICOLOR_FORCE "1"