Home/ Blog/ Email to Figma
Guides

How to import an HTML email into Figma

Email design lives in a strange place. It's built in HTML, yet it's rarely designed in a design tool — the layout gets assembled in a sender, previewed in a dozen inboxes, and shipped. So when you want to rework a template, present a campaign to a client, or document your email system in Figma, you first have to get the email out of the sender and onto the canvas.

The short version

An HTML email is just HTML, so you can import it into Figma as editable layers — paste the email's HTML, or save it as an .html file and drop it in. Table-based email markup imports cleanly; watch for remote images and the fact that email fonts often fall back.

Why bring an email into Figma

The markup that renders an email and the canvas you design on are usually two separate worlds. Closing the gap is useful in a handful of recurring situations:

Get the email's HTML first

Whatever the source — Mailchimp, Klaviyo, or a hand-coded template — the path is the same: you need the email as HTML, then you hand that HTML to Figma.

  1. In your email tool, open the campaign and find the HTML. Most senders offer a "view in browser" link, or an export / download HTML option; a hand-coded template you already have as a file.
  2. Save that page as an .html file, or copy the HTML to your clipboard.
  3. In Figma, run the importer and either drop the .html file or paste the HTML. The email comes back as editable layers.

The mechanics of each route are covered in more depth elsewhere: turning HTML and CSS into editable layers walks through what gets captured, and importing a website into Figma lays out the paste, file, and URL options side by side.

What imports cleanly

Here's the quiet advantage of email markup: it's built for compatibility, and that same conservatism makes it import faithfully. Because emails have to render across Outlook, Gmail, Apple Mail and the rest, they're assembled from nested tables with styles inlined on each element — no external stylesheets, no clever modern layout. That's exactly the kind of explicit, self-contained markup an importer reads well.

So the structure, text, buttons and image slots come across measured from the real render — the importer reads the values the browser actually computed, rather than guessing from the source. Section widths, padding, font sizes and colours land where the email put them, because the layout was already resolved into pixels before anything was read.

The same table markup that makes email painful to hand-edit is what makes it import predictably.

Drop an email's HTML into Figma and get editable layers you can redesign.
Add to Figma — free

What to watch for with emails

Email has a few quirks that don't show up with ordinary web pages. None are blockers, but it helps to recognise them:

From import to redesign

Once the email is on the canvas as layers, it stops being a document and becomes a design again. Retype the copy, recolour the buttons, swap the hero, restructure the sections — then hand that structure back to your email build. The import is the bridge from a shipped template to a working file.

For the wider craft of reworking something existing — pulling it in, then reshaping it section by section — see redesigning a website in Figma; the same approach applies to an email template.

The bottom line

An HTML email is just HTML, which means it can come into Figma as real, editable layers rather than a flat picture. The table-based, inlined markup that makes email tedious to hand-edit is precisely what makes it import cleanly — so long as you mind the remote images and the font fallback. Bring the email onto the canvas, and you can design it again.

A
Alexey Sukhariev
Maker of Vellum — an HTML, CSS & URL to Figma plugin.

Measure twice. Import once.

Add Vellum to Figma