HTML to JSX Converter for React

Paste HTML — a snippet, a template or an SVG icon — and get JSX you can drop into a React component: className, htmlFor, style objects, camelCase attributes and self-closed tags.

Runs in your browserUpdated

Your data never leaves your computer. All processing happens 100% locally in your browser.

How to use the HTML to JSX Converter

  1. Paste your HTML or SVG markup.
  2. Read the JSX as it converts — attributes, styles and comments are rewritten for React.
  3. Optionally wrap it in a named component, then copy it into your project.

What changes from HTML to JSX

  • class becomes className and for becomes htmlFor.
  • Inline styles become objects: style="font-size: 14px" → style={{ fontSize: '14px' }}.
  • Void elements are self-closed: <img> → <img />, <br> → <br />.
  • Event handlers and other attributes use camelCase: onclick → onClick, tabindex → tabIndex.
  • SVG attributes are camelCased: stroke-width → strokeWidth, xlink:href → xlinkHref.
  • HTML comments become {/* … */}, and curly braces in text are escaped.

Event handlers

Inline handlers like onclick="doThing()" are strings in HTML but functions in React, so they are converted to a comment-marked placeholder you can replace with a real function reference.

Multiple root elements

A component must return one element. When the HTML has several top-level elements, the converter wraps them in a fragment <>…</>.

Private by design

The conversion runs entirely in your browser — your code is never uploaded, so it’s safe for proprietary projects.

Tools that pair well with the HTML to JSX Converter

  • HTML Formatter — Paste minified or messy markup and get clean, consistently indented HTML — including embedded <style> and <script> blocks.
  • CSS to Tailwind Converter — Paste CSS rules or declarations and get the equivalent Tailwind utility classes for each selector — including hover: states and arbitrary values like p-[13px].
  • HTML & CSS to Webflow — Paste HTML and its CSS, click Copy to Webflow and paste into the Designer — you get real Div Blocks, Headings, Links, Images and Lists with classes, combo classes, tablet/mobile breakpoints and hover states instead of one big Code Embed.
  • JavaScript Formatter — Unminify and pretty-print JavaScript, JSON or JSX with your preferred indentation and brace style — or strip whitespace and comments with a verified minifier.

Frequently asked questions

Why does React need className instead of class?
“class” is a reserved word in JavaScript, and JSX compiles to JavaScript, so React uses the DOM property name className.
Can I convert SVG icons to React components?
Yes. Paste the SVG — attributes like stroke-width and fill-rule are camelCased. For a dedicated SVG workflow with props, use SVG to JSX.
What happens to inline onclick handlers?
They become onClick with a placeholder and a comment, because React expects a function rather than a string of code.
Can I install HTML to JSX Converter as a web app and use it offline?
Yes. HTML to JSX Converter is an installable web app (PWA) — installed from your browser, not downloaded from an app store. Click Install app at the top of this page in Chrome or Edge (Windows, macOS, Linux, ChromeOS) or on Android, use Share → Add to Home Screen on iPhone and iPad, or File → Add to Dock in Safari 17+ on a Mac. It then opens in its own window with its own icon, and because it runs entirely in your browser it keeps working offline. Firefox on desktop can’t install web apps. How installing works.

Related tools