スタッフブログ

Adobe Fonts読み込み時のガタつきを解消!CSSで実装するスムーズなローディング

Adobe Fonts読み込み時のガタつきを解消!CSSで実装するスムーズなローディング

Webフォントはブランドの魅力や世界観を伝えるための重要な要素の1つですが、一方でファイルサイズが大きいフォント、特に日本語Webフォントを大量に読み込むページの表示などは、レイアウトやローディングにも大きく関わってきます。
先日もお客様からこんなご相談をいただきました。

お客様
お客様
Adobe Fontsを利用してますが、ページ読み込み時にカクついたり、途中でレイアウトがガタガタ動くので悩んでます。何かスムーズにローディングさせる方法はありますか?

そこで今回は、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 */
}
  1. 読み込み(.wf-loading):Webフォントの読み込み中
  2. アクティブ(.wf-active):Webフォントがアクティブな状態
  3. 非アクティブ(.wf-inactive):Webフォントの読み込みに失敗した状態

参考)フォントイベント|Adobe Fonts公式サイト
https://helpx.adobe.com/jp/fonts/using/font-events.html

お客様
お客様
なるほど、Adobe側で読み込みステータスに応じたCSSのクラスを用意してくれているんですね!これを使えば、ローディングアニメーションも実装できそうですね。

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の読み込みをシミュレートしたデモです。
上にあるボタンをクリックしていただくと、それぞれの動きを確認できます。
現在のアニメーション:ベーシックなフェードイン

まとめ

Adobe Fonts読み込み時のガタつきを解消!CSSで実装するスムーズなローディング

Webフォントの表示は、サイトの第一印象を左右する重要な要素です。
今回は、Adobe Fonts読み込みの際に利用できるCSSアニメーションについて、コピー&ペーストで使えるサンプルコードをご紹介しました。
Adobe Fontsのちょっとした小ネタですが、皆様のお役に立てれば幸いです。

株式会社プレスマンはお客様のプロジェクトの一員となり、システム開発やサイト制作などの多岐にわたり現場の課題解決をお手伝いします。「こんなことまで頼んで大丈夫?」という内容でも、まずはお気軽にご相談ください。

Sketto

システム開発・サイト制作のご相談はこちら

AIの導入に躊躇されている企業様は、まずは1つのツールだけでも利用してみてはいかがでしょうか?EC×ChatGPTをはじめとしたAI企画から導入・運用まで、経験豊富な弊社プロ人材が手厚くサポートいたします。

AI企画&導入事例

AIを活用したい企業様はこちら

ABOUT ME
日野 夕奈
Webマーケティング部のスタッフです。主にデザインとコーディングを担当しています。見やすさ&わかりやすさ、それにちょっぴり遊び心を加えたWebデザインを目指しています。
関連記事