brightness()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
brightness()
は CSS の関数で、入力画像に線形乗算を適用し、明るくしたり暗くしたりします。その結果は <filter-function>
です。
試してみましょう
構文
brightness(amount)
引数
amount
-
明るさで、
<number>
または<percentage>
で指定します。値が100%
未満の場合は入力画像または要素が暗くなり、100%
を超える場合は明るくなります。値が0%
の場合は完全に黒い画像または要素が作成され、100%
の場合は入力が変更されません。0%
から100%
までの他の値は、線形の乗算効果があります。100%
を超える値も許可されており、明るい結果を提供します。補間の初期値は1
です。負の値は許可されていません。何も指定しない場合の既定値は1
です。
以下は、等価な値のペアです。
brightness(0) /* 輝度がゼロに縮小されるため、入力が黒くなる */
brightness(0%)
brightness(0.4) /* 入力の明るさが40%に縮小されるため、入力は60%暗くなる */
brightness(40%)
brightness(1) /* 入力の明るさは変更されない */
brightness(100%)
brightness(2) /* 入力の明るさが 2 倍に */
brightness(200%)
形式文法
例
backdrop-filter プロパティを用いた brightness の適用
この例は、段落に brightness()
フィルターを、 backdrop-filter
プロパティを介して適用する方法を示します。
CSS
.container {
background: url(image.jpg) no-repeat right / contain #d4d5b2;
}
p {
backdrop-filter: brightness(150%);
text-shadow: 2px 2px #ffffff;
}
結果
この例では、<p>
要素の背後の領域の色が直線的に変化します。 backdrop-filter
プロパティが brightness(0%)
に設定されていた場合、<p>
要素を含む <div>
領域は黒色となり、背後の画像を隠します。 brightness(100%)
では、<div>
領域の色は入力の #d4d5b2
と同じになり、背景の画像は完全に透明になります。 この例のように明るさを 150%
に設定すると、背景の画像の色は <div>
要素の明るさによって隠されます。
数値とパーセント値を用いた brightness の設定
例えば、 brightness()
フィルターが、 filter
プロパティを介して、コンテンツ、境界線、背景画像を含め、要素全体に適用されます。その結果、異なる明るさの値の 3 つのバリエーションが表示されます。
p:first-of-type {
filter: brightness(50%);
}
p:last-of-type {
filter: brightness(200%);
}
url() と SVG の brightness フィルターを用いた brightness の適用
SVG の <filter>
要素は、カスタムフィルター効果を定義するために使用でき、その後、 id
で参照することができます。 <filter>
要素の <feComponentTransfer>
プリミティブは、ピクセルレベルでの色変換を可能にします。
例えば、適用したコンテンツを 25% (つまり、元の明るさの 75%)暗くするフィルターを作成するには、 slope
属性を 0.75
に設定します。次に、 id
でフィルターを参照します。
次のコードがあったとします。
<svg role="none">
<filter id="darken25" color-interpolation-filters="sRGB">
<feComponentTransfer>
<feFuncR type="linear" slope="0.75" />
<feFuncG type="linear" slope="0.75" />
<feFuncB type="linear" slope="0.75" />
</feComponentTransfer>
</filter>
</svg>
次の宣言は同様の効果をもたらします。
filter: brightness(75%);
filter: url(#darken25); /* 埋め込み SVG による */
filter: url(folder/fileName.svg#darken25); /* 外部 SVG フィルター定義 */
下記の画像では、最初の画像は brightness()
フィルター機能が適用され、 2 つ目の画像は同様の SVG 明るさ機能が適用され、 3 つ目は比較用の元画像です。
仕様書
Specification |
---|
Filter Effects Module Level 1 # funcdef-filter-brightness |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- CSS フィルター効果モジュール
- その他の
filter
およびbackdrop-filter
プロパティの値で使用できる<filter-function>
関数には、次のものがあります。