At a glance
- Can Webflow import HTML?
- No. There is no HTML import in the Designer. It's an open request on the Webflow Wishlist.
- Fastest editable route
- A converter that writes Webflow's clipboard format. You paste with ⌘V (Ctrl+V).
- What converts
- Elements, classes, combo classes, media queries → breakpoints, :hover/:focus/:active → states, forms, Tailwind, simple GSAP → Interactions.
- What stays code
- Inline SVG, ::before/::after, keyframe animations and scripts that can't be mapped. They go into an Embed.
- Works on
- Every Webflow plan, including the free Starter plan.
- Time per section
- About 10 seconds to convert. Expect a few minutes of checks (fonts, images).
Why you can't just paste HTML into Webflow
Webflow doesn't store pages as HTML. Each element is a node in Webflow's own data model, and each style lives on a class with separate values per breakpoint (desktop, tablet, mobile landscape, mobile portrait) and per state (hover, focus, pressed). HTML and CSS describe the same design in a different shape: selectors that match many elements, the cascade, and media queries that can go mobile-first or desktop-first.
So the Designer has nowhere to put a raw stylesheet. The Code Embed element accepts code, but Webflow treats it as a closed box: you can't select what's inside, style it in the Style panel, or let a client edit its text. It also has a character limit, which a full page of CSS can exceed.
Converting means working out the final style of every element (what the browser would compute), then writing it the way Webflow stores it: one class per look, combo classes for variations, values per breakpoint and state. That is what FlowPaste does. FlowPaste reads the page the way your browser shows it: the elements, every CSS rule that applies to them, the media queries and the hover states. It then writes Webflow's own clipboard format, so ⌘V (Ctrl+V) in the Designer creates real elements with named classes.
“Regardless of where your site is hosted today, migrating to Webflow will be a rebuild, not a transfer.”
Webflow Help Center
Ways to do it, compared
| Method | Editable in Webflow | Responsive | Time for one page | Best for |
|---|---|---|---|---|
| Code Embed element | No. The code stays code | Only if the code is | Minutes | Widgets and scripts you won't edit |
| Rebuild by hand in the Designer | Yes | Yes, if you build it | 2–6 hours | Small pages, or a full redesign |
| Hire a freelancer to rebuild | Yes | Yes | Days | Whole sites when you have budget (from about $80 a page) |
| Convert with FlowPaste | Yes: native elements and classes | Yes: media queries become breakpoints | Under a minute per section | Code from AI tools, templates, hand-written HTML |
Times for the rebuild are for a typical landing-page section set (hero, features, pricing, footer) by an experienced Webflow designer. Freelancer prices are what Fiverr and Contra listings charge for rebuilding AI-made sites in Webflow (October 2026).
How to convert HTML to Webflow with FlowPaste
Time: about 5 minutes for a page. You need: your HTML and CSS, the free FlowPaste Chrome extension, a Webflow site open in the Designer.
Get the code into one file
Put the CSS in a <style> tag above the HTML and any JavaScript in a <script> tag below it. A full page works; one section at a time gives cleaner results and is easier to check.
TipIf your CSS sits in separate files, Pro has separate CSS and JS fields. Or drop the whole project folder as a .zip.
Open the FlowPaste panel in the Designer
Open your site in the Webflow Designer. Click the FlowPaste button at the bottom right (or press ⌥⇧F / Alt+Shift+F).
Paste the code and check the preview
Paste into the Convert tab, open a file, or drop it. The preview shows desktop, tablet and mobile widths. React, JSX and pages that build themselves with JavaScript are rendered first, so you see the real design.
Choose options
Leave "Match browser defaults" on so headings, margins and buttons look as they do in the browser (Webflow's base styles differ). Turn on Client-First names if your project uses that system.
Convert & copy
Click Convert & copy (⌘ Enter / Ctrl Enter). The result card lists elements, classes, Interactions and notes that need your attention, such as fonts to add.
Paste on the canvas
Click the element you want to paste into (or the Body) and press ⌘V (Ctrl+V). The section appears as native elements; its classes appear in the Style panel.
Check fonts, images and breakpoints
Add any fonts the notes list, connect your site for image uploads, and click through the breakpoints. Then publish to your staging domain to check animations.
What comes across
| In your HTML / CSS | In Webflow | Notes |
|---|---|---|
| <section>, <div>, <header>, <footer>, <nav> | Section, Div Block (tag kept) | Semantic tags are kept in the element settings |
| <h1>–<h6>, <p>, <a>, <img>, <ul>/<ol> | Heading, Paragraph, Link / Link Block / Button, Image, List | A link that holds other elements becomes a Link Block |
| <form>, <input>, <textarea>, <label> | Form Block with native fields | Selects, checkboxes and radios stay as code for now |
| .card, .card.is-featured | Class "card" + combo class "is-featured" | Identical styles share one class |
| @media (max-width: 991px / 767px / 479px) | Tablet / mobile landscape / mobile portrait | Other widths snap to the nearest breakpoint, with a note |
| @media (min-width: …) (mobile-first) | Desktop-first values Webflow understands | Calculated per breakpoint |
| :hover, :focus, :active | Hover, Focus, Pressed states | |
| CSS variables, clamp(), gradients | Resolved values (clamp and gradients kept) | Webflow stores values, not var() references |
| Tailwind classes or the Tailwind CDN | Compiled, then named from structure (hero-heading) | |
| gsap.from/to, ScrollTrigger | Webflow Interactions | Unsupported patterns stay as custom code |
| Inline <svg>, ::before/::after, @keyframes | Embed with scoped CSS | Editing Embeds needs a paid site plan |
A small example
A card with a hover state and one mobile rule. This is what you'd see in Webflow after pasting.
<style>
.card { padding: 32px; border-radius: 16px; background: #fff; }
.card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.card.is-featured { background: #0f172a; color: #fff; }
@media (max-width: 767px) { .card { padding: 20px; } }
</style>
<div class="card is-featured">
<h3 class="card-title">Pro</h3>
<p class="card-price">$29</p>
</div>Div Block class: card + combo is-featured Desktop padding 32px · radius 16px · bg white Hover box-shadow 0 8px 24px Combo bg #0f172a · color white Mobile (767) padding 20px Heading H3 class: card-title Paragraph class: card-price
Problems and fixes
Fonts look different after pasting
Webflow drops a font-family the site doesn't have. Add the font in Site settings → Fonts. If the code loads the font itself (@font-face or a Google Fonts @import), FlowPaste brings that along, so text still renders in the right font.
Images are broken on the published site
Webflow only publishes images from its own Assets. Connect your site in FlowPaste → Account → Webflow images so pastes upload their images automatically.
Something is an Embed instead of an element
Inline SVG, pseudo-elements and unmappable scripts stay as code. Replace an SVG with an Image if you want to edit it in the Designer.
A breakpoint looks off
Media queries at widths Webflow doesn't have (for example 900px) snap to the nearest breakpoint. Adjust that value in the Designer; the notes say which ones moved.
The paste is refused or nothing happens
Click an element on the canvas first, then paste. If the Designer stops accepting pastes after many in a row, reload the Designer tab.
After you paste
- Add the fonts in Webflow → Site settings → Fonts. FlowPaste lists them in the notes after each conversion. Until then, text that brought its own font file still shows correctly, but you can't pick the font in the Typography panel.
- Images: Webflow publishes images only from its own Assets. Connect your site once in FlowPaste → Account → Webflow images, and every paste uploads its images for you. Without it, images show in the Designer but break on the published site.
- Click through tablet, mobile landscape and mobile portrait in the Designer. Media queries are already mapped to those breakpoints; check anything the notes marked as "snapped".
- Rename or merge classes where you want your own system. Identical styles already share one class; variations are combo classes.
- Look for Embed elements (inline SVG icons, pseudo-elements, leftover scripts). They show on every plan; editing their code needs a paid site plan.
- Publish to your webflow.io staging domain and check animations and scripts there. Scroll-triggered Interactions don't always play inside Designer Preview.
Questions
Can I import an HTML file into Webflow?
Not directly. Webflow has no HTML import. You can paste HTML into a Code Embed (not editable in the Designer), rebuild it by hand, or use a converter such as FlowPaste that pastes it as native, editable elements.
Will the converted section be editable in the Style panel?
Yes. Every element gets a named class with its values per breakpoint and state, the same as if you had built it by hand.
Do I need a paid Webflow plan?
No. Pasting works on every plan, including Starter. Only editing the code inside an Embed element needs a paid site plan.
Can I convert a whole HTML website at once?
Convert one page or section at a time. Each paste goes into the page you have open. For a multi-file site, zip the folder and drop the .zip into FlowPaste.
What about JavaScript?
GSAP animations that FlowPaste can map become Webflow Interactions. Other scripts are kept as custom code inside an Embed, scoped to the pasted section so they can't affect the rest of the site.
Is this the same as Webflow's Figma plugin?
No. The Figma to Webflow plugin starts from Figma frames. FlowPaste starts from code: HTML, CSS, Tailwind, React or a live page.
Sources
- Webflow Help: Migrate your site to Webflow overview — "migrating to Webflow will be a rebuild, not a transfer"
- Webflow Wishlist: Import an existing site, or existing code, into the Webflow Designer
- Webflow Community: importing HTML and CSS hits the Embed character limit