Color / Gradient

Berikan warna dan gradien untuk teks, latar belakang, dan guratan. Paint dapat berupa warna atau nilai yang dibuat oleh konstruktor gradien.

warna

Metode penulisan yang umum digunakan meliputi nama warna, warna heksadesimal, dan objek { r, g, b, a }. Komponen RGB dan transparansi menggunakan 0–1, clear artinya transparan. $env.foreground dan $env.accent memberikan warna umum yang sesuai dengan tema.

HDR(color) menambahkan tag HDR ke string warna. Diisi secara eksplisit dalam warna normal tetap SDR; misalnya, color={$env.foreground} tidak akan ditingkatkan secara otomatis dan dapat ditulis sebagai color={HDR($env.foreground)} ketika penyorotan diperlukan. Perilaku default ketika atribut warna dihilangkan ditunjukkan pada tabel di bawah.

HDR nilai default ketika warna dihilangkan

Jika tidak ada warna gambar yang ditentukan, warna default berikut ditandai dengan HDR.

isi warna ketika dihilangkan
Teks, simbol, gambar templat HDR($env.foreground);Simbol mempertahankan warna palet saat menggunakan mode palet dan palet ditentukan.
Mengisi persegi panjang, lingkaran, elips, dan histogram HDR($env.dark ? 'white' : 'black').
Goresan garis, busur, polyline, jalur, dan bagan polyline HDR($env.dark ? 'white' : 'black').
Sumbu bagan dan label Warna latar depan HDR digunakan secara default. Menyetel isi atau guratan bagan secara eksplisit tidak mengubah warna default label.
Cahaya, bayangan dalam, bayangan jatuh diaktifkan Ketika warna dihilangkan dari efek, cahaya defaultnya adalah HDR putih, dan bayangan bagian dalam serta drop shadow defaultnya adalah HDR hitam; menghilangkan efek itu sendiri tidak akan mengaktifkannya.

Latar belakang penampung tetap transparan. Gambar berwarna primer, peta, dan materi sistem mempertahankan warna dan tampilannya sendiri. Warna normal yang ditentukan secara eksplisit, skala warna gradien, dan palet simbol tidak dikonversi ke HDR secara keseluruhan, dan warna yang memerlukan peningkatan harus ditandai secara terpisah.

Kapan peningkatan ini mulai berlaku?

Bendera HDR tidak menjamin kecerahan sebenarnya. Peningkatan memerlukan iOS 26 atau lebih baru, layar yang didukung, mode HUD, dan pengaktifan peningkatan HDR; hasil sebenarnya juga dipengaruhi oleh lingkungan tampilan saat ini. Mode instrumen normal, pratinjau editor, dan PNG yang diekspor menggunakan rentang tampilan normal, dan pratinjau tidak dapat digunakan untuk menilai efek sorotan sebenarnya.

Tiga baris berikut menghilangkan warna, secara eksplisit menggunakan warna normal, dan secara eksplisit menandai warna highlight. Ini mungkin terlihat sama di pratinjau, namun perbedaan peningkatan menjadi jelas setelah memasuki lingkungan HUD yang mendukung 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>
  );
}

Gradien

LinearGradient berubah sepanjang garis lurus, RadialGradient menyebar dari pusat, dan AngularGradient berubah secara bersudut di sekitar pusat. Saat membuat, Anda dapat meneruskan larik warna atau larik warna dengan color dan location. Gunakan 0–1 untuk lokasi patch warna dan koordinat pusat, titik untuk radius radial, dan derajat untuk sudut.

Gradien yang dibuat dapat diteruskan ke background, stroke dan atribut lain yang mendukung Paint. Atribut yang hanya menerima Color tetap perlu menggunakan satu warna. Tipe spesifik yang tersedia tunduk pada definisi atribut.

Contoh: Gradien Latar Belakang dan Goresan

Latar belakang linier, isian radial, guratan sudut, dan teks HDR masing-masing ditampilkan di bawah.

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>
  );
}

Konstruktor

HDR(color: string) → HDRColor

Menandai warna untuk peningkatan HDR sambil mempertahankan warna SDR dasarnya.

LinearGradient(colors: GradientColors, options?: LinearGradientOptions) → Gradient

Membuat gradasi. Panggil langsung atau dengan new.

RadialGradient(colors: GradientColors, options?: RadialGradientOptions) → Gradient

Membuat gradasi. Panggil langsung atau dengan new.

AngularGradient(colors: GradientColors, options?: AngularGradientOptions) → Gradient

Membuat gradasi. Panggil langsung atau dengan new.