SVGを圧縮する
Figma、Illustrator、SketchからエクスポートしたSVGには、本来必要な量の2〜5倍ものマークアップが含まれているのが普通です。エディタのネームスペース、コメント、空のグループ、冗長な変換、小数点以下6桁の座標などがその例です。このツールはSVGをSVGO相当の処理にかけ、レンダリング結果をピクセル単位で同一に保ちながら、こうした不要な要素を取り除きます。
SVGを圧縮する方法
-
1
SVGを貼り付けまたはアップロードしてください
未処理のXMLテキストまたは.svgファイルを受け入れます。
-
2
最適化レベルを選択してください
安全(コメントおよびエディタのメタデータを削除)、強力(グループを折りたたみ、座標を四捨五入、パスを結合)、またはカスタム。
-
3
差異を確認する
前後のバイト数を比較し、レンダリング結果をプレビューして視覚的に変更がないことを確認してください。
-
4
コピーまたはダウンロード
最適化されたSVGを直接コードに貼り付けるか、ファイルとして保存してください。
SVGを膨らませる要因
FigmaでエクスポートしたSVGファイルをテキストエディタで開くと、通常以下の内容が表示されます:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="..."
xmlns:sketch="..." width="24.000000" height="24.000000"
viewBox="0 0 24.000000 24.000000" ...>
<!-- Generator: Figma ... -->
<title>icon</title>
<desc>Created with Figma</desc>
<g id="Page-1" stroke="none" fill="none" fill-rule="evenodd">
<g id="icon" transform="translate(0.000000, 0.000000)">
<path d="M12.000000,2.000000 L..." fill="#000000"/>
</g>
</g>
</svg>
ほぼすべての行は削除できます。レンダリング結果に必要なのはsvg、viewBox、pathだけです。
オプティマイザが削除する項目
| 削除される項目 | 安全な理由 |
|---|---|
| XMLコメント | レンダリングされることはない |
| エディタのネームスペース(sketch、figma) | ブラウザでは使用されない |
<title> / <desc>(任意) |
アクセシビリティ用のテキスト。意味がある場合は保持する |
空の<g>グループ |
視覚的な効果なし |
| デフォルトの属性値 | ブラウザはいずれにせよデフォルト値を使用する |
| 恒等変換 | translate(0,0)は何もしない |
| 座標の小数点以下の桁 | 小数点以下3桁あれば画面上では同一に見える |
| 未使用のID | 他の場所から参照されているIDのみ保持する |
落とし穴
- IDを削除しないでください。フィル、マスク、フィルターの
url(#...)やCSSから参照されているIDが対象です。アグレッシブモードではグラデーションが壊れることがあります。 viewBoxを残してください。これがないと、SVGはレスポンシブに拡大縮小されません。<title>を残してください。アクセシビリティのために利用している場合です(スクリーンリーダーがこれを読み上げます)。<use>インスタンスの展開は避けてください。オプティマイザがそれらをインライン化すると、元となる定義パターンが失われることがあります。
圧縮が実際にバイト数を節約できる場合
SVGはテキストなので、サーバー側のgzip圧縮だけでも冗長な部分の多くはすでに取り除かれます。非圧縮で4KBから1KBに減ったSVGでも、転送時には1.2KBから0.7KBにしか減らないこともあります。それでも価値はあり、ソースが小さくなることで読みやすさも増します。
よくある質問
セーフモードでは壊れません。アグレッシブモードでは、CSSやSMILアニメーションから参照されているIDを削除してしまうことがあります。SVGにアニメーションがある場合は、セーフモードを使うか、対象のIDを手動でホワイトリストに追加してください。
Figma/Illustratorのエクスポートファイルは通常、サイズが50~80%縮小されます。手書きのSVGファイルはもともとコンパクトであり、通常はわずか10~20%しかサイズが減少しません。
デフォルトでは「はい」です。<title>、<desc>およびaria-*の属性は保持されます。SVGが純粋に装飾的であり、周囲のHTMLがラベルを提供している場合は、これらの属性を削除することも可能です。
はい。xmlns属性は、SVGを直接HTMLに貼り付ける際に必須となるため保持されています。インラインSVGは小型アイコンの場合、通常最も迅速な表示方法です。
関連ツール
マテリアルデザイン カラーピッカー
Material Designのカラーパレットを閲覧できます。任意の色調(50からA700)を1タップでHEX、RGB、HSL形式でコピーできます。
ファンタジーマップ作成ツール
再現可能なシード、地形コントロール、視覚スタイルを使って、ブラウザ内で手続き型のファンタジーマップを作成します。実在の地理ではなく、ローカルでSVGまたはPNGの作品をダウンロードできます。
QRコード生成ツール
テキストまたはURLから、ブラウザ内でQRコードを作成してPNGとしてダウンロードできます。
GIFメーカー
連番画像をアニメーションGIFに変換します。書き出し前にフレームレート、品質、サイズを調整できます。
表彰状作成ツール
文面、ロゴ、デザイン、用紙サイズを選び、表彰・参加・修了のための印刷可能な表彰状を作成できます。TLS/SSL証明書ではありません。
グラフィティ文字ジェネレーター
タグ、バブル、ブロック、ステンシル、ネオン、ワイルドの効果で文字をデザイン。色を調整し、ブラウザー内でPNGまたはSVGを書き出せます。