How to Design an Email in Figma (Step by Step)
The ZHS Figma workflow for designing emails that look premium and build fast. From modular sections to handoff, the exact process behind our client creative.
Why We Design In Figma
Figma is where the craft happens. We still build the real thing here, not in an ESP editor and not in an AI tool.
The reason is speed with control: modular sections you reuse, one file you hand off clean, and a design that reads the same on every phone.
We have made our clients over $50 million with these exact image-based emails. So this is not theory. It is the workflow behind every send.
People ask why not Canva. Figma wins on customizability, slicing, collaboration, and scalability. If you are a beginner, Canva is a fine place to start. But the moment you need to slice an email cleanly or match an exact height, Canva gets painful fast. Figma does not.
Prefer video? Watch the walkthrough.
The Workflow, Start To Finish
Here is the exact order we move through. Lock the early steps and the later ones get fast.
Set Up The Frame And Grid
Hit F on your keyboard to create a frame, then set it 600px wide. That is the standard email width, and it renders cleanly across inbox clients. Single column, top to bottom. You are designing for a thumb, not a monitor, so nothing goes side by side.
Before you touch a section, load your brand into Figma styles: primary and secondary colors, heading and body fonts, and your spacing scale. Now every section you build pulls from the same source. Change a color once and it updates everywhere.
Here is a trick that saves real time. Hit O to bring your brand colors in as little circle swatches parked above your canvas. Keep your guideline images up there too. Now you can grab the exact brand color on any layer without hunting, and the whole email stays cohesive. When you want to color-match one element to another, hit I and click the color you want. That one shortcut does most of the visual consistency work for you.
Learn the shortcuts and this whole flow gets fast: F for a frame, T for text, R for a rectangle, Shift+A to wrap a selection in auto layout, I to color-match, S to slice.
This is the setup that lets you ship five to eight emails a day without the brand drifting.
Bake padding into your exported sections instead of relying on spacer blocks. Spacers break in dark mode and across clients. Space built into the image holds up everywhere.
Build Modular, Reusable Sections
The whole point of Figma here is that you never start from zero.
Build a small library of components once: a few hero headers, a couple of reusable body blocks, a product showcase row, and a clean footer. Turn them into Figma components so every instance stays linked.
From that library you assemble master templates. A launch template, a sale template, a plain-style template. Then each send is just swapping the product, the photo, and the copy. That is how a campaign that used to take five days now goes out in under two hours.
- Hero header variants
- Body and benefit blocks
- Product showcase rows
- Footer with links and legal
- Product photography
- Headline and subhead
- The single CTA
- Offer and dates
Hierarchy And One Clear CTA
Every email answers one question: what is the single action you want?
Design the whole layout to point there. Lead with the outcome in the hero, not a spec sheet. Give the primary action one button, high on the email, styled to stand out. Repeat that same button lower down if you want, but do not add a second competing action.
Put the button in the FIRST fold. Always. Logo, headline, subheader, button, in that order, before anyone has to scroll. That single rule protects conversions on every send. On a recent supplement send it was "How's your pup loving K9 Power" with a "Get up to $20 off" button sitting right at the top.
Build the button as its own frame around live text: 60px tall, about 300px wide, so it sits at roughly half the email width. Select the text and the frame, hit Shift+A to wrap it in auto layout, and it stays perfectly centered every time no matter how the copy changes.
Single column does the hierarchy work for you. The reader takes it in order: hero, headline, proof, button. You control the sequence instead of hoping the eye lands right. When everything looks important, nothing gets the click.
Use real product imagery, not stock or filler. The photo does the selling on a launch or a sale, so it has to be your actual product, shot on brand. AI tools are useful for a hero backdrop or a quick variation, but the real email still gets built here with real assets.
Slice And Hand Off To Klaviyo
Figma is the design. Klaviyo is the build. Keep those two steps clean and the handoff takes minutes.
Here is how we actually do it. The whole email is built as images. Hit S in Figma, lock the layers, then slice the email into sections, top portion, middle blocks, footer. Compress every slice through imagecompressor.com or similar, then drop each one into the drag-and-drop editor as an image block, stacked in order. Add your links and your alt text as you go.
So the entire email is clickable, not one specific button element. It is image, image, image, image, all the way down, each one wired to the right link.
There is one exception, and it matters. Keep the footer as LIVE HTML text, not an image. That mix of images up top and real text at the bottom is a deliverability trick. Inbox providers want to see actual text in the email, and the footer is the natural place to give it to them.
Then QA before you send. Open it on your own phone. If you have to pinch to read the copy or hunt for the button, the design failed, so you fix it first. Check it in dark mode too, since a third of readers see that version.
| Stage | Tool | What you own |
|---|---|---|
| Design | Figma | 600px frame, grid, modular sections, hierarchy |
| Slice | Figma (S) | Sections cut at 2x, compressed for size |
| Build | Klaviyo | Stacked image blocks, links, alt text, live-text footer |
| QA | Real device | Mobile read, dark mode, link check |
We have done $50 million with these exact image-based emails, so if yours land in spam, the design is not why. It is deliverability: sender reputation, list quality, and authentication. Keep your footer as live text, warm up your domain, and clean your list regularly. Do that and you land in the inbox.
Common Mistakes
- Designing at monitor width. Use a 600px single-column frame so the layout holds on a phone instead of shrinking into slivers.
- Drawing every email from scratch. Build a component library once, then assemble master templates and swap content per send.
- Skipping brand styles in Figma. Load colors, fonts, and spacing as styles so nothing drifts across five to eight sends a day.
- Stacking competing CTAs. Pick one action, give it one button high on the email, and repeat that same button if needed.
- Relying on spacer blocks. Bake padding into the exported images so spacing survives dark mode and every client.
- Exporting at 1x. Slice sections at 2x or your email looks soft on retina screens.
- Making a separate desktop and mobile version. You do not need one. Design mobile first at 600px and Klaviyo scales it cleanly for both. One rule, one design.
- Making the whole email an image. Keep the footer as live HTML text. That mix of images and real text is what keeps you out of spam.
Get Expert Help
Our team runs this Figma workflow every day, shipping five to eight on-brand emails for DTC brands that read clean on mobile and hold up in dark mode. Want a design system built for speed and consistency instead of one-off guesswork? We can help.
Need help implementing this?
We build and manage complete email & SMS programs for DTC brands. Get a custom plan for your brand.
Apply Now