ゲームからWebへ拡張されたFrosted Glass技術
(tyleo.com)ゲームからWebへのフロストガラス
-
紹介
- Forza Horizon 3 と Forza Motorsport 7 のUI開発者として働く中で、美しいフロストアクリルのデザイン要素を体験した。
- HTMLを使って同様の効果を実装したいと考え、このページでその試みを共有している。
-
backdrop-filterの役割- フロストガラス効果の核心は、Gaussianブラーを使って背景をぼかすことにある。
- CSSでは
backdrop-filterとblur関数を使って Gaussian ブラーを適用できる。 - Internet Explorer はこの機能をサポートしていない。
-
奥行きの追加
backdrop-filter: blur(10px)を使って基本的なガラスを作ったが、より奥行きのある効果のためにbox-shadow: insetを使って縁に深みを加えた。
-
実際の影
- 3Dオブジェクトが2D空間に閉じ込められているような印象をなくすため、暗い
box-shadowを追加して、ガラスが背景から物理的に浮いて見えるようにした。
- 3Dオブジェクトが2D空間に閉じ込められているような印象をなくすため、暗い
-
光との相互作用
- ガラスと光の相互作用を改善するため、シンプルなサブサーフェススキャタリングを導入した。
box-shadow: insetを使って、光がガラスの縁でわずかに広がる効果をシミュレートした。
-
より興味深い光
- ガラスの反射特性を強調するため、光線を背景画像として使用した。
::beforeを使って背景画像をガラス要素に適用した。
-
動的な光
- CSSとJavaScriptを使って、すべてのプラットフォームで動的な反射効果を実装した。
- JavaScriptを使って
background-positionを動的に調整し、background-attachment: fixed効果をシミュレートした。
-
仕上げ
- ガラス効果を完成させるため、角丸、色、テキストを追加した。
border-radiusを使って角を丸め、overflow: hiddenを使って子要素がガラス表面からはみ出さないようにした。
-
結論
- フロストガラス効果を作る過程を追っていただき、感謝している。
- すべてのアセットとコードをすばやくコピーできる方法については、文書冒頭の "Final Recipe Lookahead" セクションを参照。
1件のコメント
Hacker Newsのコメント
あるユーザーは、美的要素は気に入っているものの、クライアントが高コストなぼかしフィルターを繰り返し計算するのは無駄だと感じており、Web開発全般の傾向として負荷をかけすぎているように見えると述べている
別のユーザーは、Windows 7の「光線」テクスチャを抽出してAndroidで類似の効果を実装しようとしたことがあり、ぼかした背景の彩度を少し上げたと説明している
また別のユーザーは、インタラクティブなデモは素晴らしいと思う一方で、UIデザインにおけるフロステッドグラスの使用は嫌いで、Mac OSに追加されたのは後退だと感じると述べている
あるユーザーは、2008年にCSS実験を通じて、固定位置のあらかじめぼかし処理された背景画像を使って類似の効果を実装したと説明している
別のユーザーは、10個の効果が重ねられており、最も求められる美的要素を除いても7個程度は多すぎると考えている
あるユーザーは、ノイズテクスチャを追加して、よりざらついた結果を得るのが好きだと説明している
別のユーザーは、技術的達成としては見事だが、UXは悪いと述べている
あるユーザーは、元々のCSSデモの1つがフロステッドグラス効果のためのものだったと述べており、興味深いと感じている
また別のユーザーは、CSSの創造的で強力な側面を見るのはいつも印象的だと思う一方で、HTML/CSSの一部の理解レベルには自分は決して到達できない気がすると説明している
最後に、インタラクティブな例は良いが、以前のバージョンに切り替えられる比較機能やトグルがあればさらに良かっただろうと述べている