# Story 3.4: Barre de progression globale (XP bar)
Status: ready-for-dev
## Story
As a visiteur,
I want voir ma progression dans l'exploration du site,
so that je sais combien il me reste à découvrir.
## Acceptance Criteria
1. **Given** le visiteur est en mode Aventure **When** il navigue sur le site **Then** une barre de progression discrète s'affiche dans le header
2. **And** le pourcentage est calculé selon les sections visitées (Projets, Compétences, Témoignages, Parcours)
3. **And** l'animation de la barre est fluide lors des mises à jour
4. **And** un tooltip au hover indique les sections visitées et restantes
5. **And** le design évoque une barre XP style RPG (cohérent avec `sky-accent`)
6. **And** la barre respecte `prefers-reduced-motion` (pas d'animation si activé)
7. **And** sur mobile, la progression est accessible via la bottom bar
8. **And** la barre n'est pas visible en mode Express/Résumé
## Tasks / Subtasks
- [ ] **Task 1: Créer le composant ProgressBar** (AC: #1, #3, #5, #6)
- [ ] Créer `frontend/app/components/feature/ProgressBar.vue`
- [ ] Props : percent (number), showTooltip (boolean)
- [ ] Design XP bar style RPG avec sky-accent
- [ ] Animation fluide de remplissage (CSS transition)
- [ ] Respecter prefers-reduced-motion
- [ ] **Task 2: Implémenter le tooltip des sections** (AC: #4)
- [ ] Afficher au hover la liste des sections
- [ ] Indiquer le statut : visitée (✓) ou à découvrir
- [ ] Utiliser Headless UI Popover ou tooltip custom
- [ ] Traductions FR/EN
- [ ] **Task 3: Intégrer dans le header** (AC: #1, #8)
- [ ] Ajouter la ProgressBar dans le composant Header
- [ ] Conditionner l'affichage : visible uniquement en mode Aventure
- [ ] Masquer si `expressMode === true` dans le store
- [ ] Position : à droite du header, avant le language switcher
- [ ] **Task 4: Calculer le pourcentage** (AC: #2)
- [ ] Définir les 4 sections : projets, competences, temoignages, parcours
- [ ] Chaque section visitée = 25%
- [ ] Lire depuis `visitedSections` du store
- [ ] Le calcul est fait dans le store (completionPercent)
- [ ] **Task 5: Version mobile** (AC: #7)
- [ ] Sur mobile, la barre est masquée du header
- [ ] La progression est accessible via l'icône dans la bottom bar
- [ ] Un tap affiche un mini-modal ou drawer avec le détail
- [ ] **Task 6: Effets visuels RPG** (AC: #5)
- [ ] Effet de brillance/glow au survol
- [ ] Particules optionnelles quand la barre augmente
- [ ] Bordure stylisée évoquant un cadre de jeu
- [ ] Graduation subtile sur la barre
- [ ] **Task 7: Tests et validation**
- [ ] Tester l'animation de remplissage
- [ ] Vérifier le tooltip (desktop)
- [ ] Valider la version mobile (bottom bar)
- [ ] Tester prefers-reduced-motion
- [ ] Vérifier que la barre est masquée en mode Express
## Dev Notes
### Composant ProgressBar
```vue