Input (HTML)
<div class="card">
<label for="email">Email</label>
<input id="email">
</div>HTML → JSX converts plain HTML markup into React-ready JSX. It renames HTML attributes to their JSX equivalents — class becomes className, for becomes htmlFor, and event/style attributes are adjusted — closes void elements like <img> and <br>, and camelCases attributes such as tabindex. Paste a chunk of HTML and get a component-ready fragment you can drop straight into a React render.
HTML (HyperText Markup Language) is the browser's native markup, where attributes like class and for collide with JavaScript reserved words. JSX is React's XML-like syntax extension that compiles to JavaScript, so it requires those reserved names renamed, all tags closed, and inline styles written as objects. This converter applies those rules automatically so legacy HTML or design snippets become valid JSX.
The main file is the entry point for each run.
Use the Input panel to pipe standard input to your program when it needs data.
Run sends your code to a fresh hosted runtime and streams the result into the output panel.
Your draft stays in this browser, and Share creates a separate snapshot link.
<div class="card">
<label for="email">Email</label>
<input id="email">
</div><div className="card">
<label htmlFor="email">Email</label>
<input id="email" />
</div><p style="color: red; font-size: 14px">Hi</p><p style={{ color: 'red', fontSize: '14px' }}>Hi</p><img src="logo.png" alt="Logo">
<br>
<hr><img src="logo.png" alt="Logo" />
<br />
<hr /><input type="text" tabindex="1" maxlength="20" readonly><input type="text" tabIndex="1" maxLength="20" readOnly /><!-- header -->
<header class="top">
<h1>Title</h1>
</header>{/* header */}
<header className="top">
<h1>Title</h1>
</header><svg viewBox="0 0 10 10">
<rect stroke-width="2" fill-opacity="0.5"/>
</svg><svg viewBox="0 0 10 10">
<rect strokeWidth="2" fillOpacity="0.5" />
</svg><label class="row">
<input type="checkbox" checked>
Subscribe
</label><label className="row">
<input type="checkbox" defaultChecked />
Subscribe
</label>The editor uses Monaco, the engine behind VS Code, with language-aware editing tools and familiar keyboard controls.
Paste raw HTML; get a React-ready JSX fragment back.
Drop the result straight into a component's render output.
class becomes className and for becomes htmlFor.
Attributes like tabindex are camelCased (tabIndex).
Void elements such as <img> and <br> are self-closed.
Markup is rewritten in your browser; nothing is sent to a server.
Safe for proprietary design snippets.
Inline style strings are adjusted toward JSX's object form.
Handy for porting legacy HTML or design exports into React.
Output
JSX output