Tuto Site
Pulsante
UUID id_button a0dc89fe-5b86-4a9d-a8b6-d3e2f07b7757. Gate : SizedBox(width: init==0?null:init) + AnimatedSize inline (pas sizeFixe). Tap : setAction(). Stadium si title non vide, Circle si title vide, Rectangle / Underlines selon type.
Champs qui changent le rendu
| Champ | Effet |
|---|---|
title | label |
style_title | typo |
uuid_theme | fond surface / primary |
uuid_gradient | fond dégradé |
uuid_shadow | ombre |
radius | inerte (Stadium / Circle / Rectangle 2 px hardcodé) |
border | inerte (BorderSide(width: 1.5, outline) hardcodé ; hover = null) |
pad_int | paddingH = padIntLeft, paddingV = padIntTop seulement |
width | 0 = hug label · px/% = largeur forcée |
height | CTA : 48 px desktop / 44 px mobile. Pas le ratio 0.7 live (≈ 300 px) |
uuid_action | obligatoire pour qu’un tap fasse quelque chose |
Piège T18.
radius et border JSON sont inertes sur id_button. Arrondir un CTA : folder autour avec customDecoration, pas le JSON radius du bouton.JSON CTA
{
"type": "a0dc89fe-5b86-4a9d-a8b6-d3e2f07b7757",
"width": { "l": { "i": 220, "iT": "px" }, "s": { "i": 160, "iT": "px" } },
"height": { "l": { "i": 48, "iT": "px" }, "s": { "i": 44, "iT": "px" } },
"title": {
"fr": "Nous contacter",
"en": "Contact us",
"nl": "", "es": "", "it": "", "pt": "", "de": ""
},
"style_title": "<STYLE_BTN>",
"uuid_theme": { "l": { "i": "<THEME_CTA>" } },
"uuid_action": ["<A_CONTACT>"],
"enable": 1, "desktop": 1, "mobile": 1, "layer": 1, "pop": 0
}
Variantes : id_button_rectangle, id_button_text (texte cliquable), id_under_line_button. CTA : uuid_action → action_link.
T5 : width 220 px + height 0.45 ratio → ≈ 489 px (trop haut). Recette construct : 48 / 44 px. Live big page 210 px + ratio 0.7 → ≈ 300 px (CTA image-like) — ne pas copier sur un bouton texte.