From cb2e2c7a5f9f8d75527f705370aa3f67ea202d07 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Sat, 22 Aug 2026 00:31:56 +0100 Subject: [PATCH] docs(android): record the body-state name collision next to the icon trap --- android-client/PLAN.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/android-client/PLAN.md b/android-client/PLAN.md index c5e7047..90c8641 100644 --- a/android-client/PLAN.md +++ b/android-client/PLAN.md @@ -759,6 +759,13 @@ téléphone qu'on voudra ensuite ouvrir sur le poste demandera un import. au nom de l'entrée. Sans pastille : le dessin seul, cible maintenue à 44 px. Chaque icône porte son `aria-label`. + *Piège CSS, de la même famille* : ne jamais donner à un **état du `body`** le + nom d'une classe que porte déjà un élément. Le voile d'attente s'appelait + `busy` et l'état aussi — donc `.busy { display: none }` s'appliquait au + `body`, et la page entière s'éteignait dès qu'une opération commençait. Les + états portent des noms que rien d'autre ne porte (`is-busy`, `typing`, + `selecting`, `on-list`, `on-detail`). + *Piège, à retenir avant d'ajouter le prochain bouton-icône* : la cible de l'appui devient le `` ou l'un de ses traits, jamais le bouton. Lire `ev.target.getAttribute('data-…')` rend alors `null` et le gestionnaire