Symbol
Usa SF Symbols per disegnare icone di sistema, come tachimetro, termometro. È possibile impostare la dimensione del carattere del simbolo, il peso del carattere e il metodo di colorazione. La disponibilità del simbolo specifico dipende dal sistema del dispositivo.
Esempio
function main() {
return (
<Symbol
name="speedometer"
fontSize={36}
renderingMode="hierarchical"
color={$env.accent}
/>
);
}
Utilizzo
- name è un nome SF Symbols, non un file. fontSize dimensiona il simbolo; width/height il contenitore. paletteColors colora i livelli. Un simbolo assente dal sistema non diventa un’immagine.
- Le misure numeriche sono punti. auto misura il contenuto; fill usa lo spazio assegnato dal genitore. Dimensiona prima il contenitore: fill e testo lungo non ampliano un genitore fisso.
Proprietà
namestringNome SF Symbols, ad esempio speedometer; disponibilità secondo il sistema.
"location.north.fill"fontSize?numberDimensione del carattere in punti.
14fontWeight?"ultraLight" | "thin" | "light" | "regular" | "medium" | "semibold" | "bold" | "heavy" | "black"Peso del carattere da ultraLight a black; regular è normale.
"regular"imageScale?"small" | "medium" | "large"Dimensione relativa small, medium o large combinata con fontSize.
"medium"renderingMode?"monochrome" | "hierarchical" | "palette" | "multicolor"monochrome usa un colore, hierarchical sfumature, palette paletteColors, multicolor i colori originali.
"monochrome"color?PaintColore di disegno, inclusi i colori HDR.
HDR($env.foreground)Da uno a tre colori per i livelli del simbolo in modalità palette.
["red", "blue"]contentAnimation?ContentAnimationTransizione al cambio di contenuto. Scegli un type supportato; duration/delay in secondi.
{type: "fade", duration: 0.25}Proprietà comuni
width?number | "auto" | "fill"Larghezza in punti, dimensione automatica o riempimento del contenitore.
100height?number | "auto" | "fill"Altezza in punti, dimensione automatica o riempimento del contenitore.
80padding?numberSpaziatura interna del contenuto in punti.
0x?numberSpostamento visivo in punti: x a destra, y in basso; non cambia lo spazio nel layout.
0y?numberSpostamento visivo in punti: x a destra, y in basso; non cambia lo spazio nel layout.
0transform?ViewTransformTrasformazione globale senza cambiare il layout. Traslazione in punti, rotazione/inclinazione in gradi, scala 1 invariata, ancoraggi 0–1.
{rotation: 0}background?PaintColore o gradiente di sfondo; clear è trasparente.
"clear"opacity?numberOpacità dell’intero View: 0 trasparente, 1 opaco.
1cornerRadius?numberRaggio degli angoli in punti.
0clipped?booleanRitaglia il disegno oltre i limiti del View.
falseclip?"rectangle" | "ellipse"Forma di ritaglio rectangle o ellipse; Material accetta anche false per disattivarlo.
"rectangle"mask?View | nullView per la maschera alfa. Centrata senza modificare il layout; null disattiva la maschera.
<Circle width="fill" height="fill" background="white"/>zIndex?numberOrdine tra elementi fratelli; valori più grandi appaiono davanti.
0blur?numberRaggio della sfocatura in punti; 0 la disattiva.
4innerShadow?DrawingEffectColore, opacità, raggio di sfocatura e offset x/y dell’effetto; distanze in punti.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectColore, opacità, raggio di sfocatura e offset x/y dell’effetto; distanze in punti.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorColore dell’ombra esterna.
HDR("black")shadowOpacity?numberOpacità dell’ombra 0–1; 0 la nasconde.
0shadowRadius?numberRaggio di sfocatura dell’ombra esterna in punti.
4shadowX?numberOffset dell’ombra in punti: x a destra, y in basso.
0shadowY?numberOffset dell’ombra in punti: x a destra, y in basso.
2animations?Animation[]Anima le modifiche alle proprietà. duration/delay in secondi; from/to sono estremi; repeat/autoreverse controllano le ripetizioni, wrap il periodo.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentità stabile tra elementi fratelli.
Esempio pratico
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>
);
}
Animazione
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYfontSizecolortransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYQuando omesso
La tabella documenta omissioni verificate nell’implementazione. Gli esempi non sono valori predefiniti. Specifica valori per risultati fissi; misure e colori contestuali non sono costanti.
| Proprietà | Quando omesso |
|---|---|
fontSize | 14 |
fontWeight | "regular" |
imageScale | "medium" |
renderingMode | "monochrome" |
color | HDR($env.foreground) |