Fertig einfügbares JSX aus jeder SVG-Datei — Attribute so umbenannt, wie React sie erwartet, Props auf das Wurzelelement verteilt, TypeScript wenn du es brauchst.
SVGReactJSXTypeScript
SVG → React
☞ läuft komplett in deinem Browser — nichts wird hochgeladen
SVG hier ablegen
oder klicken zum Auswählen — nur SVG
React-Komponente (.jsx)
Der Komponentenname kommt aus dem Dateinamen, aus arrow-left.svg wird also ArrowLeft.
TypeScript-Komponente (.tsx)
Dieselbe Komponente, typisiert als SVGProps<SVGSVGElement>.
JSX-Snippet
Nur das Markup, zum Einfügen in eine Komponente, die du schon hast.
Icons als Komponenten
Warum sich ein SVG nicht unverändert in JSX einfügen lässt
JSX sieht aus wie Markup, ist aber JavaScript. Attribute mit Bindestrich wie stroke-width sind keine gültigen Bezeichner, class kollidiert mit einem reservierten Wort, und geschweifte Klammern in einem Inline-Style werden als Ausdruck gelesen. Ein direkt aus dem Designtool kopiertes SVG scheitert meist an mindestens einem dieser Punkte.
Dieser Konverter benennt um, was umbenannt werden muss, und lässt den Rest in Ruhe. data- und aria-Attribute behalten ihre Bindestriche, weil React sie unverändert durchreicht — sie umzubenennen ist ein verbreiteter Weg, ein barrierefreies Label stillschweigend zu verlieren.
drei Schritte
SVG in eine React-Komponente umwandeln
01
SVG ablegen
Wähle eine .svg-Datei — sie bleibt auf deinem Gerät.
02
Passenden Block kopieren
Ganze Komponente, ihr TypeScript-Zwilling oder das nackte JSX.
03
Ins Projekt legen
Importiere sie wie jede andere Komponente und style sie über Props.
kurze Antworten
FAQ zu SVG zu React
Warum steht {...props} am Ende des svg-Tags?
Damit gewinnt, was du von außen übergibst. In JSX überschreibt ein späteres Attribut ein früheres; steht der Spread zuletzt, kannst du className, width oder ein onClick von außen setzen. Steht er vorn, würden die in der Datei festgeschriebenen Werte deine still überschreiben.
Wie färbe ich das Icon um?
Ersetze das fest eingetragene fill oder stroke in der Ausgabe durch currentColor und setze die Farbe dann per CSS an einem beliebigen Elternelement. Sind die Farben über viele Knoten verstreut, schick die Datei vorher durch den SVG-Farbwechsler — der stellt alle auf einmal auf currentColor um.
Funktioniert das mit React Native?
Nicht direkt. React Native hat kein DOM, SVG braucht dort react-native-svg und großgeschriebene Elementnamen wie Svg und Path. Die hier gezeigte Attribut-Umbenennung ist weiterhin die richtige Form, aber Importe und Tags unterscheiden sich.
Die Ausgabe ist eine einzige sehr lange Zeile
Das ist die Quelldatei — minifiziertes SVG bleibt minifiziert, weil Neuformatieren eine eigene Aufgabe ist. Schick sie zuerst durch den SVG-Beautifier, dann kommt die Komponente mit lesbaren Einrückungen heraus.
Wird meine Datei hochgeladen?
Nein. Die Umwandlung ist reine Zeichenkettenarbeit in deinem Browser.