Audit complet de mise en forme — Titre/Paragraphe (1er élément du tableau)

Nouveau module partagé document_engine/rendering/box_style.py
(padding/margin/background_color/border_radius/border par côté/height/
min-height/max-height/min-width/box-shadow/opacity/align_self) —
réutilisable tel quel par tous les kinds suivants du tableau d'audit.

Titre/Paragraphe gagnent : barré, police de caractère, taille de
police, hauteur de ligne, espacement des lettres, majuscules/
minuscules/capitales, ombre du texte, et tous les attributs de boîte
partagés ci-dessus. Interface entièrement à base de curseurs/cases à
cocher/listes déroulantes/sélecteurs de couleur natifs — plus aucun
champ de texte libre pour une valeur CSS (retour utilisateur).

Deux bugs transversaux corrigés au passage (concernent tout
l'éditeur) :
- Le panneau Propriétés n'était jamais reconstruit après un clic sur un
  bouton (gras/alignement/segments...) — il fallait recharger la page
  pour voir l'état réel. Corrigé dans forgeDocUpdateAttributes, point
  d'entrée unique de toute mise à jour d'attribut.
- Les cases à cocher et curseurs héritaient à tort le style d'un champ
  de texte (padding/bordure/fond/largeur 100%) via la règle générique
  .docField input.

Ajoute docs/plan/AUDIT_MISE_EN_FORME.md : suivi de l'audit élément par
élément (Titre/Paragraphe traité, Image ensuite).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-26 09:25:30 +02:00
co-authored by Claude Sonnet 5
parent e03bea39c5
commit 6c7675fad0
10 changed files with 942 additions and 25 deletions
+127
View File
@@ -2436,3 +2436,130 @@ img.docImage {
border-bottom: 1px solid var(--doc-border);
}
}
/* ---- Éditeur de bordure par côté (panneau Propriétés — voir
static/document/js/document-editor.js, forgeDocRenderBoxFieldsHtml) :
une ligne par côté (style/épaisseur/couleur), réutilisée par tous les
kinds au fil de l'audit du 26/09/2026. ---- */
.docBorderEditor {
display: flex;
flex-direction: column;
gap: 6px;
}
.docBorderSideRow {
display: grid;
grid-template-columns: 48px 1fr 56px 1fr;
gap: 6px;
align-items: center;
}
.docBorderSideLabel {
font-size: 12px;
color: var(--doc-muted);
}
.docBorderStyleSelect {
width: 100%;
min-width: 0;
font-size: 12px;
padding: 5px 6px;
border: 1px solid var(--doc-border);
border-radius: 6px;
background: var(--doc-bg-2);
color: var(--doc-text);
}
.docBorderWidthRange {
width: 100%;
min-width: 0;
}
.docBorderColorInput {
width: 100%;
min-width: 0;
height: 28px;
padding: 2px;
border: 1px solid var(--doc-border);
border-radius: 6px;
background: var(--doc-bg-2);
cursor: pointer;
}
/* ---- Curseurs génériques à case "activer" (voir static/document/js/
document-editor.js, forgeDocRenderToggleSliderHtml) — retour
utilisateur du 26/09/2026 : plus aucune valeur CSS saisie à la main,
uniquement des curseurs/cases/listes/sélecteurs de couleur. ---- */
.docSliderField {
margin-bottom: 10px;
}
.docSliderRow {
display: flex;
align-items: center;
gap: 8px;
}
/* `.docField input` (règle générique plus haut) pose padding/bordure/
fond/width:100% pensés pour un champ texte — remis à plat ici pour
une case à cocher/un curseur natifs, sinon ils héritent cette
apparence de champ texte (bug réel constaté le 26/09/2026, capture à
l'appui : case à cocher démesurée et centrée, curseur poussé hors
panneau). */
.docSliderRow input[type='checkbox'] {
flex-shrink: 0;
width: auto;
padding: 0;
border: none;
background: none;
cursor: pointer;
}
.docSliderRow input[type='range'] {
flex: 1;
min-width: 0;
width: auto;
padding: 0;
border: none;
background: none;
}
.docSliderRow input[type='range']:disabled {
opacity: 0.4;
}
.docSliderValue {
flex-shrink: 0;
min-width: 3em;
text-align: right;
font-size: 11.5px;
font-weight: 600;
color: var(--doc-muted);
font-variant-numeric: tabular-nums;
}
.docColorFieldRow {
display: flex;
align-items: center;
gap: 8px;
}
.docColorFieldRow input[type='color'] {
width: 40px;
height: 28px;
padding: 2px;
border: 1px solid var(--doc-border);
border-radius: 6px;
background: var(--doc-bg-2);
cursor: pointer;
}
#docPropsPanel input[type='color'] {
width: 40px;
height: 28px;
padding: 2px;
border: 1px solid var(--doc-border);
border-radius: 6px;
background: var(--doc-bg-2);
cursor: pointer;
}