🌐 DE

⚛️ SVG-zu-React-JSX-Konverter

Füge SVG-Markup ein, um es in JSX umzuwandeln, das du direkt in eine React-Komponente einsetzen kannst. Attribute werden in camelCase umgeschrieben (class→className), der style-String wird in ein Objekt umgewandelt, und Kommentare sowie DOCTYPE werden entfernt.

RATGEBER

Mehr erfahren

01

1. Warum SVG in JSX umwandeln

Die Syntax von React (JSX) unterscheidet sich leicht von HTML/SVG. Mit Bindestrich geschriebene Attribute (stroke-width) müssen in camelCase umgeschrieben werden (strokeWidth), class wird zu className, und style muss ein JavaScript-Objekt statt eines Strings sein. Dieses Tool übernimmt diese Unterschiede automatisch, sodass sich ein von einem Designer exportiertes SVG-Icon direkt in eine React-Komponente einfügen lässt.

02

2. Konvertierungsregeln

Es ordnet class→className und for→htmlFor zu, wandelt Attribute mit Bindestrichen wie stroke-width und fill-opacity in camelCase um, konvertiert Namespaced-Attribute wie xlink:href zu xlinkHref und lässt data-/aria-Attribute unverändert. style="fill:red;stroke-linecap:round" wird zu dem Objekt style={{ fill: 'red', strokeLinecap: 'round' }}, während Kommentare, DOCTYPE und die XML-Deklaration entfernt werden.

03

3. Sichere Konvertierung mit DOMParser

Statt per Regex parst dieses Tool das SVG tatsächlich mit dem im Browser integrierten DOMParser und serialisiert es anschließend neu, sodass verschachtelte Strukturen und Attribute korrekt behandelt werden. Alles läuft in deinem Browser, und der Code wird nie an einen Server gesendet. Nachdem du das Ergebnis in eine Komponente eingefügt hast, kannst du es bei Bedarf anpassen - z. B. width/height in Props auslagern oder fill auf "currentColor" umstellen.

Häufig gestellte Fragen

Kann ich die Ausgabe direkt in React verwenden?
Ja. Füge das JSX in den return-Block deiner Komponente ein. Optional kannst du Größe und Farbe in Props auslagern, damit es wiederverwendbarer wird.
Wird der style-String auch konvertiert?
Ja. Ein String wie style="a:b;c:d" wird zu dem Objekt style={{ a: 'b', c: 'd' }} mit in camelCase umgeschriebenen CSS-Eigenschaftsnamen.
Wird mein SVG an einen Server gesendet?
Nein. Die Konvertierung läuft vollständig in deinem Browser, und der Code wird nie an einen Server gesendet.
Verwendet es eine Bibliothek wie svgr?
Nein. Es ist direkt mit dem integrierten DOMParser des Browsers implementiert, ohne externe Bibliothek.