Color / Gradient
Metin, arka plan ve kontur için renkler ve degradeler sağlayın. Paint bir renk veya degrade yapıcısı tarafından oluşturulan bir değer olabilir.
renk
Yaygın olarak kullanılan yazma yöntemleri arasında renk adları, onaltılık renkler ve { r, g, b, a } nesneleri bulunur. RGB bileşenleri ve şeffaflık 0-1'i kullanır, clear şeffaf anlamına gelir. $env.foreground ve $env.accent temaya göre değişen ortak renkler sağlar.
HDR(color) renk dizisine HDR etiketini ekler. Açıkça doldurulmuş normal renklerde SDR kalır; örneğin, color={$env.foreground} otomatik olarak geliştirilmez ve vurgulama gerektiğinde color={HDR($env.foreground)} olarak yazılabilir. Renk özelliği atlandığında varsayılan davranış aşağıdaki tabloda gösterilmektedir.
HDR renk atlandığında varsayılan değer
Çizim rengi belirtilmediğinde aşağıdaki varsayılan renkler HDR ile işaretlenir.
| içerik | ihmal edildiğinde renk |
|---|---|
| Metin, semboller, şablon görselleri | HDR($env.foreground);Sembol, palet modunu kullanırken ve bir palet belirtildiğinde palet renklerini korur. |
| Dikdörtgenlerin, dairelerin, elipslerin ve histogramların doldurulması | HDR($env.dark ? 'white' : 'black'). |
| Çizgilerin, yayların, sürekli çizgilerin, yolların ve sürekli çizgi grafiklerinin konturları | HDR($env.dark ? 'white' : 'black'). |
| Grafik eksenleri ve etiketleri | HDR ön plan rengi varsayılan olarak kullanılır. Grafik dolgusunun veya konturunun açıkça ayarlanması, etiketlerin varsayılan rengini değiştirmez. |
| Parlama, iç gölge, alt gölge etkin | Renk efektten çıkarıldığında, parlaklık varsayılan olarak HDR beyaza, iç gölge ve alt gölge ise varsayılan olarak HDR siyaha dönüşür; Efektin kendisini atlamak onu etkinleştirmez. |
Kapsayıcı arka planı şeffaf kalır. Birincil renkli görüntüler, haritalar ve sistem malzemeleri kendi renklerini ve görünümlerini korur. Açıkça belirtilen normal renkler, degrade renk skalaları ve sembol paletleri bir bütün olarak HDR'ye dönüştürülmez, geliştirilmesi gereken renkler ayrı ayrı işaretlenmelidir.
İyileştirme ne zaman yürürlüğe girer?
HDR bayrağı gerçek parlaklığı garanti etmez. Geliştirme, iOS 26 veya üzerini, desteklenen ekranları, HUD modunu ve HDR geliştirmesinin açılmasını gerektirir; gerçek sonuçlar aynı zamanda mevcut görüntüleme ortamından da etkilenir. Normal alet modu, düzenleyici önizlemesi ve dışa aktarılan PNG, normal görüntüleme aralığını kullanır ve önizleme, gerçek vurgulama efektini değerlendirmek için kullanılamaz.
Aşağıdaki üç satırda renk atlanır, açıkça normal renk kullanılır ve vurgu rengi açıkça işaretlenir. Önizlemede aynı görünebilir ancak geliştirme farkı, HDR'yi destekleyen bir HUD ortamına girdikten sonra belirgin hale gelir.
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>
);
}
Gradyan
LinearGradient düz bir çizgi boyunca değişir, RadialGradient merkezden yayılır ve AngularGradient merkezin etrafında açısal olarak değişir. Oluştururken, bir renk dizisini veya color ve location ile bir renk dizisini iletebilirsiniz. Renk yaması konumu ve merkez koordinatları için 0-1'i, radyal yarıçap için noktaları ve açılar için dereceleri kullanın.
Oluşturulan degrade background, stroke ve Paint'yi destekleyen diğer niteliklere aktarılabilir. Yalnızca Color kabul eden özniteliklerin yine de tek renk kullanması gerekir. Mevcut belirli türler, nitelik tanımına tabidir.
Örnek: Arka Plan ve Kontur Degradesi
Aşağıda sırasıyla doğrusal arka plan, radyal dolgu, açısal kontur ve HDR metni gösterilmektedir.
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>
);
}
Oluşturucu
HDR(color: string) → HDRColorTemel SDR rengini koruyarak bir rengi HDR geliştirmesi için işaretler.
LinearGradient(colors: GradientColors, options?: LinearGradientOptions) → GradientGradyan oluşturur. Doğrudan veya new ile çağırın.
RadialGradient(colors: GradientColors, options?: RadialGradientOptions) → GradientGradyan oluşturur. Doğrudan veya new ile çağırın.
AngularGradient(colors: GradientColors, options?: AngularGradientOptions) → GradientGradyan oluşturur. Doğrudan veya new ile çağırın.