Dev #4
@@ -60,7 +60,18 @@ def _render_overlay(el, meta, slug, children_map=None, ctx=None, parent_flex_dir
|
||||
# bord à bord peu lisible comme dialogue — 560px reste une largeur
|
||||
# de boîte de dialogue confortable, tout en retombant sur 90% sur un
|
||||
# écran de jeu étroit (mobile/portrait) pour ne jamais déborder.
|
||||
"padding:24px; width:100%; max-width:min(560px, 90%); max-height:90%; overflow:auto; box-sizing:border-box;"
|
||||
# color:#e8eaf0 : la classe Bulma ".box" (ajoutée ci-dessous) impose
|
||||
# elle-même une couleur de texte SOMBRE (pensée pour un fond blanc
|
||||
# par défaut) — comme aucun widget ne fige de couleur de texte à sa
|
||||
# création (default_style_for_widget.py), un titre/texte posé dans
|
||||
# la boîte SANS couleur personnalisée héritait de ce gris sombre
|
||||
# imposé par Bulma, invisible sur le fond sombre par défaut de cette
|
||||
# boîte de dialogue (texte "présent mais invisible", pas de bug côté
|
||||
# utilisateur). On redonne donc ici une couleur claire par défaut,
|
||||
# que Bulma ne peut plus écraser (élément le plus proche gagne) —
|
||||
# un texte/titre qui personnalise sa propre couleur reste bien sûr
|
||||
# prioritaire sur celle-ci.
|
||||
"color:#e8eaf0; padding:24px; width:100%; max-width:min(560px, 90%); max-height:90%; overflow:auto; box-sizing:border-box;"
|
||||
)
|
||||
child_html = _render_children(el, slug, children_map, ctx)
|
||||
return (
|
||||
|
||||
@@ -181,6 +181,28 @@ def test_overlay_widget_renders_fullscreen_fixed_box(client, game):
|
||||
assert "forgeOverlayBox" in snippet
|
||||
|
||||
|
||||
def test_overlay_box_default_text_color_survives_the_bulma_box_class(client, game):
|
||||
"""Régression : la classe Bulma ".box" (voir render_overlay.py) impose
|
||||
elle-même une couleur de texte SOMBRE, pensée pour un fond blanc. Un
|
||||
texte posé dans la boîte SANS couleur personnalisée (le cas par défaut
|
||||
— aucun widget ne fige de couleur à sa création, voir
|
||||
default_style_for_widget.py) héritait donc de ce gris sombre, invisible
|
||||
sur le fond sombre par défaut de la boîte — "j'ai mis un texte dedans
|
||||
mais il ne se voit pas", sans la moindre erreur serveur. La boîte doit
|
||||
donc fixer elle-même une couleur de texte claire par défaut, que Bulma
|
||||
ne peut plus écraser (élément le plus proche gagne)."""
|
||||
screen_id = _create_screen(client, game)
|
||||
overlay_id = _add_element(client, game, screen_id, "superposition")
|
||||
client.post(f"/game/{game}/elements/{overlay_id}/children/add", data={"widget": "texte"})
|
||||
|
||||
resp = client.get(f"/game/{game}/play")
|
||||
html = resp.data.decode()
|
||||
idx = html.find("forgeOverlayBox")
|
||||
assert idx != -1
|
||||
box_tag = html[html.rfind("<div", 0, idx):idx + 200]
|
||||
assert "color:#e8eaf0" in box_tag
|
||||
|
||||
|
||||
def test_overlay_wrapper_does_not_trap_its_own_z_index(client, game):
|
||||
"""Régression : le cadre .playElement/.canvasElement partagé par TOUS
|
||||
les widgets (voir filters/element_style_filter.py) posait quand même
|
||||
|
||||
Reference in New Issue
Block a user