Konverter SVG ke JSX

Tempel SVG dari Figma, Illustrator, atau kumpulan ikon, lalu dapatkan komponen React (JSX atau TSX) yang siap pakai, lengkap dengan pratinjau ikon yang aman.

Diperbarui
Output
Buka .svg
HeartIcon.jsx

Pratinjau (sudah disanitasi — script, event handler, dan tautan eksternal dihapus)

Pratinjau muncul di sini

Data kamu tidak pernah meninggalkan komputer kamu. Semua proses berjalan 100% secara lokal di browser kamu.

Apakah alat ini membantu?0.0 0 penilaian
Ubah kode SVG jadi data URI CSS ter-URL-encode untuk background-image atau mask-image, dengan opsi Base64, pembersihan kode, dan pratinjauKonverter SVG ke CSS →

Cara menggunakan SVG ke JSX Converter

  1. Tempel markup SVG kamu, buka file .svg, atau klik Contoh.
  2. Atur nama komponen dan opsinya: TypeScript, props spread, menghapus ukuran tetap, atau mengganti warna menjadi currentColor.
  3. Periksa pratinjau yang sudah disanitasi untuk memastikan ikonnya tampil dengan benar.
  4. Salin komponennya atau unduh sebagai file .jsx/.tsx, lalu impor ke proyek React atau Next.js kamu.

Mengapa SVG perlu diubah untuk React

SVG adalah XML, sedangkan JSX adalah JavaScript yang hanya terlihat seperti HTML. Jika SVG mentah langsung ditempel ke komponen React, biasanya muncul peringatan seperti “Invalid DOM property stroke-width. Did you mean strokeWidth?” atau error build untuk atribut berprefiks seperti xlink:href dan inkscape:label. Converter ini menulis ulang markup menjadi JSX yang valid dan membungkusnya dalam sebuah komponen.

Apa saja yang dikonversi

SVGJSX
class="icon"className="icon"
stroke-width="2", fill-rule, stop-colorstrokeWidth="2", fillRule, stopColor
xlink:href="#a", xml:spacexlinkHref="#a", xmlSpace
style="fill-opacity: .5; stroke-linecap: round"style={{ fillOpacity: 0.5, strokeLinecap: 'round' }}
data-* dan aria-*Dibiarkan apa adanya (React memakai tanda hubung di sini)
<?xml?>, <!DOCTYPE>, komentar, <metadata>, atribut editor (Inkscape, Sodipodi, Sketch)Dihapus
onclick dan handler inline lainnya, <script>Dihapus — handler berbentuk string tidak valid di React

Membuat ikon lebih fleksibel

Jika opsi Spread props diaktifkan, komponen akan diakhiri dengan {...props} pada <svg>, sehingga kamu bisa meneruskan className, width, aria-label, atau event handler: <HeartIcon className="h-6 w-6" />. Opsi Hapus width/height membiarkan CSS mengatur ukuran ikon (viewBox akan ditambahkan dari ukuran lama jika belum ada). Warna → currentColor mengganti fill dan stroke agar ikon mewarisi warna teks, sangat cocok untuk kumpulan ikon satu warna. Opsi TypeScript akan menulis tipe props sebagai SVGProps<SVGSVGElement>.

Aksesibilitas

Untuk ikon dekoratif di samping teks, tambahkan aria-hidden="true". Untuk ikon mandiri yang punya makna, pertahankan <title> atau berikan role="img" dengan aria-label.

Privasi dan keamanan

Konversi berjalan sepenuhnya di browser kamu, jadi SVG tidak pernah meninggalkan perangkatmu. Pratinjaunya sudah disanitasi: script, foreignObject, handler event inline, dan referensi eksternal dihapus sebelum dirender. Sedang membangun alur kerja berbasis bundle? Tools seperti SVGR melakukan hal serupa saat build; halaman ini cocok untuk ikon satu-satu yang cepat. Jika ingin memakai SVG sebagai background CSS, coba SVG ke CSS.

Juga dicari sebagai: svg ke jsx, svg ke react, svg ke tsx, komponen react svg, konverter jsx online, svgr online, ikon svg react, classname react.

Tool yang cocok dipakai bersama SVG ke JSX Converter

  • HTML ke Markdown — Tempel HTML, atau salin rich text langsung dari halaman web, Google Doc, atau email, lalu dapatkan Markdown yang rapi untuk README, wiki, atau static site kamu.
  • JSON ke TypeScript — Tempel contoh JSON, misalnya respons API atau file konfigurasi, lalu dapatkan interface TypeScript siap pakai lengkap dengan tipe bersarang, properti opsional, dan union type.
  • Gambar ke Base64 — Ubah PNG, JPEG, SVG, WebP atau GIF menjadi data URI Base64 dengan CSS dan HTML yang siap disalin, atau tempel string Base64 untuk melihat pratinjau dan mengunduh gambarnya.
  • Formatter HTML — Tempel markup yang berantakan atau sudah di-minify, lalu dapatkan HTML rapi dengan indentasi konsisten — termasuk blok <style> dan <script> di dalamnya.

Pertanyaan yang sering diajukan

Kenapa React memberi peringatan “Invalid DOM property class”?
class adalah kata yang dicadangkan di JavaScript, jadi React memakai className. Hal yang sama berlaku untuk atribut SVG dengan tanda hubung, yang harus diubah ke camelCase (stroke-width → strokeWidth). Tool ini mengonversinya secara otomatis.
Sebaiknya pakai xlinkHref atau href?
Browser modern mendukung atribut href biasa dari SVG 2, dan xlink:href sudah deprecated. React masih menerima xlinkHref, jadi kode hasil konversi tetap berfungsi. Kamu bisa beralih ke href jika tidak perlu mendukung browser yang sangat lama.
Bagaimana cara mengubah warna ikon dengan CSS?
Aktifkan opsi Warna → currentColor. Ikon kemudian memakai nilai CSS color dari elemen induknya, jadi className="text-red-500" atau style={{ color: "red" }} akan mengubah warnanya.
Apakah hasilnya bisa dipakai di Next.js dan Vite?
Bisa. Hasilnya berupa function component biasa dengan default export, sehingga berfungsi di Next.js (App atau Pages Router), Vite, Create React App, dan Remix tanpa loader tambahan.
Apakah bisa dipakai di React Native?
Tidak langsung. React Native membutuhkan react-native-svg, yang memakai komponen berawalan huruf kapital seperti <Svg> dan <Path>. Atribut camelCase dari tool ini adalah titik awal yang baik, tetapi nama elemennya perlu kamu ubah.
Apakah SVG saya diunggah ke server?
Tidak. Parsing dan konversi dilakukan di browser kamu dengan DOMParser bawaan; tidak ada yang dikirim ke server.
Bisakah saya memasang SVG ke JSX Converter sebagai aplikasi web dan memakainya offline?
Bisa. SVG ke JSX Converter adalah aplikasi web (PWA) yang bisa dipasang. Pemasangannya lewat browser kamu, bukan diunduh dari toko aplikasi. Klik Pasang aplikasi di bagian atas halaman ini di Chrome atau Edge (Windows, macOS, Linux, ChromeOS) atau di Android. Di iPhone dan iPad, gunakan Bagikan → Tambahkan ke Layar Utama, dan di Safari 17+ pada Mac, gunakan File → Tambahkan ke Dock. Setelah itu, aplikasi akan terbuka di jendelanya sendiri dengan ikonnya sendiri. Karena berjalan sepenuhnya di browser kamu, aplikasi ini tetap bisa dipakai offline. Firefox di desktop tidak bisa memasang aplikasi web. Cara memasang aplikasi.

Tool terkait