Skip to content
Technical

SVGフォーマットとは?2026年版完全テクニカルガイド

SVG(Scalable Vector Graphics)フォーマットについてすべて学びましょう:仕組み、使うべきタイミング、そしてなぜモダンなウェブデザインに不可欠なのか。

Robin Monteiro2025年12月23日2026年10月10日4 min
Use this article with an AI assistant:
.md
SVGフォーマットとは?2026年版完全テクニカルガイド
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • SVGは品質を損なうことなく無限にスケールするXMLベース、W3C標準のベクター形式
  • インラインSVGは完全なCSS/JS制御を提供;<img>タグはキャッシュが可能 — ユースケースに応じて選択
  • アクセシビリティが組み込み済み:<title>、<desc>、role、aria-labelがSVGをスクリーンリーダー対応にする
  • アニメーションは4つのアプローチ:SMIL、CSS、JavaScript、Web Animations API
  • 信頼できないソースからのSVGは必ずサニタイズ — フォーマットはスクリプトを埋め込める
  • VectoSolveのSVGオプティマイザーでメタデータ削除とパス圧縮を最適化
座標グリッド上のスケーラブルなベクターシェイプを示すSVGフォーマットの概要
SVG:ウェブネイティブの解像度非依存画像フォーマット

SVGとは本当は何なのか?

SVG(Scalable Vector Graphics)は単なる画像フォーマットではありません。数学的座標、幾何学的プリミティブ、スタイル宣言を使用して2次元グラフィックスを記述する完全なXMLボキャブラリーです。HTMLと同じ次元に存在します:テキストベース、人間が読める、DOM統合、CSSでスタイル設定可能。

W3CはSVGを「XMLで2次元グラフィックスを記述するための言語」と定義しています。XMLであるため、すべてのSVGはテキストエディタで開き、JavaScriptで操作し、スキーマに対して検証できる構造化ドキュメントです。他の一般的な画像フォーマットはこれを提供しません。

「SVGはウェブのネイティブ画像フォーマットです。ウェブ上に存在するだけでなく、ウェブそのものです。」— Chris Coyier


SVGの構造:XMLとviewBox

すべてのSVGはルート<svg>要素から始まります。その属性を理解することがフォーマットをマスターする鍵です。

xml
<svg xmlns="http://www.w3.org/2000/svg"
     viewBox="0 0 200 100"
     width="400" height="200">
  <rect x="10" y="10" width="180" height="80" rx="8"
        fill="#0f172a" stroke="#38bdf8" stroke-width="2"/>
  <text x="100" y="58" text-anchor="middle"
        fill="#f8fafc" font-size="18">こんにちは、SVG!</text>
</svg>
  • xmlns はSVG名前空間を宣言 — スタンドアロンの.svgファイルでは必須、HTML5にインラインで埋め込む場合はオプション
  • viewBox="0 0 200 100" は内部座標系を定義:原点(0,0)、幅200単位、高さ100
  • width/height はレンダリングサイズを設定;ブラウザはviewBoxをこのビューポートにマッピング

viewBoxは座標空間をピクセル寸法から切り離します。viewBox="0 0 24 24"のアイコンは16pxでも512pxでも同一にレンダリングされます — ブラウザが座標系をスケーリングするためです。これがSVGが無限にスケールする理由です。

SVGはY軸が下向き(CSSやCanvasと同じ)の座標系を使用し、原点は左上にあります。

SVGは純粋なXMLです。 SVGファイルは任意のテキストエディタで作成、編集、デバッグできます — VS Code、Vim、メモ帳でも。これはPNGやJPGのようなバイナリフォーマットとは根本的に異なります。ビジュアルインターフェースが必要ですか?VectoSolveのSVGエディタでリアルタイムのコード出力を利用できます。


