Recette 1g : textes corrigés, boutons en bas, barre haute en paysage

Leçon 1 §2 (flèche 7 vide, 5 déjà bloqué), leçon 2 « Faire des points »,
flèches 7 à 12, reformulations des leçons 3 et 4. Écran des leçons et du
tutoriel : « Retour » et « Continuer » en bas en portrait, « Revoir » sur
la ligne du titre, ligne « Leçon n · … » gardée en paysage. Barre haute
visible hors de l'écran de jeu en paysage (défaut antérieur à 1g), avec
un contrôle dans la recette automatique. Rappel des règles haut de
44 px ; « Aucune leçon terminée sur 5 · … » sur l'accueil.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-12 13:55:17 +01:00
co-authored by Claude Opus 5.5
parent 5d0f7a9616
commit 351482fa9e
15 changed files with 147 additions and 49 deletions
+21
View File
@@ -99,6 +99,27 @@ export async function hiddenUnderActionBar(target) {
});
}
/**
* La barre haute (Aide, Plein écran, Menu) hors de l'écran de jeu : sur une
* page (accueil, leçons, aide…) qui n'a pas son propre en-tête, elle doit
* rester visible, en paysage comme en portrait ; sans elle, le menu est
* inaccessible (recette 1g). Renvoie un problème décrit, ou null.
*/
export async function missingTopbar(target) {
return target.evaluate(() => {
const root = document.documentElement;
if (!root.classList.contains("page-open") || root.classList.contains("bare")) {
return null;
}
const bar = document.querySelector(".topbar");
const r = bar?.getBoundingClientRect();
const shown = bar !== null && getComputedStyle(bar).display !== "none" && r.height > 0;
return shown
? null
: `barre haute absente sur ${root.dataset.screen} (${innerWidth}x${innerHeight})`;
});
}
/**
* Les largeurs d'un écran du tutoriel, en px CSS : le plateau, la colonne
* de texte, et la largeur de la page (scrollWidth) face à celle de l'écran.