Rendered HTML Viewer
Paste any HTML (an email template, a scraped page fragment, a snippet from a documentation example) and click Render to see it drawn in a sandboxed iframe. The frame runs with the browser’s strictest sandbox, so scripts do not execute, forms cannot submit and the markup cannot navigate away or touch the page around it. It is the fastest way to answer “what does this markup actually look like” without setting up a staging server.
How to preview HTML
-
1
Paste your HTML
Drop a full document or a loose fragment into the source box. Whatever you paste is exactly what gets rendered, as written.
-
2
Click Render
The viewer writes your HTML into a sandboxed iframe and shows the result right on the page.
-
3
Read the preview
The frame paints your markup the way a browser would: headings, tables, lists, inline styles and SVG all show up.
-
4
Adjust and render again
Tweak the source and render as many times as you like to compare how each version looks.
Why the frame is sandboxed
Pasted HTML can contain anything: <script> tags, an <img onerror="..."> trick, a form that posts somewhere, or an <iframe> that loads another site. To keep any of that from touching the page, the preview is written into an <iframe sandbox> with an empty sandbox attribute, the most restrictive setting there is. In that mode the browser blocks script execution, form submission, pop-ups, top-level navigation and same-origin access all at once. You see the visual result without giving the markup any power.
Because scripts never run, anything that depends on JavaScript (a web component that hydrates on load, a chart that draws itself, a framework that mounts into an empty <div>) shows only its static markup, not its scripted result. That is a deliberate trade: a safe, predictable preview over an interactive one.
What the viewer renders well
| Content type | Notes |
|---|---|
| Email HTML | Table-based layouts and inline styles render as most clients draw them |
| Blog post body | Headings, lists, blockquotes and images all paint without any scripting |
| Scraped fragment | Shows whether the markup you grabbed is complete enough to stand on its own |
| Inline SVG | Draws at any size, which makes it handy for checking an icon |
| Static component markup | The markup renders; the JavaScript behaviour does not |
Good uses for this tool
- Email template QA. Paste the export from your email builder and see the layout without sending yourself a test message.
- Scraped-data sanity checks. You grabbed some
innerHTMLfrom a page: does it render back into something sensible? If not, the fragment is probably incomplete. - Markdown-to-HTML review. Run text through a converter (the HTML to Markdown tool round-trips it) and preview the resulting HTML here.
- Learning and teaching. Paste an example from documentation and watch exactly how a browser lays it out.
Things to keep in mind
- Relative URLs. Images and stylesheets referenced by a relative path like
/assets/logo.pnghave no server to resolve against, so they will not load. Use an absolutehttps://URL or adata:URI if you need an image to appear. - External resources. Fonts, stylesheets and images loaded from other sites depend on those sites allowing it; some send headers that block loading inside a frame.
- No scripting. If your markup only comes to life with JavaScript, the preview shows its pre-script state. That is expected, not a bug.
Frequently Asked Questions
Yes. The preview runs in a fully sandboxed iframe with no allowances, so scripts cannot execute and the markup cannot reach the page around it. Even hostile HTML can only draw itself inside the frame.
No. The sandbox blocks script execution entirely, so <script> tags and inline event handlers are ignored. You see the static markup, which is exactly what makes the preview safe.
A relative path has nothing to resolve against, and some hosts send headers that stop their images loading inside a frame. Use an absolute https:// URL, or embed the image as a data: URI.
Yes. Paste the whole document (doctype, <head>, <body> and all) and it renders as written. A loose fragment works too; the browser fills in the rest.
This tool renders HTML you paste as text; it never fetches a URL. You control exactly what is rendered, which is handy for email templates, scraped fragments and quick debugging.
Related Tools
ASCII Table Reference
Full ASCII table from 0 to 127 with decimal, hex, octal, binary, standard names and HTML numeric-reference notation, including NUL, LF and DEL.
Color Palette Generator
Generate monochromatic, analogous, complementary, triadic or tetradic color palettes from a base HEX color and export copy-ready CSS variables.
FPS Counter
Measure browser FPS with requestAnimationFrame, smoothing, min/max frame rate, warnings and an optional graph. Runs locally with no upload or API.
HTML Character Reference
Searchable list of HTML entities, their named and numeric codes, and a one-click copy for special characters and symbols.
HEX Color Picker
Pick or enter a HEX colour and get RGB, HSL, approximate CMYK, relative luminance and contrast ratios against white and black.
Keyboard Shortcut Reference
Search documented default keyboard shortcuts for VS Code, Chrome and Bash with GNU Readline on macOS, Windows and Linux.
Tool available in other languages
- Visualizador de HTML Renderizado [PT]
- Visare för renderad HTML [SV]
- Trình xem HTML đã kết xuất [VI]
- Visor de HTML Renderizado [ES]
- عارض HTML المُصيَّر [AR]
- レンダリング HTML ビューア [JA]
- Gerendertes-HTML-Viewer [DE]
- Visionneuse de HTML rendu [FR]
- Penampil HTML Terender [ID]
- ตัวดูผลเรนเดอร์ HTML [TH]
- 렌더링된 HTML 뷰어 [KO]
- Weergegeven-HTML-viewer [NL]
- Przeglądarka wyrenderowanego HTML [PL]
- Visualizzatore di HTML Renderizzato [IT]
- Просмотр отрендеренного HTML [RU]
- İşlenmiş HTML Görüntüleyici [TR]
- HTML 渲染查看器 [ZH]