# Delta 0.3.0-0-pre.4.fix.3 ## Objectif Aligner le scroll SimpleBar du host Snake Web sur le shell réellement utilisé par les applications Desk KSP après validation réussie du build `0-pre.4.fix.2`. ## Diagnostic La comparaison avec `ksp-app-*-desk` confirme que le package et le Sass SimpleBar étaient présents, mais que le conteneur n'était pas structuré comme la référence : - KSP garde `app-main` comme conteneur de hauteur bornée et non scrollable ; - un enfant `row h-100` porte la zone centrale ; - `data-simplebar` est attaché à `app-content app-scrollable h-100` ; - `app-scrollable` et `app-content` ont `height: 100%` / `max-height: 100%` ; - `main.ts` importe `resize-observer-polyfill` puis `simplebar` et installe le polyfill global avant l'initialisation de l'application. Le point d'entrée TypeScript Snake suit déjà ce dernier contrat ; le défaut se situe donc dans la structure HTML/Sass. ## Corrigé - `data-simplebar` est déplacé de `app-main` vers `app-content app-scrollable h-100` ; - ajout du conteneur `row g-0 h-100 flex-nowrap` comme dans le shell KSP ; - `app-main` reste borné à la hauteur disponible entre header et footer ; - `app-scrollable` et `app-content` portent explicitement `height: 100%` et `max-height: 100%` ; - la règle `GAME-PLATFORM-023` pérennise ce contrat lorsque le shell KSP/SimpleBar est réutilisé ; - `audit_distribution_layout.py` vérifie statiquement que `data-simplebar` reste sur la zone centrale et que le bootstrap TypeScript/Sass requis est présent ; - la documentation frontend et le plan `0.3.0` sont réconciliés ; - `history/0.3.0/0-pre.4.fix.2.md` consigne la validation réussie du build et le défaut visuel restant. ## Non modifié - gameplay Snake ; - bridge WASM et cadence ; - ratio Canvas `3 / 5` ; - mapping clavier/pointer ; - dépendances npm ; - lifecycle complet, assets, logging et provenance prévus pour `0-pre.5`. ## Validation demandée Depuis la racine : ```bash cargo fmt --all cargo fmt --all -- --check python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android Web deltas history python3 scripts/audit_distribution_layout.py cargo check --workspace cargo clippy --workspace --all-targets --all-features -- -D warnings cargo test -p game-snake-poc-wasm cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown wasm-bindgen ../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm --target web --out-dir ../builds/sasedev-games/game-snake-poc-web/wasm --out-name game_snake_poc_wasm (cd Web/game-snake-poc && npm install && npm run build && npm run dev) ``` Smoke navigateur sur `http://127.0.0.1:1434/main.html` : réduire la hauteur de fenêtre ou utiliser un viewport assez bas pour forcer le dépassement vertical, puis vérifier que seule la zone centrale défile avec SimpleBar tandis que header et footer restent fixes. Vérifier aussi que Canvas, clavier et boutons pointer restent fonctionnels. ## Suite Après validation du scroll SimpleBar, `0-pre.5` peut ouvrir l'intégration plateforme complète prévue par le plan actif.