मुफ़्त HTML से JSX कन्वर्टर

React कॉम्पोनेंट्स और प्रोजेक्ट्स में उपयोग के लिए HTML मार्कअप को मान्य JSX सिंटैक्स में बदलें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में, बिना साइन-अप के।

अपडेट किया गया

Share:
Home/Code Tools/HTML to JSX Converter

HTML to JSX Converter

Convert HTML to JSX/TSX for React. Handles attributes, styles, SVG optimization, event handlers, and component wrapping.

Conversion Options

Ctrl+Enter

HTML Input

Conversion Reference

HTML Attributes

classclassName
forhtmlFor
tabindextabIndex
readonlyreadOnly
maxlengthmaxLength
disableddisabled={true}
contenteditablecontentEditable
autocompleteautoComplete

Event Handlers

onclickonClick
onchangeonChange
onsubmitonSubmit
onfocusonFocus
onkeydownonKeyDown
onmouseenteronMouseEnter
ondblclickonDblClick
onpointerdownonPointerDown

SVG Attributes

stroke-widthstrokeWidth
fill-rulefillRule
clip-pathclipPath
font-sizefontSize
text-anchortextAnchor
stop-colorstopColor
viewboxviewBox
enable-backgroundenableBackground

Other Conversions

style="..."style={{...}}
<!-- ... -->{/* ... */}
<br><br />
<img ...><img ... />
<input ...><input ... />
innerHTML="..."dangerouslySet...
data-id="x"data-id="x"
aria-label="x"aria-label="x"

About HTML to JSX Converter

This tool converts HTML to valid JSX/TSX syntax for React components. It handles all the differences between HTML and JSX including SVG attributes.

Features:

  • JSX and TypeScript (TSX) output formats with proper typing
  • Granular conversion options (class, for, styles, booleans, events, SVG)
  • SVG attribute optimization (60+ SVG-specific conversions)
  • Event handler extraction with context-aware TypeScript typing
  • Component wrapping (function or arrow function) with props interface
  • Three view modes: Output, Diff, and Side-by-Side comparison
  • Auto-convert mode with 400ms debounce for real-time feedback
  • Conversion statistics tracking all changes made
  • Bulk conversion for multiple HTML snippets with Download All
  • File upload support (.html, .htm, .svg, .xml files)
  • Multiple sample templates (General HTML, SVG, Event Handlers)
  • Copy to clipboard and download as .jsx or .tsx
  • Conversion history saved to localStorage with relative timestamps
  • Keyboard shortcut: Ctrl/Cmd + Enter to convert
  • Advanced options: indent size, quote style, comment removal
  • innerHTML to dangerouslySetInnerHTML conversion
  • Preserves data-* and aria-* attributes unchanged

Privacy First: All processing happens locally in your browser. Your code is never sent to any server.

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

HTML to JSX कन्वर्टर क्या है?

HTML to JSX कन्वर्टर एक मुफ़्त ऑनलाइन टूल है जो HTML मार्कअप को React कंपोनेंट्स में उपयोग के लिए मान्य JSX सिंटैक्स में बदल देता है।

क्या HTML to JSX मुफ़्त है?

हाँ, यह पूरी तरह मुफ़्त है और इसके लिए किसी रजिस्ट्रेशन की ज़रूरत नहीं है। सारा रूपांतरण आपके ब्राउज़र में क्लाइंट-साइड पर होता है।

यह क्या बदलाव करता है?

HTML to JSX कन्वर्टर class को className में बदलता है, इनलाइन स्टाइल्स को ऑब्जेक्ट्स में बदलता है, खाली एलिमेंट्स को सेल्फ-क्लोज़ करता है, और HTML से JSX के बीच के अन्य अंतरों को संभालता है।

क्या इस टूल के साथ मेरा डेटा सुरक्षित है?

बिल्कुल। HTML to JSX Converter सब कुछ आपके ब्राउज़र में क्लाइंट-साइड पर प्रोसेस करता है। कोई भी डेटा किसी सर्वर पर अपलोड या संग्रहीत नहीं किया जाता। आपकी सामग्री हर समय आपके डिवाइस पर निजी रहती है।

क्या HTML to JSX Converter मोबाइल डिवाइस पर काम करता है?

हाँ, HTML to JSX Converter पूरी तरह रिस्पॉन्सिव है और स्मार्टफ़ोन तथा टैबलेट पर काम करता है। आप इसे आधुनिक वेब ब्राउज़र वाले किसी भी डिवाइस पर इस्तेमाल कर सकते हैं, किसी ऐप को डाउनलोड करने की ज़रूरत नहीं।

