Boîte de dialogue (superposition) stylisée avec les classes Bulma

Le widget "Superposition / boîte de dialogue" gagne les classes Bulma
"modal is-active" (sur le voile plein écran) et "box" (sur la boîte
centrée), en PLUS du style inline existant — jamais à sa place : tout le
positionnement/masquage critique (position:fixed, z-index, display) reste
en inline, qui gagne toujours sur une règle de classe. Si Bulma (chargé
depuis un CDN, voir play.html) ne se charge pas (hors-ligne), la boîte de
dialogue continue de fonctionner exactement pareil — ces classes n'ajoutent
qu'un habillage visuel (ombre, base de police/espacement Bulma) qui se
dégrade sans rien casser.

Pas de ".modal-background" séparé (convention Bulma habituelle) : le
voile semi-transparent est déjà posé en inline sur la même balise
(background:rgba(...)), un second calque tout aussi transparent
par-dessus n'aurait ajouté qu'un assombrissement redondant.

137 tests toujours au vert (changement purement visuel, aucune assertion
cassée) ; jeu de démo régénéré et vérifié (classes bien présentes dans le
rendu).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-08-28 06:10:17 +02:00
co-authored by Claude Sonnet 5
parent 7c0f1ed427
commit d87d6addce
+14 -3
View File
@@ -22,7 +22,18 @@ def _render_overlay(el, meta, slug, children_map=None, ctx=None, parent_flex_dir
fusionne le style de positionnement fixe ci-dessous AVEC le style normal fusionne le style de positionnement fixe ci-dessous AVEC le style normal
de l'élément (_style_string) : si l'élément est réglé "Masqué" dans ses de l'élément (_style_string) : si l'élément est réglé "Masqué" dans ses
propriétés, ou si une action "Modifier un élément" le cache plus tard, propriétés, ou si une action "Modifier un élément" le cache plus tard,
ce masquage continue de fonctionner normalement.""" ce masquage continue de fonctionner normalement.
Classes Bulma ("modal is-active" / "box") posées en PLUS du style
inline existant, jamais à sa place : tout le positionnement/masquage
critique (position:fixed, z-index, display) reste en inline, qui gagne
toujours sur une règle de classe — si Bulma (chargé depuis un CDN, voir
play.html) ne se charge pas (hors-ligne), la boîte de dialogue continue
de fonctionner exactement pareil, ces classes n'ajoutant qu'un habillage
visuel (ombre, base de police) qui se dégrade sans casser quoi que ce
soit. Pas de ".modal-background" séparé : le voile semi-transparent est
déjà posé en inline sur cette même balise (background:rgba(...)) — un
second calque tout aussi transparent par-dessus n'ajouterait rien."""
attrs_raw = el.get("attributes") or {} attrs_raw = el.get("attributes") or {}
box_color = attrs_raw.get("_couleur_boite") or "#1f2430" box_color = attrs_raw.get("_couleur_boite") or "#1f2430"
radius = attrs_raw.get("_arrondi") or "12" radius = attrs_raw.get("_arrondi") or "12"
@@ -53,7 +64,7 @@ def _render_overlay(el, meta, slug, children_map=None, ctx=None, parent_flex_dir
) )
child_html = _render_children(el, slug, children_map, ctx) child_html = _render_children(el, slug, children_map, ctx)
return ( return (
f'<div {" ".join(attr_parts)}>' f'<div class="modal is-active" {" ".join(attr_parts)}>'
f'<div class="forgeOverlayBox" style="{html_lib.escape(box_style)}">{child_html}</div>' f'<div class="box forgeOverlayBox" style="{html_lib.escape(box_style)}">{child_html}</div>'
f"</div>" f"</div>"
) )