Pure CSSでグラスモーフィックUIエフェクトを作成する方法

Appleの最新デザイントレンドがグラスモーフィズムへの関心を再燃させていますが、この美しいエフェクトを支えるCSSプロパティは時代を超越したものです。モダンなダッシュボードを構築する場合でも、ポートフォリオを更新する場合でも、グラスモーフィズムCSS技術をマスターすることで、ユーザーが期待する洗練されたプロフェッショナルなタッチを追加できます。
このガイドでは、ピュアCSSグラスモーフィズムエフェクトをゼロから作成する方法を説明します。フレームワークもジェネレーターも使わず、プロジェクトで美しいすりガラスエフェクトを実装するために必要な基本的なプロパティのみを使用します。
重要なポイント
- グラスモーフィズムの4つのコアCSSプロパティをマスターする:backdrop-filter、半透明背景、ボーダー、シャドウ
- アクセシビリティと可読性とのバランスを学ぶ
- 古いブラウザ向けの適切なフォールバックを実装する
- モバイルとデスクトップエクスペリエンス向けのパフォーマンス最適化
グラスモーフィズムの基本CSSプロパティ
backdrop-filter:基盤となるプロパティ
backdrop-filter
プロパティは、あらゆるグラスモーフィックデザインの基盤です。要素の背後にあるコンテンツにblur()
を適用することで、特徴的なすりガラスの外観を作り出します:
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px); /* Safari対応 */
ブラー値は通常8pxから15pxの範囲です。低い値は微妙なフロスト効果を、高い値はより強い拡散効果を生み出します。Chrome 76+、Safari 9+、Firefox 103+を含む最新ブラウザの多くがbackdrop-filter
をサポートしています。
半透明背景
グラスモーフィズムには、透明度と視認性の慎重なバランスが必要です。低いアルファ値のRGBAカラーを使用します:
background: rgba(255, 255, 255, 0.1); /* 10%の白 */
明るい背景の場合、0.1から0.25のアルファ値が最適です。ダークテーマでは、ガラス効果を失うことなく、わずかに高い値(0.15-0.3)を使用できます。
深度を表現するボーダーとシャドウ
微妙なボーダーでガラスのエッジを定義します:
border: 1px solid rgba(255, 255, 255, 0.2);
ソフトなシャドウと組み合わせて、浮遊する要素を作成します:
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
グラスモーフィックカードをステップバイステップで構築
基本的なHTML構造
シンプルなコンテナと背景から始めます:
<div class="background">
<div class="glass-card">
<h2>Glass Card</h2>
<p>Your content here</p>
</div>
</div>
コアCSS実装
洗練されたカードのための完全なグラスモーフィズムCSSは以下の通りです:
.glass-card {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
border-radius: 16px;
padding: 2rem;
}
エフェクトの微調整
背景に基づいてこれらの値を調整します:
- カラフルなグラデーション:低い不透明度を使用(0.1-0.15)
- 画像背景:ブラーを12-15pxに増加
- 単色:微妙さのためにブラーを6-8pxに減少
Discover how at OpenReplay.com.
ブラウザサポートとフォールバック
現在のブラウザ互換性
ブラウザ | サポート | バージョン |
---|---|---|
Chrome | ✓ | 76+ |
Safari | ✓ | 9+ |
Firefox | ✓ | 103+ |
Edge | ✓ | 79+ |
適切な劣化
@supports
を使用して常にフォールバックを提供します:
.glass-card {
/* フォールバック */
background: rgba(255, 255, 255, 0.9);
}
@supports (backdrop-filter: blur(10px)) {
.glass-card {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
}
アクセシビリティとパフォーマンス
読みやすいコンテンツの確保
ピュアCSSグラスモーフィズムはテキストの可読性を損なう可能性があります。以下の技術でWCAGコンプライアンスを維持します:
-
コントラストのためのテキストシャドウを追加:
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
-
重要なテキストエリアの背景不透明度を増加
-
コントラスト比をテスト(WebAIMのContrast Checkerなどのツールを使用)
パフォーマンス最適化
backdrop-filter
プロパティは計算コストが高いです。以下で最適化します:
- ビューポートあたりのガラス要素を2-3個に制限
- ブラーされた要素でのアニメーションを避ける
will-change: backdrop-filter
を控えめに使用- 中程度のデバイスでテスト
モバイルでは、ブラー強度を下げるか、代替スタイルの提供を検討してください。
実用的な適用ガイドライン
すりガラスエフェクトは以下に最適です:
- ナビゲーションバーとヘッダー
- モーダルオーバーレイ
- カードコンポーネント
- サイドバーパネル
グラスモーフィズムを避けるべき場所:
- 本文テキストコンテナ
- フォーム入力(慎重にテストしない限り)
- 高情報密度エリア
覚えておいてください:微妙さが鍵です。一つの適切に配置されたガラス要素は、透明度だらけのインターフェース全体よりも大きなインパクトを生み出します。
まとめ
プロフェッショナルなグラスモーフィズムCSSエフェクトの作成には、4つのコアプロパティのみが必要です:backdrop-filter
、半透明背景、微妙なボーダー、ソフトシャドウ。これらのガイドラインに従い、アクセシビリティのニーズを尊重することで、パフォーマンスを維持しながらブラウザ間で動作するモダンなガラスエフェクトを実装できます。
単一のコンポーネントから始め、ブラウザ間でテストし、常に可読性を優先してください。結果は?ピュアCSSのみで構築された、洗練されたモダンな印象のインターフェースです。
よくある質問
Firefoxはbackdrop-filterサポートにバージョン103以上が必要です。古いバージョンでは、@supportsクエリを使用して、ブラー効果なしでも可読性を維持する単色背景のフォールバックを提供してください。
ビューポートあたりのグラスモーフィック要素を2-3個に制限し、モバイルではブラー値を6-8pxに減らし、backdrop-filterを持つ要素のアニメーションを避けてください。低性能デバイスにはメディアクエリを使用してシンプルなスタイルを提供することを検討してください。
通常のテキストには最低4.5:1、大きなテキストには3:1のコントラスト比を目指してください。ブラー効果がコントラストを減少させる場合は、背景の不透明度を0.3-0.4に増やすか、微妙なテキストシャドウを追加して可読性を改善してください。
Truly understand users experience
See every user interaction, feel every frustration and track all hesitations with OpenReplay — the open-source digital experience platform. It can be self-hosted in minutes, giving you complete control over your customer data. . Check our GitHub repo and join the thousands of developers in our community..