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"

幅。ポイント指定、自動サイズ、親領域への拡張に対応します。

例100
height?number | "auto" | "fill"

高さ。ポイント指定、自動サイズ、親領域への拡張に対応します。

例80
x?number

見た目の移動量(ポイント)。x は右、y は下。レイアウトの占有領域は変わりません。

例0
y?number

見た目の移動量(ポイント)。x は右、y は下。レイアウトの占有領域は変わりません。

例0
transform?ViewTransform

レイアウトを変えず全体を変形。移動はポイント、回転・傾きは度、倍率 1 は等倍、基点は 0–1。

例{rotation: 0}
background?Paint

背景の色またはグラデーション。clear は透明。

例"clear"
opacity?number

View 全体の不透明度。0 は透明、1 は不透明。

例1
cornerRadius?number

角丸の半径(ポイント)。

例0
clipped?boolean

View の境界からはみ出す描画を切り抜きます。

例false
clip?boolean | "rectangle" | "ellipse"

切り抜き形状は rectangle または ellipse。Material は false で無効化も可能。

例"rectangle"
mask?View | null

アルファマスク用の View。レイアウトに影響せず中央に配置されます。null でマスクを無効にします。

例<Circle width="fill" height="fill" background="white"/>
zIndex?number

兄弟 View の重なり順。大きい値ほど手前。

例0
blur?number

ぼかし半径(ポイント)。0 で無効。

例4
innerShadow?DrawingEffect

効果の色、不透明度、ぼかし半径、x/y オフセット。距離はポイント。

例{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}

効果の色、不透明度、ぼかし半径、x/y オフセット。距離はポイント。

例{color: HDR("cyan"), radius: 8, opacity: 0.8}
shadowColor?Color

外側の影の色。

例HDR("black")
shadowOpacity?number

外側の影の不透明度 0–1。0 で非表示。

例0
shadowRadius?number

外側の影のぼかし半径(ポイント)。

例4
shadowX?number

影の移動量(ポイント)。x は右、y は下。

例0
shadowY?number

影の移動量(ポイント)。x は右、y は下。

例2
animations?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

省略時の動作

表は実装で確認した省略時の動作です。プロパティ例は既定値ではありません。固定結果には明示指定し、環境に依存する寸法やテーマ色を定数と思わないでください。

プロパティ省略時の動作
type"frosted"
style"ultraThin"