diff --git a/static/style.css b/static/style.css index 9bda1b28..f282a292 100644 --- a/static/style.css +++ b/static/style.css @@ -148,13 +148,23 @@ body.builderBody > main.content{ flex:1 1 auto; min-height:0; overflow:hidden; d l'espace restant une fois "max-width" atteint, comme voulu à l'origine. */ width:100%; max-width:1600px; + /* Sans fil d'Ariane sur cette page (voir breadcrumb_wrap dans + screen_edit.html), .content garde quand même son padding par défaut + (28px en haut) — réduit ici pour que le canevas commence le plus haut + possible sur la page. */ + padding:10px 20px 8px; } /* 3 colonnes : ajout d'éléments (gauche) / écran en grand (centre) / propriétés (droite) — toutes les trois occupent exactement la même hauteur (celle qui reste disponible), avec leur propre défilement interne si leur contenu dépasse. */ -.builder3{ display:flex; gap:20px; align-items:stretch; margin-top:14px; flex:1 1 auto; min-height:0; } -.builderCanvasArea{ flex:1 1 auto; min-width:0; height:100%; overflow-y:auto; display:flex; flex-direction:column; } +.builder3{ display:flex; gap:20px; align-items:stretch; margin-top:8px; flex:1 1 auto; min-height:0; } +/* overflow:hidden (pas auto) : le défilement doit se faire DANS le + canevas lui-même (voir .canvasFrame plus bas) ou dans l'onglet actif + (.flowCanvasWrap/.animTimelineWrap ont déjà leur propre défilement), + jamais sur cette zone entière — sans quoi la barre d'onglets et la barre + d'outils défileraient avec le contenu au lieu de rester fixes en haut. */ +.builderCanvasArea{ flex:1 1 auto; min-width:0; height:100%; overflow:hidden; display:flex; flex-direction:column; } /* ---------- Panneaux gauche/droite flottants ---------- */ /* Les deux panneaux (éléments de l'écran / propriétés) sont sortis du flux @@ -233,10 +243,25 @@ body.builderBody > main.content{ flex:1 1 auto; min-height:0; overflow:hidden; d .aspectBtn.active{ background:var(--accent); border-color:var(--accent); color:#fff; } .canvasFrame{ - width:100%; padding:10px; border:1px solid var(--border); border-radius:16px; background:var(--panel); + /* flex:1 1 auto + min-height:0 : occupe tout l'espace restant sous la + barre d'outils dans .builderTabPanel (voir screen_edit.html), et c'est + LUI qui défile (overflow:auto) si le canevas ne peut pas être réduit + davantage (ex. fenêtre très basse) — jamais .builderCanvasArea (voir + plus haut), pour garder la barre d'onglets/d'outils toujours visible. */ + flex:1 1 auto; min-height:0; width:100%; padding:10px; border:1px solid var(--border); border-radius:16px; background:var(--panel); + display:flex; align-items:flex-start; justify-content:center; overflow:auto; } .canvas{ - position:relative; width:100%; max-width:100%; margin:0 auto; background:#0b0d12; border-radius:8px; + /* "Monté le plus haut possible" et "je dois voir tout l'écran" : plutôt + qu'une largeur pleine (l'ancien width:100%, qui pouvait rendre un + format Portrait bien plus haut que la fenêtre), la hauteur DISPONIBLE + devient la contrainte principale (height:100%) et la largeur se déduit + de l'aspect-ratio (posé en style inline, voir screen_edit.html) — + max-width:100% prend le relais si jamais c'est la largeur qui manque + en premier (fenêtre étroite/écran Paysage). Résultat : le canevas + entier tient toujours dans la zone visible, sans avoir à défiler pour + voir le bas de l'écran. */ + position:relative; height:100%; width:auto; max-width:100%; flex:0 0 auto; margin:0 auto; background:#0b0d12; border-radius:8px; overflow:hidden; border:1px solid var(--border); } .canvasElement{ @@ -366,6 +391,12 @@ code{ background:var(--panel2); border:1px solid var(--border); border-radius:4p body.builderBody > main.content{ overflow:visible; } .builder3{ flex-direction:column; flex:none; } .builderCanvasArea{ flex:none; width:100%; height:auto; max-height:none; overflow:visible; } + /* Le "letterboxing" par hauteur (voir .canvas plus haut) suppose une + chaîne de hauteurs définies jusqu'ici — qui n'existe plus une fois + .builderCanvasArea repassée en "height:auto" ci-dessus. Revient donc à + un dimensionnement par LARGEUR, comme une page qui défile normalement. */ + .canvasFrame{ flex:none; overflow:visible; } + .canvas{ height:auto; width:100%; } /* Trop peu de largeur pour qu'un panneau flottant ait un sens (il couvrirait tout l'écran) : les deux rejoignent la pile normale et restent toujours ouverts/visibles, quel que soit l'état mémorisé — diff --git a/templates/screen_edit.html b/templates/screen_edit.html index a3bfe719..ac002e93 100644 --- a/templates/screen_edit.html +++ b/templates/screen_edit.html @@ -6,11 +6,10 @@ {% endblock %} -{% block breadcrumb %} -
  • {{ game.name }}
  • -
  • Écrans
  • -
  • {{ screen.name }}
  • -{% endblock %} + +{% block breadcrumb_wrap %}{% endblock %} {% block content %} {% if screen.is_template %}