La page ne grandit plus verticalement avec son contenu ; les mots trop longs se coupent

- .docPage n'avait que aspect-ratio pour dériver sa hauteur depuis sa
  largeur — insuffisant en pratique : la page grandissait pour
  accueillir tout le contenu au lieu de le clipser (overflow:hidden)
  et laisser forgeDocCheckPageOverflow gérer la pagination (retour
  utilisateur du 23/09/2026 : "le contenu ne dois jamais s'adapter
  verticalement"). Ajoute un filet de sécurité : max-height calculé
  explicitement (calc() à partir d'une nouvelle variable
  --doc-page-width, source unique partagée avec width et le mode
  aperçu à largeur fixe) + min-height:0 explicite, qui plafonnent
  la hauteur quoi qu'il arrive.
- .docText n'avait aucune gestion de mot trop long sans espace —
  débordait hors de la page au lieu de se couper (retour utilisateur
  du 23/09/2026 : "les élément paragraphe ne vont pas a la ligne").
  Ajoute overflow-wrap:break-word (jamais word-break:break-all, qui
  casserait aussi les mots normaux sans raison).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-23 11:56:10 +02:00
co-authored by Claude Sonnet 5
parent c6e173589f
commit 6056a263da
+28 -2
View File
@@ -364,9 +364,25 @@ body.objectEditBody > main.content {
comme un vrai logiciel de diaporama ne reflow jamais automatiquement comme un vrai logiciel de diaporama ne reflow jamais automatiquement
une diapositive trop pleine. */ une diapositive trop pleine. */
.docPage { .docPage {
width: 960px; /* --doc-page-width : SOURCE UNIQUE utilisée à la fois par width et par
le calcul de max-height ci-dessous (jamais deux nombres séparés à
tenir synchronisés) — .docPage--fixedWidth et le point de rupture
mobile la redéfinissent, max-height suit automatiquement. */
--doc-page-width: 960px;
width: var(--doc-page-width);
max-width: 100%; max-width: 100%;
aspect-ratio: 297 / 210; aspect-ratio: 297 / 210;
/* Filet de sécurité en plus d'aspect-ratio (retour utilisateur du
23/09/2026 : "le contenu ne dois jamais s'adapter verticalement" —
bug réel constaté : un <div> flex (voir .docCanvasArea) applique
une "taille minimale automatique" à ses enfants qui peut agrandir
la page au-delà de la hauteur dérivée d'aspect-ratio pour éviter de
rogner leur contenu ; max-height fixe un plafond dur qu'aucun
contenu ne peut dépasser, quelle que soit cette mécanique). */
max-height: calc(var(--doc-page-width) * 210 / 297);
min-height: 0;
background: var(--doc-card); background: var(--doc-card);
border: 1px solid var(--doc-border); border: 1px solid var(--doc-border);
border-radius: 16px; border-radius: 16px;
@@ -389,7 +405,9 @@ body.objectEditBody > main.content {
} }
.docPage.docPage--fixedWidth { .docPage.docPage--fixedWidth {
width: var(--doc-preview-width, 760px); --doc-page-width: var(--doc-preview-width, 760px);
width: var(--doc-page-width);
padding: 28px 20px; padding: 28px 20px;
} }
@@ -475,6 +493,14 @@ body.objectEditBody > main.content {
.docText { .docText {
outline: none; outline: none;
/* Un mot sans espace plus long que la largeur du bloc doit se couper
plutôt que déborder hors de la page (retour utilisateur du
23/09/2026 : "les élément paragraphe ne vont pas à la ligne") —
overflow-wrap (jamais word-break:break-all, qui casserait même les
mots normaux au milieu sans raison) ne coupe QUE si le mot ne tient
vraiment pas sur une ligne. */
overflow-wrap: break-word;
} }
.docImage.docImagePlaceholder { .docImage.docImagePlaceholder {