SEARCH

CATEGORY

Font Awesome のアイコンをSVGで使用する方法|サイト軽量化・表示速度改善にも効果的

Font Awesome は、Web制作で定番のアイコンライブラリです。
CDNで簡単に導入できる一方で、数個しかアイコンを使用していなくても大量のアイコン定義やWeb Fontsを含むCSSファイルを読み込む必要があります。

そのため、使用アイコン数が少ないサイトでは、必要なSVGだけを直接利用した方が軽量かつ高速になるケースもあります。

この記事では、Font Awesome のアイコンをSVGとして利用する方法を紹介します。

Font Awesome をSVGで使うメリット

Font Awesome は非常に便利ですが、CDN版やWeb Fonts版では、使用していない大量のアイコンデータまで読み込まれてしまいます。

そのため、使用アイコン数が少ない場合は、必要なSVGだけを直接使用した方が軽量になるケースがあります。

SVGとして利用する主なメリットは以下の通りです。

  • Font Awesome のバージョン更新の影響を受けにくい
  • 外部CDNへの依存を減らせる
  • 不要なCSSやフォントファイルを読み込まずに済む
  • サイト表示速度の改善につながる

Font Awesome のSVGアイコンを取得する方法

まずは Font Awesome の公式サイトで使用したいアイコンを検索します。

使用したいアイコンを開き、「SVG」タブを選択するとSVGコードを取得できます。

取得したコードをHTML(またはPHP)へ直接貼り付けることで、そのままSVGアイコンとして利用できます。

Font Awesomeでは、「Full SVG」と「SVG」の2種類が表示される場合があります。

主な違いはSVG内部の座標サイズ(viewBox)で、通常のWeb制作では、扱いやすい「SVG(512×512)」版を使用すれば問題ありません。

なお、取得したSVGコードには、以下のようなライセンス情報のコメント行が含まれている場合があります。
これは表示には不要なため、HTMLを整理したい場合は削除しても問題ありません。

インラインSVGの基本的な使い方

インラインSVGとは、SVGコードをHTMLへ直接記述して使用する方法です。

取得したSVGコードをHTML(またはPHP)の任意の箇所に貼り付ける

CSSでSVGアイコンを調整する

SVGアイコンはCSSでサイズや色を自由に変更できます。

fill: currentColor; を指定すると、親要素の文字色を継承できるため、ボタンやリンクの色変更にも柔軟に対応できます。

SVGスプライト(Inline SVG Sprite)で一括管理する方法

SVGアイコン数が増える場合は、SVGスプライト化すると管理しやすくなります。

SVGスプライトとは、複数のSVGアイコンを <symbol> タグでまとめて定義し、必要な場所で呼び出して使う方法です。
この方法には以下のメリットがあります。

  • SVGコードの重複を防げる
  • HTMLを簡潔にできる
  • 外部リクエストを増やさずに済む
  • アイコン管理を一元化できる

使用したい全てのSVGアイコンを <symbol> タグで囲み、一つの <svg> タグの中にまとめます。

これを共通テンプレートの <body> 開始直後などに配置します。
WordPressの場合は、header.php や共通テンプレートへ設置するケースが一般的です。

SVGスプライトの呼び出し方法

定義したSVGアイコンを、HTMLファイルやPHPファイルの任意の箇所で <use> タグで呼び出します。

CSSを共通化しておくと、全アイコンを一括管理できます。

装飾目的のSVGアイコンには aria-hidden=”true” の付与を推奨

装飾のみを目的としたSVGアイコンは、スクリーンリーダーで読み上げる必要がないため、aria-hidden=”true” を付与するのが一般的です。

例えば、検索ボタン内にある虫眼鏡アイコンのように、テキストと意味が重複している装飾アイコンに適しています。

■ SVGスプライトの場合

■ インラインSVGの場合

まとめ

Font Awesome のSVG化は、不要なCSSやWeb Fontsの読み込みを削減できるため、サイト軽量化や表示速度改善に効果的です。

特に、

  • 数個しかアイコンを使用していない
  • PageSpeed Insights の改善につながる可能性がある
  • CDN依存を減らしたい
  • SVGをCSSで柔軟に制御したい

といった場合におすすめです。

アイコン数が少ない場合は「インラインSVG」、複数管理する場合は「SVGスプライト」を使い分けることで、保守性とパフォーマンスを両立できます。