SVGスプライトジェネレーター

複数のSVGアイコンを<symbol>要素を使った1つのスプライトシートに結合。

このツールについて

SVGスプライトジェネレーターは、複数の個別SVGファイルを<symbol>要素を 使用した1つのSVGスプライトシートに結合する無料のブラウザベースツールです。 SVGスプライトはアイコンフォントの現代的な代替手段で、より優れたレンダリング、 完全なCSS制御、アクセシビリティの利点、そして数十の個別SVGファイルの 読み込みと比較して小さなファイルサイズを提供します。

個別のSVGアイコンをインラインに埋め込んだり、別々のHTTPリクエストとして 読み込む代わりに、SVGスプライトはすべてのアイコンを1つのファイルにまとめます。 各アイコンは一意のidを持つ<symbol>要素でラップされ、HTMLのどこからでも <svg><use href="#icon-name"/></svg>で参照できます。これによりネットワーク リクエスト数が大幅に削減され、マークアップがクリーンになります。

すべての処理はブラウザ内で完全に行われます。SVGファイルがサーバーにアップ ロードされることはなく、ネットワークリクエスト、ログ記録、サードパーティの アクセスもありません。独自のアイコンセット、ブランドアセット、外部に出しては いけないデザインシステムアイコンにも安全に使用できます。

ツールはオプションでSVGからfillstroke属性を除去し、CSSのみでアイコンの 色を制御できるようにします。これはアイコンがテーマやコンテキストに合わせて 変化する必要があるデザインシステムに不可欠です。すべてのアイコンを同じ 座標系に正規化するカスタムviewBoxも設定できます。

結合前に個別のSVGを最適化したい場合はSVGオプティマイザーを お試しください。SVGファイルをラスター形式に変換するにはSVG to PNGコンバーターを ご覧ください。アイコンからファビコンを作成するにはファビコンジェネレーターを ご利用ください。

使い方

  1. SVGファイルをアップロードエリアにドラッグ&ドロップするか、Browse Filesをクリックして複数の.svgファイルを選択します。
  2. または、右側のテキストエリアにSVGコードを貼り付け、名前を付けてAddをクリックしてスプライトに追加します。
  3. Remove fill/strokeを切り替えて、SVGから色属性を除去し、CSSベースのカラーリングを有効にします。
  4. 必要に応じてCustom viewBox(例:0 0 24 24)を設定し、すべてのシンボルを同じ座標系に正規化します。
  5. Icons in Spriteグリッドでアイコンを確認します。アイコン名をクリックして名前を変更、Xボタンで削除できます。
  6. 任意のアイコンのUsageをクリックして<svg><use href="#id"/></svg>スニペットをクリップボードにコピーします。
  7. PreviewCodeタブを切り替えて、ビジュアルスプライトまたは生成されたSVGマークアップを確認します。
  8. Copy SpriteでスプライトSVG全体をコピー、またはDownload sprite.svgでファイルを保存します。
  9. キーボードショートカットCtrl+Shift+Cでスプライトコードをすばやくコピーできます。

SVGスプライトの例とガイド

すべてのSVGスプライト例を見る -->

よくある質問

データは安全ですか?

はい。すべてのSVG解析とスプライト生成はJavaScriptを使用してブラウザ内で完全に行われます。SVGファイルがサーバーにアップロードされることはありません。独自のアイコン、ブランドアセット、機密のデザインシステムファイルに安全に使用できます。

SVGスプライトとは何ですか?なぜ使うべきですか?

SVGスプライトは、<symbol>要素として定義された複数のアイコンを含む1つのSVGファイルです。各アイコンを個別のファイルとして読み込む(複数のHTTPリクエストが発生する)代わりに、1つのスプライトファイルを読み込み、<use href="#icon-id"/>で個別のアイコンを参照します。これによりネットワークリクエストが減少し、キャッシュが改善され、HTMLがクリーンになります。

「Remove fill/stroke」は何をしますか?

有効にすると、SVGマークアップからfillとstrokeの色属性を除去します(形状の可視性を制御するfill="none"とstroke="none"は除く)。これにより、CSSの'color'と'fill'プロパティでアイコンの色を設定でき、テーマやダークモードのサポートに不可欠です。

生成されたスプライトをReactやVueで使えますか?

はい。スプライトSVGをHTMLに含め(通常ドキュメントボディまたは非表示コンテナに)、<svg><use href="#icon-id"/></svg>でアイコンを参照します。Reactでは<use>要素にxlinkHrefまたはhrefを使用します。Vueでは標準のhref属性を使用します。外部ファイルとしてスプライトを読み込むこともできます。

インラインスプライトと外部SVGスプライトの違いは何ですか?

インラインスプライトはHTMLドキュメントに直接埋め込まれるため、追加のHTTPリクエストは不要ですが、すべてのページにスプライトマークアップが含まれます。外部スプライトは<use href="sprite.svg#icon-id"/>で参照される別の.svgファイルです。外部スプライトはブラウザキャッシュの恩恵を受けますが、一部の古いブラウザでクロスオリジン制限がある場合があります。

SVGスプライトとアイコンフォントの比較は?

SVGスプライトはアイコンフォントに比べていくつかの利点があります:すべてのサイズでシャープなレンダリング、マルチカラーアイコンのサポート、優れたアクセシビリティ(各アイコンにタイトルと説明を付けられる)、小規模なアイコンセットでの小さなファイルサイズ、FOUT(スタイルなしテキストのフラッシュ)の問題なし。アイコンフォントは一部のケースでまだ使いやすいですが、レガシーアプローチと見なされています。

すべてのアイコンにカスタムviewBoxを設定できますか?

はい。Custom viewBoxフィールドを使用して、スプライト内のすべてのシンボルに統一されたviewBox('0 0 24 24'など)を設定できます。異なるソースから異なる座標系を持つアイコンを組み合わせる場合に便利です。空のままにすると、各シンボルは元のviewBoxを保持します。

関連ツール