
backdrop-filter
は、要素の背後の領域に「ぼかし」などの効果を加えることができるプロパティで、2024年に全てのブラウザで使用が可能になった比較的新しいプロパティです。
CSS のぼかしというと、一昔前まではfilter
プロパティのblur()
を使う方法が主流でしたが、filter
プロパティを使用する方法では要素の中身までぼやけてしまうため、背景のみをぼかすためには疑似要素を追加したりと少し複雑な手法が必要でした。
この記事では、backdrop-filter
によるぼかしの方法と、ぼかしを使用したいくつかのアイデアを紹介します。
backdrop-filter によるぼかしの方法
例えば、以下のようなページがあったとします。body
に背景画像が指定してあり、その中に画面いっぱいに広げたh1
が一つだけのシンプルなページです。
ここにぼかしを加えるために、h1
要素にbackdrop-filter: blur();
を追加します。( ) 内には、ぼかしの度合いをpx
などの単位で指定します。今回は、5px
を指定してみます。
h1 {
margin: 0;
display: flex;
align-items: center;
justify-content: center;
width: 100vw;
height: 100vh;
font-size: 48px;
font-weight: 600;
color: #fff;
backdrop-filter: blur(5px); /* これを追加 */
}
たったこれだけで、ぼかしがかかるようになりました。
注意点として、backdrop-filter
は適用した要素の背後にあるものに対してのみ効果を及ぼします。イメージ的には、要素と同じ大きさのすりガラスを敷くようなイメージです。
そのため、全体をぼかすには、適用する要素を親要素(背景画像を指定している要素)と同じ大きさまで広げる必要があります。さらに、backdrop-filter
を適用する要素は、背後の要素が透けている必要があります。
逆に言うと、一部分だけをぼかしたり、透けてさえいれば色を付けることも可能です。
backdrop-filter の使用例
テキストの可読性を上げる
画像上のテキストに、透過の背景色rgba(255, 255, 255, 0.5)
とともにbackdrop-filter
でぼかしを加えた例です。
背景色だけでは下の写真が透けて読みにくい場合でも、ぼかしを入れることで可読性を向上させることができます。常に上部に表示される追尾型のヘッダーなどにも使える手法です。
ユーザーの注意を引く
モーダルウィンドウの表示時に背景にぼかしを入れることで、ウィンドウの内容が視覚的に強調され、ユーザーの注意を引きやすくなります。また、ぼかしによって奥行きが生まれ、デザインに立体感や洗練された印象を与えることができます。
縦横比が異なる画像の背景の余白を埋める
テレビ番組などで、スマホで撮影された縦長の動画や画像を映し出す際によく使われる手法です。
縦横比の違いによって余白ができる場合、同じ絵をぼかしたものを背景いっぱいに広げることで余白を埋め、統一感を出すことができます。縦長と横長の画像が混在するフォトギャラリーなどで使える手法です。
終わりに
以上、backdrop-filter
によるぼかしの方法と、ぼかしを使用したいくつかのアイデアをご紹介しました。紹介したシーン以外にも、さまざまなシーンで活躍できるかと思います。ぜひ、ご自身のウェブサイトに取り入れて活用してみてください。