Rectangle
Dessine un rectangle avec des coins arrondis facultatifs à utiliser avec les arrière-plans, les barres de progression et les bordures. background remplit l'intérieur, stroke traits, lineWidth et strokePosition contrôlent la largeur et la position du trait.
Exemple
function main() {
return (
<Rectangle
width={160}
height={80}
cornerRadius={16}
background={LinearGradient(['#A9E56F', '#30B3A2'])}
stroke={$env.foreground}
lineWidth={2}
strokePosition="inside"
/>
);
}
Utilisation
- background remplit, stroke trace le contour. cornerRadius est limité à la moitié du petit côté. inside reste dedans, center chevauche la limite, outside dépasse ; le parent peut découper ce dépassement.
- mask utilise l’alpha : opaque conserve, transparent masque. Noir et blanc de même alpha sont équivalents. Le masque ne participe pas à la disposition ; donnez-lui une taille et distinguez-le de clipped.
- background/stroke acceptent Color ou Gradient. Utilisez les trois constructeurs Gradient ; positions et centres vont de 0 à 1, rayons en points. HDR enveloppe une couleur ; sa luminosité dépend de l’appareil et de l’affichage.
Propriétés
background?PaintFond de couleur ou dégradé ; clear le rend transparent.
HDR($env.dark ? "white" : "black")cornerRadius?numberRayon des coins en points.
0stroke?PaintTrait de couleur ou dégradé ; clear le masque.
"clear"lineWidth?numberÉpaisseur du trait en points ; 0 ne dessine aucun trait.
2strokePosition?"inside" | "center" | "outside"Position du trait par rapport au contour : inside, center ou outside.
"inside"lineCap?"round" | "butt" | "square"Extrémité : butt coupe au point, square prolonge en carré, round arrondit.
"round"lineJoin?"round" | "miter" | "bevel"Forme des jonctions : miter, round ou bevel.
"round"dash?number[]Longueurs alternées de traits et d’espaces en points ; tableau vide pour un trait continu.
[]dashPhase?numberDécalage du motif de tirets en points.
0trimStart?numberIntervalle visible de trimStart à trimEnd dans 0–1. Circle/Ellipse/Arc utilisent des angles.
0trimEnd?numberIntervalle visible de trimStart à trimEnd dans 0–1. Circle/Ellipse/Arc utilisent des angles.
1Propriétés communes
width?number | "auto" | "fill"Largeur en points, taille automatique ou remplissage du parent.
"fill"height?number | "auto" | "fill"Hauteur en points, taille automatique ou remplissage du parent.
"fill"x?numberDécalage visuel en points : x vers la droite, y vers le bas, sans modifier l’espace de mise en page.
0y?numberDécalage visuel en points : x vers la droite, y vers le bas, sans modifier l’espace de mise en page.
0transform?ViewTransformTransformation globale sans changer la mise en page. Translation en points, rotation/inclinaison en degrés, échelle 1 inchangée, ancrages 0–1.
{rotation: 0}opacity?numberOpacité globale du View : 0 transparent, 1 opaque.
1clipped?booleanDécoupe les dessins dépassant les limites du View.
falseclip?"rectangle" | "ellipse"Forme de découpe rectangle ou ellipse ; Material accepte aussi false pour la désactiver.
"rectangle"mask?View | nullView de masque alpha. Centrée sans modifier la disposition ; null désactive le masque.
<Circle width="fill" height="fill" background="white"/>zIndex?numberOrdre entre éléments frères ; les valeurs élevées sont devant.
0blur?numberRayon du flou en points ; 0 le désactive.
4innerShadow?DrawingEffectCouleur, opacité, rayon du flou et décalage x/y de l’effet ; distances en points.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectCouleur, opacité, rayon du flou et décalage x/y de l’effet ; distances en points.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorCouleur de l’ombre extérieure.
HDR("black")shadowOpacity?numberOpacité de l’ombre de 0 à 1 ; 0 la masque.
0shadowRadius?numberRayon du flou de l’ombre extérieure, en points.
4shadowX?numberDécalage de l’ombre en points : x à droite, y en bas.
0shadowY?numberDécalage de l’ombre en points : x à droite, y en bas.
2animations?Animation[]Anime les changements de propriété. duration/delay en secondes ; from/to définissent les extrémités ; repeat/autoreverse la répétition, wrap la période.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentifiant stable parmi les éléments frères.
Exemple pratique
function main() {
return (
<HStack spacing={20}>
<Rectangle
width={90}
height={60}
background="clear"
stroke={$env.accent}
lineWidth={8}
strokePosition="inside"
/>
<Rectangle
width={90}
height={60}
background="clear"
stroke={$env.accent}
lineWidth={8}
strokePosition="outside"
/>
</HStack>
);
}
Animation
widthheightxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtrimStarttrimEnddashPhasestrokelineWidthtransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYEn cas d’omission
Le tableau décrit les omissions vérifiées dans l’implémentation. Les exemples de propriétés ne sont pas des valeurs par défaut. Pour un résultat fixe, passez une valeur explicite ; tailles et couleurs contextuelles ne sont pas constantes.
| Propriétés | En cas d’omission |
|---|---|
cornerRadius | 0 |
lineWidth | 2 |
strokePosition | "inside" |
trimStart | 0 |
trimEnd | 1 |
background | HDR($env.dark ? 'white' : 'black') |