Material
すりガラス素材の表面を描画し、テキストやグラフィックを重ねてコンテンツ領域を形成します。 type は現在つや消しをサポートしており、style は材料の厚さを制御します。目に見える効果はその背後にあるコンテンツによって異なります。
例
function main() {
return (
<ZStack>
<Material type="frosted" style="thin" />
<Text>CapDrive</Text>
</ZStack>
);
}
使い方
- Material は children と padding を持たない表面です。ZStack で文字を重ねます。すりガラスは背後の内容に依存します。type は現在 frosted、style は厚さで、画像テクスチャは使えません。
- mask は alpha を使い、不透明部分を残して透明部分を隠します。同じ alpha の白黒は同じ効果です。主体の配置に影響しないので寸法を指定し、clipped の境界切り取りと区別します。
プロパティ
type"frosted"素材の種類。現在は frosted がネイティブのすりガラス。
"frosted"style?"ultraThin" | "thin" | "regular" | "thick" | "ultraThick" | "bar"ultraThin から ultraThick までの素材。bar はシステムバー用。
"ultraThin"共通プロパティ
width?number | "auto" | "fill"幅。ポイント指定、自動サイズ、親領域への拡張に対応します。
100height?number | "auto" | "fill"高さ。ポイント指定、自動サイズ、親領域への拡張に対応します。
80x?number見た目の移動量(ポイント)。x は右、y は下。レイアウトの占有領域は変わりません。
0y?number見た目の移動量(ポイント)。x は右、y は下。レイアウトの占有領域は変わりません。
0transform?ViewTransformレイアウトを変えず全体を変形。移動はポイント、回転・傾きは度、倍率 1 は等倍、基点は 0–1。
{rotation: 0}background?Paint背景の色またはグラデーション。clear は透明。
"clear"opacity?numberView 全体の不透明度。0 は透明、1 は不透明。
1cornerRadius?number角丸の半径(ポイント)。
0clipped?booleanView の境界からはみ出す描画を切り抜きます。
falseclip?boolean | "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 (
<ZStack width={200} height={100}>
<HStack spacing={0} width="fill" height="fill">
<Rectangle width="fill" height="fill" background="blue" />
<Rectangle width="fill" height="fill" background="orange" />
</HStack>
<Material
width={160}
height={64}
type="frosted"
style="thin"
cornerRadius={16}
/>
<Text fontSize={28}>78 km/h</Text>
</ZStack>
);
}
アニメーション
widthheightxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorY省略時の動作
表は実装で確認した省略時の動作です。プロパティ例は既定値ではありません。固定結果には明示指定し、環境に依存する寸法やテーマ色を定数と思わないでください。