SVG-naar-JSX-converter
Zet SVG om naar React-JSX: attributen worden camelCase, inline styles worden objecten en de uitvoer is inline JSX, memo of forwardRef.
SVG-naar-JSX-converter — Plak SVG-markup of sleep een .svg-bestand en krijg meteen React-klare JSX: attributen als stroke-width worden camelCase, class wordt className, een inline style-string wordt herschreven naar een JSX-style-object en lege elementen worden zelfsluitend. Optioneel voer je eerst een SVGO-achtige opschoning uit en geef je daarna inline-JSX of een functie-, memo- of forwardRef-component die SVGProps spreidt. Alles is een pure string-transformatie die volledig in je browser draait; je markup verlaat nooit de pagina en raakt geen server aan.
Wat is SVG-naar-JSX-converter?
De SVG-naar-JSX-converter is een gratis tool in de browser die gewone SVG-markup omzet naar geldige React-JSX die je direct in een component kunt plakken. React verwacht DOM-attributen in camelCase (strokeWidth, clipPath, fillRule), gebruikt className in plaats van class en heeft het style-attribuut nodig als object met camelCase-eigenschappen in plaats van een string — deze tool corrigeert dat allemaal automatisch. Front-endontwikkelaars en ontwerpers gebruiken hem bij het exporteren van iconen uit Figma, Illustrator of een iconenset. Zet de optionele opschoning aan om commentaar, editor-metadata en XML-declaraties te verwijderen, en kies of de uitvoer inline-JSX is of een met React.SVGProps getypeerd functie-, memo()- of forwardRef-component.
SVG-naar-JSX-converter gebruiken
- Plak je SVG-markup in het invoervak, of sleep een .svg-bestand naar de sleepzone.
- Lees de omgezette JSX in het uitvoervak — attributen staan in camelCase, class wordt className, een inline style wordt een style-object en lege tags worden zelfsluitend.
- Open Instellingen en kies een Componentuitvoer: inline-JSX, een functiecomponent, een memo()-component of een forwardRef-component.
- Stel het veld Componentnaam in om de naam te bepalen die in de wrapper wordt gebruikt (bijvoorbeeld MyIcon).
- Schakel TypeScript-props in om het component te typeren met React.SVGProps, of zet SVG opschonen aan om eerst commentaar en editor-metadata te verwijderen.
- Klik op Kopiëren om de JSX te kopiëren en plak het vervolgens in je React- of Next.js-project.
Voorbeelden
Inline-stijlen en attributen omgezet
Invoer
<svg viewBox="0 0 24 24"><path stroke-width="2" style="fill:none;stroke-linecap:round" d="M4 12h16"/></svg>
Uitvoer
<svg viewBox="0 0 24 24"><path strokeWidth="2" style={{ fill: "none", strokeLinecap: "round" }} d="M4 12h16" /></svg>forwardRef-component met getypeerde props
Invoer
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
Uitvoer
export const MyIcon = React.forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(function MyIcon(props, ref) {
return (
<svg viewBox="0 0 24 24" ref={ref} {...props}><circle cx="12" cy="12" r="10" /></svg>
);
});Veelgestelde vragen
- Wat verandert de converter aan mijn SVG?
- Hij hernoemt attributen met koppelteken en met namespace naar Reacts camelCase-vorm (stroke-width naar strokeWidth, xlink:href naar xlinkHref), zet class om naar className, herschrijft een inline style-string naar een JSX-style-object met camelCase-sleutels en maakt lege elementen zoals path en rect zelfsluitend, zodat ze geldige JSX zijn.
- Hoe werken de opties voor componentuitvoer?
- Kies inline-JSX om de markup overal te plaatsen, of verpak het als functie-, memo()- of forwardRef-component met de Componentnaam die je invoert. Een forwardRef-component krijgt een ref die aan de root-svg wordt gekoppeld. Schakel TypeScript-props in om elke wrapper te typeren met React.SVGProps en {...props} te spreiden.
- Zet het inline-stijlen om?
- Ja. Een attribuut style="fill:red;stroke-width:2" wordt herschreven naar een JSX-style-object als style={{ fill: "red", strokeWidth: "2" }}, met eigenschapsnamen in camelCase en waarden als strings. CSS-custom-properties (--var) blijven behouden als string-sleutels.
- Wat doet de SVGO-achtige opschoning?
- Als SVG opschonen aanstaat, verwijdert de tool XML-declaraties, DOCTYPE, commentaar, <metadata>, editor-namespaces zoals inkscape: en sodipodi:, en het version-attribuut van de svg, en vouwt daarna witruimte samen — allemaal voordat de JSX-omzetting draait.
- Wordt mijn SVG ergens geüpload?
- Nee. Een bestand slepen of markup plakken voert een pure string-transformatie volledig in je browser uit, dus je SVG wordt nooit naar een server gestuurd en de tool werkt offline.
Gerelateerde tools
Code naar afbeelding
Zet een codefragment in je browser om in een afbeelding met syntaxisaccentuering, met 20+ talen, aangepaste thema's en achtergronden, regelnummers en PNG- of SVG-export.
Kleurcontrastcontrole
Controleer WCAG 2.1-contrast en APCA Lc-score tussen tekst en achtergrond, bekijk AA-, AAA- en 3:1-badges en pas de dichtstbijzijnde geslaagde kleur toe.
Kleurenmenger
Meng twee HEX-kleuren in een gekozen verhouding in de RGB- of Lab-kleurruimte en lees de resulterende tussenkleur terug als staal en kopieerbare HEX-waarde.
Kleurtinten-generator
Zet één HEX-basiskleur om in een OKLCH-, HSL- of RGB-schaal met instelbare stappen, WCAG-contrasttips per stap en export naar CSS, Tailwind en JSON.