क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?

किसी खाते या रजिस्ट्रेशन की ज़रूरत नहीं है। बस अपने ब्राउज़र में HTML to JSX Converter खोलें और तुरंत इस्तेमाल शुरू करें। कोई साइन-अप बाधा या उपयोग प्रतिबंध नहीं है।

मैं HTML to JSX Converter का उपयोग कैसे करूँ?

बस दिए गए फ़ील्ड में अपना इनपुट दर्ज करें, अपनी पसंद के अनुसार सेटिंग्स समायोजित करें, और टूल इसे तुरंत प्रोसेस कर देगा। फिर आप परिणाम को क्लिपबोर्ड पर कॉपी कर सकते हैं या डाउनलोड कर सकते हैं।

कौन से ब्राउज़र समर्थित हैं?

HTML to JSX Converter सभी आधुनिक ब्राउज़रों में काम करता है, जिनमें Chrome, Firefox, Safari, Edge और Opera शामिल हैं। सर्वोत्तम अनुभव के लिए अपने पसंदीदा ब्राउज़र का नवीनतम संस्करण उपयोग करें।

HTML और JSX में क्या अंतर है?

JSX दिखने में लगभग HTML जैसा ही लगता है, लेकिन यह JavaScript सिंटैक्स है जो React एलिमेंट्स में कंपाइल होता है, इसलिए यह ब्राउज़र के नियमों की बजाय JavaScript के नियमों का पालन करता है। असली अंतर वहीं दिखते हैं जहाँ कॉपी किया गया मार्कअप टूटता है: HTML का "class" एट्रिब्यूट "className" बन जाता है और "for", "htmlFor" बन जाता है क्योंकि दोनों शब्द JavaScript में रिज़र्व्ड हैं। "tabindex" और "maxlength" जैसे मल्टी-वर्ड एट्रिब्यूट camelCase होकर "tabIndex" और "maxLength" बन जाते हैं, इनलाइन "style" स्ट्रिंग JavaScript ऑब्जेक्ट में बदल जाती हैं, और "<img>" तथा "<br>" जैसे void टैग को स्पष्ट रूप से सेल्फ-क्लोज़ करना पड़ता है। JSX एक ही रूट एलिमेंट की उम्मीद भी करता है, इसलिए साइबलिंग टैग को रैपर या Fragment की ज़रूरत होती है। किसी बड़ी फ़ाइल में ये यांत्रिक बदलाव हाथ से करने पर आसानी से छूट जाते हैं। ऊपर अपना HTML पेस्ट करें और कन्वर्टर इन सभी नियमों को तुरंत लागू कर देता है ताकि आउटपुट सीधे React कंपोनेंट में इस्तेमाल हो सके।

React यह क्यों कहता है कि 'class' एक अमान्य DOM प्रॉपर्टी है?

React यह चेतावनी इसलिए दिखाता है क्योंकि "class" JavaScript में एक रिज़र्व्ड कीवर्ड है, और JSX कच्चे HTML की बजाय JavaScript में कंपाइल होता है। भाषा से टकराव न हो इसलिए React इस एट्रिब्यूट का नाम बदलकर "className" कर देता है, जिसे वह रेंडर के समय वापस असली "class" एट्रिब्यूट में मैप कर देता है। यही तर्क label एलिमेंट पर "for" पर भी लागू होता है, जो "htmlFor" बन जाता है। अगर आप इन्हें बदले बिना HTML को सीधे कंपोनेंट में पेस्ट करते हैं, तो React या तो कंसोल में चेतावनी देता है या आपकी स्टाइलिंग लागू नहीं करता, क्योंकि वह न पहचाने जाने वाले "class" प्रॉप को नज़रअंदाज़ कर देता है। किसी लंबे टेम्पलेट में हर बार हाथ से यह ठीक करना थकाऊ और गलती-प्रवण है। यह कन्वर्टर "class" को "className" में और "for" को "htmlFor" में अपने-आप बदल देता है, इसलिए ऊपर अपना मार्कअप पेस्ट करें और चेतावनियाँ गायब हो जाएँगी।

इनलाइन HTML style एट्रिब्यूट को JSX style ऑब्जेक्ट में कैसे बदलें?

