Circle
利用可能な領域内に完全な円または円弧を描きます。円形の進行状況やメータースケールに適しています。直径は、幅と中心の小さい方の値になります。 startAngle と sweepAngle は表示範囲を制御します。円全体を閉じると背景を塗りつぶすことができます。
例
function main() {
return (
<Circle
width={120}
height={120}
background="clear"
stroke={$env.accent}
lineWidth={8}
startAngle={-90}
sweepAngle={240}
strokePosition="inside"
/>
);
}
使い方
- Circle は短辺を直径にして中央に正円を描きます。160×100 なら直径 100 です。startAngle/sweepAngle は輪郭範囲、transform は完成した描画全体を変えます。
- 角度は度で 0 が右、90 が下、正 sweep は時計回り。startAngle は 360 周期、sweepAngle は方向を保って −360…360 に制限します。0 は空、±360 は一周。wrap:360 は startAngle 用で sweepAngle には使えません。
- Ellipse と Arc は幅と高さ全体を楕円境界に使い、同寸法なら円になります。部分円弧は中心と結ばず扇形になりません。background は完全に閉じた一周のみ有効です。
プロパティ
startAngle?number開始角度(度)。サンプリング時に 360 を法として正規化します。
0sweepAngle?number掃引角度(度)。サンプリング時に -360…360 に制限します。正の値は時計回りです。wrap は使用できません。
360background?Paint完全に閉じた円または楕円の塗りつぶし。部分的な円弧では描画しません。
HDR($env.dark ? "white" : "black")stroke?Paint線の色またはグラデーション。clear で非表示。
"clear"lineWidth?number線幅(ポイント)。0 で線を描きません。
2strokePosition?"inside" | "center" | "outside"完全な円または楕円の輪郭に対する線の位置。デフォルトは inside です。
"inside"lineCap?"round" | "butt" | "square"線端:butt は切断、square は四角く延長、round は丸形。
"round"dash?number[]線と空白の長さを交互に指定(ポイント)。空配列は実線。
[]dashPhase?number破線パターンの位相(ポイント)。
0共通プロパティ
width?number | "auto" | "fill"幅。ポイント指定、自動サイズ、親領域への拡張に対応します。
"fill"height?number | "auto" | "fill"高さ。ポイント指定、自動サイズ、親領域への拡張に対応します。
"fill"x?number見た目の移動量(ポイント)。x は右、y は下。レイアウトの占有領域は変わりません。
0y?number見た目の移動量(ポイント)。x は右、y は下。レイアウトの占有領域は変わりません。
0transform?ViewTransformレイアウトを変えず全体を変形。移動はポイント、回転・傾きは度、倍率 1 は等倍、基点は 0–1。
{rotation: 0}opacity?numberView 全体の不透明度。0 は透明、1 は不透明。
1clipped?booleanView の境界からはみ出す描画を切り抜きます。
falseclip?"rectangle" | "ellipse"切り抜き形状は rectangle または ellipse。Material は false で無効化も可能。
"rectangle"mask?View | nullアルファマスク用の View。レイアウトに影響せず中央に配置されます。null でマスクを無効にします。
<Circle width="fill" height="fill" background="white"/>zIndex?number兄弟 View の重なり順。大きい値ほど手前。
0blur?numberぼかし半径(ポイント)。0 で無効。
4innerShadow?DrawingEffect効果の色、不透明度、ぼかし半径、x/y オフセット。距離はポイント。
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffect効果の色、不透明度、ぼかし半径、x/y オフセット。距離はポイント。
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?Color外側の影の色。
HDR("black")shadowOpacity?number外側の影の不透明度 0–1。0 で非表示。
0shadowRadius?number外側の影のぼかし半径(ポイント)。
4shadowX?number影の移動量(ポイント)。x は右、y は下。
0shadowY?number影の移動量(ポイント)。x は右、y は下。
2animations?CircleAnimation[]プロパティ変更のアニメーション。duration/delay は秒、from/to は端点、repeat/autoreverse は反復、wrap は周期。
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | number兄弟要素間で安定した識別子。
組み合わせ例
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>
);
}
アニメーション
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYdashPhasestrokelineWidthstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorY省略時の動作
表は実装で確認した省略時の動作です。プロパティ例は既定値ではありません。固定結果には明示指定し、環境に依存する寸法やテーマ色を定数と思わないでください。
| プロパティ | 省略時の動作 |
|---|---|
startAngle | 0 |
sweepAngle | 360 |
lineWidth | 2 |
strokePosition | "inside" |
background | HDR($env.dark ? 'white' : 'black') |