Python 33.5%
JavaScript 30.1%
TypeScript 25%
CSS 10%
Shell 1.4%
1# Standard KA Nav v2 — menu mobile plein écran (2026-08-25)23## Problème corrigé4Sur mobile, plusieurs sites KA affichaient soit des liens de nav qui wrappent dans le5header (2-3 lignes), soit un dropdown `position:absolute` ancré au header. Quand le6header n'est pas sticky (ou que le panneau est ancré au flux du document), ouvrir le7menu en bas de page ne montre RIEN — le panneau se dessine hors écran. Rendu incohérent8d'un site à l'autre.910## Standard (obligatoire sur tous les sites publics KA)11- Desktop (>760px) : nav pilules inline inchangée.12- Mobile (≤760px) : les liens inline sont masqués, remplacés par un bouton hamburger13 44×44 (3 barres → ✕ animé, `aria-expanded`).14- Panneau : `position:fixed; inset:0; z-index:var(--z-modal,900); background:var(--paper)`15 → TOUJOURS visible, peu importe la position de scroll (c'est le fix du bug).16 Structure : barre du haut (marque + bouton ✕ 44px) / liens géants numérotés17 (font-display 700, min-height 52px, bordure pointillée) / pied (badge Groupe KA +18 liens secondaires), `padding-bottom:max(20px, env(safe-area-inset-bottom))`.19- Verrou de scroll : classe `ka-menu-locked` sur `<html>` (`overflow:hidden`).20- Fermeture : clic sur un lien, ✕, touche Escape. Le panneau s'ouvre sans animation21 lourde (fade+translate 160ms max).22- A11y : `role="dialog" aria-modal="true"`, `aria-label="Menu"`, focus visible.23- Thème automatique par app via tokens : `--paper, --ink, --ink-2, --ink-3, --accent,24 --on-accent, --accent-soft, --font-display, --font-mono, --z-modal`.25- Référence Next.js : vrai-prix `src/components/HeaderNav.tsx` (checkbox + peer-checked).26- Référence vanilla SPA : `ka-nav.css` + `ka-nav.js` de ce dossier (copiés/adaptés27 dans chaque index.html monolithique).2829## Règles30- JAMAIS de dropdown `position:absolute` ancré au header pour le menu mobile.31- **Le ✕ de fermeture DOIT vivre DANS le panneau** (barre interne ou bouton32 `position:fixed` en haut à droite), jamais uniquement dans le header : si le33 header n'est pas épinglé (bas de page, sticky cassé par un ancêtre overflow),34 le burger→✕ défile hors écran alors que le panneau fixed reste affiché35 (bug corrigé le 2026-08-25 sur les 6 apps React + trouve-ka : `.mm-close`36 fixed + burger `visibility:hidden` à l'ouverture — une seule commande).37- Le hamburger et le ✕ font ≥44×44px (cible tactile).38- Les liens du panneau reprennent EXACTEMENT les liens de la nav desktop (+ liens39 secondaires du footer si pertinent), i18n fr-CA.40- L'état actif (page courante) est marqué dans le panneau (fond --ink, texte --accent41 ou inversion propre au thème).42