feat: charte graphique des boutons (primary/secondary/danger)

Override CSS scopé aux classes .btn-* (jamais les variables --bs-* racine,
donc alertes/badges inchangés) pour remplacer les couleurs dérivées du thème
Simplex (danger mauve, secondary gris illisible). Trois rôles : la couleur
encode la fonction, le remplissage l'emphase.

- primary terracotta : action principale validante
- secondary gris ardoise : action neutre/alternative (lisible)
- danger rouge #c0392b : destructif (outline par défaut, plein en confirmation)

Audit + conformation des usages :
- compte_admin « Supprimer mon compte » : primary outline -> danger outline
- compte_abonnement « Me désabonner » : outline-primary -> outline-danger
- compte_abonnement « Je suis sûr » : outline-primary -> danger plein

Tests : ajout tests/test_boutons.py (garde de non-régression du primary).
conftest : implémente le hook pytest_setup_options (--headless=new) ; la
fixture chrome_options n'était jamais utilisée par dash.testing, d'où les
fenêtres Chrome qui s'ouvraient pendant les tests.

Specs et plan : docs/superpowers/{specs,plans}/2026-06-30-charte-boutons*.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-06-30 13:21:24 +02:00
parent d436fd4d9e
commit 0cfafedeef
7 changed files with 567 additions and 25 deletions
+2 -2
View File
@@ -175,7 +175,7 @@ def _active_view(row):
"Me désabonner",
id="resiliation-trigger",
n_clicks=0,
className="btn btn-outline-primary mt-3",
className="btn btn-outline-danger mt-3",
)
)
@@ -211,7 +211,7 @@ def _resiliation_modal(end):
html.Button(
"Je suis sûr",
type="submit",
className="btn btn-outline-primary",
className="btn btn-danger",
),
],
style={"display": "inline"},
+1 -1
View File
@@ -112,7 +112,7 @@ def _danger_section():
dbc.Button(
"Supprimer mon compte",
id="delete-open",
color="primary",
color="danger",
outline=True,
),
dbc.Modal(