Symbol
Utilisez SF Symbols pour dessiner des icônes système, telles que le compteur de vitesse, le thermomètre. La taille de la police du symbole, l’épaisseur de la police et la méthode de coloration peuvent être définies. La disponibilité du symbole spécifique dépend du système de l'appareil.
Exemple
function main() {
return (
<Symbol
name="speedometer"
fontSize={36}
renderingMode="hierarchical"
color={$env.accent}
/>
);
}
Utilisation
- name est un identifiant SF Symbols, pas un fichier. fontSize dimensionne le symbole, width/height son conteneur. paletteColors colore les couches ; un symbole absent du système ne devient pas une image.
- Les dimensions numériques sont en points. auto mesure le contenu, fill utilise l’espace alloué par le parent. Dimensionnez d’abord le conteneur ; fill et un long texte n’agrandissent pas un parent fixe.
Propriétés
namestringNom SF Symbols, par exemple speedometer ; disponibilité selon le système.
"location.north.fill"fontSize?numberTaille de police en points.
14fontWeight?"ultraLight" | "thin" | "light" | "regular" | "medium" | "semibold" | "bold" | "heavy" | "black"Graisse de ultraLight à black ; regular est normale.
"regular"imageScale?"small" | "medium" | "large"Taille relative small, medium ou large, combinée à fontSize.
"medium"renderingMode?"monochrome" | "hierarchical" | "palette" | "multicolor"monochrome : une couleur ; hierarchical : nuances ; palette : paletteColors ; multicolor : couleurs d’origine.
"monochrome"color?PaintCouleur de dessin, y compris les couleurs HDR.
HDR($env.foreground)Une à trois couleurs des couches du symbole en mode palette.
["red", "blue"]contentAnimation?ContentAnimationTransition de contenu. Choisir un type pris en charge ; duration/delay en secondes.
{type: "fade", duration: 0.25}Propriétés communes
width?number | "auto" | "fill"Largeur en points, taille automatique ou remplissage du parent.
100height?number | "auto" | "fill"Hauteur en points, taille automatique ou remplissage du parent.
80padding?numberMarge intérieure du contenu en points.
0x?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}background?PaintFond de couleur ou dégradé ; clear le rend transparent.
"clear"opacity?numberOpacité globale du View : 0 transparent, 1 opaque.
1cornerRadius?numberRayon des coins en points.
0clipped?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 alignment="firstTextBaseline" spacing={8}>
<Symbol
name="speedometer"
fontSize={32}
renderingMode="hierarchical"
color={$env.accent}
/>
<Text fontSize={40}>78</Text>
<Text fontSize={14}>km/h</Text>
</HStack>
);
}
Animation
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYfontSizecolortransform.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 |
|---|---|
fontSize | 14 |
fontWeight | "regular" |
imageScale | "medium" |
renderingMode | "monochrome" |
color | HDR($env.foreground) |