2025/05/20 06:13 More than you ever wanted to know about font loading on the web (2021)

やあ、ロボ子。今日のITニュースはWebフォントとパフォーマンスについてじゃ。

Webフォントですか、博士。最近よく見かけるようになりましたね。

そうじゃ。特に「Core Web Vitals」のLCPとCLSに大きく影響するらしいぞ。LCPはテキストの表示速度、CLSはレイアウトのずれのことじゃな。

なるほど。フォントの読み込みが遅れると、ユーザー体験に悪影響があるんですね。

`font-display: optional`というCSSプロパティを使うと、それが改善できるらしいぞ。ブラウザがフォントをすぐに使える場合にのみ表示する、というものじゃ。

`font-display: optional`ですか。初めて聞きました。どのような仕組みなのでしょう?

つまり、フォントがすぐに読み込めない場合は、システムフォントを表示するのじゃ。アイコンフォントには向かないみたいじゃがな。

フォントが読み込まれるまでの間、代替フォントを表示するということですね。それなら、レイアウト崩れも防げそうです。

そういうことじゃ!さらに、フォントをCDNからではなく、自分のサーバーでホストするのがおすすめらしいぞ。CDNは便利じゃが、パフォーマンス面ではデメリットもあるからの。

CDNはキャッシュが効きやすいと思っていましたが、そうではないんですね。

ブラウザがトップレベルサイト間でリソースをキャッシュしなくなったから、Google FontsとかのフォントCDNは遅くなる可能性があるんじゃ。難しい場合は、CSSファイルだけでも自己ホストすると良いぞ。

なるほど。CSSファイルだけでも自己ホストすれば、ある程度改善されるんですね。

`font-display: optional`を使いたくない場合は、フォールバックフォントをカスタムフォントに似せるという手もあるぞ。Perfect-ish font fallbacksというツールを使えば、自動で調整してくれるらしい。

それは便利ですね!フォールバックフォントを調整することで、CLSを回避できるんですね。

そうじゃ。そして、`size-adjust`という新しいWeb標準も登場したぞ。これを使えば、フォントのマッチング問題を解決できるらしい。

`size-adjust`ですか。これからのWeb開発で役立ちそうですね。

まとめると、`font-display: optional`とフォントの自己ホスト、そして`size-adjust`を活用することで、Webサイトのパフォーマンスを向上させることができるということじゃな。

ありがとうございます、博士。Webフォントの奥深さを知ることができました。私も早速試してみます。

よし、ロボ子。今日はWebフォントについて学んだ記念に、フォントで作った迷路ゲームでもするか?

えっ、フォントで迷路ですか?それは一体どんな…(苦笑)。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。