feat: Fortschritt spürbar machen – Momente, Momentum & Storytelling

- +EP-Float am Button + hochzählendes EP-Badge (EpFloat, useCountUp)
- Level-/Streak-/Tagesziel-Overlay (MilestoneOverlay), getriggert aus der saveProgress-Response
- Combo-Zähler + variables Lob, ermutigendes Fehler-Feedback statt stillem Verschwinden
- Session-Summary mit Story-Zeilen statt End-Sackgasse
- Profil führt mit %-bis-Level + Capability-Satz; Kategorie-Stufen, Wochenvergleich, Sound-Toggle
- Level-Kurve gespiegelt (utils/leveling.js); Level deploy-unabhängig aus EP abgeleitet

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-17 21:43:56 +02:00
parent 9e8af27d51
commit 039d2cbbf4
14 changed files with 665 additions and 36 deletions

View File

@@ -0,0 +1,12 @@
import { useEffect } from 'react'
import './Moments.css'
// Kurzes „+N EP", das vom Bestätigen-Button aufschwebt — Belohnung genau dort,
// wo das Auge ist. Eltern-Element braucht position: relative.
export default function EpFloat({ points, onDone }) {
useEffect(() => {
const t = setTimeout(() => onDone?.(), 1000)
return () => clearTimeout(t)
}, [onDone])
return <span className="ep-float" aria-hidden="true">+{points} EP</span>
}