From 45d33b6bad9a4ea5e1210892d862886e787ac23d Mon Sep 17 00:00:00 2001 From: George Powell Date: Sun, 22 Mar 2026 00:47:02 -0400 Subject: [PATCH] feat: improve guesses collapse timing, win screen CTA, and progress page polish - GuessesTable now accepts a `minimized` prop instead of deriving collapse from `isWon`, giving the parent control over timing - Delay collapsing guesses grid until win animations complete (1800ms), skipped for already-completed puzzles - Replace plain progress link on win screen with a styled green button matching other CTAs - Progress page: remove redundant subtitle and nav button from header, add book status legend, add axis labels to guess history chart Co-Authored-By: Claude Sonnet 4.6 --- src/lib/components/GuessesTable.svelte | 10 ++++-- src/lib/components/WinScreen.svelte | 48 ++++++++++++++++++++++---- src/routes/+page.svelte | 20 ++++++++++- src/routes/progress/+page.svelte | 45 +++++++++++++++++++----- 4 files changed, 104 insertions(+), 19 deletions(-) diff --git a/src/lib/components/GuessesTable.svelte b/src/lib/components/GuessesTable.svelte index e360cac..d4ab4ff 100644 --- a/src/lib/components/GuessesTable.svelte +++ b/src/lib/components/GuessesTable.svelte @@ -5,13 +5,17 @@ let { guesses, correctBookId, - isWon = false, - }: { guesses: Guess[]; correctBookId: string; isWon?: boolean } = $props(); + minimized = false, + }: { guesses: Guess[]; correctBookId: string; minimized?: boolean } = $props(); let hasGuesses = $derived(guesses.length > 0); - let showMinimized = $derived(isWon && guesses.length > 3); + let showMinimized = $derived(minimized); let expanded = $state(false); + $effect(() => { + if (!minimized) expanded = false; + }); + function getBoxColor(isCorrect: boolean, isAdjacent?: boolean): string { if (isCorrect) return "bg-green-500 border-green-600"; if (isAdjacent) return "bg-yellow-500 border-yellow-600"; diff --git a/src/lib/components/WinScreen.svelte b/src/lib/components/WinScreen.svelte index c40db6a..ec342ba 100644 --- a/src/lib/components/WinScreen.svelte +++ b/src/lib/components/WinScreen.svelte @@ -330,12 +330,9 @@ {/if} {#if isLoggedIn} - - View your progress → - + {:else} diff --git a/src/routes/progress/+page.svelte b/src/routes/progress/+page.svelte index 4e436b6..d69e53f 100644 --- a/src/routes/progress/+page.svelte +++ b/src/routes/progress/+page.svelte @@ -186,16 +186,11 @@
-

+

Your Progress

-

- Your Bible knowledge journey -

- + + ← Back to Game
@@ -360,6 +355,16 @@
{/each} +

+ Explored + — played at least once
+ Mastered + — avg ≤ 3 guesses over 2+ plays
+ Perfect — + mastered and guessed in 1 at least once +

@@ -382,7 +387,7 @@ {#if chartImproving}

You're getting better!

{/if} +

+ Each point is your average guesses over a + rolling window of games. A downward trend means + you're improving. +