Email template system case study

Responsive banking email templates shown across desktop and mobile layouts
View prototype

Wells Fargo Email Template System

One modular system for every customer email

Designing a modular, responsive email system that makes every campaign consistent, accessible and faster to build.


At a glance

Role

UX/UI Designer

Timeline

2024 to 2025

Scope

Research · Design • HTML/CSS

Platform

Email for desktop and mobile clients

Responsibilities

•User research • Wireframing
• Usability testing
• HTML/CSS email development
• Figma component library

Tools

Figma • Adobe Package · HTML • CSS


Overview

A shared system for every customer email

Wells Fargo emails customers across onboarding, deposits, lending and cards.

I worked on turning a scattered set of one-off emails into a single, modular template system researching how customers read email, wireframing the structure, testing it with users and coding the final templates in HTML/CSS.


The challenge

Every email was built from scratch

Campaign emails were designed and coded one at a time. Over the years that produced a patchwork of layouts, type and button styles for every product line, along with a slow, error-prone production process.

01

Inconsistent

Layouts, colours, type and CTAs varied from team to team, weakening the brand.

02

Not mobile-first

Many emails were fixed-width and hard to read or tap on a phone.

03

Slow to produce

Without shared building blocks, every campaign required new design, code and QA.

04

Accessibility gaps

Small text, low-contrast links and tight tap targets appeared regularly.

Goal

One modular, responsive and accessible system that any team can assemble emails from quickly and on-brand.

Process

From research to production code

  1. Research & auditCollected emails across product lines, mapped recurring content and interviewed stakeholders.
  2. WireframingDefined a modular page structure and module types before any visual design.
  3. Component systemBuilt tokens, type styles and 30+ modules with desktop & mobile variants in Figma.
  4. TemplatesAssembled real campaigns from the modules to stress-test the system.
  5. Usability testingTested templates with customers on desktop and mobile and iterated.
  6. HTML/CSS buildCoded responsive, table-based templates and QA’d them across email clients.
User research

Understanding how customers read email

Methods

  • Email inventory & content audit across onboarding, deposits, lending and cards
  • Stakeholder interviews with marketing, brand and compliance
  • Review of customer feedback and engagement patterns
  • Heuristic review of existing emails on desktop and mobile

Key insights

Customers scan, they don’t read
→ Strong hierarchy: one headline, short copy, one primary action.

Phones come first
→ Single-column stacking, full-width buttons and 16px side gutters.

Content repeats
→ Around a dozen recurring module types cover almost every campaign.

Wireframing

A modular structure before any pixels

I broke every audited email down into the same stack of interchangeable modules. Wireframes defined the order, hierarchy and how each module collapses from a 600px desktop layout to a single 375px column.

Wireframes of the same email at 600px desktop and 375px mobile: header and hero, content rows, a three-column row that stacks on mobile, a primary button and the footer

Header & hero

Brand bar, image, headline, primary CTA

Content

Columns, lists, offers, stats, media

Actions

Primary + secondary CTAs, contact options

Legal & footer

Footnotes, links, required disclosures

Foundations

Tokens, type and spacing

Every module is built on the same variables and text styles, so a single change updates all 30+ components and every template.

Colour
brand/primary#C7081A
brand/accent#FFD663
bg/surface#FFF7E3
text/primary#141414
text/secondary#666666
border/default#DBD6C9
bg/canvas#FFFFFF
Type: Helvetica Neue
  • DisplayLight / Regular40 · 34 · 30 · 28 · 26
  • HeadingRegular / Bold21 · 20 · 19 · 18
  • BodyRegular / Bold / Italic16 · 15 · 14 · 13
  • LabelMedium / Bold14 · 13 · 12 · 11
  • Small & legalRegular / Medium12 · 11 · 10
Spacing
1216243248
Radius
048
61Text styles
7Colour tokens
2Light & Dark modes
BenefitOne change updates every template
Component library

30+ modules, one kit of parts

Heroes, column layouts, banners, CTAs, offers, stats, content blocks and footers are all auto-layout components with desktop and mobile variants.

A selection of modules from the library: welcome hero, bonus offer, three-column content, savings rates, stats, CTA buttons, a tip banner and a video block
  • 5HeroesBrand bar, image, headline and primary action
  • 4Column layoutsOne to four columns that stack on phones
  • 10Banners & CTAsPrimary and outline buttons, tip banners, offer codes
  • 5Content & mediaText blocks, lists, image and video rows
  • 6Offers & statsRates, bonuses and large-number callouts
  • 8Headers & footersPre-headers, legal footnotes, links and disclosures
Responsive by design

Every module ships with a Breakpoint variant

01

Stacks, never squeezes

Multi-column rows collapse into a single column on phones.

02

Thumb-friendly actions

Buttons go full-width on mobile with 44px+ tap targets.

03

Consistent gutters

32 to 40px desktop padding, 16px on mobile.

04

Swap in one click

Breakpoint = Desktop | Mobile on every component instance.

Templates

Real campaigns, assembled from modules

Each template is built entirely from library modules. Scroll inside a frame to read the full email.

Mobile first: the same templates at 375px

Welcome email, mobile
Welcome
Deposits made easy email, mobile
Deposits
Overdraft tools email, mobile
Overdraft
Business loan offer email, mobile
Business loan
Usability testing

Tested with customers, refined into principles

I ran moderated usability sessions on desktop and mobile prototypes, asking participants to find the main offer, take the primary action and explain the terms. What we learned shaped the system’s rules:

01

One clear action

A single primary CTA per email; secondary actions use outline buttons so they never compete.

02

Readable on the go

Body copy at 14 to 16px with 140%+ line height; full-width buttons and single-column stacking on phones.

03

Terms people can find

Footnotes and disclosures sit below the actions, with bold lead-ins and consistent numbering.

Development

From Figma to production HTML

How it’s built

  • Table-based, 600px fluid layouts that hold up in every major email client
  • Inline CSS, with media queries to stack columns and widen buttons on small screens
  • Bulletproof HTML buttons and web-safe font stacks: Helvetica Neue → Helvetica → Arial
  • Alt text, semantic heading order and contrast checks for accessibility
  • Cross-client QA on desktop, webmail and mobile before hand-off

Design ↔ code

Every Figma module maps to one table block in code, so the component names designers use are the same ones developers assemble.

<!-- Two-column row that stacks on mobile -->
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td class="stack" width="50%" valign="top">
      <h2 style="margin:0;font:600 20px/1.25
          'Helvetica Neue',Helvetica,Arial,sans-serif;
          color:#C7081A;">1 application, 2 possibilities</h2>
    </td>
  </tr>
</table>

<!-- Bulletproof button -->
<a href="#" class="btn" style="display:inline-block;
   padding:12px 24px;border-radius:5px;
   background:#C7081A;color:#FFFFFF;
   font:500 14px/1 'Helvetica Neue',Arial,sans-serif;
   text-decoration:none;">Apply Now</a>

@media (max-width:480px){
  .stack{display:block!important;width:100%!important;}
  .btn{display:block!important;text-align:center;}
}
Outcomes

What the system changed

Consistent brand experience

Every campaign now shares the same structure, type, colour and CTA styles.

Faster production

New emails are assembled from ready-made modules instead of designed and coded from scratch.

Mobile-first and accessible

Responsive by default, with readable type, clear hierarchy and thumb-friendly actions.

Learnings

  • Audit before you design. The content inventory defined the module list.
  • Design and code the system together; email-client limits shape the components.
  • Test on real phones early; small-screen issues are the ones customers notice.
  • Name and document every variant so other teams can build without a designer.
What’s next Next case study: LifeSyncView →