Color / Gradient
Fornisci colori e sfumature per testo, sfondo e tratto. Paint può essere un colore o un valore creato dal costruttore del gradiente.
colore
I metodi di scrittura comunemente utilizzati includono nomi di colori, colori esadecimali e oggetti { r, g, b, a }. I componenti RGB e la trasparenza utilizzano 0–1, clear significa trasparente. $env.foreground e $env.accent forniscono colori comuni che cambiano con il tema.
HDR(color) aggiunge il tag HDR alla stringa dei colori. I colori normali compilati esplicitamente rimangono SDR; ad esempio, color={$env.foreground} non verrà migliorato automaticamente e potrà essere scritto come color={HDR($env.foreground)} quando è richiesta l'evidenziazione. Il comportamento predefinito quando l'attributo color viene omesso è mostrato nella tabella seguente.
HDR valore predefinito quando il colore viene omesso
Quando non viene specificato alcun colore di disegno, i seguenti colori predefiniti sono contrassegnati con HDR.
| contenuto | colore quando omesso |
|---|---|
| Testo, simboli, immagini modello | HDR($env.foreground);Il simbolo conserva i colori della tavolozza quando si utilizza la modalità tavolozza e viene specificata una tavolozza. |
| Riempimento di rettangoli, cerchi, ellissi e istogrammi | HDR($env.dark ? 'white' : 'black'). |
| Tratti di linee, archi, polilinee, percorsi e grafici polilinea | HDR($env.dark ? 'white' : 'black'). |
| Assi ed etichette del grafico | Per impostazione predefinita viene utilizzato il colore di primo piano HDR. L'impostazione esplicita del riempimento o del tratto del grafico non modifica il colore predefinito delle etichette. |
| Bagliore, ombra interna, ombra esterna abilitata | Quando il colore viene omesso dall'effetto, il bagliore diventa HDR bianco per impostazione predefinita e l'ombra interna e l'ombra esterna diventano HDR nero per impostazione predefinita; omettere l'effetto stesso non lo abiliterà. |
Lo sfondo del contenitore rimane trasparente. Le immagini a colori primari, le mappe e i materiali del sistema mantengono i propri colori e la propria visualizzazione. I colori normali, le scale di colore dei gradienti e le tavolozze dei simboli specificati esplicitamente non vengono convertiti in HDR nel loro insieme e i colori che richiedono miglioramenti devono essere contrassegnati separatamente.
Quando entra in vigore il miglioramento?
Il flag HDR non garantisce la luminosità effettiva. Il miglioramento richiede iOS 26 o versione successiva, schermi supportati, modalità HUD e l'attivazione del miglioramento HDR; i risultati effettivi sono influenzati anche dall'ambiente di visualizzazione corrente. La modalità strumento normale, l'anteprima dell'editor e il PNG esportato utilizzano l'intervallo di visualizzazione normale e l'anteprima non può essere utilizzata per giudicare l'effettivo effetto di evidenziazione.
Le tre righe seguenti omettono il colore, utilizzano esplicitamente il colore normale e contrassegnano esplicitamente il colore di evidenziazione. Potrebbe sembrare lo stesso nell'anteprima, ma la differenza di miglioramento diventa evidente dopo aver inserito un ambiente HUD che supporta HDR.
function main() {
return (
<VStack spacing={8}>
<Text fontSize={22}>Default HDR</Text>
<Text fontSize={22} color={$env.foreground}>
Explicit SDR
</Text>
<Text fontSize={22} color={HDR($env.accent)}>
Explicit HDR
</Text>
</VStack>
);
}
Pendenza
LinearGradient cambia lungo una linea retta, RadialGradient si estende dal centro e AngularGradient cambia angolarmente attorno al centro. Durante la costruzione, puoi passare un array di colori o un array di colori con color e location. Utilizzare 0–1 per la posizione del campione di colore e le coordinate del centro, punti per il raggio radiale e gradi per gli angoli.
Il gradiente creato può essere passato a background, stroke e altri attributi che supportano Paint. Gli attributi che accettano solo Color devono comunque utilizzare un solo colore. I tipi specifici disponibili sono soggetti alla definizione dell'attributo.
Esempio: gradiente di sfondo e tratto
Di seguito sono mostrati rispettivamente lo sfondo lineare, il riempimento radiale, il tratto angolare e il testo HDR.
function main() {
return (
<VStack spacing={12}>
<Rectangle
height={48}
background={LinearGradient(['#B9E883', '#30B3A2'], { angle: 30 })}
/>
<Circle
width={100}
height={100}
background={RadialGradient(['white', '#30B3A2'])}
/>
<Circle
width={100}
height={100}
stroke={AngularGradient(['#B9E883', '#30B3A2', '#B9E883'])}
lineWidth={8}
background="clear"
/>
<Text color={HDR('white')}>CapDrive</Text>
</VStack>
);
}
Costruttore
HDR(color: string) → HDRColorContrassegna un colore per il miglioramento HDR conservandone il colore SDR di base.
LinearGradient(colors: GradientColors, options?: LinearGradientOptions) → GradientCrea una sfumatura. Chiamata diretta o con new.
RadialGradient(colors: GradientColors, options?: RadialGradientOptions) → GradientCrea una sfumatura. Chiamata diretta o con new.
AngularGradient(colors: GradientColors, options?: AngularGradientOptions) → GradientCrea una sfumatura. Chiamata diretta o con new.