UI
design systems

Designing a scalable pattern library for EF Tours' digital ecosystem

UI
design systems

Designing a scalable pattern library for EF Tours' digital ecosystem

I built a Figma-based pattern library from the ground up to bring consistency, scalability, and speed to EF Tours' public marketing website and customer emails.

PROBLEM

Without a shared system, designers and developers were constantly rebuilding patterns from scratch, referencing outdated designs, and creating one-off styles that either broke brand standards or couldn't be built by the development team. This created a slow, friction-heavy handoff process and recurring QA issues.

Solution

I built a comprehensive Figma pattern library layered on top of EF's central component library, with variable-based foundations for color, type, spacing, and radius—built mobile-first to reflect that roughly 70% of web and email traffic comes from mobile. By anchoring everything to variables, the entire system could flex with EF's ongoing brand refresh without requiring manual rework. The library covered both web and email, with starter templates, documentation, and a process for requesting new patterns, giving the team a sustainable system rather than a one-time deliverable.

My take on AI and the future of design systems
As generative AI tools make it faster than ever to produce design artifacts, the need for a well-governed pattern library doesn't diminish—it compounds. When anyone can spin up a design in seconds, the question shifts from can we make something? to which version is canonical? Without a source of truth, faster generation just means faster accumulation of inconsistency.

impact

Dramatically faster design production: What took a week or more now takes a day or less.

Less reinvention, more intention: Teams start from a reliable foundation and focus energy on design outcomes.

Reduced QA cycles: Standardized components raised the baseline across all touchpoints and Consistent, high-quality output.

Role

Senior Designer, UI

Team

Creative Directors, Digital Designer, Web Content Editors

My Focus
  • Auditing the current suite of web & email design materials

  • Building a scalable design system for digital

Tools

Fgima, Figma AI, Claude

AI integration

Documentation & organization

I built a Figma-based pattern library from the ground up to bring consistency, scalability, and speed to EF Tours' public marketing website and customer emails.

PROBLEM

Without a shared system, designers and developers were constantly rebuilding patterns from scratch, referencing outdated designs, and creating one-off styles that either broke brand standards or couldn't be built by the development team. This created a slow, friction-heavy handoff process and recurring QA issues.

Solution

I built a comprehensive Figma pattern library layered on top of EF's central component library, with variable-based foundations for color, type, spacing, and radius—built mobile-first to reflect that roughly 70% of web and email traffic comes from mobile. By anchoring everything to variables, the entire system could flex with EF's ongoing brand refresh without requiring manual rework. The library covered both web and email, with starter templates, documentation, and a process for requesting new patterns, giving the team a sustainable system rather than a one-time deliverable.

My take on AI and the future of design systems
As generative AI tools make it faster than ever to produce design artifacts, the need for a well-governed pattern library doesn't diminish—it compounds. When anyone can spin up a design in seconds, the question shifts from can we make something? to which version is canonical? Without a source of truth, faster generation just means faster accumulation of inconsistency.

impact

Dramatically faster design production: What took a week or more now takes a day or less.

Less reinvention, more intention: Teams start from a reliable foundation and focus energy on design outcomes.

Reduced QA cycles: Standardized components raised the baseline across all touchpoints and Consistent, high-quality output.

Role

Senior Designer, UI

Team

Creative Directors, Digital Designer, Web Content Editors

My Focus
  • Auditing the current suite of web & email design materials

  • Building a scalable design system for digital

Tools

Fgima, Figma AI, Claude

AI integration

Documentation & organization

Audit & discovery

Understanding what existed before building something new

Before designing a single component, I audited recent web projects, the live marketing website, and a broad sample of recent emails to document what patterns were actually being used in production. I also reviewed the full EF global component library to map what was available at the global level, what was already being adapted for EF Tours, and what could be adopted quickly without heavy customization.

Alongside the visual audit, I spoke with designers, the web content team, and front-end developers to understand what was slowing them down, what they kept rebuilding, and what they wished existed.

Audit & discovery

Understanding what existed before building something new

Before designing a single component, I audited recent web projects, the live marketing website, and a broad sample of recent emails to document what patterns were actually being used in production. I also reviewed the full EF global component library to map what was available at the global level, what was already being adapted for EF Tours, and what could be adopted quickly without heavy customization.

Alongside the visual audit, I spoke with designers, the web content team, and front-end developers to understand what was slowing them down, what they kept rebuilding, and what they wished existed.

What I found

What I found

01

We were under utilizing components available to us

02

Different designers were inconsistently using components

03

Every project started from scratch or an already out of date source

04

Designs were being made that couldn't be implemented on the CMS

01

We were under utilizing components available to us

02

Different designers were inconsistently using components

03

Every project started from scratch or an already out of date source

04

Designs were being made that couldn't be implemented on the CMS

