Webフォントはブランドの魅力や世界観を伝えるための重要な要素の1つですが、一方でファイルサイズが大きいフォント、特に日本語Webフォントを大量に読み込むページの表示などは、レイアウトやローディングにも大きく関わってきます。
先日もお客様からこんなご相談をいただきました。
そこで今回は、Adobe Fontsのローディング時のガタつきを解消できる、CSSアニメーションの実装方法についてご紹介します。
Adobe FontsのCSS用フォントイベント
Webフォントの読み込み時に何も対策を施さないと、フォントの切り替わりが突然発生し、ページの表示が不自然になることがあります。
こういった問題を避けるために、Adobe FontsではあらかじめCSSやJavaScriptによるフォントイベントが用意されています。
Adobeがフォントイベントとして用意しているCSSは下記の3つです。
フォントの読み込みステータスに応じて、HTMLタグにCSSクラス名が付与されます。
.wf-loading {
/* styles to use when web fonts are loading */
}
.wf-active {
/* styles to use when web fonts are active */
}
.wf-inactive {
/* styles to use when web fonts are inactive */
}
- 読み込み(.wf-loading):Webフォントの読み込み中
- アクティブ(.wf-active):Webフォントがアクティブな状態
- 非アクティブ(.wf-inactive):Webフォントの読み込みに失敗した状態
参考)フォントイベント|Adobe Fonts公式サイト
https://helpx.adobe.com/jp/fonts/using/font-events.html
Adobe Fonts読み込み用CSSのサンプルコード
1. シンプルなフェードイン
下記のサンプルコードは、最もシンプルなCSSでの実装方法です。
Adobe Fontsのローディングが完了すると、id="contents"
が付与されたコンテンツに対し、0.3秒かけてフェードインで表示させます。
/* ローディング中のスタイル */
.wf-loading #contents {
opacity: 0;
}
/* フォント読み込み完了後のスタイル */
.wf-active #contents {
opacity: 1;
transition: opacity 0.3s ease;
}
/* フォント読み込み失敗時のスタイル */
.wf-inactive #contents {
opacity: 1;
}
2. スライド&フェードイン
フェードインでアニメーション表示させつつ、同時に下から上へとコンテンツが浮き上がってくる動きを実現します。
/* ローディング中のスタイル */
.wf-loading #contents {
opacity: 0;
transform: translateY(20px);
}
/* フォント読み込み完了後のスタイル */
.wf-active #contents {
opacity: 1;
transform: translateY(0);
transition: opacity 0.7s ease, transform 0.7s ease;
}
/* フォント読み込み失敗時のスタイル */
.wf-inactive #contents {
opacity: 1;
}
translateY(20px)
の数値を変えたり、translateX
へ変更することで、上から下へのスライド効果だけでなく、「下から上へ」「右から左へ」など、様々な方向のスライドアニメーションを実装することができます。
3. ズームイン&フェードイン
小さめのサイズから徐々に本来のサイズまで拡大表示します。
.wf-loading #contents {
opacity: 0;
transform: scale(0.95);
}
.wf-active #contents {
opacity: 1;
transform: scale(1);
transition: opacity 0.7s ease, transform 0.7s ease;
}
4. ブラー効果&フェードイン
ぼかし効果から徐々にクリアになっていく演出です。
.wf-loading #contents {
opacity: 0;
filter: blur(5px);
}
.wf-active #contents {
opacity: 1;
filter: blur(0);
transition: opacity 0.7s ease, filter 0.7s ease;
}
Adobe Fontsローディングのデモ
CSSアニメーションのデモ表示
これは実際のAdobe Fontsの読み込みをシミュレートしたデモです。
上にあるボタンをクリックしていただくと、それぞれの動きを確認できます。
現在のアニメーション:ベーシックなフェードイン
まとめ
Webフォントの表示は、サイトの第一印象を左右する重要な要素です。
今回は、Adobe Fonts読み込みの際に利用できるCSSアニメーションについて、コピー&ペーストで使えるサンプルコードをご紹介しました。
Adobe Fontsのちょっとした小ネタですが、皆様のお役に立てれば幸いです。
株式会社プレスマンはお客様のプロジェクトの一員となり、システム開発やサイト制作などの多岐にわたり現場の課題解決をお手伝いします。「こんなことまで頼んで大丈夫?」という内容でも、まずはお気軽にご相談ください。
AIの導入に躊躇されている企業様は、まずは1つのツールだけでも利用してみてはいかがでしょうか?EC×ChatGPTをはじめとしたAI企画から導入・運用まで、経験豊富な弊社プロ人材が手厚くサポートいたします。