HTML में, इनलाइन स्टाइल एक सिंगल स्ट्रिंग होती है जैसे style="margin-top: 10px; font-size: 14px"। JSX इसके बजाय एक JavaScript ऑब्जेक्ट चाहता है जिसकी keys camelCase की गई CSS प्रॉपर्टीज़ हों और वैल्यू स्ट्रिंग हों, डबल ब्रेसेस में रैप की गई: style={{ marginTop: '10px', fontSize: '14px' }}। बाहरी ब्रेसेस JSX को बताते हैं कि आप एक JavaScript एक्सप्रेशन पास कर रहे हैं, और भीतरी ब्रेसेस खुद ऑब्जेक्ट हैं। हाइफ़नेटेड प्रॉपर्टी नाम camelCase बन जाते हैं, इसलिए "margin-top" बनकर "marginTop" हो जाता है और "background-color", "backgroundColor" बन जाता है। इन्हें हाथ से बदलना गलती-प्रवण है, खासकर जब कई डिक्लेरेशन या वेंडर प्रीफ़िक्स हों। यह टूल हर इनलाइन स्टाइल को पार्स करता है और उसे अपने-आप सही JSX ऑब्जेक्ट में बदल देता है, प्रॉपर्टीज़ को camelCase करके और वैल्यू को कोट करके। ऊपर style एट्रिब्यूट वाला मार्कअप पेस्ट करें और आउटपुट पैनल में बदले गए ऑब्जेक्ट देखें।

डिज़ाइन टूल से पेस्ट किया गया SVG React में कंपाइल क्यों नहीं होता?

डिज़ाइन टूल या आइकॉन सेट से कॉपी किया गया SVG मार्कअप fill-rule, stroke-width, और clip-path जैसे हाइफ़नेटेड एट्रिब्यूट नाम इस्तेमाल करता है, जो HTML में तो वैध हैं लेकिन JSX प्रॉप्स के रूप में अमान्य हैं। चूँकि JSX खुद JavaScript है, हाइफ़न को माइनस साइन के रूप में पढ़ा जाता है, इसलिए React इन एट्रिब्यूट को तब तक अस्वीकार करता है जब तक उन्हें camelCase करके fillRule, strokeWidth, और clipPath न बना दिया जाए। यही बात जटिल SVG के भीतर मौजूद कई फ़िल्टर और ग्रेडिएंट एट्रिब्यूट पर भी लागू होती है। एक भी छूट जाना अक्सर बिल्ड को तोड़ देता है या आइकॉन को खाली रेंडर कर देता है, और बड़े आइकॉन में इनकी संख्या दर्जनों में हो सकती है। यह कन्वर्टर SVG एट्रिब्यूट को पहचानता है और उन्हें अपने-आप camelCase कर देता है, साथ ही संरचना और viewBox को बरकरार रखता है, ताकि कंपोनेंट में पेस्ट करते ही आइकॉन सही तरीके से रेंडर हो। अपना SVG ऊपर इनपुट में डालें और आउटपुट से React-रेडी मार्कअप कॉपी करें।

क्या बदले गए मार्कअप को अपने-आप किसी React कंपोनेंट में रैप किया जा सकता है?

हाँ। एट्रिब्यूट अनुवाद करने के अलावा, कन्वर्टर आउटपुट को खाली मार्कअप छोड़ने की बजाय एक इस्तेमाल के लिए तैयार कंपोनेंट का रूप दे सकता है। आप साधारण .jsx फ़ाइल या TypeScript का .tsx वर्ज़न जनरेट कर सकते हैं, और रिज़ल्ट को नामित फ़ंक्शन कंपोनेंट या ऐरो फ़ंक्शन के रूप में रैप कर सकते हैं, साथ में मैचिंग React इंपोर्ट स्टेटमेंट भी अपने-आप जनरेट हो जाता है। अगर आपके स्निपेट में कई टॉप-लेवल एलिमेंट हैं, तो Fragment रैपिंग उन्हें एक ही नोड के रूप में रिटर्न कर देती है ताकि कंपोनेंट बिना किसी अतिरिक्त div के वैध रहे। आप इंडेंटेशन साइज़ भी सेट कर सकते हैं, सिंगल या डबल कोट चुन सकते हैं, और बार-बार आने वाली वैल्यू को प्रॉप्स के रूप में निकाल सकते हैं। रिज़ल्ट पैनल में लाइन-बाय-लाइन डिफ़ और साइड-बाय-साइड व्यू भी जोड़ा गया है ताकि आप हर बदलाव जाँच सकें, और एक बल्क टैब एक ही बार में कई स्निपेट कन्वर्ट कर देता है। ऊपर अपने आउटपुट विकल्प सेट करें, फिर तैयार कंपोनेंट को कॉपी या डाउनलोड करें।