歴史:W3C、ブラウザ戦争、そして現代の普及

  • 1998年:W3CがSVGワーキンググループを設立、AdobeのPGMLとMicrosoftのVML提案を統合
  • 2001年:SVG 1.0がW3C勧告に
  • 2003年:SVG 1.1が仕様を洗練・モジュール化
  • 2011年:SVG 1.1 第2版 — ほとんどのブラウザが完全に実装しているバージョン
  • 2018年:SVG 2.0が勧告候補に到達、CSSとHTMLに整合

IEの物語

IE 8以下はSVGサポートがゼロでした。IE 9(2011年)は基本的なレンダリングを提供しましたが、ギャップがありました:SMILアニメーションなし、限定的なフィルタ、viewBoxの問題。真の転換点は、2022年にMicrosoftがIEをEdge(Chromium)に移行したときに訪れました。今日SVGは98.5%のグローバルブラウザサポートを持っています。


A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

SVG要素リファレンス

要素目的一般的な用途
<path>描画コマンド(M、L、C、Z)による任意の形状アイコン、ロゴ、アウトライン
<rect>オプションの角丸(rx/ry)付き長方形ボタン、カード、背景
<circle>中心点と半径による円ドット、アバター、円グラフ
<polygon>座標点からの閉じた形状星、六角形、矢印
<text>レンダリング可能、選択可能、検索可能なテキストラベル、透かし
<g>集合的な変換/スタイルのグループ要素レイヤー制御、グループ化
<defs>再利用可能な定義(直接レンダリングされない)グラデーション、パターン、クリップ
<use>他の場所で定義された要素のクローンアイコンの再利用、スプライト
<symbol><defs>内の<g>のようだが、独自のviewBoxを持つアイコンライブラリ、スプライトシート
SVG要素:path、rect、circle、polygon、textがcanvas上にレンダリング
ほぼすべてのプロジェクトで使用するコアSVG要素

インラインSVG vs img vs CSSバックグラウンド vs object

メソッドCSSスタイリングJSアクセスキャッシュアクセシビリティ最適な用途
インライン<svg>完全完全なDOM不可優秀アイコン、インタラクティブグラフィックス
<img>タグなしなし可能良好(alt)静的ロゴ、イラスト
CSS backgroundなしなし可能不良装飾パターンのみ
<object>内部のみcontentDocument経由可能中程度レガシーインタラクティブSVG

ホバー状態、アニメーション、JSインタラクションが必要な場合はインラインを選択。キャッシュしたい静的アセットには<img>を選択。CSSバックグラウンドは装飾のみに使用。<object>アプローチは2026年では最良の選択肢になることはほとんどありません。


アクセシビリティ:role、aria-label、title、desc

SVGは仕様にファーストクラスのアクセシビリティが組み込まれています:

xml
<svg role="img" aria-labelledby="logoTitle logoDesc"
     viewBox="0 0 120 40">
  <title id="logoTitle">VectoSolveロゴ</title>
  <desc id="logoDesc">ブルーグラデーションの幾何学的VとSのモノグラム</desc>
  <path d="M10 35L30 5L50 35Z" fill="url(#grad)"/>
</svg>
  • role="img" — 支援技術にこれが画像であることを伝える
  • <title> — アクセシブルな名前(<img>のaltに相当)
  • <desc> — 複雑なグラフィックスの詳細な説明
  • aria-labelledby — <title>と<desc>要素にリンク
  • aria-hidden="true" — 純粋に装飾的なSVGにスクリーンリーダーから隠すために使用

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

アニメーション:SMIL、CSS、JavaScript、Web Animations API

SMIL(SVGのネイティブアニメーション)

xml
<circle cx="50" cy="50" r="20" fill="#ef4444">
  <animate attributeName="r" values="20;35;20" dur="1.5s" repeatCount="indefinite"/>
</circle>

CSSアニメーション

SVG要素に@keyframes、transition、transformを適用 — あなたがすでに知っているCSSと同じです。

JavaScriptライブラリ

GSAP、Anime.js、Snap.svgが複雑なパスモーフィングとシーケンスアニメーションのタイムラインベース制御を提供。

