diff --git a/docs/implementation-artifacts/3-4-barre-progression-globale-xp-bar.md b/docs/implementation-artifacts/3-4-barre-progression-globale-xp-bar.md
index 27a01bc..1302bec 100644
--- a/docs/implementation-artifacts/3-4-barre-progression-globale-xp-bar.md
+++ b/docs/implementation-artifacts/3-4-barre-progression-globale-xp-bar.md
@@ -1,6 +1,6 @@
# Story 3.4: Barre de progression globale (XP bar)
-Status: ready-for-dev
+Status: review
## Story
@@ -21,48 +21,46 @@ so that je sais combien il me reste à découvrir.
## 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
+- [x] **Task 1: Créer le composant ProgressBar** (AC: #1, #3, #5, #6)
+ - [x] Créer `frontend/app/components/feature/ProgressBar.vue`
+ - [x] Props : percent (number), showTooltip (boolean)
+ - [x] Design XP bar style RPG avec sky-accent
+ - [x] Animation fluide de remplissage (CSS transition)
+ - [x] 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
+- [x] **Task 2: Implémenter le tooltip des sections** (AC: #4)
+ - [x] Afficher au hover la liste des sections
+ - [x] Indiquer le statut : visitée (✓) ou à découvrir
+ - [x] Tooltip custom avec Transition
+ - [x] 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
+- [x] **Task 3: Intégrer dans le header** (AC: #1, #8)
+ - [x] Ajouter la ProgressBar dans le composant Header
+ - [x] Conditionner l'affichage : visible uniquement en mode Aventure (hero !== null)
+ - [x] 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)
+- [x] **Task 4: Calculer le pourcentage** (AC: #2)
+ - [x] Définir les 4 sections : projets, competences, temoignages, parcours
+ - [x] Chaque section visitée = 25%
+ - [x] Lire depuis `visitedSections` du store
+ - [x] Le calcul est fait dans le store (progressPercent/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
+- [x] **Task 5: Version mobile** (AC: #7)
+ - [x] Sur mobile, la barre est masquée du header
+ - [x] La progression est accessible via ProgressIcon.vue (cercle)
+ - [x] Un tap affiche un 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
+- [x] **Task 6: Effets visuels RPG** (AC: #5)
+ - [x] Effet de brillance/glow au survol
+ - [x] Bordure stylisée évoquant un cadre de jeu
+ - [x] Graduation subtile sur la barre (4 segments)
-- [ ] **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
+- [x] **Task 7: Tests et validation**
+ - [x] Tester l'animation de remplissage
+ - [x] Vérifier le tooltip (desktop)
+ - [x] Valider la version mobile (ProgressIcon)
+ - [x] Tester prefers-reduced-motion
+ - [x] Vérifier que la barre est masquée si pas de héros choisi
## Dev Notes
diff --git a/docs/implementation-artifacts/sprint-status.yaml b/docs/implementation-artifacts/sprint-status.yaml
index 54eff2c..7e2eaa8 100644
--- a/docs/implementation-artifacts/sprint-status.yaml
+++ b/docs/implementation-artifacts/sprint-status.yaml
@@ -74,7 +74,7 @@ development_status:
3-1-table-narrator-texts-api-narrateur: review
3-2-composant-narratorbubble-le-bug: review
3-3-textes-narrateur-contextuels-arc-revelation: review
- 3-4-barre-progression-globale-xp-bar: ready-for-dev
+ 3-4-barre-progression-globale-xp-bar: review
3-5-logique-progression-deblocage-contact: ready-for-dev
3-6-carte-interactive-desktop-konvajs: ready-for-dev
3-7-navigation-mobile-chemin-libre-bottom-bar: ready-for-dev
diff --git a/frontend/app/components/feature/ProgressBar.vue b/frontend/app/components/feature/ProgressBar.vue
new file mode 100644
index 0000000..4b72697
--- /dev/null
+++ b/frontend/app/components/feature/ProgressBar.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
diff --git a/frontend/app/components/feature/ProgressIcon.vue b/frontend/app/components/feature/ProgressIcon.vue
new file mode 100644
index 0000000..1e1e3b7
--- /dev/null
+++ b/frontend/app/components/feature/ProgressIcon.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+ {{ t('progress.summary', { visited: visitedCount, remaining: remainingCount }) }}
+
+ {{ t('progress.title') }}
+
+
+
+
+
+