From 6f89d9e274082908fc090a9c0ba310f2cb06f014 Mon Sep 17 00:00:00 2001 From: Thomas Hallock Date: Mon, 20 Oct 2025 10:58:44 -0500 Subject: [PATCH] fix(levels): increase animation speed to 10ms for 10th Dan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update animation speed progression to be more dramatic, reaching 10ms (0.01 seconds) at 10th Dan instead of 50ms. Speed progression now runs from 1st Dan to 10th Dan (not from Pre-1st Dan). Speed progression: - Kyu levels: 500ms (constant) - Pre-1st Dan: 500ms - 1st Dan: 500ms - 10th Dan: 10ms - Linear interpolation between 1st and 10th Dan This creates an extremely fast blur effect at the highest mastery level, better representing the extraordinary calculation speed expected at 10th Dan. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- apps/web/src/app/levels/page.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/web/src/app/levels/page.tsx b/apps/web/src/app/levels/page.tsx index a5f8c570..844901d7 100644 --- a/apps/web/src/app/levels/page.tsx +++ b/apps/web/src/app/levels/page.tsx @@ -202,17 +202,18 @@ export default function LevelsPage() { useEffect(() => { // Calculate animation speed based on level // Kyu levels: 500ms - // Dan levels: interpolate from 500ms (Pre-1st Dan) to 50ms (10th Dan) + // Pre-1st Dan: 500ms + // 1st-10th Dan: interpolate from 500ms to 10ms const getAnimationInterval = () => { - if (currentIndex < 10) { - // Kyu levels: constant 500ms + if (currentIndex < 11) { + // Kyu levels and Pre-1st Dan: constant 500ms return 500 } - // Dan levels: speed up from 500ms to 50ms - // Index 10 (Pre-1st Dan) → 500ms - // Index 20 (10th Dan) → 50ms - const danProgress = (currentIndex - 10) / 10 // 0.0 to 1.0 - return 500 - danProgress * 450 // 500ms down to 50ms + // 1st Dan through 10th Dan: speed up from 500ms to 10ms + // Index 11 (1st Dan) → 500ms + // Index 20 (10th Dan) → 10ms + const danProgress = (currentIndex - 11) / 9 // 0.0 to 1.0 + return 500 - danProgress * 490 // 500ms down to 10ms } const intervalMs = getAnimationInterval()