AYLICRÉA Le tuto
AYLICRÉA

Tuto Site

Box fit

Comment l’image (et la vidéo) remplit sa boîte sizeFixe. Parse : int 0–6 → BoxFit, défaut 2 cover. Select : getBoxFit → !isLarge ? box_fit_m : box_fit. Paint image : ServerImage(fit: content.getBoxFit) dans un SizedBox(width, height). Éditeur FR : box_section/media.dart.

Sans width × height calculés (px, %, ratio), sizeFixe peut être 0 : fit n’a alors rien à remplir.

Entier JSON → Flutter → libellé éditeur

intBoxFitÉditeur FRComportement dans la boîte
0fillremplirétire X et Y indépendamment. Distorsion. 100 % de la boîte, aucun crop
1containmaxscale uniforme, image entière. Bandes si ratio ≠ boîte. Live small page hero
2coverdéfautscale uniforme, boîte pleine, crop des bords
3fitWidthlargeurlargeur = boîte, hauteur suit le ratio. Débordement Y possible
4fitHeighthauteurhauteur = boîte, largeur suit. Débordement X possible
5nonepas redimensionnéetaille intrinsèque du fichier. Risque overflow
6scaleDownégalecontain mais ne grandit jamais. Logos
"box_fit": 2,
"box_fit_m": 1

Desktop cover (hero croppé) / mobile contain (produit entier visible).

T16 — boîte 400×300, image 800×400 (ratio 2)

intRésultat
0 fill400×300 distordu
1 containimage 400×200 centrée + bandes H 50+50
2 coverimage scale 0.75 → 600×300 crop 100 px L+R
3 fitWidth400×200
4 fitHeight600×300 crop ou overflow X
5 none800×400 overflow
6 scaleDowncontain (image plus grande que boîte)

Vidéo : FittedBox(fit:) dans SizedBox.expand. Plein écran forcé : BoxFit.contain, ignore le JSON. Back de page : mêmes int 0–6 sur fit_image_d / fit_video_*.

image_pos Segment — commentaire entité faux

Consommé par id_text (Segment), cards, FAQ — pas par id_image. positionImg = isLarge ? image_pos : image_pos_m. Éditeur = vérité (pas le commentaire périmé 0 Top 1 Bottom… de view_content.dart).

intÉditeurLayout Segment
−1arrièreimage en fond (Stack derrière le texte)
0hautimage au-dessus du texte, largeur 100 % (défaut fromJson)
1gaucheimage à gauche (~40 %), texte à droite (~60 %)
2droiteimage à droite (~40 %), texte à gauche
3basimage sous le texte, largeur 100 %
{
  "type": "8d669b32-e168-11ed-b5ea-0242ac120002",
  "image": "<uuid>",
  "image_pos": 1,
  "image_pos_m": 0,
  "box_fit": 2,
  "when_title": 0
}

JSON sûr image :

"width": { "l": { "i": 100, "iT": "%" } },
"height": { "l": { "i": 1.2, "iT": "ratio" } },
"image": "<uuid fichier>",
"box_fit": 2,
"box_fit_m": 2
Piège. image_pos: 1 lu comme « bottom ». Live = gauche. box_fit sans boîte width×height. Cercle : cover (2), pas contain.