Audit complet de mise en forme — Bouton (3e élément du tableau)
Implémente toutes les options manquantes identifiées pour l'élément Bouton : typographie (gras/italique/transformation/police/taille/ espacement des lettres/couleur), icône SVG optionnelle avec position (avant/après le texte) et taille réglables — au-delà de l'Étiquette, qui n'a qu'une icône fixe —, tous les attributs de boîte partagés déjà créés pour Titre/Paragraphe/Image, et un effet visuel universel au survol/clic. Deux ajouts transversaux demandés pendant le test : un réglage "les 4 côtés de la bordure à la fois" dans le module de boîte partagé (bénéficie automatiquement à tous les éléments qui l'utilisent), et le glisser-déposer d'un élément du canevas vers une autre page via le panneau Pages (le mécanisme serveur existait déjà pour la pagination automatique, seule l'interaction manuelle manquait). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
9ad50c58b8
commit
8f879f6321
@@ -131,7 +131,35 @@ def element_default_attributes(kind: str) -> dict[str, Any]:
|
||||
# qui reste réservé à la navigation (URL/ancre). Jamais les deux
|
||||
# à la fois côté UI (voir document-editor.js), mais rien ne
|
||||
# l'empêche structurellement ici.
|
||||
return {"label": "Bouton", "target": "", "attachment_stored_name": "", "attachment_filename": ""}
|
||||
#
|
||||
# Audit du 26/09/2026 (réglages manquants — colonne "Bouton") :
|
||||
# bold/italic/text_transform/font_family/font_size/letter_spacing/
|
||||
# text_color (typo, jamais gérés par box_style.py) + svg_markup/
|
||||
# icon_position/icon_size (icône avant/après le texte, absente
|
||||
# même de l'étiquette qui n'a qu'un SVG fixe sans position ni
|
||||
# taille réglables) + les attributs de boîte partagés. bold=False
|
||||
# PAR DÉFAUT (le CSS de base garde son font-weight:700 tel quel
|
||||
# tant que "bold" n'est pas explicitement activé — voir
|
||||
# _render_button, qui ne pousse à 800 QUE si bold=True — aucune
|
||||
# régression visuelle sur les boutons déjà créés).
|
||||
return {
|
||||
"label": "Bouton",
|
||||
"target": "",
|
||||
"attachment_stored_name": "",
|
||||
"attachment_filename": "",
|
||||
"bold": False,
|
||||
"italic": False,
|
||||
"text_transform": "none",
|
||||
"font_family": "",
|
||||
"font_size": "",
|
||||
"letter_spacing": "",
|
||||
"text_color": "",
|
||||
"svg_markup": "",
|
||||
"icon_position": "before",
|
||||
"icon_size": "",
|
||||
**BOX_DEFAULTS,
|
||||
"border": default_border(),
|
||||
}
|
||||
if kind in ("liste_puces", "liste_numerotee"):
|
||||
# Une seule et même structure d'attributs pour les deux kinds —
|
||||
# "ordonnée ou non" se lit directement sur le kind au moment du
|
||||
|
||||
@@ -65,7 +65,11 @@ Attributs posés à la création d'un élément de ce type (voir
|
||||
`link_url` + `lazy_load` + `caption` : comportement/contenu, pas du
|
||||
style + les attributs de boîte partagés), bouton (`label/target/
|
||||
attachment_stored_name/attachment_filename` — la pièce jointe est
|
||||
indépendante de `target`, réservé à la navigation), liste à
|
||||
indépendante de `target`, réservé à la navigation — + `bold/italic/
|
||||
text_transform/font_family/font_size/letter_spacing/text_color`
|
||||
(typo, jamais gérés par box_style.py) + `svg_markup/icon_position
|
||||
("before"/"after")/icon_size` (icône optionnelle, voir rendering.md)
|
||||
+ les attributs de boîte partagés), liste à
|
||||
puces/numérotée (`items`, une liste de chaînes), badge
|
||||
(`content/svg_markup/width/border_radius/bold/uppercase` — tous vides
|
||||
ou `False` par défaut = comportement historique inchangé, voir
|
||||
|
||||
Reference in New Issue
Block a user