diff --git a/exercices/Exo_BioCID.html b/exercices/Exo_BioCID.html index bf4fba8..157ec57 100644 --- a/exercices/Exo_BioCID.html +++ b/exercices/Exo_BioCID.html @@ -17,7 +17,7 @@ justify-content: center; padding: 2rem; padding-top: calc(70px + 2rem); - padding-bottom: calc(52px + 2rem); + padding-bottom: calc(84px + 2rem); opacity: 0; transition: opacity 0.4s ease; overflow-y: auto; @@ -32,35 +32,38 @@ .progress-fill { background: var(--amber); transition: width 0.4s ease; } -/* PHASE INDICATOR */ -.phase-badge { - position: fixed; - top: 80px; right: 16px; - font-family: 'Syne', sans-serif; - font-size: 11px; - font-weight: 700; - letter-spacing: 0.08em; - text-transform: uppercase; - padding: 4px 12px; - border-radius: 20px; - z-index: 100; -} - /* BOTTOM BAR */ .bottom-bar { position: fixed; bottom: 0; left: 0; right: 0; - height: 52px; + height: 84px; background: rgba(250, 238, 218, 0.98); border-top: 2px solid var(--amber); display: flex; align-items: center; - justify-content: space-between; + justify-content: center; padding: 0 20px; z-index: 100; backdrop-filter: blur(10px); } -.slide-counter { font-size: 12px; font-family: 'Syne', sans-serif; font-weight: 600; color: var(--amber-dark); } +.bottom-actions { + display: flex; + align-items: center; + gap: 12px; + flex-wrap: wrap; + justify-content: center; +} +.slide-counter { + position: absolute; + left: 20px; + font-size: 12px; + font-family: 'Syne', sans-serif; + font-weight: 600; + color: var(--amber-dark); +} +@media (max-width: 560px) { + .slide-counter { display: none; } +} .back-btn { background: none; border: 0.5px solid var(--amber); @@ -411,13 +414,14 @@
- - - @@ -491,10 +495,6 @@ -
- - -
@@ -503,7 +503,7 @@
Exercice 2 / 4 — 5 min
Recherche par type de produit
-

Explorez les catégories disponibles à l'aide des filtres par code TP (Type Product).

+

Explorez les catégories disponibles à l'aide des filtres par TP.

-
- - -
@@ -537,10 +533,6 @@ -
- - -
@@ -567,9 +559,6 @@ -
- -
@@ -606,6 +595,14 @@ let currentSlide = 0; let history = []; const totalSlides = 6; +// Configuration des boutons du footer par slide +const slideConfig = { + 2: { hint: 'ex1', next: 3, nextLabel: 'Exercice suivant →' }, + 3: { hint: 'ex2', next: 4, nextLabel: 'Exercice suivant →' }, + 4: { hint: 'ex3', next: 5, nextLabel: 'Cas de synthèse →' }, + 5: { next: 6, nextLabel: 'Voir les bonnes pratiques →' } +}; + const hints = { ex1: { icon: '🔎', @@ -652,28 +649,33 @@ function goBack() { updateUI(); } +function goNext() { + const cfg = slideConfig[currentSlide]; + if (cfg && cfg.next != null) goTo(cfg.next); +} + +function showHintCurrent() { + const cfg = slideConfig[currentSlide]; + if (cfg && cfg.hint) showHint(cfg.hint); +} + function updateUI() { document.getElementById('progressFill').style.width = currentSlide === 0 ? '0%' : ((currentSlide / totalSlides) * 100) + '%'; const counter = document.getElementById('slideCounter'); counter.textContent = currentSlide === 0 ? '' : currentSlide + ' / ' + totalSlides; document.getElementById('bottomBar').style.display = currentSlide === 0 ? 'none' : 'flex'; - document.getElementById('backBtn').style.display = history.length > 0 ? 'block' : 'none'; + document.getElementById('backBtn').style.display = history.length > 0 ? 'inline-flex' : 'none'; - const badge = document.getElementById('phaseBadge'); - if (currentSlide >= 2 && currentSlide <= 5) { - badge.style.display = 'block'; - if (currentSlide === 5) { - badge.style.background = 'var(--coral-light)'; - badge.style.color = 'var(--coral)'; - badge.textContent = 'Cas de synthèse'; - } else { - badge.style.background = 'var(--amber-light)'; - badge.style.color = 'var(--amber-dark)'; - badge.textContent = 'Exercice ' + (currentSlide - 1) + ' / 4'; - } + const cfg = slideConfig[currentSlide] || {}; + const hintBtn = document.getElementById('footerHintBtn'); + const nextBtn = document.getElementById('footerNextBtn'); + hintBtn.style.display = cfg.hint ? 'inline-flex' : 'none'; + if (cfg.next != null) { + nextBtn.style.display = 'inline-flex'; + nextBtn.textContent = cfg.nextLabel; } else { - badge.style.display = 'none'; + nextBtn.style.display = 'none'; } }