Wie sich Solid von React unterscheidet
Solids JSX bildet Attribute direkt auf das DOM ab, daher bleiben SVG-Attribute wie stroke-width und class genau so, wie sie in der Datei stehen. Anders als in React müssen sie nicht in camelCase oder className umbenannt werden.
Props sind in Solid reaktive Getter, und Destructuring zerstört die Reaktivität. Wenn du die size-Prop aktivierst, trennt der Konverter size mit splitProps von den übrigen Props und reicht den Rest an das <svg> weiter – so bleiben alle Werte reaktiv.
Erzeugte TypeScript-Typen
Die Props sind als JSX.SvgSVGAttributes<SVGSVGElement> aus solid-js typisiert und decken alle SVG-Attribute und Event-Handler ab. Mit der size-Option wird der Typ um { size?: number | string } erweitert.
Die Komponente in SolidStart nutzen
Erste Schritte:
- Speichere die Ausgabe als IconName.tsx in deinem Ordner src/components.
- Importiere sie und rendere <IconName size={18} class="icon" />.
- Nutze currentColor, um die Farbe des umgebenden Texts zu übernehmen.
- Refs funktionieren über die normale ref-Prop; forwardRef wird in Solid nicht benötigt.