Arc
Gambarlah busur elips sesuai dengan sudut awal dan sudut sapuan, cocok untuk busur skala dan tampilan kemajuan. Batasnya ditentukan oleh lebar dan tinggi. Lebar, titik akhir, dan posisi guratan dapat dikonfigurasi, dan latar belakang diperbolehkan terisi saat tertutup penuh.
Contoh
function main() {
return (
<Arc
width={120}
height={120}
startAngle={-90}
sweepAngle={240}
stroke={$env.accent}
lineWidth={8}
lineCap="round"
strokePosition="center"
/>
);
}
Penggunaan
- Ellipse dan Arc memakai seluruh lebar/tinggi; sama berarti lingkaran. Busur sebagian tetap terbuka tanpa sambungan ke pusat. background hanya mengisi putaran penuh tertutup.
- Sudut dalam derajat: 0 kanan, 90 bawah, sweep positif searah jarum jam. startAngle modulo 360, sweepAngle dibatasi −360…360. Nol kosong, ±360 penuh. wrap:360 hanya untuk startAngle.
- background/stroke menerima Color atau Gradient. Gunakan tiga konstruktor Gradient: posisi warna/pusat 0–1, radius dalam poin. HDR membungkus satu warna; kecerahan bergantung perangkat dan tampilan.
Properti
startAngle?numberSudut awal dalam derajat, dinormalisasi modulo 360 saat pengambilan sampel.
-90sweepAngle?numberRentang sudut dalam derajat, dibatasi ke -360…360 saat pengambilan sampel. Nilai positif searah jarum jam; wrap tidak didukung.
270background?PaintIsian lingkaran atau elips penuh yang tertutup. Diabaikan untuk busur parsial.
"clear"stroke?PaintWarna atau gradasi garis; clear menyembunyikannya.
HDR($env.dark ? "white" : "black")lineWidth?numberKetebalan garis dalam poin; 0 tidak menggambar garis.
2strokePosition?"inside" | "center" | "outside"Posisi garis terhadap kontur lingkaran atau elips penuh. Default: inside.
"inside"lineCap?"round" | "butt" | "square"Ujung garis: butt memotong, square memanjang persegi, round membulat.
"round"dash?number[]Panjang garis dan celah bergantian dalam poin; larik kosong membuat garis utuh.
[]dashPhase?numberOffset pola putus-putus dalam poin.
0Properti umum
width?number | "auto" | "fill"Lebar dalam poin, ukuran otomatis, atau memenuhi induk.
"fill"height?number | "auto" | "fill"Tinggi dalam poin, ukuran otomatis, atau memenuhi induk.
"fill"x?numberOffset visual dalam poin: x ke kanan, y ke bawah; ruang tata letak tidak berubah.
0y?numberOffset visual dalam poin: x ke kanan, y ke bawah; ruang tata letak tidak berubah.
0transform?ViewTransformTransformasi seluruh View tanpa mengubah tata letak. Translasi dalam poin, rotasi/kemiringan dalam derajat, skala 1 tetap, jangkar 0–1.
{rotation: 0}opacity?numberOpasitas seluruh View: 0 transparan, 1 buram.
1clipped?booleanPotong gambar yang melewati batas View.
falseclip?"rectangle" | "ellipse"Bentuk potongan rectangle atau ellipse; Material juga menerima false untuk mematikan.
"rectangle"mask?View | nullView masker alfa. Di tengah tanpa memengaruhi tata letak; null menonaktifkan masker.
<Circle width="fill" height="fill" background="white"/>zIndex?numberUrutan gambar antar saudara; nilai lebih besar di depan.
0blur?numberRadius buram dalam poin; 0 menonaktifkan.
4innerShadow?DrawingEffectWarna, opasitas, radius buram dan offset x/y efek; jarak dalam poin.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectWarna, opasitas, radius buram dan offset x/y efek; jarak dalam poin.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorWarna bayangan luar.
HDR("black")shadowOpacity?numberOpasitas bayangan 0–1; 0 menyembunyikannya.
0shadowRadius?numberRadius buram bayangan luar dalam poin.
4shadowX?numberOffset bayangan dalam poin: x ke kanan, y ke bawah.
0shadowY?numberOffset bayangan dalam poin: x ke kanan, y ke bawah.
2animations?ArcAnimation[]Animasi perubahan properti. duration/delay dalam detik; from/to adalah ujung; repeat/autoreverse untuk pengulangan, wrap untuk periode.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentitas stabil di antara elemen sejajar.
Contoh praktis
function main() {
return (
<Arc
width={180}
height={100}
startAngle={180}
sweepAngle={180}
background="clear"
stroke={LinearGradient(['#30B3A2', '#A9E56F'])}
lineWidth={8}
strokePosition="inside"
lineCap="round"
/>
);
}
Animasi
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYdashPhasestrokelineWidthstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYJika dihilangkan
Tabel menunjukkan perilaku penghilangan yang diverifikasi dari implementasi; contoh bukan default. Untuk hasil tetap beri nilai eksplisit; ukuran dan warna kontekstual bukan konstanta.
| Properti | Jika dihilangkan |
|---|---|
startAngle | -90 |
sweepAngle | 270 |
lineWidth | 2 |
strokePosition | "inside" |
background | "clear" |
stroke | HDR($env.dark ? 'white' : 'black') |