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 → - +
+ 📈 See your progress +
{:else}

@@ -712,4 +709,43 @@ height: 1.1rem; flex-shrink: 0; } + + .progress-btn { + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + padding: 0.6rem 1rem; + width: 100%; + margin-bottom: 0.6rem; + background: #059669; + color: #fff; + border-radius: 0.5rem; + font-size: 0.95rem; + font-weight: 600; + text-decoration: none; + transition: + background 150ms ease, + transform 80ms ease; + } + .progress-btn:hover { + background: #047857; + transform: translateY(-1px); + } + .progress-btn:active { + background: #065f46; + transform: scale(0.98); + } + @media (prefers-color-scheme: dark) { + .progress-btn { + background: #10b981; + color: #fff; + } + .progress-btn:hover { + background: #059669; + } + .progress-btn:active { + background: #047857; + } + } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e8ce1e8..046b020 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -53,6 +53,7 @@ let statsData = $state(null); let streak = $state(0); let streakPercentile = $state(null); + let guessesMinimized = $state(false); const persistence = createGamePersistence( () => dailyVerse.date, @@ -204,6 +205,23 @@ } }); + // Delay collapsing the guesses grid until animations complete (mirrors showWinScreen delay) + $effect(() => { + if (!isWon || persistence.guesses.length <= 3) { + guessesMinimized = false; + return; + } + if (persistence.isWinAlreadyTracked()) { + guessesMinimized = true; + } else { + const animationDelay = 1800; + const timeoutId = setTimeout(() => { + guessesMinimized = true; + }, animationDelay); + return () => clearTimeout(timeoutId); + } + }); + // Track win analytics $effect(() => { if (!browser || !isWon) return; @@ -333,7 +351,7 @@

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. +