SVG→CSS変換とは#
SVG→CSS変換は、SVGマークアップをスタイルシートに貼れるCSSに変えるツールです。SVGをマスクまたは背景画像として適用し、結果をCSS宣言・Tailwindクラス・data URLとして受け取れます。
マークアップを貼り付けるか、.svgファイルを読み込むと、結果はその場で更新されます。処理はすべてブラウザ内で行われ、入力が外部に送られることはありません。
使い方#
- SVGマークアップを貼り付けるか、.svgファイルを読み込みます。
- SVGの適用方法(マスクまたは背景画像)と、data URLのエンコード(URLエンコードまたはbase64)を選びます。
- 出力形式(CSS・Tailwind・data URL)を選び、結果をコピーします。
プレビューには市松模様の上に3サイズの見本が並びます。マスクのときの色指定はプレビュー専用です。
マスクと背景画像#
- マスク:
currentColorを使い、SVGを単色のシルエットとして描きます。要素の文字色に追従するため、色違いが必要なアイコンに向いています。 - 背景画像:
background-imageでSVG本来の色を描きます。あとからCSSで色は変えられません。
出力形式#
- CSS:リピート・大きさ・位置まで含んだ、そのまま貼れる宣言です。
- Tailwind:同じ内容をユーティリティクラスで表したもので、data URLには任意値記法を使います。
- data URL:
data:image/svg+xml,...の文字列だけが必要なときの形式で、自前のコードに組み込めます。
data URLは既定でURLエンコードされます。内容をそのまま均一に扱いたいときはbase64に切り替えます。
活用シーン#
- ロゴやピクトグラムをマスク化して、リンクやボタンの色になじませたいとき。
- 小さなSVG背景を、画像ファイルを増やさずに埋め込みたいとき。
- コンポーネント集向けに、Tailwindで貼れるクラスを用意したいとき。
- 書き出した.svgファイルを、スタイルシートに貼れる断片に変えたいとき。
よくある質問#
できます。.svgファイルを1件選ぶか、ドロップ・貼り付けすると内容が読み込まれ、同じ変換が行われます。他の形式は受け付けず、入力は変わりません。
fillやstrokeの書き換えは行いません。色を変えたいときは、背景画像ではなくマスクを選びます。
周囲に合わせて色を変えたいときはマスク、SVGの絵柄をそのまま残したいときは背景画像を選びます。
透明度を基準にした単色のシルエットになり、元の塗り色は反映されません。色を残したいときは背景画像を使います。
軽い整形だけです。コメントとメタデータを除き、欠けているSVG名前空間を補い、viewBoxがある場合は拡大縮小できるよう幅と高さを外します。fill・stroke・id・defsには触れません。
不要です。リピート・大きさ・位置まで含まれるため、そのまま表示できます。要素に大きさを与え、マスクでは文字色も決めます。
v4向けです。bg-[url(...)]や[mask-image:...]のような任意値記法を使っています。
注意点#
- data URLは元のマークアップより増えます。base64は約3割、URLエンコードは特殊文字の分だけ拡大し、大きなSVGでは出力が長くなります。