Was dieser SVG-Konverter macht
SVG-Dateien aus Figma, Illustrator, Sketch oder Inkscape sind gültiges XML, aber kein gültiges JSX. React erwartet Props in camelCase wie strokeWidth statt stroke-width, className statt class und ein Style-Objekt statt eines CSS-Strings. Außerdem fügen Editoren XML-Deklarationen, Kommentare, Metadatenblöcke und Attribute mit Namensräumen hinzu, die dein Bundle aufblähen und Warnungen auslösen.
SvgJsx liest das SVG mit einem kleinen XML-Parser, schreibt jedes Attribut in die Form um, die dein Framework erwartet, und gibt eine sauber formatierte Komponente aus. Du kannst TypeScript-Typen, eine size-Prop, currentColor-Füllungen, forwardRef, memo und den Exportstil wählen und anschließend den Code kopieren oder als Datei herunterladen.
So wandelst du SVG in eine React-Komponente um
Der Ablauf dauert nur wenige Sekunden:
- Füge den SVG-Code in das Eingabefeld ein oder ziehe eine oder mehrere .svg-Dateien darauf.
- Wähle das Ausgabeformat: React, React Native, Vue, Solid oder ein reines JSX-Snippet.
- Lege den Komponentennamen und Optionen wie TypeScript, currentColor und die size-Prop fest.
- Prüfe die Live-Vorschau und den Größenvergleich, dann kopiere den Code oder lade die Datei herunter. Mehrere Dateien werden zu einem ZIP gebündelt.
Automatische Umwandlungen
Attribute mit Bindestrich werden zu camelCase (stroke-linecap → strokeLinecap), Attribute mit Namensraum werden zusammengezogen (xlink:href → xlinkHref) und Inline-Style-Strings werden zu JavaScript-Objekten. data-*- und aria-*-Attribute bleiben unverändert, weil React sie so akzeptiert. Script-Elemente und Inline-Event-Handler werden entfernt, damit eine eingefügte Datei niemals Code in deine App einschleusen kann.
Eine leichte Optimierung fasst Leerraum zusammen und kann Koordinaten auf eine feste Anzahl Nachkommastellen runden. Bei den meisten Icon-Sets spart das 20–40 % des Markups – ganz ohne schwergewichtige SVGO-Abhängigkeit.