本文へ移動
Develop Tools
← 使い方ガイドへ戻る

Figmaから書き出したSVGを軽量化する方法|不要情報・pathを最適化

Figmaから書き出したSVGは、そのままでも適切な場合があります。まずコードと用途を確認し、不要情報の整理とコンポーネント設計の変更を分けて判断します。

Figmaから書き出したSVGのmetadata、group、path、IDを確認して整理する概念図
Figmaから書き出したSVGのmetadata、group、path、IDを確認して整理する概念図

SVGをブラウザ内で最適化して比較する

SVGコードまたは1件の.svgファイルを読み込み、設定を選んで、最適化前後の表示・サイズ・変更内容を確認できます。入力内容はサーバーへ送信されません。

SVG最適化・圧縮ツールを開く

結論:書き出し後のコードを確認し、用途別に最適化する

Figmaの書き出し結果はデザイン内容やExport方法で変わります。不要なgroupや長い数値がある場合もあれば、すでに簡潔な場合もあるため、一律に「Figma SVGは重い」と判断しません。

編集用のFigmaファイルと元SVGを残し、公開用コピーだけを最適化します。UIアイコンは小さな表示サイズでも線や角が崩れていないか確認します。

確認するマークアップ

項目確認内容
viewBox図形全体を囲み、レスポンシブ表示で必要か
grouptransformやstyleを持つか。属性のない入れ子だけか
path長い小数や重複があるか。見た目へ影響する精度か
IDgradient・mask・clipPath・ARIA・外部CSSから参照されるか
fill・stroke固定色でよいか、部品としてcurrentColorを使う設計か

currentColorは容量削減ではなく利用方式の変更

fill="#000"をfill="currentColor"へ変えると、親要素のcolorでアイコン色を制御できます。ただし、複数色のロゴや固定ブランドカラーまで自動変換してはいけません。

現行DevelopToolsは固定色をcurrentColorへ自動変更しません。必要なら設計判断として手動で変更し、通常・hover・disabled・dark modeを確認します。

Figma SVGの確認手順

  1. 対象レイヤーの境界とExport設定をFigmaで確認します。
  2. 元SVGのviewBox、path数、ID、色、編集情報を記録します。
  3. 安全プリセットで最適化し、変更レポートを確認します。
  4. 実際の16px・24px等の表示サイズとダークモードで比較します。

DevelopToolsで確認できることと対応範囲

DevelopToolsのSVG最適化・圧縮ツールはSVGOを組み込んだものではなく、DOMParserで解析したSVGへ独自の最適化処理を適用します。SVGコードの貼り付けと1件の.svgファイル入力に対応し、処理はブラウザ内だけで完結します。

確認・設定項目現行ツールの対応
基本整理コメント、metadata、編集ソフト固有情報、空白、空属性・空要素を整理
数値・色小数点精度を0~8桁で指定し、数値と短縮可能なカラーコードを整理
構造未使用defs、属性のないグループ、未使用IDの整理と参照IDの短縮
安全性script、イベント属性、外部参照、foreignObject、アニメーションの扱いを設定
保護設定title・descとviewBoxを維持するか選択
検証前後プレビュー、重ね合わせ、ファイルサイズ、要素数、変更レポートを表示

複数ファイルの一括処理、SVGOのpreset-defaultや任意Plugin設定、convertPathDataによるpath命令の変換、prefixIds、mergePaths、ビルド工程への組み込みには対応していません。これらはSVGOや各ビルドツール側で行います。

最適化後はサイズと表示を別々に検証する

  1. 元SVGを複製し、編集用原本を上書きしない状態にします。
  2. 最初は安全プリセットで実行し、前後のサイズ、要素数、変更レポートを確認します。
  3. 透明・白・黒背景と重ね合わせ表示で、形、色、余白、欠けを確認します。
  4. 実際のページへ組み込み、レスポンシブ表示、CSS、JavaScript、アクセシビリティ、複数SVGとの併用を確認します。
  5. 問題がある場合は設定を一つずつ戻し、表示差を生んだ処理を切り分けます。

ファイルサイズが小さくなっても、表示・参照・ライセンス・アクセシビリティが壊れていれば最適化成功とはいえません。

仕様を確認した一次資料

SVGOのPlugin構成や既定値はVersionで変わります。この記事はSVGO v4系の公式資料を基準にしていますが、導入時は利用中VersionのDocumentationと設定ファイルを確認してください。

具体例:24pxのナビゲーションアイコンを軽量化する

Figmaから書き出したアイコンにgroupと長い小数値が含まれています。最初から最大圧縮を選ぶのではなく、元ファイルを保存したうえで、削除対象と維持対象を決めます。

viewBoxを維持し、単色部品だけは別工程でcurrentColor対応を検討します。最適化後は削減率だけで判断せず、16px・24px表示、線幅、hover色、ダークモードを確認してから公開用ファイルへ置き換えます。

  1. 編集用の元SVGを複製し、用途と参照関係を確認します。
  2. SVGコードまたは1件のファイルを読み込み、安全プリセットから試します。
  3. 変更レポートと最適化後コードを確認し、必要な情報が残っているか調べます。
  4. 前後プレビューと実際の利用画面を比較し、問題がなければ別名で保存します。

同じ設定をすべてのSVGへ機械的に適用せず、ロゴ、アイコン、図表、アニメーションなど用途ごとに検証してください。

よくある質問

Figmaから出したSVGは必ず最適化すべきですか?
必須ではありません。容量、コード、表示を確認し、削減余地と保守性がある場合に公開用コピーを最適化します。
currentColorへ自動変換できますか?
現行DevelopToolsは自動変換しません。アイコン設計の変更として手動で判断してください。