Warum SVG nicht einfach in React einfügen?
Rohes SVG in einer .jsx-Datei führt meist zu einer Flut von Warnungen wie „Invalid DOM property stroke-width“ oder „Invalid DOM property class“ – oder sogar zu einem Kompilierfehler, wenn die Datei ein style-Attribut oder eine XML-Deklaration enthält. Jedes Attribut von Hand umzubenennen ist bei großen Icon-Sets langsam und fehleranfällig.
Dieser Konverter übernimmt das Umbenennen und verpackt das Markup in eine Komponente, die Props entgegennimmt. Da {...props} auf das <svg>-Wurzelelement verteilt wird, kannst du className, aria-label, onClick oder eine eigene Breite aus der Elternkomponente übergeben, ohne das Icon erneut zu bearbeiten.
Empfohlene Einstellungen für React-Icons
Für eine wiederverwendbare Icon-Komponente empfehlen wir:
- currentColor aktivieren, damit das Icon die Textfarbe der Elternkomponente übernimmt und im Dark Mode funktioniert.
- Die size-Prop aktivieren, um Breite und Höhe mit einem einzigen Wert wie size={20} zu steuern.
- Die viewBox behalten und feste width- und height-Angaben entfernen, damit das Icon mit CSS skaliert.
- forwardRef nur nutzen, wenn eine Elternkomponente das <svg>-Element braucht, etwa für Tooltips oder Animationen.
Inline-Komponenten oder Bilddateien?
Inline-SVG-Komponenten lassen sich mit CSS gestalten, animieren und beim Hover umfärben und verursachen keine zusätzliche Netzwerkanfrage. Für große, unveränderliche Illustrationen kann ein einfaches <img src="/file.svg"> günstiger sein, weil der Browser die Datei separat cachen kann. Nutze Komponenten für Icons und UI-Grafiken und Bild-Tags für aufwendige Illustrationen.