CAROU AUTO PLUS · TESTS SYSTÈME TEXTE/TITRES · 1 JUIN 2026
Auto-fit des titres + wrapping intelligent — preuve par les tests
Batterie de 6 cas variés pour prouver le système AVANT un run complet. Un cas (F) a révélé un vrai bug, corrigé.
Comment marche le système
3 couches, dans l'ordre
1
Titre — auto-fit "line-count" (best practice fitty/textFit). Le navigateur rend le titre, on compte ses lignes. S'il dépasse 1 ligne, on réduit la police par pas de 2px (jusqu'à 42px min) et on re-compte, jusqu'à ce qu'il tienne sur 1 ligne. Si même à 42px c'est trop long → 2 lignes équilibrées. Basé sur le rendu réel, pas un calcul théorique.
2
Body — wrapping automatique + 3 garde-fous FR. Le retour à la ligne est automatique (le navigateur casse selon la largeur), pas à la main. text-wrap: balance équilibre les longueurs de lignes. 3 espaces insécables (NBSP) bloquent les seules coupures interdites en français : nombre↔unité (110 kW), mot court ≤3 lettres en fin de ligne (à, la, de, sur), et tout dernier mot seul (anti-veuve).
3
Body — de-orphelin (réduction intelligente de la police). Après le wrapping, on rend le texte et on détecte si un paragraphe a une ligne d'un seul mot (largeur < 35% de la ligne la plus longue, ex: "Charge" seul). Si oui, on réduit la police par pas de 2px (jusqu'à 44px min) et on re-mesure, jusqu'à ce que le mot orphelin remonte sur la ligne précédente. Marche même sans bandeau rouge (templates intérieur). Si aucun orphelin → aucune réduction, la police reste grande.
4
Bandeau — shrink-wrap. Le rectangle rouge épouse la largeur réelle du texte (plus de vide à droite).
Le bug trouvé par les tests (et corrigé)
Test F (chiffres + unités) : "Charge à 110 kW" → le "110" et le "kW" étaient coupés sur 2 lignes. Cause : la regex des unités contenait KWH mais pas KW (kilowatt). Fix : ajout de KW, NM (couple), DB, PS. Sans ce test, je l'aurais shippé.
AVANT — "110 / kW" coupéAPRÈS — "110 kW" intact
Les 6 tests
Le résidu "Charge seul" — CORRIGÉ (de-orphelin du body)
Tu avais raison de tiquer : sur le 1er rendu, "Charge" restait seul sur sa ligne. L'auto-fit n'était appliqué qu'aux titres, pas au body — et la fonction qui dimensionne le body sortait en early-return pour les templates intérieur (ils n'ont pas de bandeau rouge #redBlock). J'ai ajouté un de-orphelin standalone qui tourne pour TOUS les templates : il réduit la police du body (54→48px ici) jusqu'à recoller le mot orphelin. Re-rendu pour le prouver :
AVANT — "Charge" seul sur sa ligneAPRÈS — "Charge à 110 kW maximum," sur 1 ligne
Garde-fou : le de-orphelin ne sur-réduit PAS quand il n'y a pas d'orphelin
Risque d'un tel fix : tout rapetisser bêtement. Preuve que non — la police ne bouge que s'il y a un mot seul.
G
Body court, lignes pleines
✓ pas réduit
Police reste à 54px — 3 lignes équilibrées multi-mots, aucun orphelin → le de-orphelin ne fait rien.
H
2 paragraphes, "Pas de coffre avant…"
✓ pas réduit
Police pleine — chaque ligne a plusieurs mots (dont "Pas de coffre avant"), aucun mot seul → aucune réduction.