Rectangle
背景、進行状況バー、および境界線で使用するために、オプションで角が丸い四角形を描画します。 background は内部を塗りつぶし、stroke ストローク、lineWidth および strokePosition はストロークの幅と位置を制御します。
例
function main() {
return (
<Rectangle
width={160}
height={80}
cornerRadius={16}
background={LinearGradient(['#A9E56F', '#30B3A2'])}
stroke={$env.foreground}
lineWidth={2}
strokePosition="inside"
/>
);
}
使い方
- background は内部、stroke は輪郭です。cornerRadius は短辺の半分まで。inside は内側、center は境界をまたぎ、outside は外側です。親のクリップで外側線が切れる場合があります。
- mask は alpha を使い、不透明部分を残して透明部分を隠します。同じ alpha の白黒は同じ効果です。主体の配置に影響しないので寸法を指定し、clipped の境界切り取りと区別します。
- background/stroke は Color または Gradient。三種の Gradient 関数を使い、色位置と中心は 0–1、径方向半径はポイントです。HDR は一色を包み、明るさは端末と表示環境によります。
プロパティ
background?Paint背景の色またはグラデーション。clear は透明。
HDR($env.dark ? "white" : "black")cornerRadius?number角丸の半径(ポイント)。
0stroke?Paint線の色またはグラデーション。clear で非表示。
"clear"lineWidth?number線幅(ポイント)。0 で線を描きません。
2strokePosition?"inside" | "center" | "outside"輪郭に対する線の位置:inside、center、outside。
"inside"lineCap?"round" | "butt" | "square"線端:butt は切断、square は四角く延長、round は丸形。
"round"lineJoin?"round" | "miter" | "bevel"接合部の形:miter、round、bevel。
"round"dash?number[]線と空白の長さを交互に指定(ポイント)。空配列は実線。
[]dashPhase?number破線パターンの位相(ポイント)。
0trimStart?numbertrimStart~trimEnd の表示区間(0–1)。Circle/Ellipse/Arc は角度を使用。
0trimEnd?numbertrimStart~trimEnd の表示区間(0–1)。Circle/Ellipse/Arc は角度を使用。
1共通プロパティ
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?Animation[]プロパティ変更のアニメーション。duration/delay は秒、from/to は端点、repeat/autoreverse は反復、wrap は周期。
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | number兄弟要素間で安定した識別子。
組み合わせ例
function main() {
return (
<HStack spacing={20}>
<Rectangle
width={90}
height={60}
background="clear"
stroke={$env.accent}
lineWidth={8}
strokePosition="inside"
/>
<Rectangle
width={90}
height={60}
background="clear"
stroke={$env.accent}
lineWidth={8}
strokePosition="outside"
/>
</HStack>
);
}
アニメーション
widthheightxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtrimStarttrimEnddashPhasestrokelineWidthtransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorY省略時の動作
表は実装で確認した省略時の動作です。プロパティ例は既定値ではありません。固定結果には明示指定し、環境に依存する寸法やテーマ色を定数と思わないでください。
| プロパティ | 省略時の動作 |
|---|---|
cornerRadius | 0 |
lineWidth | 2 |
strokePosition | "inside" |
trimStart | 0 |
trimEnd | 1 |
background | HDR($env.dark ? 'white' : 'black') |