"I cannot stress enough how much incredibily thoughtul work that Amanda has put into this system. When they say "good design is invisible, this is what they mean."

Creative Director at EF Tours

"I cannot stress enough how much incredibily thoughtul work that Amanda has put into this system. When they say "good design is invisible, this is what they mean."

Creative Director at EF Tours

"I cannot stress enough how much incredibily thoughtul work that Amanda has put into this system. When they say "good design is invisible, this is what they mean."

Creative Director at EF Tours
System architecture

Building a foundation that could flex with the brand

EF Tours was in the middle of a brand refresh when this project began, which meant any system I built needed to be resilient to change. Rather than starting from zero, I built the library on top of EF's centralized global component library, customizing from there and structuring patterns for our brand.

System architecture

Building a foundation that could flex with the brand

EF Tours was in the middle of a brand refresh when this project began, which meant any system I built needed to be resilient to change. Rather than starting from zero, I built the library on top of EF's centralized global component library, customizing from there and structuring patterns for our brand.

Mobile-first

With approximately +70% of our web traffic and email views coming from mobile devices, designing for the smallest screen first ensured the patterns were built to serve the majority of our audience by default, then scaled up to desktop rather than the reverse.

Variable-driven

Every component was built using Figma variables for color, typography, and spacing. This made the library resilient to the ongoing brand refresh—when brand elements changed, components updated seamlessly rather than requiring manual edits across files. It also enabled mode switching: designs could toggle between light and dark mode and between mobile and desktop layouts without any manual edits, making it faster to explore and present variations.

Mobile-first

With approximately +70% of our web traffic and email views coming from mobile devices, designing for the smallest screen first ensured the patterns were built to serve the majority of our audience by default, then scaled up to desktop rather than the reverse.

Variable-driven

Every component was built using Figma variables for color, typography, and spacing. This made the library resilient to the ongoing brand refresh—when brand elements changed, components updated seamlessly rather than requiring manual edits across files. It also enabled mode switching: designs could toggle between light and dark mode and between mobile and desktop layouts without any manual edits, making it faster to explore and present variations.

Mobile-first

With approximately +70% of our web traffic and email views coming from mobile devices, designing for the smallest screen first ensured the patterns were built to serve the majority of our audience by default, then scaled up to desktop rather than the reverse.

Variable-driven

Every component was built using Figma variables for color, typography, and spacing. This made the library resilient to the ongoing brand refresh—when brand elements changed, components updated seamlessly rather than requiring manual edits across files. It also enabled mode switching: designs could toggle between light and dark mode and between mobile and desktop layouts without any manual edits, making it faster to explore and present variations.

Web pattern library

32 components built to scale across the entire marketing website

The web pattern library was designed to serve the full public marketing website, not just a single project. I used the EF Audience Hubs project as a pressure test — building and validating patterns in the context of a real, live initiative — but the library was scoped from the beginning to be the foundation for every web project the team would work on going forward.

The goal was to make the "right way" the easy way, so that reaching for a library component was always faster than building something from scratch.

Web pattern library

32 components built to scale across the entire marketing website

The web pattern library was designed to serve the full public marketing website, not just a single project. I used the EF Audience Hubs project as a pressure test — building and validating patterns in the context of a real, live initiative — but the library was scoped from the beginning to be the foundation for every web project the team would work on going forward.

The goal was to make the "right way" the easy way, so that reaching for a library component was always faster than building something from scratch.

The library includes 32 components built with auto layout, all connected to the variable system for colors, spacing, and typography. Each component includes mobile and desktop variants, and pre-built page templates give designers a reliable starting point for new projects rather than assembling layouts from scratch each time.

The library includes 32 components built with auto layout, all connected to the variable system for colors, spacing, and typography. Each component includes mobile and desktop variants, and pre-built page templates give designers a reliable starting point for new projects rather than assembling layouts from scratch each time.

Email component library

14 components built for the constraints of email

Email design operates under a different set of constraints than web, rendering environments vary significantly across email clients, and what works in a browser doesn't always translate to an inbox. The email component library was designed with those limitations in mind from the start.

Pre-built email templates using auto layout gave the team—designers, copywriters, and email developers—a shared starting point that reduced the back-and-forth between disciplines and made the production process significantly more predictable.

Email component library

14 components built for the constraints of email

Email design operates under a different set of constraints than web, rendering environments vary significantly across email clients, and what works in a browser doesn't always translate to an inbox. The email component library was designed with those limitations in mind from the start.

Pre-built email templates using auto layout gave the team—designers, copywriters, and email developers—a shared starting point that reduced the back-and-forth between disciplines and made the production process significantly more predictable.

The 14 email components were aligned visually with the web pattern library so that the experience across digital touchpoints felt cohesive, while being built specifically for email rendering requirements.

The library launched in 2024, ahead of the web pattern library, and was subsequently updated in 2025 to align with the evolved web system as both libraries matured together.

