Gerer les debordements et la taille adaptative du texte sur les cartes de sorts #69

Closed
opened 2026-07-02 11:37:34 +00:00 by Reliodas · 3 comments
Owner

Contexte

Les tickets #12 (debordements) et #40 (taille de texte adaptative) ont ete traites uniquement pour creatures.html. L'editeur de sorts (spells.html) n'a aucun mecanisme equivalent : quand le contenu d'une carte est trop long, il est simplement tronque en bas de carte, sans reduction de police ni avertissement.

Cas concret apparu avec l'import des sorts officiels PHB 2024 (#50, lettre C) : la carte « Controle de l'eau » (5 blocs officiels : intro, Controle du courant, Crue, Separation des eaux, Tourbillon) deborde d'environ 157 px en apercu ; le bloc Tourbillon est coupe. C'est la seule carte sur les 96 sorts actuels (lettres A a C partielle), mais les lettres suivantes contiendront d'autres sorts aussi denses (Invocation de..., Souhait, etc.).

Modifications a faire

  • Reprendre l'approche de creatures.html (algorithme de fit, constantes BODY_FONT_SIZES_*) et l'appliquer au corps des cartes de sorts (blocs, Emplacement de niveau superieur), en apercu comme a l'impression.
  • Conserver un avertissement explicite quand meme la taille minimale ne suffit pas (comportement #12).
  • Documenter si la logique est partagee via shared.js ou dupliquee dans chaque editeur (decision deja evoquee dans #40).

Criteres d'acceptation

  • La carte « Controle de l'eau » affiche l'integralite de ses blocs (police reduite si necessaire) ou signale clairement le debordement.
  • Les cartes de sorts courtes ne regressent pas (taille inchangee ou plus lisible).
  • Le rendu imprime reste coherent avec l'apercu et independant du zoom de previsualisation.
  • Verification sur au moins la carte « Controle de l'eau » et une carte courte, ou couverture par la validation visuelle.
## Contexte Les tickets #12 (debordements) et #40 (taille de texte adaptative) ont ete traites uniquement pour creatures.html. L'editeur de sorts (spells.html) n'a aucun mecanisme equivalent : quand le contenu d'une carte est trop long, il est simplement tronque en bas de carte, sans reduction de police ni avertissement. Cas concret apparu avec l'import des sorts officiels PHB 2024 (#50, lettre C) : la carte « Controle de l'eau » (5 blocs officiels : intro, Controle du courant, Crue, Separation des eaux, Tourbillon) deborde d'environ 157 px en apercu ; le bloc Tourbillon est coupe. C'est la seule carte sur les 96 sorts actuels (lettres A a C partielle), mais les lettres suivantes contiendront d'autres sorts aussi denses (Invocation de..., Souhait, etc.). ## Modifications a faire - Reprendre l'approche de creatures.html (algorithme de fit, constantes BODY_FONT_SIZES_*) et l'appliquer au corps des cartes de sorts (blocs, Emplacement de niveau superieur), en apercu comme a l'impression. - Conserver un avertissement explicite quand meme la taille minimale ne suffit pas (comportement #12). - Documenter si la logique est partagee via shared.js ou dupliquee dans chaque editeur (decision deja evoquee dans #40). ## Criteres d'acceptation - La carte « Controle de l'eau » affiche l'integralite de ses blocs (police reduite si necessaire) ou signale clairement le debordement. - Les cartes de sorts courtes ne regressent pas (taille inchangee ou plus lisible). - Le rendu imprime reste coherent avec l'apercu et independant du zoom de previsualisation. - Verification sur au moins la carte « Controle de l'eau » et une carte courte, ou couverture par la validation visuelle.
Reliodas added this to the 1.0.0-beta milestone 2026-07-02 11:37:34 +00:00
Author
Owner

Extension du perimetre a creatures.html

Le meme defaut de rendu existe cote editeur de creatures (creatures.html), pas seulement sur les sorts.

L'algorithme d'ajustement de taille adaptative (#40) est cense reduire la police puis, en dernier recours, afficher l'avertissement de debordement (#12). Or sur les statblocks les plus denses, il choisit une taille (5 a 8 px, au-dessus du plancher 4,5 px) qu'il considere comme tenant dans la carte, alors que la derniere ligne est visuellement rognee et qu'aucun avertissement 'is-overflow' n'est declenche.

Cas concrets apparus avec l'import des esprits convoques du PHB 2024 (#50, sorts en C) : les cartes 'Esprit draconique' (1 trait + 3 actions, rendu a 8 px) et 'Esprit fielon' (3 traits + 4 actions, rendu a 5 px) coupent leur derniere action en milieu de phrase. Les 7 autres esprits s'affichent en entier.

Il y a donc un angle mort dans la detection de debordement : le signal 'is-overflow' renvoie false alors que le contenu est reellement clippe d'environ une ligne. A corriger en meme temps que le volet sorts.

Criteres d'acceptation additionnels

  • La detection de debordement de creatures.html signale (ou evite) le clip sur les cartes denses type 'Esprit fielon' / 'Esprit draconique'.
  • Aucune ligne de trait/action n'est coupee en silence sans reduction de police possible ni avertissement.
  • Verification sur au moins 'Esprit fielon' (portrait) en plus des cartes de sorts.
## Extension du perimetre a creatures.html Le meme defaut de rendu existe cote editeur de creatures (creatures.html), pas seulement sur les sorts. L'algorithme d'ajustement de taille adaptative (#40) est cense reduire la police puis, en dernier recours, afficher l'avertissement de debordement (#12). Or sur les statblocks les plus denses, il choisit une taille (5 a 8 px, au-dessus du plancher 4,5 px) qu'il considere comme tenant dans la carte, alors que la derniere ligne est visuellement rognee et qu'aucun avertissement 'is-overflow' n'est declenche. Cas concrets apparus avec l'import des esprits convoques du PHB 2024 (#50, sorts en C) : les cartes 'Esprit draconique' (1 trait + 3 actions, rendu a 8 px) et 'Esprit fielon' (3 traits + 4 actions, rendu a 5 px) coupent leur derniere action en milieu de phrase. Les 7 autres esprits s'affichent en entier. Il y a donc un angle mort dans la detection de debordement : le signal 'is-overflow' renvoie false alors que le contenu est reellement clippe d'environ une ligne. A corriger en meme temps que le volet sorts. ## Criteres d'acceptation additionnels - La detection de debordement de creatures.html signale (ou evite) le clip sur les cartes denses type 'Esprit fielon' / 'Esprit draconique'. - Aucune ligne de trait/action n'est coupee en silence sans reduction de police possible ni avertissement. - Verification sur au moins 'Esprit fielon' (portrait) en plus des cartes de sorts.
Author
Owner

Extension du perimetre : paysage et types de cartes

Nouveaux cas observes :

  • En mode paysage, le Defenseur d'acier affiche sa reaction sur la colonne suivante alors qu'elle devrait pouvoir rester avec le reste du contenu ; cela donne l'impression que l'algorithme de repartition/fit de creatures.html coupe trop tot ou estime mal la hauteur disponible.
  • Meme probleme signale pour la Monture d'outre-monde.

Hypothese : la gestion adaptative des tailles et/ou la repartition entre colonnes est buggee specifiquement en mode paysage. Le ticket ne doit donc pas seulement couvrir les sorts et les creatures portrait, mais aussi le rendu paysage des statblocks.

Souhait de portee plus large :

  • Uniformiser la gestion de taille adaptative pour toutes les cartes, autant que possible.
  • Inclure explicitement les cartes de classes et sous-classes dans la reflexion.
  • Pour classes.html et subclasses.html uniquement, l'objectif a terme n'est pas seulement de reduire la police : si le contenu ne tient pas proprement, l'editeur doit pouvoir generer automatiquement plusieurs cartes. Le decoupage actuel des donnees JSON de classes est une solution de fortune, pas l'etat cible.

Criteres d'acceptation additionnels :

  • Verifier le Defenseur d'acier en paysage : la section Reactions ne doit pas etre deplacee inutilement en colonne suivante si elle tient avec le contenu precedent.
  • Verifier la Monture d'outre-monde en paysage avec le meme critere.
  • Auditer la logique de fit/repartition paysage de creatures.html, pas seulement la taille de police portrait.
  • Proposer ou implementer une strategie commune pour les tailles adaptatives entre les editeurs.
  • Pour classes et sous-classes, documenter et/ou preparer le comportement cible : generation de plusieurs cartes lorsque le contenu depasse, plutot qu'un simple compactage illisible.
## Extension du perimetre : paysage et types de cartes Nouveaux cas observes : - En mode paysage, le Defenseur d'acier affiche sa reaction sur la colonne suivante alors qu'elle devrait pouvoir rester avec le reste du contenu ; cela donne l'impression que l'algorithme de repartition/fit de creatures.html coupe trop tot ou estime mal la hauteur disponible. - Meme probleme signale pour la Monture d'outre-monde. Hypothese : la gestion adaptative des tailles et/ou la repartition entre colonnes est buggee specifiquement en mode paysage. Le ticket ne doit donc pas seulement couvrir les sorts et les creatures portrait, mais aussi le rendu paysage des statblocks. Souhait de portee plus large : - Uniformiser la gestion de taille adaptative pour toutes les cartes, autant que possible. - Inclure explicitement les cartes de classes et sous-classes dans la reflexion. - Pour classes.html et subclasses.html uniquement, l'objectif a terme n'est pas seulement de reduire la police : si le contenu ne tient pas proprement, l'editeur doit pouvoir generer automatiquement plusieurs cartes. Le decoupage actuel des donnees JSON de classes est une solution de fortune, pas l'etat cible. Criteres d'acceptation additionnels : - Verifier le Defenseur d'acier en paysage : la section Reactions ne doit pas etre deplacee inutilement en colonne suivante si elle tient avec le contenu precedent. - Verifier la Monture d'outre-monde en paysage avec le meme critere. - Auditer la logique de fit/repartition paysage de creatures.html, pas seulement la taille de police portrait. - Proposer ou implementer une strategie commune pour les tailles adaptatives entre les editeurs. - Pour classes et sous-classes, documenter et/ou preparer le comportement cible : generation de plusieurs cartes lorsque le contenu depasse, plutot qu'un simple compactage illisible.
Author
Owner

Decoupage du ticket

Le perimetre ajoute dans les commentaires precedents a ete separe en tickets dedies pour garder #69 actionnable.

Ce ticket #69 reste centre sur :

  • les cartes de sorts (spells.html) ;
  • la taille adaptative du texte des sorts ;
  • le signalement des debordements irreductibles ;
  • la coherence apercu / impression pour les sorts longs et courts.

Les autres sujets sont maintenant suivis separement :

  • #71 : bug de repartition paysage des statblocks de creatures, dont Defenseur d'acier et Monture d'outre-monde ;
  • #72 : strategie commune de taille adaptative entre les editeurs ;
  • #73 : generation de plusieurs cartes pour classes et sous-classes longues.

Les references dans les commentaires precedents restent utiles comme contexte, mais ne doivent pas elargir la PR de #69 au-dela des sorts.

## Decoupage du ticket Le perimetre ajoute dans les commentaires precedents a ete separe en tickets dedies pour garder #69 actionnable. Ce ticket #69 reste centre sur : - les cartes de sorts (`spells.html`) ; - la taille adaptative du texte des sorts ; - le signalement des debordements irreductibles ; - la coherence apercu / impression pour les sorts longs et courts. Les autres sujets sont maintenant suivis separement : - #71 : bug de repartition paysage des statblocks de creatures, dont Defenseur d'acier et Monture d'outre-monde ; - #72 : strategie commune de taille adaptative entre les editeurs ; - #73 : generation de plusieurs cartes pour classes et sous-classes longues. Les references dans les commentaires precedents restent utiles comme contexte, mais ne doivent pas elargir la PR de #69 au-dela des sorts.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dnd/cards#69
No description provided.