Web Animations API

JSのパワーとCSSのパフォーマンスを組み合わせた、モダンな標準ベースのアプローチ:

javascript
element.animate(
  [{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }],
  { duration: 2000, iterations: Infinity }
);

Pro Tip: アイコンシステムにはSVGスプライトを使用。 単一の隠しSVGで<symbol>要素としてアイコンを定義し、各々を<use href="#icon-name"/>で参照。1つのHTTPリクエスト、完全なCSS制御、ブラウザキャッシュ。アイコンフォントの現代的な代替 — より小さく、よりアクセシブルで、あらゆるサイズでよりシャープ。


Warning: SVGはJavaScriptを実行できます。 SVGは<script>要素、イベントハンドラ(onload、onclick)、外部参照をサポートするため、信頼できないSVGはXSS攻撃のベクターとなり得ます。

対策: インライン挿入前にDOMPurifyでサニタイズ、ユーザーアップロードSVGには<img>タグを優先(ブラウザは<img>コンテキストでスクリプトをブロック)、厳格なCSPを設定、アップロード処理中に<script>、<foreignObject>、イベントハンドラを除去。


パフォーマンス最適化

デザインツールからのSVGは肥大化しています — エディタメタデータ、冗長なグループ、過剰な小数精度。

前後のファイルサイズ削減を示すSVG最適化ワークフロー
典型的な最適化パスでファイルサイズを40〜70%削減
最適化ステップ典型的な節約
メタデータの削除10-25%
小数精度の削減15-30%
グループの統合、IDのクリーンアップ5-15%
GZIP/Brotli(サーバーサイド)60-75%
合計(圧縮前)40-60%

主要テクニック:エディタメタデータの削除、座標精度を小数1〜2桁に削減、ネストされた<g>要素のフラット化、固定寸法の代わりにviewBoxを使用、GZIP/Brotliの有効化(SVGは例外的によく圧縮される)、VectoSolveのオプティマイザーでの自動化。


SVGを始めよう

VectoSolveは完全なSVGワークフローのためのAIツールを提供:

  • ラスターをベクターに変換 — PNG/JPGをアップロード、クリーンで最適化されたSVGを取得
  • ビジュアルで編集 — SVGエディタでパスと色を調整
  • 最適化 — オプティマイザーでファイルを通して肥大化を除去

SVGはウェブのネイティブグラフィックス言語 — オープン、標準化、アクセシブル、アニメーション可能、パフォーマント。2026年、SVGの習熟はオプションではありません。基礎です。


SVG機能ブラウザサポートユースケース
CSS/JS制御のインラインSVGすべてのモダンブラウザ(98%+)インタラクティブアイコン、アニメーション、テーマ
<img>タグによる埋め込みユニバーサル静的ロゴ、キャッシュ付きイラスト
SMILアニメーションIE以外すべて(95%+)JavaScriptなしの宣言的SVGアニメーション
SVGフィルタ(feGaussianBlurなど)すべてのモダンブラウザ(97%+)ぼかし、ドロップシャドウ、色操作
アクセシビリティ(title、desc、aria)スクリーンリーダー + すべてのブラウザ視覚障害ユーザーのためのインクルーシブデザイン

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

参考資料

  • MDN Web Docs: SVG — すべてのSVG要素、属性、APIの包括的なリファレンス
  • W3C SVG 2仕様 — SVG構文、レンダリング、インタラクティビティを定義するW3C公式標準
  • CSS-Tricks: Using SVG — ウェブでのSVGの埋め込み、スタイリング、最適化の実践ガイド
  • web.dev Performance — 画像最適化とCore Web Vitalsに関するGoogleのリソース
  • Smashing Magazine — SVGアクセシビリティ、アニメーション、ベストプラクティスに関する詳細記事
Tags:
SVG
ベクターグラフィックス
Web開発
ファイル形式
テクニカルガイド
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.