Circle
Zeichnet einen perfekten Kreis oder Bogen innerhalb des verfügbaren Bereichs, geeignet für kreisförmige Fortschritts- und Meterskalen. Der Durchmesser nimmt den kleineren Wert von Breite und Mitte an. startAngle und sweepAngle steuern den Anzeigebereich. Wenn der gesamte Kreis geschlossen ist, kann der Hintergrund ausgefüllt werden.
Beispiel
function main() {
return (
<Circle
width={120}
height={120}
background="clear"
stroke={$env.accent}
lineWidth={8}
startAngle={-90}
sweepAngle={240}
strokePosition="inside"
/>
);
}
Verwendung
- Circle zeichnet mittig einen Kreis mit dem kleineren Maß als Durchmesser: 160×100 ergibt 100. startAngle/sweepAngle ändern die Kontur, transform das fertige Ergebnis.
- Winkel in Grad: 0 rechts, 90 unten, positive Bögen im Uhrzeigersinn. startAngle modulo 360, sweepAngle auf −360…360 begrenzt. 0 ist leer, ±360 ein Vollkreis. wrap:360 nur für startAngle, nicht sweepAngle.
- Ellipse und Arc nutzen die gesamten Breiten-/Höhenmaße; gleiche Werte ergeben einen Kreis. Teilbögen bleiben offen, ohne Verbindung zum Mittelpunkt. background füllt nur eine geschlossene volle Umdrehung.
Eigenschaften
startAngle?numberStartwinkel in Grad, bei der Abtastung modulo 360 normalisiert.
0sweepAngle?numberWinkelbereich in Grad, bei der Abtastung auf -360…360 begrenzt. Positive Werte verlaufen im Uhrzeigersinn; wrap wird nicht unterstützt.
360background?PaintFüllung eines vollständigen geschlossenen Kreises oder einer Ellipse. Bei Teilbögen ignoriert.
HDR($env.dark ? "white" : "black")stroke?PaintLinienfarbe oder Verlauf; clear blendet die Linie aus.
"clear"lineWidth?numberLinienstärke in Punkten; 0 zeichnet keine Linie.
2strokePosition?"inside" | "center" | "outside"Strichposition relativ zur vollständigen Kreis- oder Ellipsenkontur. Standard ist inside.
"inside"lineCap?"round" | "butt" | "square"Linienende: butt endet am Punkt, square verlängert eckig, round rundet.
"round"dash?number[]Abwechselnde Strich- und Lückenlängen in Punkten; leeres Array bedeutet durchgezogen.
[]dashPhase?numberVersatz des Strichmusters in Punkten.
0Allgemeine Eigenschaften
width?number | "auto" | "fill"Breite in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
"fill"height?number | "auto" | "fill"Höhe in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
"fill"x?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0y?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0transform?ViewTransformGesamten View ohne Layoutänderung transformieren. Verschiebung in Punkten, Drehung/Neigung in Grad, Skalierung 1 unverändert, Anker 0–1.
{rotation: 0}opacity?numberDeckkraft des gesamten Views: 0 transparent, 1 undurchsichtig.
1clipped?booleanZeichnung außerhalb der View-Grenzen abschneiden.
falseclip?"rectangle" | "ellipse"Schnittform rectangle oder ellipse; Material erlaubt auch false zum Abschalten.
"rectangle"mask?View | nullView als Alphamaske. Zentriert ohne Einfluss auf das Layout; null deaktiviert die Maske.
<Circle width="fill" height="fill" background="white"/>zIndex?numberZeichenreihenfolge unter Geschwistern; größere Werte liegen vorne.
0blur?numberUnschärferadius in Punkten; 0 deaktiviert die Unschärfe.
4innerShadow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorFarbe des äußeren Schattens.
HDR("black")shadowOpacity?numberSchattendeckkraft 0–1; 0 blendet ihn aus.
0shadowRadius?numberUnschärferadius des äußeren Schattens in Punkten.
4shadowX?numberSchattenversatz in Punkten: x rechts, y unten.
0shadowY?numberSchattenversatz in Punkten: x rechts, y unten.
2animations?CircleAnimation[]Attributänderung animieren. duration/delay in Sekunden; from/to sind Endwerte; repeat/autoreverse steuern Wiederholung, wrap die Periode.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberStabile Kennung unter Geschwisterelementen.
Praxisbeispiel
function main() {
return (
<ZStack width={140} height={140}>
<Circle
width="fill"
height="fill"
background="clear"
stroke="#88888833"
lineWidth={10}
/>
<Circle
width="fill"
height="fill"
background="clear"
stroke={$env.accent}
lineWidth={10}
startAngle={-90}
sweepAngle={270}
lineCap="round"
/>
<Text fontSize={36}>75%</Text>
</ZStack>
);
}
Animation
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYdashPhasestrokelineWidthstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYBeim Weglassen
Die Tabelle zeigt implementierte Vorgaben beim Weglassen. Eigenschaftsbeispiele sind keine Standardwerte. Für feste Ergebnisse explizite Werte setzen; kontextabhängige Maße und Themenfarben sind keine Konstanten.
| Eigenschaften | Beim Weglassen |
|---|---|
startAngle | 0 |
sweepAngle | 360 |
lineWidth | 2 |
strokePosition | "inside" |
background | HDR($env.dark ? 'white' : 'black') |