Embed This Tool

Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.

Copy & paste this HTML
<iframe src="https://getthetoolbox.com/embed/html-to-jsx" title="Free HTML to JSX Converter — The Toolbox" width="100%" height="380" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/code-tools/html-to-jsx?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free HTML to JSX Converter</a> by The Toolbox</p>

संबंधित टूल

मुफ़्त CSS मिनिफायर ऑनलाइन

फ़ाइल आकार कम करने और लोडिंग गति सुधारने के लिए CSS कोड को मिनिफाई करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

मुफ़्त JavaScript मिनिफायर

फ़ाइल आकार कम करने और प्रदर्शन बेहतर करने के लिए JavaScript कोड को मिनिफाई करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

मुफ़्त HTML मिनिफायर ऑनलाइन

पेज का आकार और लोडिंग समय घटाने के लिए HTML कोड को मिनिफाई करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में, बिना साइन-अप के।

मुफ़्त SQL फ़ॉर्मेटर और ब्यूटिफायर

बेहतर पठनीयता के लिए SQL क्वेरी को फ़ॉर्मेट और सुंदर बनाएं। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में, बिना साइन-अप के।

Free HTML to JSX Converter के बारे में

HTML to JSX Converter साधारण HTML मार्कअप को वैध JSX में बदल देता है, जिसे आप सीधे अपने React कंपोनेंट में इस्तेमाल कर सकते हैं। कोई स्निपेट, पूरे पेज का कोई हिस्सा, या SVG आइकॉन पेस्ट करें, और यह HTML के उन हिस्सों को फिर से लिखता है जिन्हें React स्वीकार नहीं करता — class को className में बदलना, <img> और <br> जैसे void टैग को क्लोज़ करना, और इनलाइन style स्ट्रिंग को उन स्टाइल ऑब्जेक्ट्स में बदलना जिनकी React को उम्मीद होती है। यह उन फ्रंट-एंड डेवलपर्स के लिए बनाया गया है जो स्टैटिक टेम्पलेट को पोर्ट कर रहे हैं, उन डिज़ाइनरों के लिए जो React टीम को मार्कअप सौंप रहे हैं, और उन सभी के लिए जो किसी पुराने पेज को हाथ से हर एट्रिब्यूट ठीक किए बिना आधुनिक कंपोनेंट-आधारित UI में माइग्रेट करना चाहते हैं।

यह कन्वर्टर पूरी तरह आपके ब्राउज़र में चलता है। आप जो भी पेस्ट करते हैं वह न तो अपलोड होता है और न ही किसी सर्वर पर स्टोर होता है, इसलिए प्रोप्राइटरी मार्कअप और अनरिलीज़्ड पेज आपकी मशीन पर ही रहते हैं। कोई साइन-अप नहीं, कोई उपयोग सीमा नहीं, और कोई इंस्टॉलेशन नहीं — आपकी कन्वर्ज़न हिस्ट्री केवल आपके ब्राउज़र के लोकल स्टोरेज में सेव होती है (हाल के अधिकतम 30 एंट्री तक) और कभी भी डिवाइस से बाहर नहीं जाती।

कन्वर्टर क्या-क्या फिर से लिखता है

JSX दिखने में HTML जैसा लगता है, लेकिन यह JavaScript के नियमों का पालन करता है, और यही छोटे-छोटे अंतर वहीं हैं जहाँ हाथ से कॉपी किया गया मार्कअप टूटता है। यह टूल आम समस्याओं को अपने-आप संभाल लेता है:

  • रिज़र्व्ड-वर्ड एट्रिब्यूटclass, className बन जाता है और for, htmlFor बन जाता है, क्योंकि class और for JavaScript में रिज़र्व्ड शब्द हैं।
  • camelCase एट्रिब्यूट नामtabindex, maxlength, colspan, और cellpadding जैसे मल्टी-वर्ड एट्रिब्यूट का नाम बदलकर tabIndex, maxLength, colSpan, और cellPadding कर दिया जाता है।
  • इनलाइन स्टाइलstyle="margin-top: 10px; font-size: 14px" जैसी स्ट्रिंग को {{ marginTop: '10px', fontSize: '14px' }} जैसे JSX ऑब्जेक्ट में बदल दिया जाता है।
  • सेल्फ-क्लोज़िंग टैग — void एलिमेंट (img, br, hr, input, meta) को ट्रेलिंग स्लैश के साथ क्लोज़ किया जाता है ताकि JSX उन्हें पार्स कर सके।
  • SVG एट्रिब्यूटfill-rule और stroke-width जैसे हाइफ़नेटेड SVG प्रॉपर्टीज़ को camelCase करके fillRule और strokeWidth बना दिया जाता है।
  • इवेंट हैंडलर — इनलाइन onclick को onClick में फिर से लिखा जाता है, साथ में वैकल्पिक हैंडलर स्टब टेम्पलेट भी दिए जाते हैं ताकि मार्कअप कंपाइल हो सके।
  • बूलियन एट्रिब्यूट, कमेंट्स, और data/aria — बूलियन वैल्यू को नॉर्मलाइज़ किया जाता है, HTML कमेंट को हटाया या रखा जा सकता है, और data-* तथा aria-* एट्रिब्यूट को जैसा है वैसा ही रखा जाता है।

