ToolActToolAct

SVGビューア

オンラインSVGコードエディタ&ライブプレビュー

SVGコード
文字数: 0バイト数: 0
SVGプレビュー
SVGプレビューがここに表示されます

SVGビューアとは?

SVGビューアは、SVGコードの編集とライブプレビューができるオンラインツールです。SVGコードを直接入力または貼り付けると、レンダリング結果をリアルタイムで確認できます。SVG(Scalable Vector Graphics)はXMLベースのベクター画像フォーマットで、Webデザイン、アイコン作成、データビジュアライゼーションに広く使用されています。

このツールはリアルタイムプレビュー、ソースコード表示、SVGファイルダウンロードなどをサポートしています。

使い方

使い方

  1. 左側のエディタにSVGコードを入力または貼り付けます
  2. 右側のパネルにSVGがリアルタイムでレンダリングされます
  3. 入力したSVGはシンタックスハイライト付きで見やすく表示されます
  4. 「ダウンロード」ボタンでSVGをファイルとして保存します
  5. 「SVGコピー」ボタンでコードをクリップボードにコピーします

SVGのセキュリティ

  • 可能な限り信頼できるソースからのSVGのみ貼り付けてください。SVGにはスクリプト、外部参照、予期しないスタイルが含まれる場合があります。
  • ダウンロードや埋め込みの前に、viewBox、サイズ、塗り、線、テキストのレンダリングを対象サイズで確認してください。

利用シーン

SVG マークアップを編集しながらプレビューシンタックスハイライト付きエディタに SVG コードを貼り付けると、ページが DOMParser で解析してレンダリングします。有効な SVG はプレビューに表示され、パーサーエラー時は安全でない壊れた出力をレンダリングする代わりに invalid-SVG 状態を表示します。埋め込まれた foreignObject や script タグは作成通りに保持されます。
SVG ソースを検査して共有シンタックスハイライトはローカルの highlight.js ラッパーによる XML 向けハイライトを使用し、入力・出力のバイト数でアセットサイズが確認できます。検証済みの SVG をコピーするか image.svg としてダウンロードでき、元のインデントと xml:space 属性は出力にそのまま保持されます。
既知のサンプル SVG で素早くテストサンプルボタンはテキスト付きの小さなグラデーション円 SVG を挿入し、defs、グラデーション、シェイプ、テキスト、名前空間、サイズ設定の参照構造を提供します。レンダリング、コピー、ダウンロードが正常に動作するかのテスト、ウェブフォントが参照されてシステムフォントスタックにフォールバックするケースの確認に便利です。xml:space="preserve" を持つ text 要素は、タイトルやモノスペースラベル内の連続空白をレンダラーが潰すのを防ぎます。
レイアウトへの埋め込み前に viewBox スケーリングを確認SVG を貼り付けて、viewBox、width、height 属性が異なるコンテナサイズで正しくレンダリングされるかを確認します。preserveAspectRatio のない SVG や viewBox の欠落した SVG は、レスポンシブ CSS グリッドに配置すると切り抜きや歪みが発生し、viewBox の末尾のゼロが1つ欠けるだけで全体が数ピクセルずれることがあります。
SVG のスクリプトと外部参照を監査CMS や本番サイトにアイコンをエクスポートする前に、ソースペインで script タグ、外部 URL への xlink:href、onload ハンドラをスキャンします。SVG サニタイザーでこれらを除去またはサンドボックス化すると、静止画像に見せかけたインライン JavaScript やピクセルトラッキングビーコンのリスクを軽減できます。CDN から参照されたウェブフォントは SVG をダウンロードしてオフラインで再開くとサイレントに失敗するため、ジェネリックなフォールバック(serif、sans-serif)を含む font-face スタックを用意すると、保存されたコピーでもテキストが読みやすくなります。

仕組み

SVGソースは new DOMParser().parseFromString(source, 'image/svg+xml') で解析され、HTMLの寛容なパーサーではなくXMLルールに基づいて構築されたDocumentを返します。パーサーは整形式性をチェックし、無効なマークアップでは <parsererror> ノードを表示し、SVGツリーをDOMの他の部分と同様にスクリプトやCSSから操作できるように公開します。&lt;path&gt;、&lt;circle&gt;、&lt;rect&gt;、&lt;g&gt;、&lt;text&gt;、&lt;defs&gt;、&lt;linearGradient&gt;、&lt;filter&gt; などの要素は、独自の属性とイベントターゲットを持つ第一級ノードです。 座標系はviewBox属性によって制御されます。viewBox="minX minY width height" は内部座標空間を定義し、preserveAspectRatio(デフォルトはxMidYMid meet)はその空間をレンダリングビューポートにどうマッピングするかを決定します。meetはレターボックスを追加してviewBox全体を保持し、sliceはクロッピングでビューポートを埋め、noneは非均一にストレッチします。d属性内のパスコマンドはM(moveTo)、L(lineTo)、C(三次ベジェ)、Q(二次ベジェ)、A(楕円弧)、Z(パス閉じ)を使用し、各コマンドには絶対大文字形式と相対小文字形式があります。 SVGのセキュリティは明示的な対応が必要です。このフォーマットは実行可能なためです。&lt;script&gt;、HTMLを含むforeignObject、外部URLへのxlink:href、onloadやその他のイベントハンドラ属性はすべて、SVGがインラインで挿入された場合にページコンテキストでJavaScriptを実行できます。第三者のSVGを受け入れる際の標準的な緩和策は、SVGプロファイル付きのDOMPurifyまたはサーバーサイドのサニタイザです。PNGへのラスタライズは、SVGをBlob URLからHTMLImageElementとして読み込み、drawImageでキャンバスに描画し、canvas.toBlob('image/png')でダウンロード用に出力することで行われます。

  • パーサー:new DOMParser().parseFromString(source, 'image/svg+xml') は厳密なXML Documentを返し、失敗時は <parsererror> ノードを表示する
  • viewBox:"minX minY width height" は内部座標空間を設定し、preserveAspectRatio xMidYMid meet/slice がフィットとクロップを制御する
  • パスコマンド:M moveTo、L lineTo、C 三次ベジェ、Q 二次ベジェ、A 弧、Z パス閉じ。大文字 = 絶対座標、小文字 = 相対座標
  • セキュリティ面:インラインの &lt;script&gt;、foreignObject、外部URLへのxlink:href、onload/onclickハンドラはJavaScriptとして実行される
  • サニタイズ:USE_PROFILES: { svg: true } を指定したDOMPurifyは、第三者SVGの挿入前にスクリプトとイベントハンドラを除去する
  • PNGエクスポート:Blob URLでHTMLImageElementにSVGを読み込み、drawImageでキャンバスに描画し、canvas.toBlob('image/png')でダウンロード
  • ブラウザベースライン:2011年以降のすべてのエバーグリーンブラウザでSVG 1.1をサポート。SVG 2の機能(パス上のテキスト改善など)は部分的

