本文へスキップ
viewsvg
ja

SVG→JSX変換ツール

SVGを貼り付けるだけで、プロジェクトにそのままコピーできるきれいなReact・React Native・Vue・Svelteコンポーネントが手に入ります。

SVGコード

SVGファイルをここにドロップ

またはエディターにSVGコードを貼り付けてください。

28,000+個のアイコンを見る

SVGはこのデバイスに残ります。何もアップロードされません。

キーボードショートカット

ファイルを開く
⌘/Ctrl O
SVGをダウンロード
⌘/Ctrl S
SVGを貼り付け(エディター外)
⌘/Ctrl V
拡大 / 縮小
+ −
マウスでズーム
⌘/Ctrl + スクロール
画面に合わせる
F
実際のサイズ
1
背景を切り替え
B
アウトラインモード
O
ピクセルグリッド
G
移動
ドラッグまたはスクロール

URLから開く

ファイルはブラウザが直接取得します。サーバーがクロスオリジンリクエスト(CORS)を許可している場合のみ動作します。

SVG→JSX変換ツールの使い方

  1. 1

    SVGを貼り付け

    SVGコードを貼り付けるかファイルをドロップします。最適化タブで先に最適化すると、コンポーネントが最小になります。

  2. 2

    フレームワークを選ぶ

    React(JSXまたはTSX)、React Native、Vue、Svelteから選びます。コンポーネント名やcurrentColorなどのオプションを設定します。

  3. 3

    コピーまたはダウンロード

    コンポーネントをコピーするか、すぐに使える.jsx、.tsx、.vue、.svelteファイルとしてダウンロードします。

ReactでSVGを使う前に変換が必要な理由

JSXはHTMLに似ていますが、JavaScriptのルールに従います。SVGをそのままReactコンポーネントに貼り付けると、エラーや警告が出ることがよくあります。stroke-widthやfill-ruleのようなハイフン付きの属性はcamelCaseに、classはclassNameに、インラインのstyle文字列はオブジェクトにする必要があるからです。xlink:hrefのような名前空間付き属性や、IllustratorやSketchのメタデータも整理が必要です。

viewsvgはこれらをすべて処理し、propsを受け取る名前付きコンポーネントで包むので、親からclassName、width、aria-labelを渡せます。

SVGアイコンコンポーネントのコツ

  • 先に最適化ツールにかけて、メタデータを取り除きパスを軽くしましょう。
  • currentColorを使用をオンにすると、アイコンが文字色に従い、ライト・ダークどちらのテーマでも使えます。
  • width/heightを削除をオンにしてCSSでサイズを指定すれば、同じコンポーネントをどのサイズでも使えます。
  • viewBoxは残してください。ないとアイコンを拡大縮小できません。

SVG作業に必要なものがすべて揃っています

SVG→JSX変換ツールは、SVGファイルの表示・編集・最適化・変換をひとつにまとめたワークスペースの一部です。登録不要、広告なし、アップロードなし。

すぐにプレビュー

最大6400%までズーム、パン、画面に合わせる表示、透明・白・黒・任意の背景色でSVGを確認できます。

ライブコードエディター

シンタックスハイライト、エラー行の表示、整形と圧縮、検索、完全な元に戻す履歴。

アウトラインとピクセルグリッド

アウトラインモードですべてのパスを確認し、拡大時はグリッドでピクセルの位置合わせをチェックできます。

情報の確認

ファイルサイズとgzipサイズ、viewBox、ホバーでハイライトされる要素ツリー、ワンクリックの色置き換え。

SVGOで最適化

前後のプレビューを比べながら、精度を調整してファイルを軽量化。開いているすべてのファイルを一括最適化できます。

PNG・JPG・WebP・ICO

最大16384pxまで任意のサイズで、透明度を保ったまま書き出し。PNGを直接クリップボードにコピーすることもできます。

React・Vue・Svelte

currentColorやpropsに対応した、きれいなJSX/TSX、React Native、Vue、Svelteコンポーネント。

複数ファイルを同時に

多数のSVGをタブで開き、一括最適化したり、SVGやPNGのZIPとしてダウンロードできます。

プライベート&オフライン

アップロードもアカウントも不要。作業内容はブラウザに保存され、初回訪問後はオフラインでも動作します。

よくある質問

SVGをJSXに変換すると何が変わりますか?

属性がcamelCaseになり(stroke-width → strokeWidth)、classはclassNameに、xlink:hrefはxlinkHrefに、インラインのstyle文字列はstyleオブジェクトになります。viewsvgがすべて自動で行います。

ReactでSVGアイコンに文字色を継承させるには?

「currentColorを使用」をオンにしてください。すべてのfillとstrokeがcurrentColorに置き換わり、アイコンが親要素のCSSの色に従います。

React Nativeに対応していますか?

はい。React Nativeを選ぶと、react-native-svg(Svg、Path、Gなど)を使ったコンポーネントが、対応するimport行付きで出力されます。

SVGファイルはどこかにアップロードされますか?

いいえ。viewsvgは完全にブラウザ内で動作します。ファイルの読み込み、表示、最適化、変換はすべてお使いのデバイス上で行われ、サーバーには何も送信されません。初回訪問後はオフラインでも使えます。

viewsvgは無料ですか?

はい。すべての機能が無料で、登録不要、透かしなし、ファイル数の制限もありません。

その他の無料SVGツール