आउटपुट विकल्प और इस्तेमाल का तरीका

अपना HTML बाईं ओर पेस्ट करें और JSX तुरंत दाईं ओर दिखाई देगा; आप ऑटो-कन्वर्ट चालू कर सकते हैं या Ctrl+Enter दबा सकते हैं। सामान्य कन्वर्ज़न के अलावा, आप आउटपुट का रूप भी खुद तय कर सकते हैं:

  • JSX या TSX — साधारण .jsx फ़ाइल या TypeScript का .tsx वर्ज़न जनरेट करें।
  • कंपोनेंट रैपर — मार्कअप को खाली छोड़ें, या इसे नामित फ़ंक्शन कंपोनेंट या ऐरो फ़ंक्शन के रूप में रैप करें, साथ में वैकल्पिक React इंपोर्ट स्टेटमेंट भी अपने-आप जनरेट हो जाते हैं।
  • फ़्रैगमेंट रैपिंग — कई टॉप-लेवल एलिमेंट को Fragment में रैप करें ताकि वे एक ही नोड के रूप में रिटर्न हों।
  • प्रॉप एक्सट्रैक्शन और फ़ॉर्मेटिंग — बार-बार आने वाली वैल्यू को प्रॉप्स के रूप में निकालें, और इंडेंटेशन साइज़ तथा सिंगल- या डबल-कोट स्टाइल सेट करें।

रिज़ल्ट पैनल में आउटपुट व्यू, आपके इनपुट के मुकाबले लाइन-बाय-लाइन डिफ़, और साइड-बाय-साइड तुलना दी जाती है, साथ ही एक छोटा स्टैट्स सारांश जो बदले गए एट्रिब्यूट, स्टाइल, इवेंट, SVG एट्रिब्यूट, सेल्फ-क्लोज़्ड टैग, और कमेंट्स की गिनती दिखाता है। JSX को क्लिपबोर्ड में कॉपी करें या इसे फ़ाइल के रूप में डाउनलोड करें। एक बल्क टैब एक ही बार में कई स्निपेट कन्वर्ट कर देता है।

HTML को JSX में क्यों बदलें

JSX का वैध JavaScript होना ज़रूरी है, इसलिए कच्चा HTML किसी React फ़ाइल में पेस्ट करने पर ऐप रेंडर होने से पहले ही एरर आ जाती हैं — एक न पहचाना जाने वाला class एट्रिब्यूट या बिना क्लोज़ किया गया <img> टैग बिल्ड को रोक देता है। पहले कन्वर्ज़न कर लेने से यह रुकावट खत्म हो जाती है, चाहे आप किसी CMS से मार्केटिंग पेज को React ऐप में ला रहे हों, किसी थर्ड-पार्टी HTML ईमेल या विजेट को दोबारा इस्तेमाल कर रहे हों, या कोई SVG आइकॉन पेस्ट कर रहे हों जिसे React तब तक अस्वीकार करता है जब तक उसके एट्रिब्यूट camelCase न हो जाएँ।

यह कन्वर्टर एक भरोसेमंद सिंटैक्स ट्रांसलेटर है, कोड जनरेटर नहीं — यह कोई स्टेट, प्रॉप्स, या बिज़नेस लॉजिक अपने-आप नहीं बनाता, और जटिल मार्कअप को फिर भी एक बार जाँच लेना उचित है। लेकिन यह HTML को React के लिए तैयार करने के लगभग सभी यांत्रिक और गलती-प्रवण काम को खत्म कर देता है। ऊपर अपना मार्कअप पेस्ट करें और टाइप करते ही JSX को अपडेट होते देखें।