Refonte design system — Phase C : en-tête de page (accueil, tableau de bord)

- index.html ("Mes jeux") : le <h1> nu est remplacé par l'en-tête de page
  compact du §5 (.dashPanelHeader, déjà utilisé ailleurs pour ce
  patron) — titre + badge du nombre de jeux (.forge-badge) sur une seule
  ligne. Pas de second CTA : le formulaire de création reste dans sa
  colonne dédiée, un bouton de plus ferait doublon.
- game_dashboard.html : ajout du même en-tête, absent jusqu'ici (la page
  démarrait directement sur la barre d'onglets) — nom du jeu + chemin du
  dossier, pour savoir sur quel jeu on se trouve sans avoir à regarder
  l'URL.
- styles/forge-custom.scss : .content-objectEdit > h1/.hint/form/
  .warningBanner (règle qui fige la hauteur des enfants directs non
  extensibles dans la mise en page flex de l'accueil) étendue à
  .dashPanelHeader, qui remplace maintenant le <h1> direct.
- profile.html : déjà conforme (rayons de boîte/bouton, danger tokenisé)
  depuis le passage global des tokens en Phase A — aucun changement
  supplémentaire nécessaire.

197 tests toujours verts ; vérification ciblée (fixture jetable, supprimée
ensuite) confirmant l'en-tête et le JS du tableau de bord.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-08-29 08:08:55 +02:00
co-authored by Claude Sonnet 5
parent 62d25dbdce
commit 9157b16038
4 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -12411,7 +12411,7 @@ body.objectEditBody > main.content {
min-height: 0; min-height: 0;
} }
.content-objectEdit > h1, .content-objectEdit > .hint, .content-objectEdit > form, .content-objectEdit > .warningBanner { .content-objectEdit > h1, .content-objectEdit > .dashPanelHeader, .content-objectEdit > .hint, .content-objectEdit > form, .content-objectEdit > .warningBanner {
flex: 0 0 auto; flex: 0 0 auto;
} }
+1 -1
View File
@@ -130,7 +130,7 @@ body.objectEditBody > #pageChrome{ flex:0 0 auto; }
body.objectEditBody > main.content{ flex:1 1 auto; min-height:0; overflow:hidden; display:flex; flex-direction:column; } body.objectEditBody > main.content{ flex:1 1 auto; min-height:0; overflow:hidden; display:flex; flex-direction:column; }
.content-objectEdit{ width:100%; display:flex; flex-direction:column; min-height:0; } .content-objectEdit{ width:100%; display:flex; flex-direction:column; min-height:0; }
.content-objectEdit > h1, .content-objectEdit > .hint, .content-objectEdit > form, .content-objectEdit > .warningBanner{ flex:0 0 auto; } .content-objectEdit > h1, .content-objectEdit > .dashPanelHeader, .content-objectEdit > .hint, .content-objectEdit > form, .content-objectEdit > .warningBanner{ flex:0 0 auto; }
/* Un <form> qui doit envelopper les DEUX colonnes à la fois (un seul /* Un <form> qui doit envelopper les DEUX colonnes à la fois (un seul
formulaire soumis ensemble, ex. object_form.html : nom de l'objet à formulaire soumis ensemble, ex. object_form.html : nom de l'objet à
+5
View File
@@ -3,6 +3,11 @@
{% block content_class %}content-wide{% endblock %} {% block content_class %}content-wide{% endblock %}
{% block content %} {% block content %}
<div class="dashPanelHeader">
<h2 class="title is-4 mb-0">{{ game.name }}</h2>
<span class="hint">projects/{{ game.slug }}/</span>
</div>
<!-- Une seule fenêtre, un onglet par catégorie (même principe que les <!-- Une seule fenêtre, un onglet par catégorie (même principe que les
onglets "Écran / Logique / Timeline" de l'éditeur d'écran, voir onglets "Écran / Logique / Timeline" de l'éditeur d'écran, voir
.builderTabs/.builderTabBtn/.builderTabPanel dans style.css) — pour .builderTabs/.builderTabBtn/.builderTabPanel dans style.css) — pour
+4 -1
View File
@@ -3,7 +3,10 @@
{% block content_class %}content-wide content-objectEdit{% endblock %} {% block content_class %}content-wide content-objectEdit{% endblock %}
{% block body_class %}objectEditBody{% endblock %} {% block body_class %}objectEditBody{% endblock %}
{% block content %} {% block content %}
<h1 class="title">Mes jeux</h1> <div class="dashPanelHeader">
<h2 class="title is-4 mb-0">Mes jeux</h2>
<span class="forge-badge">{{ games|length }} jeu{{ 's' if games|length != 1 else '' }}</span>
</div>
<div class="twoCol"> <div class="twoCol">
<div class="colLeft"> <div class="colLeft">