お問い合わせはコチラから

GoogleマテリアルアイコンをインラインSVGで使う方法

サイト運営

最近、Fontawesome等のアイコンフォントを使うのは当たり前になってきています。

有名どころのアイコンフォントは、ファイルサイズがとても大きく、一つ使うだけでも結構インパクトがあります。

それに加えてGoogleマテリアルアイコン等、他のアイコンフォントを使う場合、サイトの表示速度やデータ量などが問題になりやすく、導入するのに躊躇してしまいます。

必要なアイコンだけのサブセットを作成すればデータ量や読み込み速度の問題は回避できるはずです。

ところが、サブセットを作るのは手順が多く複雑です。なのでサブセット導入までに至らず、すべてのフォントを読み込んでいる人も多いかと思います。

この記事では、サブセットを作らずに必要なフォントだけを読み込む方法としてインラインSVGの手法をご紹介しようと思います。

この記事を読むことで、アイコンフォント導入時の様々な問題(フォント読み込み前のちらつき、読み込み時間、ファイルサイズ)が一気に片付きます。

①GoogleマテリアルアイコンのSVGファイルを取得する

SVGファイルダウンロード方法

Google マテリアルアイコンのサイトに行きます。

Material Symbols and Icons - Google Fonts
Material Symbols are our newest icons consolidating over 2,500 glyphs in a single font file with a wide range of design ...

必要なアイコンを検索します。

ダウンロードボタンを押すとsvgファイルがダウンロードできます。

SVGファイルの中身

ダウンロードしたsvgファイルはテキストファイルなので、中身を見ることができます。

SVGスプライトで使うため、svgファイルを直接読み込むのではなく、ファイルの中身のテキストを加工して使用します。

<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
<path d="M0 0h24v24H0V0z" fill="none"/>
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
</svg>

②SVGスプライト化する

SVGスプライトとuse要素

<!-- アイコン定義 -->
<svg>
  <symbol id="someIcon" ... />
</svg>

<!-- アイコン使用 -->
<svg>
  <use xlink:href="someIcon" />
<svg>

アイコン定義を作成する

  • ①のsvgタグからviewBox以外を削除
  • ①のsvgタグをsymbolタグに置き換える
  • symbolタグにid(以下の例だとsvg-search)を追加する
  • <defs>~</defs>にsymbolタグ部分を格納する
<svg aria-hidden="true" style="display: none;">
 <defs>
<!---SVGアイコン定義---->
<symbol viewBox="0 0 24 24" id="svg-search">
<path d="M0 0h24v24H0V0z" fill="none"/>
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
</symbol>
<!---SVGアイコン定義---->
 </defs>
</svg>

上記のSVGスプライトの定義は、bodyタグ内のどこかに書かれていれば大丈夫です。

アイコンを配置する

  • xlink:hrefにidを指定する
  • svgタグにサイズ、色調整用のclassを追加する
<!-- アイコン使用 -->
<svg class="svg-icons"><use class="face" xlink:href="#svg-search"></use></svg>

③CSSでSVGアイコンの色やサイズを調整する

  • 幅と高さは個別に指定する
  • fillで色を変更

その他は必要に応じて追加したり変更してください。

.svg-icons {
    width: 3em;/*幅*/
    height: 3em;/*高さ*/
    fill: white;/*色*/
    display: block;
    margin: 0 auto;
    margin-top: -1em;
    margin-bottom: 0.5em;
}

まとめ

サイト軽量化のため、アイコンフォントは必要なもの以外は読み込みたくない。

そんな思いから、今回の記事を書きました。

SVGアイコンは結構いろんなところで手に入ります。imgタグで直接svgファイルを指定してもいいのですが、インラインSVG化することで、色の変更や回転とかできるようになりますので、便利だと思います。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました