Association et Memory restent affiches une fois termines, seul Recommencer bascule
Build and deploy / test-python (push) Failing after 59s
Build and deploy / test-js (push) Failing after 52s
Build and deploy / lint-python (push) Failing after 59s
Build and deploy / lint-js (push) Failing after 1m1s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Build and deploy / sonarqube (push) Failing after 1m4s

Les deux mini-jeux gardaient jusqu'ici un ecran de resultat separe qui
remplacait le plateau de jeu (comme le Quiz). Le plateau reste desormais
visible en permanence ; seule une barre partagee .docMinigameRestartBar
apparait/disparait. Le Quiz garde son propre comportement (ecran de
resultat separe), inchange.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-20 14:43:26 +02:00
co-authored by Claude Sonnet 5
parent a34a95a3b4
commit 1b1307bb85
4 changed files with 49 additions and 43 deletions
+17 -22
View File
@@ -747,18 +747,13 @@ img.docImage {
"relier visuellement deux éléments qui vont ensemble"). Réutilise
.docQuizFeedback/.docQuizKicker (même rôle visuel) plutôt que de
dupliquer ces règles. ---- */
.docAssocCard,
.docAssocResultCard {
.docAssocCard {
background: linear-gradient(180deg, var(--doc-card), var(--doc-bg-2));
border: 1px solid var(--doc-border);
border-radius: 16px;
padding: 1.8rem;
}
.docAssocResultCard {
text-align: center;
}
.docAssocTitle {
font-size: 1.15rem;
font-weight: 700;
@@ -826,8 +821,21 @@ img.docImage {
background: var(--doc-quiz-danger-bg);
}
.docAssocRestartBtn {
/* ---- Barre de bouton "Recommencer" partagée par tous les mini-jeux SAUF
le Quiz (qui garde son propre écran de résultat séparé) : le plateau de
jeu reste affiché en permanence une fois terminé, seul ce bouton
apparaît/disparaît (voir retour utilisateur du 20/09/2026). ---- */
.docMinigameRestartBar {
display: none;
margin-top: 20px;
text-align: center;
}
.docMinigameRestartBar.is-visible {
display: block;
}
.docMinigameRestartBar button {
padding: 0.7rem 1.5rem;
border-radius: 10px;
background: transparent;
@@ -838,19 +846,6 @@ img.docImage {
cursor: pointer;
}
.docAssocResultBig {
font-size: 40px;
line-height: 1;
color: var(--doc-quiz-success-border);
}
.docAssocResultSub {
margin-top: 10px;
margin-bottom: 4px;
font-size: 14px;
color: var(--doc-text);
}
/* ---- Association : panneau Propriétés — paires reliées visuellement par
un glyphe entre les deux champs (voir forgeDocRenderAssociationPairHtml,
static/document/js/document-editor.js). Empilement VERTICAL (pas côte à
@@ -902,8 +897,8 @@ img.docImage {
/* ---- Memory : plateau de jeu (voir docs/plan/PLAN.md, "retourner des
cartes pour constituer des paires d'images identiques"). Réutilise
.docAssocTitle/.docAssocMeta/.docAssocResultCard (mêmes rôles visuels,
voir forgeDocRenderMemoryProps ci-dessus). ---- */
.docAssocTitle/.docAssocMeta/.docMinigameRestartBar (mêmes rôles
visuels, voir forgeDocRenderMemoryProps ci-dessus). ---- */
.docMemoryCardWrap {
background: linear-gradient(180deg, var(--doc-card), var(--doc-bg-2));
border: 1px solid var(--doc-border);
+12 -12
View File
@@ -653,8 +653,12 @@ function forgeDocAssociationMatchResult(playerEl, state, pairIndex, itemEl, slot
feedbackEl.textContent = 'Bonne association !';
playerEl.querySelector('.docAssocProg').textContent = `${state.matched.size} / ${state.total} associées`;
if (state.matched.size >= state.total) {
playerEl.querySelector('.docAssocCard').style.display = 'none';
playerEl.querySelector('.docAssocResultCard').style.display = 'block';
// Le plateau reste affiché une fois le jeu terminé (voir retour
// utilisateur du 20/09/2026 : "tous les mini-jeux à part le quiz
// doivent continuer à s'afficher même une fois terminé") — seul le
// bouton Recommencer apparaît, jamais un écran de résultat séparé qui
// remplacerait le plateau (ça reste le comportement du Quiz).
playerEl.querySelector('.docMinigameRestartBar').classList.add('is-visible');
}
}
@@ -728,8 +732,7 @@ function forgeDocAssociationRestart(playerEl) {
selected: null,
selectedPairIndex: null,
};
playerEl.querySelector('.docAssocResultCard').style.display = 'none';
playerEl.querySelector('.docAssocCard').style.display = 'block';
playerEl.querySelector('.docMinigameRestartBar').classList.remove('is-visible');
playerEl.querySelector('.docAssocFeedback').className = 'docAssocFeedback docQuizFeedback';
playerEl.querySelector('.docAssocProg').textContent = `0 / ${state.total} associées`;
forgeDocRenderAssociationBoard(playerEl, state);
@@ -830,12 +833,10 @@ function forgeDocMemoryUpdateProgress(playerEl, state) {
function forgeDocMemoryCheckComplete(playerEl, state) {
const done = state.mode === 'single' ? state.revealed >= state.total : state.matched >= state.totalPairs;
if (!done) return;
playerEl.querySelector('.docMemoryCardWrap').style.display = 'none';
const resultCard = playerEl.querySelector('.docMemoryResultCard');
resultCard.style.display = 'block';
playerEl.querySelector('.docMemoryResultSub').textContent = state.mode === 'single'
? 'Toutes les cartes ont été retournées !'
: 'Toutes les paires ont été trouvées !';
// Le plateau reste affiché une fois le jeu terminé (voir retour
// utilisateur du 20/09/2026) — seul le bouton Recommencer apparaît,
// jamais un écran de résultat séparé (ça reste le comportement du Quiz).
playerEl.querySelector('.docMinigameRestartBar').classList.add('is-visible');
}
function forgeDocMemoryFlip(playerEl, state, cardEl) {
@@ -885,8 +886,7 @@ function forgeDocMemoryRestart(playerEl) {
flippedCards: [],
busy: false,
};
playerEl.querySelector('.docMemoryResultCard').style.display = 'none';
playerEl.querySelector('.docMemoryCardWrap').style.display = 'block';
playerEl.querySelector('.docMinigameRestartBar').classList.remove('is-visible');
playerEl.querySelector('.docMemoryTitle').textContent = state.mode === 'single'
? 'Retournez chaque carte'
: 'Retrouvez les paires';