The 14 email components were aligned visually with the web pattern library so that the experience across digital touchpoints felt cohesive, while being built specifically for email rendering requirements.

The library launched in 2024, ahead of the web pattern library, and was subsequently updated in 2025 to align with the evolved web system as both libraries matured together.

Impact & Outcomes

Building a foundation the whole team could stand on

The library is now used across a team of 7 designers, 5 copywriters, 2 email developers, and 3 front-end web developers.

Impact & Outcomes

Building a foundation the whole team could stand on

The library is now used across a team of 7 designers, 5 copywriters, 2 email developers, and 3 front-end web developers.

✓ Dramatically faster design production

What took a week or more now takes a day or less—freeing the team to focus on real problems, not reconstructing basics.

✓ Less reinvention, more intention

Teams start from a reliable foundation and direct their energy toward work that moves the needle.

✓ A scalable digital foundation

The basis needed to build and evolve a consistent digital experience was created—rather than patching it together project by project.

✓ Consistent, high-quality output

Standardized components raised the baseline quality across all touchpoints, reducing one-off decisions and the QA cycles that followed.

✓ Dramatically faster design production

What took a week or more now takes a day or less—freeing the team to focus on real problems, not reconstructing basics.

✓ Less reinvention, more intention

Teams start from a reliable foundation and direct their energy toward work that moves the needle.

✓ A scalable digital foundation

The basis needed to build and evolve a consistent digital experience was created—rather than patching it together project by project.

✓ Consistent, high-quality output

Standardized components raised the baseline quality across all touchpoints, reducing one-off decisions and the QA cycles that followed.

"Amanda’s superpower is her ability to make our work smarter and more efficient while still holding it to a high design standard. She has an outsized impact on the processes that every single team member leverages in their daily work."

A co-worker at EF on the impact of a clear design system

"Amanda’s superpower is her ability to make our work smarter and more efficient while still holding it to a high design standard. She has an outsized impact on the processes that every single team member leverages in their daily work."

A co-worker at EF on the impact of a clear design system
Learnings

Closing the loop between design and development

QA, maintenance & creating Storyblok presets

One of the most valuable extensions of the library was translating the Figma patterns into presets inside Storyblok, the CMS used by EF Tours' web content team. I mentored a junior designer through the process, partnering closely with the web content team and engineers to surface and resolve build issues as they appeared.

Learnings

Closing the loop between design and development

QA, maintenance & creating Storyblok presets

One of the most valuable extensions of the library was translating the Figma patterns into presets inside Storyblok, the CMS used by EF Tours' web content team. I mentored a junior designer through the process, partnering closely with the web content team and engineers to surface and resolve build issues as they appeared.

Adjusting the library as we built

The process was as much a learning exercise as a production one. We uncovered where Storyblok had limitations and where we were leaving capabilities on the table. I adjusted the Figma library to reflect what was actually buildable, rather than letting the gap between design and development persist.

This feedback loop was one of the most effective QA mechanisms in the project, keeping the library grounded in what the team could realistically build and maintain over time.

Adjusting the library as we built

The process was as much a learning exercise as a production one. We uncovered where Storyblok had limitations and where we were leaving capabilities on the table. I adjusted the Figma library to reflect what was actually buildable, rather than letting the gap between design and development persist.

This feedback loop was one of the most effective QA mechanisms in the project, keeping the library grounded in what the team could realistically build and maintain over time.

Adjusting the library as we built

The process was as much a learning exercise as a production one. We uncovered where Storyblok had limitations and where we were leaving capabilities on the table. I adjusted the Figma library to reflect what was actually buildable, rather than letting the gap between design and development persist.

This feedback loop was one of the most effective QA mechanisms in the project, keeping the library grounded in what the team could realistically build and maintain over time.

What I'd do differently

The biggest thing I'd change is the rollout approach. I waited until the library felt relatively complete before sharing it more broadly with the team. In hindsight, a phased rollout — introducing components in batches as they were ready — would have surfaced real-world feedback earlier and let the library evolve based on how people actually used it, rather than assumptions made during solo design work.

What I'd do differently

The biggest thing I'd change is the rollout approach. I waited until the library felt relatively complete before sharing it more broadly with the team. In hindsight, a phased rollout — introducing components in batches as they were ready — would have surfaced real-world feedback earlier and let the library evolve based on how people actually used it, rather than assumptions made during solo design work.

Next steps

The library is a living system, not a finished product.

Next steps

The library is a living system, not a finished product.

01

Gather structured feedback from designers as the library sees broader use

02

Tighten the relationship between Figma and Storyblok as patterns evolve

03

Continue evolving components in step with the brand refresh

01

Gather structured feedback from designers as the library sees broader use

02

Tighten the relationship between Figma and Storyblok as patterns evolve

03

Continue evolving components in step with the brand refresh