使用例

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="40" fill="#2563eb" />
</svg>

矩形

<svg width="120" height="80" xmlns="http://www.w3.org/2000/svg">
  <rect x="10" y="10" width="100" height="60" rx="8" fill="#10b981" />
</svg>

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
  <polygon points="50,5 61,35 95,35 68,57 79,91 50,70 21,91 32,57 5,35 39,35" fill="#f59e0b" />
</svg>

よくある質問

このビューアでは何ができますか?

貼り付けた SVG マークアップを描画し、ズームやパン、シンタックスハイライト付きのソースコード表示、画像サイズや viewBox の確認ができます。サードパーティ製 SVG の調査、パスデータのデバッグ、プロジェクトに追加する前のアイコンのプレビューに便利です。

SVG はアップロードされますか?

いいえ。ページはブラウザ内で SVG をパースおよび描画します。SVG は単なるマークアップであり、ブラウザは元から表示方法を知っています。貼り付けたコードがネットワークを越えることはありません。

デザインソフトで見たときと表示が違うのはなぜ?

SVG はユーザーエージェントによって描画方法が異なります。ブラウザ、Figma、Illustrator、Inkscape は一部のエッジケース(テキスト描画、フィルタ効果、メッシュグラデーション、クリップパスなど)の解釈が異なります。このビューアはブラウザによる描画結果を表示するため、HTML 上でエンドユーザーが目にするものと同じです。

ここで SVG を編集できますか?

左側でソースを編集し、再描画することは可能です。視覚的な編集(点をドラッグして移動する、パスを変更するなど)には、Inkscape、Figma、Boxy SVG などの本格的な SVG エディターを使用してください。本ページはビューアと簡易テキスト編集を兼ねたものです。

SVG をプロジェクトに取り込むには?

ソースをコピーしてください。多くのフロントエンドフレームワークは JSX/HTML 内のインライン SVG を直接受け付けます。背景として使う場合はアセットフォルダに置いて url(...) で参照します。アイコンフォントとして使うには、svgo などのビルドステップとスプライトジェネレーターを通す必要があります。

SVG のサイズが大きいのはなぜ?

多くの SVG 出力にはエディターのメタデータ(Adobe Illustrator の XMP、Inkscape の :inkscape: 名前空間)、未使用の defs、コメント、冗長なパスデータが含まれます。SVGO(オンラインまたは CLI)を通すと、見た目を変えずに通常 30〜70% 縮小できます。

外部リソースは読み込まれますか?

ほとんどのビューアは安全のため外部読み込みをブロックします(外部の <image href> や <use href> URL は取得されません)。SVG が依存している場合は、参照しているビットマップを data: URI として埋め込み、外部 href を持つ <use> はインラインのコピーに変換してください。

関連ツール

カラーピッカー

オンラインカラーピッキングツール。HEX、RGB、HSLフォーマットの相互変換。カラーパレットを生成し、Web配色を取得し、デザイン効率を向上。

グラデーション生成器

オンラインCSSグラデーション生成ツール。リニアグラデーション、ラジアルグラデーション背景を作成。色を視覚的に調整し、ワンクリックでCSSコードをコピー。

QRコード生成器

オンラインQRコード生成ツール。テキスト、URL、名刺など複数タイプ対応。スタイル、色、サイズをカスタマイズし、ワンクリックで高画質画像をダウンロード。

画像 Base64 変換ツール

オンライン画像Base64相互変換ツール。ドラッグ&ドロップアップロード、リアルタイムプレビュー、複数画像フォーマット対応。画像をBase64に変換してコードに埋め込み、HTTPリクエストを削減。

Mermaid エディタ

オンラインMermaid図表エディタ。フローチャート、シーケンス図、クラス図、状態図、ER図、ガントチャート、円形図、マインドマップ、ユーザージャーニーマップを作成。リアルタイムプレビューとPNG/SVGエクスポート対応。

バーコード生成器

オンラインバーコード生成器。CODE128、EAN13、EAN8、UPC、CODE39、ITF14形式に対応。色やサイズをカスタマイズし、PNGまたはSVG形式でバーコードを生成・ダウンロード。