SVG JSX 変換|React コンポーネントを生成
SVG のコードから React 用のコンポーネントを生成します。stroke-width などの属性を JSX の表記に変換し、アイコンを React のコードに組み込む作業を補助します。SVG は変換のためサーバーへ送信されます。
デザインツールから出力した SVG アイコンを React のコンポーネントにする。
こんなときに使えます
- デザインツールから出力した SVG アイコンを React のコンポーネントにする。
- viewBox や線幅の指定を確認しながら、SVG をコードで管理する。
使い方
- ルートの <svg> を含むコードを貼り付けるか、.svg ファイルを読み込みます。
- 右側に生成されたコンポーネントと属性を確認します。
- コードをコピーし、コンポーネント名、サイズ、用途に応じたアクセシビリティ属性を調整します。
入力例
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke-width="2" d="M4 12h16" /></svg>
出力例
import * as React from "react"
const SvgComponent = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props}>
<path fill="none" strokeWidth={2} d="M4 12h16" />
</svg>
)
export default SvgComponent仕様と注意点
このツールは完全なローカル変換ではありません。機密情報を含む SVG を入力しないでください。
外部画像・フォント・CSS への参照がある SVG は、利用先の環境でも必要なリソースを用意する必要があります。
アイコンの意味に応じた title、aria-label、装飾用の aria-hidden などは利用先で指定してください。変換だけでアクセシビリティの用途を判断することはできません。
入力内容は同じタブ内に一時保存され、再読み込みや同じ入力形式のツールで再表示される場合があります。共用端末では、使い終わったら入力欄をクリアしてください。
よくある質問
PNG や JPG を SVG にできますか?
このページは既存の SVG コードを React 用に変換します。写真やビットマップをベクトル化する機能はありません。デザインツールから書き出した SVG のコードを入力してください。
React Native でもそのまま使えますか?
Web 向けの svg 要素と React Native の描画コンポーネントは異なります。React Native 用の出力が必要な場合は、関連ツールの SVG → React Native を利用してください。
色や大きさは変換後に変えられますか?
生成されたコンポーネントに渡す props や、内部要素の fill・stroke・width・height を調整できます。内部に色が固定されている場合は、親の色だけ変更しても反映されないので出力コードを確認してください。