Convert pasted HTML into JSX you can drop into React

class becomes className, for becomes htmlFor, style strings become objects — the mechanical part of porting markup, done at once.

Tools used in this guide

The job

A design handoff, a template engine snippet, or a static page being ported to a component — the markup is right, but React rejects class, bare style strings, unclosed <img> tags and HTML comments. Each error is one regex away, and there are always a dozen of them.

Paste and copy

Paste the HTML fragment and copy the converted JSX. Attribute names, inline styles and comments are rewritten; void elements are self-closed.

  • <!-- comments --> become {/* comments */} — nested comment syntax inside them is normalized so the JSX stays parseable.
  • Event attributes (onclick=) are flagged rather than silently kept — string handlers aren't JSX; wire them to real props yourself.

What it doesn't do

The output is syntactically valid JSX, not component design — it won't split your markup or pick prop types. Template placeholders ({{ var }}, {% tags %}) aren't HTML and aren't rewritten. Limit: 500,000 characters per paste.