エフェクト

mask-mode

mask-mode は、マスクの画像の透明度と明るさのどちらを使って要素を隠すかを指定します。luminance にすると、白い所は見えて黒い所は隠れる、明るさのマスクになります。

構文

<masking-mode>#

<masking-mode> = alpha | luminance | match-source

プレビュー

プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box {
  background: linear-gradient(
    135deg,
    #88d1c7,
    #77a7d7,
    #eaac3a
  );
  mask-image: linear-gradient(to right, #ffffff, #000000);
  mask-mode: luminance;
}

コントロール

mask-modeluminance
mask-mode

解説

3 つの値

  • alpha:画像の透明度を使います。不透明な所は見え、透明な所は隠れます。色は関係ありません。
  • luminance:画像の明るさを使います。白い所は見え、黒い所は隠れ、灰色の所は半分透けます。透明な所は黒と同じく隠れます。
  • match-source:初期値です。mask-image が SVG の <mask> 要素を指すときは、その要素の mask-type(初期値は明るさ)に従い、画像やグラデーションのときは alpha になります。

白黒の画像をそのままマスクにする

透明な所の無い白黒の画像は、alpha ではどこも不透明なので何も隠れません。luminance にすると、白黒の濃さがそのまま見え方になります。このページのプレビューでは、白から黒へのグラデーション(linear-gradient(to right, #ffffff, #000000))をマスクにしているので、luminance では右へ行くほど消えていきます。

気をつけること

  • カンマで区切ると、mask-image の層ごとに指定できます。
  • Safari には、SVG の <mask> 要素をマスクにしたときに明るさではなく透明度で読む不具合があり、luminance がいつも期待どおりに効くとは限りません。
  • Chrome・Edge は 120、Safari は 15.4 から使えます。

コメント