
SVG zu React: Von der Rohdatei zur produktionsreifen Komponente
Konvertieren Sie SVG-Icons in React/JSX-Komponenten, optimieren Sie sie und integrieren Sie sie in Ihr Design System.
Warum vom rohen SVG zur React-Komponente wechseln
Inline-SVG in JSX einzufügen scheitert oft beim ersten Build: HTML-Attribute (`class`, `stroke-width`) sind in React ungültig, eingebettete `<style>`-Tags sind schwer wartbar, Figma-Exporte blähen die Dateigröße auf. Der Online-Konverter SVG zu JSX wandelt eine `<svg>`-Datei in eine kopierfertige React-Komponente um — mit Attribut-Umbenennung (`className`, `strokeWidth`), anpassbarem Komponentennamen und optionaler TypeScript-Ausgabe. Der gesamte Workflow läuft im Browser im SVG-Tools-Hub, ohne Konto oder Server-Upload. Für Optimierungskontext siehe auch SVGO-Presets erklärt.
Beispiel: UI-Icon im Design System
Ein 24×24-Icon aus Figma kann als rohes SVG 3–6 KB wiegen. Nach optimize default oft 1–2 KB. Generiertes JSX bleibt lesbar — nutzen Sie den <a href="/de/beautify-svg" class="text-primary hover:underline">Online-SVG-Beautifier</a> auf Zwischen-Markup, wenn Sie Pfade prüfen müssen.
Before optimization
After optimization
Jede importierte Icon-Komponente landet im JavaScript-Chunk Ihrer App — anders als eine statische `.svg`-Datei. Das ist der übliche React-Trade-off; der <a href="/de/minify-js" class="text-primary hover:underline">Online-JavaScript-Minifier</a> illustriert JS-seitige Kompression, aber die erste Verteidigungslinie ist ein schlankes Quell-SVG vor der Konvertierung.
Best Practices: Props, className und Barrierefreiheit
Der Konverter mappt `class` → `className` und kebab-case SVG-Attribute auf React-camelCase. Für konsistentes Theming Quell-SVG oder JSX auf `fill="currentColor"` setzen und Farbe per CSS/Tailwind am Parent steuern.
Ein Icon neben sichtbarem Text ist dekorativ → `aria-hidden="true"` auf `<svg>`. Ein Icon, das Bedeutung trägt (z. B. Fehlerstatus ohne Text), braucht `<title>` / `<desc>` oder explizites `aria-label`. FastMinify erhält title/desc beim Optimize; prüfen, dass sie die Konvertierung überstehen.
Ungültige Komponentennamen (`icon-arrow`) → stiller Fallback auf `SvgIcon` (Tool meldet Fallback). Ungültiges XML oder mehrere Roots → Parse-Fehler. Doppelte IDs, wenn dieselbe Komponente mehrfach ohne Sprite inlined wird.
Wann das Browser-Tool reicht
Kein SVGR nötig, um ein Icon aus Slack oder einen einmaligen Figma-Export zu konvertieren.
Grenzen: SVGR und Bundler-Plugins
Online-Konvertierung eignet sich zum Erkunden und für wenige Komponenten. Automatischer `import Icon from './icon.svg'` bei jedem Build, Batch über einen `icons/`-Ordner und custom SVGR-Templates bleiben Domain von `@svgr/cli`, `@svgr/webpack` oder `vite-plugin-svgr`.
Name, Export und JSX-Struktur in svg-to-jsx validieren, dann Konventionen in SVGR spiegeln. Mit dem gleichen SVGO-Preset wie in der CI optimieren — siehe <a href="/de/blog/svgo-presets-svg-web-optimieren" class="text-primary hover:underline">SVGO-Presets</a> und den <a href="/de/blog/svg-optimization-leitfaden-web" class="text-primary hover:underline">SVG-Optimierungsleitfaden</a>.
SVGR und React-Ökosystem
FastMinify svg-to-jsx deckt Paste → JSX kopieren mit drei Optionen ab. Das npm-Ökosystem bietet mehr Flexibilität für Automatisierung.
@svgr/cli
SVGR-Kommandozeile — Referenz für Batch und CI.
Pros:
Cons:
vite-plugin-svgr / @svgr/webpack
SVG beim Kompilieren als React-Komponente importieren.
Pros:
Cons:
FastMinify optimize-svg + svg-to-jsx
Browser-Kette optimize → convert, ohne Installation.
Pros:
Cons:
Inline-SVG, `<img>` oder React-Komponente?
Die Wahl beeinflusst Styling, Barrierefreiheit und JavaScript-Bundle-Größe. Eine React-Komponente passt zu wiederverwendbaren Icons in einem Design System; einmaliges Inline oder `<img src="icon.svg">` bleibt für einfache Fälle gültig.
UI-Icons (Buttons, Navigation), thembare Logos (`fill="currentColor"`) oder Assets, die mehrere React/Next.js-Apps teilen. Die Komponente kapselt Markup und vermeidet 200 Zeilen `<path>` auf jeder Seite.
svg-to-jsx erzeugt JSX aus vorhandenem Markup. Es löst keine Sass-`@use`-Imports, Multi-File-Partials oder automatische Generierung bei jedem Commit — dafür bleibt SVGR in der CI relevant. Das Online-Tool eignet sich zum Prototypen, Korrigieren eines Exports oder Onboarding von Designern.
FastMinify-Workflow: optimize, dann svg-to-jsx
Ein Illustrator- oder Figma-Export enthält oft Metadaten und übermäßige Präzision. Zuerst den Online-SVGO-Optimierer (Safe- oder Default-Preset für UI-Icons) oder den SVG-Minifier für reines Whitespace-Cleanup. So schrumpft die finale Komponente ohne Änderung am React-Workflow.
Optimiertes SVG in das SVG-zu-JSX-Tool einfügen. Komponentennamen wählen (muss mit Großbuchstabe beginnen — sonst Fallback `SvgIcon`), Default- vs. Named-Export und TypeScript, wenn Ihre Codebase `.tsx` nutzt.
Nach dem Kopieren bei Bedarf anpassen: `props` auf `<svg>` mergen (`{...props}`), `aria-hidden` für dekorative Icons oder `role="img"` + `aria-label` für informative. Mit SVG online validieren auf Quell-Markup vor der Konvertierung prüfen.
Fazit
Der sicherste Weg zu einer wartbaren React-Komponente: Quell-SVG optimieren, mit expliziten Optionen zu JSX konvertieren, dann Props und Barrierefreiheit im Design System anpassen. FastMinify verknüpft optimize-svg und svg-to-jsx vollständig im Browser — ideal zum Prototypen, bevor SVGR in der CI festgelegt wird.
Verwandte Artikel

Safe, default oder aggressive? Wählen Sie das richtige SVGO-Preset und optimieren Sie SVG für die Produktion.

Prüfen Sie die Struktur von `compose.yml` und `.env` vor `docker compose up` — ohne lokale Tools.

Erkennen Sie Docker-Anti-Patterns (Root-User, Cache-Layer, Tag `latest`) und formatieren Sie Dockerfiles vor der CI.