アイコンにはSVGとPNG、どちらを使うべき?
アイコンは16pxのfavicon、48pxのアプリアイコン、200pxの特集用グラフィックなど、非常に幅広いサイズで表示されます。だからこそ、SVGとPNGのどちらを選ぶかは特に重要です。
アイコンにSVGが選ばれることが多い理由
アイコンはほとんどの場合、シンプルな単色の図形であり、これはまさにベクターパスが効率よく表現できる対象です。SVGアイコンは16pxで表示しても160pxで表示しても鮮明なままで、レスポンシブレイアウトが必要とするあらゆるサイズを、解像度ごとに個別のPNGを書き出すことなく、1つのファイルでカバーできます。
SVGアイコンはCSSでスタイリング可能
SVGの塗りやストロークは単なる属性であるため、ホバー時の状態やダークモードに合わせて、2枚目の画像ファイルを用意することなくCSSでアイコンの色を変更できます。PNGアイコンの色はピクセルに焼き込まれているため、別の色にするには完全に別のファイルを書き出す必要があります。
ファイルサイズの比較
| SVGアイコン | PNGアイコン | |
|---|---|---|
| 一般的なサイズ(シンプルなアイコン) | 0.5~3 KB | 解像度ごとに1~5 KB |
| 複数解像度が必要か | 不要 ― 1ファイルで拡大縮小可能 | 必要 ― サイズごとに個別に書き出し |
| CSSで色を変更可能か | 可能 | 不可 |
アイコンにPNGが今でも適している場合
「アイコン」と呼ばれていても、実際には小さな写真や、グラデーション・影・質感を含んだリアルなアプリアイコンのように、非常に細かいディテールを持つ画像である場合、PNGの方がベクタートレースよりも忠実にその質感を再現できます。とはいえ、純粋にグラフィカルな単色アイコンであれば、SVGの方がほぼ常に適しています。既存のPNGアイコンセットから始める場合は、SVGに変換して両方のフォーマットを使えるようにしておくこともできます。
よくある質問
すべてのブラウザはSVGアイコンに対応していますか?
はい。すべての最新ブラウザは、favicon、インラインアイコン、CSSの背景画像としてなど、SVGをネイティブに表示できます。
SVGアイコンをアニメーションさせることはできますか?
はい ― SVGは個々のパスに対するCSSやJavaScriptによるアニメーションに対応しており、これは静止画であるPNGでは実現できません。
同じアイコンの場合、SVGはPNGより大きいですか、小さいですか?
シンプルな単色アイコンであれば、SVGの方が通常は小さくなります。特に、さまざまな表示サイズに対応するために複数のPNGを書き出す必要があることを考慮すると、その差はより大きくなります。
さっそくご自身の画像を変換してみませんか? convert your PNG to SVG now.
convert your PNG to SVG now関連記事
アイコンに特化したこの比較の背景にある、より広いフォーマットの違いについて解説します。
ベクターパスがピクセルより重要になる、もう1つの実用的な事例をご紹介します。