UTILS.
100% ब्राउज़र में
🎨

SVG से JSX Component

raw SVG markup को camelCased attributes, prop spreading, और वैकल्पिक currentColor और forwardRef के साथ एक तैयार-उपयोग React component में बदलें।

— आउटपुट यहाँ दिखेगा —

इस टूल के बारे में

SVG से JSX Component टूल raw SVG markup को एक साफ़ React component में बदल देता है, जैसे SVGR करता है, पर पूरी तरह से आपके ब्राउज़र में कुछ भी अपलोड किए बिना। किसी design tool से export किया गया एक icon पेस्ट करें और एक component पाएँ जिसे आप import और style कर सकते हैं। यह SVG को DOMParser से पार्स करता है और markup विकृत होने पर एक स्पष्ट error रिपोर्ट करता है।

प्रत्येक hyphenated या namespaced SVG attribute को इसके React नाम पर camelCase किया जाता है — stroke-width को strokeWidth, fill-rule को fillRule, clip-path को clipPath, stop-color को stopColor, xlink:href को xlinkHref, xmlns:xlink को xmlnsXlink — जबकि data-* और aria-* attributes जैसे हैं वैसे छोड़े जाते हैं। Inline style strings style objects बन जाती हैं, path और circle जैसे खाली elements self-closed होते हैं, और props को root <svg {...props}> पर spread किया जाता है ताकि component configurable रहे। वैकल्पिक toggles आपको hard-coded fill और stroke मानों को currentColor से बदलने देते हैं (ताकि icon text color inherit करे), width और height को strip करने देते हैं ताकि यह अपने container के अनुसार scale हो, और component को forwardRef के साथ लपेटने देते हैं ताकि underlying <svg> node को expose किया जा सके।

JavaScript या TypeScript आउटपुट चुनें: TypeScript variant props को React.SVGProps<SVGSVGElement> के रूप में type करता है और, forwardRef सक्षम होने पर, forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>> का उपयोग करता है। component को एक exported arrow function (export const Icon = (props) => (...)) के रूप में निकाला जाता है, आपके चुने हुए नाम और indent के साथ, एक icon module में पेस्ट करने के लिए तैयार।

अक्सर पूछे जाने वाले प्रश्न

SVG attributes कैसे बदले जाते हैं?
Hyphenated और colon-namespaced attributes को उनके React समकक्षों पर camelCased किया जाता है: stroke-width को strokeWidth, fill-rule को fillRule, xlink:href को xlinkHref। data-* और aria-* attributes संरक्षित रहते हैं। Inline styles style objects बन जाती हैं।
currentColor विकल्प क्या करता है?
यह hard-coded fill और stroke color मानों (none के अलावा कुछ भी) को "currentColor" से बदल देता है, ताकि SVG आसपास के text color को inherit करे और parent पर सादे CSS color के साथ recolor किया जा सके।
props को svg पर क्यों spread करें?
root <svg> पर {...props} spread करना callers को component को className, width, onClick, aria labels, और कोई भी अन्य SVG props पास करने देता है। forwardRef सक्षम होने पर, एक ref भी underlying element पर forward किया जाता है।
JS और TS आउटपुट में क्या अंतर है?
TypeScript आउटपुट props को React.SVGProps<SVGSVGElement> के रूप में type करता है, और forwardRef के साथ यह forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>> का उपयोग करता है। JavaScript आउटपुट type annotations छोड़ देता है पर अन्यथा समान है।

और टूल