Tuto Site
Bordo e raggio
Quatre épaisseurs indépendantes + quatre rayons. La couleur n’est pas dans le JSON view : c’est ColorScheme.outline du theme déjà appliqué par l’onion. customDecoration(context, maxWidth).
Qui lit vraiment le JSON
| Type | border JSON | radius JSON |
|---|---|---|
FolderBasic sizeFolderDeco | oui | oui — enfants non clipés |
id_segment / id_card* | oui + ClipRRect media | oui |
id_image ServerImage nu | inerte | inerte |
id_image_deco | border commenté (pas peint) | Container + ClipRRect |
id_image_circle | Border 4 côtés | ignoré (BoxShape.circle) |
id_button ButtonSite | inerte (BorderSide 1.5 hardcodé, hover → null) | inerte (Stadium / Circle / Rectangle 2 px) |
Loi : radius sur un id_button ne change pas le Stadium. Arrondir un CTA : folder autour, ou id_card, ou id_image_deco. Coins ronds sur photo : id_image_deco, pas id_image.
% = % de la largeur
customDecoration passe maxWidth du folder aux quatre côtés et aux quatre coins — y compris top/bottom. Un border.iT: 2, iTT: "%" = 2 % de la largeur du folder, pas de sa hauteur. T18 : folder 400 px, 2 % top → 8 px.
JSON — 4 côtés / 4 coins, dupliquer e*
{
"border": {
"l": {
"iT": 1, "iB": 1, "iL": 1, "iR": 1,
"eT": 1, "eB": 1, "eL": 1, "eR": 1,
"iTT": "px", "iTB": "px", "iTL": "px", "iTR": "px",
"eTT": "px", "eTB": "px", "eTL": "px", "eTR": "px"
}
},
"radius": {
"l": {
"iTL": 16, "iTR": 16, "iBL": 16, "iBR": 16,
"eTL": 16, "eTR": 16, "eBL": 16, "eBR": 16,
"iTTL": "px", "iTTR": "px", "iTBL": "px", "iTBR": "px",
"eTTL": "px", "eTTR": "px", "eTBL": "px", "eTBR": "px"
}
},
"uuid_theme": { "l": { "i": "<theme>" } }
}
Underline (filet bas seulement) : "border": { "l": { "iB": 1, "eB": 1, "iTB": "px", "eTB": "px" } }. Les autres côtés absents = BorderSide.none.
Clés radius : iTL topLeft · iTR topRight · iBL bottomLeft · iBR bottomRight. Pas de clé all. Un seul scalaire "radius": 16 ne parse pas.
radius sur id_button → Stadium inchangé. radius sur id_image → pas de ClipRRect (utiliser id_image_deco). iTL:16 sans eTL, preEnable true → coin zero.