Skip to content

feat: gamified redesign — player card, daily quest, streaks and celeb…#45

Merged
Faustze merged 2 commits into
mainfrom
feat/gamified-redesign
Jul 13, 2026
Merged

feat: gamified redesign — player card, daily quest, streaks and celeb…#45
Faustze merged 2 commits into
mainfrom
feat/gamified-redesign

Conversation

@Faustze

@Faustze Faustze commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

…rations

Implement the high-fidelity gamified redesign from the design handoff (design_handoff_gamified_redesign/README.md) on top of the existing Vue 3 + SCSS architecture:

  • Design tokens: accent derivatives via color-mix, gold/green, denser cards, page background gradient, dark-theme overrides (_base.scss); calm keyframes only — floaty, fadeUp, popIn, riseFade, timerFill, confettiFly, ringPop (_animations.scss)
  • UiButton: tactile / tactile-secondary variants with 3D press effect
  • Sidebar: PlayerCard with SVG progress ring, XP bar and "+N XP" float; per-module +XP / done chips, locked categories block
  • Dashboard: hero with floating code glyphs, DailyQuestBanner with midnight countdown and x2 reward, count-up stats (rAF with timeout fallback), level + week-streak card, categories grid
  • Progress store: streak, daily quest, totalEarned with localStorage migration; completeModule returns a CompletionResult for celebrations
  • Topic page: chips (category, difficulty, +XP, quest x2), dark code block, live debounce demo (silence-window timer bar + event stream)
  • Celebrations behind feature flags: ConfettiBurst, LevelUpModal, useCelebration composable (config/features.ts)
  • i18n: new EN/RU keys; fix modules.deepEqual key casing that broke translations on the deepEqual page
  • Drop Nuxt pageTransition: it clashed with Suspense on async pages (insertBefore NotFoundError); screens animate via fadeUp on mount
  • Tests: Vitest suite for streak/quest/XP logic; e2e specs updated for the new markup, fixture pins the daily quest for determinism

…rations

Implement the high-fidelity gamified redesign from the design handoff
(design_handoff_gamified_redesign/README.md) on top of the existing
Vue 3 + SCSS architecture:

- Design tokens: accent derivatives via color-mix, gold/green, denser
  cards, page background gradient, dark-theme overrides (_base.scss);
  calm keyframes only — floaty, fadeUp, popIn, riseFade, timerFill,
  confettiFly, ringPop (_animations.scss)
- UiButton: tactile / tactile-secondary variants with 3D press effect
- Sidebar: PlayerCard with SVG progress ring, XP bar and "+N XP" float;
  per-module +XP / done chips, locked categories block
- Dashboard: hero with floating code glyphs, DailyQuestBanner with
  midnight countdown and x2 reward, count-up stats (rAF with timeout
  fallback), level + week-streak card, categories grid
- Progress store: streak, daily quest, totalEarned with localStorage
  migration; completeModule returns a CompletionResult for celebrations
- Topic page: chips (category, difficulty, +XP, quest x2), dark code
  block, live debounce demo (silence-window timer bar + event stream)
- Celebrations behind feature flags: ConfettiBurst, LevelUpModal,
  useCelebration composable (config/features.ts)
- i18n: new EN/RU keys; fix modules.deepEqual key casing that broke
  translations on the deepEqual page
- Drop Nuxt pageTransition: it clashed with Suspense on async pages
  (insertBefore NotFoundError); screens animate via fadeUp on mount
- Tests: Vitest suite for streak/quest/XP logic; e2e specs updated for
  the new markup, fixture pins the daily quest for determinism

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Faustze
Faustze merged commit eefe43e into main Jul 13, 2026
6 checks passed
@Faustze
Faustze deleted the feat/gamified-redesign branch July 13, 2026 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant