
Company
CGI
|
Client
Top 10 US Bank
Some details under NDA
How I rebuilt 2,200+ Sketch symbols as Figma components
Late in the retail banking modernization project, the client switched design tools from Sketch to Figma and relied on me to rebuild 3 design systems in less than 5 months. Thousands of work hours and millions of dollars were at stake if I failed.
Overview
Team
3 Leadership Stakeholders
3 Retail UX Designers
2 Wealth UX Designers
2 Mobile UX Designers
⭐️ Me (Retail UX Designer)
My Role
Senior Product Designer
Design Systems
Timeline
5 Months
Project Overview

In early 2024, right in the middle of a mobile app redesign and just a few months away from launching retail web banking to customers, the bank decided to switch from Sketch to Figma. The timing was tricky.
The Big Problem
Teams still had to meet tight deadlines, and would also have to wait for the design system libraries to be published, further delaying the migration to Figma.
As a contractor, I was able to access Figma with my company account and so was tasked with rebuilding the bank’s 3 core design systems ahead of time:
Retail
Supports the online banking experience 12M+ customers with net worth under $1M
Wealth
Retail’s sister design system supporting wealthy clients with high net worth
Mobile App
App supporting both Retail and Wealth customers
More Problems
Delivering the 3 libraries on time was key to keeping 2 major releases on track, avoiding delays that could have cost the business significantly. In addition, I continued maintaining and supporting the Retail design system and its user base of 25+ product teams.
I also had to learn Figma.
Results and Impact
100% of components for all 3 systems were rebuilt, tested, and delivered on time
Key Metrics
1,000+
Total Figma components and page templates across 3 design systems
50%
Reduction in the number of Sketch symbols
28,800+
Estimated work hours saved by rebuilding the libraries ahead of time
🚀 Post-Launch
Because I built the design systems ahead of time, design teams were able to use the new components the first day the bank gained access.
The Figma components are used by:
3
Design Systems
30+
Product teams
70+
Designers
200+
Developers
I led Figma training and mentored design teams across web and mobile platforms
Design system teams
Product teams
Testimonial
Amelie H.
Product Designer
As a product designer using the system, Susan was an ideal teammate. Beyond informative practice-wide weekly sessions, she took the time to meet with our smaller design pod at another time each week.
Early in the process, we often rolled through long lists of edits and requests, and she took every one of our comments and questions and worked to improve the design system. Nothing was too small or too big for her to be concerned about.
Read Full Review
Improved construction of the Figma components nearly eliminated common spacing issues we would see in design reviews with Sketch
For example, I built page templates, such as multi-step wizard forms, to include common design patterns that were missing from Sketch.
On the Retail design system team, we saw nearly an 80% reduction in the number of spacing issues we identified during design reviews when designers used the page templates, compared to what we saw with Sketch.

Before

After

Because of my success delivering 3 design systems on time, I was asked to build 2 additional design systems a few months later
Legacy Mobile App Library
150+ Components
Responsive Web View Themed Library
40+ Components
Although the legacy mobile app library was originally descoped from the Figma migration, it suddenly became a priority months later when new features needed to be added. A few months later, the responsive web view library, also previously descoped, was needed in a few weeks. I rebuilt both libraries each under a month, all while continuing my regular work on the Retail design system.
Ultimately, the design systems support the modernization of the digital banking experience, which will reach 12 million customers across the US after the final customer launch wave is completed, estimated fall 2025.
Nearly a year later, the components have more than
2.2 Million
inserts combined across the 3 Figma libraries
Less than
1%
were detached
Process
May 2024
Project Kickoff and Audit
Initial Deadline
August 2024
Week 1-15: Figma Conversion
Actual Deadline
Late October 2024
Testing and File Handoff
Figma Access
Nov 2024
Project Kick-Off
To kick off the project, I met with 3 members of design leadership and representatives from each design system to prioritize the components and determine the timeline. The initial scope was one 2 week sprint to audit the Sketch libraries and 8 weeks to rebuild all 3 systems.
Leadership and Design System Reps
Des Ops
Design VP
Design Manager

Me (Retail)
Mobile App
UX Lead
UX Designer
Wealth
UX Lead
UX Designer
Retail
UX Lead
Challenges
Getting stakeholder buy-in for rebuilding the components differently in Figma
Stakeholders were concerned that the new approach to building components would be too difficult for designers to learn while they were juggling file rebuilds and new projects.
To ease their worries, I set up regular meetings with leadership to show them how Figma's features like auto layout made component building more intuitive and efficient, ultimately saving design time.
Due to working in siloed teams, I lacked visibility into the other 2 systems
The symbol audit was the first time I had opened the Wealth and Mobile files. There were some points of confusion such as unorganized symbols, and confusing color style naming.
To ensure the new components matched expectations, I established biweekly check-ins with the Wealth and Mobile teams. I reviewed my open questions and made recommendations for improving their components while taking their feedback and needs into consideration.
The Wealth system had not finalized their new colors
Wealth had decided to align to the new color system several months after Retail and Mobile finalized the new color ramps, which was shortly before the Figma rebuild project started. By the time I started rebuilding the libraries, Wealth had not fully set up their color design token structure.
This was a huge blocker for me to set up their Figma color variables, which I needed to get in place prior to building their components.
To make things more complicated, their existing system had several instances of one-off color styles and floating HEX values, with some cases of inconsistent color usage across similar symbols.
I solved these issues by:

Example of how I consolidated similar existing Wealth colors to the new color ramp system and as a single design token.
Sketch Library Audit
I catalogued all symbol categories in a spreadsheet to quantify what would need to be delivered.
Due to the short timeline, I advised stakeholders to remove page templates from scope, since they could be assembled from existing components. This minimized risk, ensuring design work could continue even if templates were delayed - unlike core components, where delays could impact entire project deadlines.
Excluding colors and type styles...
There were almost 2,300 Sketch symbols 😱
I estimated that I could reduce this by at least 30% in Figma.

I created a checklist template to track weekly progress for each design system

Retail
Wealth
Mobile
I listed out the component categories by system, then tagged them by week, starting with foundations, then working from simple to complex components.
I rebuilt the 3 systems at the same time because it was easier to track. Additionally, the Wealth design system shared approximately 70% of components with Retail. I set up their foundations, then decided to wait until Retail was mostly built out and clone the library to save time.
Week 1
Retail Web
Naming convention and folder structure
Set up foundations
Buttons
Wealth
Naming convention and folder structure
Set up foundations
Wealth shares many common components with Retail Web and will be built as a clone of that file when progress has been made
Mobile
Naming convention and folder structure
Set up foundations
Buttons
Card Art
Example checklist for the first week

The Components
Global Color System
Before starting design system work, I set up the color library with our new global (or primitives) color system, which would be aliased by all 3 systems as color roles.
100
98
95
90
80
70
60
50
40
30
20
10
0
Prior to the Figma rebuild, I led the effort to create a shared color ramp library and align the 3 design systems to one scalable color system (case study coming soon).
Foundations
Next, I continued with local foundational tokens - color role variables, typography, grids, and other styles, integrating the new design token naming conventions for Retail and Wealth (Mobile had their own token system established prior to our token working sessions. We were able to align color role naming for the 3 systems but are otherwise not aligned in foundational tokens).
Color Role
$primary
$on-primary
$on-surface
$on-surface-variant-low
$outline
$confirmation
$attention
$error
Retail Value
blue40
neutral100
neutral10
neutral40
neutral90
green50
yellow80
red40
Mobile Value
blue40
neutral100
neutral10
neutral40
neutral95
green50
yellow80
red40
Wealth Value
azurite20
neutral100
neutral10
neutral40
neutral90
green50
yellow80
red40
Scroll to view full table
Some common color roles used across the 3 systems, based on Material 3’s naming convention. They are approx. 75% aligned on naming and colors used, but there are a handful of differences, including the primary color.

Mobile was the only one of the systems that needed to support theming - light and dark mode for 2 different brands - Retail and Wealth.
Because mobile was undergoing a redesign, they already had a token structure in place in their code. Due to tech constraints at the time, Retail Web and Wealth were not ready to fully implement design tokens except colors, so their spacing tokens in Figma were limited to primitives (the base level of design tokens that reference a raw value).
Retail
Wealth
Name
space-050
space-100
space-150
space-200
space-300
Value
5 px
10 px
15 px
20 px
30 px
Mobile
Name
padding-xs
padding-small
padding-medium
margin-large
gutter-small
Value
4 px
6 px
8 px
16 px
20 px
Base Components
Like Building Blocks, these components are made up of combinations of design tokens. They may also include some nested building block elements (such as error text in a text input). I built in basic prototyping functionality (such as hover and selected states) where applicable.
Jumbo
$on-primary
$primary
headline-large
Jumbo
padding-medium
padding-xxl

Building Blocks
Building block components are made up of various design tokens (Figma variables) or nested base components. Some building blocks are also complex components with other nested components that are in turn nested within page templates.

Retail global navigation component is made up of building blocks for icons and menu items.
Building blocks allow flexibility in the system when designers are trying something new.
They are also important for supporting breakable complex components and page templates to ensure designers are still linked to the library.



The Wizard (multistep form) container is an example of a complex component that is a building block for the Wizard Page Template.
Complex Components
Complex components are made up of building blocks or nested base components. The most complicated of the complex components is the account mega, which contains nested building blocks with variants and slots to support a wide range of use cases.
Select Account
Optional Product Category
Product Name
x1234
View Account / Routing Number
Data Point 1
$2,242.04
Minimum Payment
$54.00 on 2/21/2021
Make a Payment
Data Point 2:
$100.00
Data Point 3:
$100.00
Data Point 4:
$100.00
Show Details
🔀 Expansion Slot - Swap Me or hide me!

9:41
More
Button
Cards
Rewards
Paze℠
Card Free ATM Access
Statements & Documents
9:41
Hello, Name
Reminders
3
We’re Enhancing Your Security
You might be asked to authenticate at sign on with a one-time passcode. Learn More
Mobile Titlebar building blocks and Page Titlebar variants

Wealth system table rows with nested table cell components
Components with Placeholders and Slots
Select Account
🔀 Slot: Notification- Swap Me or hide me!
Optional Product Category
Product Name
x1234
View Account / Routing Number
🔀 Slot 2: Custom - Swap Me or hide me!
🔀 Slot 3: Custom - Swap Me or hide me!
Data Point 1
$2,242.04
🔀 Slot 5: payment block - Swap or hide
🔀 Slot 6: secondary data point- Swap/hide
Show Details
🔀 Expansion Slot - Swap Me or hide me!
I created components with placeholders and slots to address common issues we encountered in Sketch:
01.
Layout and spacing mistakes
Designers often struggled with padding and spacing in complex layouts such as containers and multi-step wizard forms.
👉 Solution: Nested placeholder components that let designers add their content without needing to adjust spacing manually.
02.
Broken symbols and inconsistent development handoff
In Sketch, designers would break symbols without notifying the design system team, leading to outdated components being handed off, causing tech debt when development was overriding components to match old styles.
👉 Solution: Components with placeholders are built with building blocks and nested base components. This allows designers to detach if needed while still maintaining correct padding and staying linked to the library updates, ensuring that the Figma component matches the coded component, reducing the likelihood of overrides.
Page and Table Templates

An example of standard page templates for the Retail system (left) and Wealth (right).
I built page templates for standard page layouts, forms, and table templates. The templates were built to be broken, so that designers wouldn’t have to worry about spacing, typography, and colors for the most common patterns and instead can focus on designing great experiences.

Wealth scrollable table template example
Component Notes
As a design systems team, we worked together to create a repeatable notes template that could be used for all Figma components. I took the opportunity to add guidelines to help designers learn how to use the Figma components, especially for new concepts they would need to learn in Figma, such as components with slots.

Component note anatomy

2
1
3
4
1
Design component name as it appears in the design system documentation
2
Angular component name, if applicable. This helps developers know when to use a component vs custom code.
3
Brief component description
4
Usage guidelines. This is where I included notes specific to that component or Figma tips, such as using auto layout or instance swap properites.
Component Testing and Adjustments
The timeline to Figma ended up getting pushed back almost 8 weeks, which gave me and my team time to create a quality control testing process. While 2 of my teammates with Figma access tested the components, I worked on building page templates.

Component Testing Plan
1
Set up a dedicated testing page in the library files and Excel sheet listing out all components
2
Two designers with CGI Figma access divide and conquer to test all components
3
Test each component against the design systems following the testing checklist, where applicable
4
Record test results in the spreadsheet. If a bug is found, assign a severity level and add a description of the issue
We set up an Excel file to compile feedback, where issues were classified according to the severity scale we defined so I knew which component fixes to prioritize.
Severity Scale
Definition
Low/None
Minor adjustments needed, such as color role missing or incorrect spacing, or enhancement opportunities identified. Will not impact designers and can be released and fixed later if needed.
Medium
Some bugs identified, such as missing component properties or auto layout issues that could be manually fixed by designers, but are inconvenient.
High
Many bugs identified, such as missing variants, problems with component properties or responsive behavior that cannot be resolved at the instance level. Need to be fixed prior to release.
Testing Results
Thanks to great teamwork and coordination, I was able to resolve all logged issues just in time for the file migration to the client’s new Figma account.
77%
Low Severity or No Issues
252 Component Categories
13%
Medium Severity
10%
High Severity
Issue Breakdown by System
Severity Level
Low/None
Medium
High
Total Categories
Retail
68
9
7
84
Low/None
Medium
High
Total Categories
Wealth
75
13
16
94
Low/None
Medium
High
Total Categories
Mobile
61
10
3
74
Lessons Learned and Reflections
Some components could have been built more intuitively
Some of the first components I built I attempted match closely to how they were built in Sketch, before I really had a grasp of the tool.
For example, I built each input type as a component with its own variants, which makes it difficult to manage from a design system level and more work for our users to find the component they need.
👎 How I built the text input components

👍 I would have built them as one component had I known better


Designers shouldn’t be encouraged to break components
One of the biggest mistakes I made was calling out which components designers could break. I had approached this from the mindset that they would still be linked to the library, and therefore it wasn’t a problem. Moving forward I would instead steer them to build local components to get the most out of slots, or encourage using the building blocks to build pages manually.
It’s not just about rebuilding the components in Figma - it’s also a mentality shift towards improved ways of working and collaboration


Company
CGI
|
Client
Top 10 US Bank
|
Some details under NDA
How I rebuilt 2,200+ Sketch symbols as Figma components
Late in the retail banking modernization project, the client switched design tools from Sketch to Figma and relied on me to rebuild 3 design systems in less than 5 months. Thousands of work hours and millions of dollars were at stake if I failed.
Overview
Team
3 Leadership Stakeholders
3 Retail UX Designers
2 Wealth UX Designers
2 Mobile UX Designers
⭐️ Me (Retail UX Designer)
My Role
Senior Product Designer
Design Systems
Timeline
5 Months
Project Overview

In early 2024, right in the middle of a mobile app redesign and just a few months away from launching retail web banking to customers, the bank decided to switch from Sketch to Figma. The timing was tricky.
The Big Problem
Teams still had to meet tight deadlines, and would also have to wait for the design system libraries to be published, further delaying the migration to Figma.
As a contractor, I was able to access Figma with my company account and so was tasked with rebuilding the bank’s 3 core design systems ahead of time:
Retail
Supports the online banking experience 12M+ customers with net worth under $1M
Wealth
Retail’s sister design system supporting wealthy clients with high net worth
Mobile App
App supporting both Retail and Wealth customers
More Problems
Delivering the 3 libraries on time was key to keeping 2 major releases on track, avoiding delays that could have cost the business significantly. In addition, I continued maintaining and supporting the Retail design system and its user base of 25+ product teams.
I also had to learn Figma.
Results and Impact
100% of components for all 3 systems were rebuilt, tested, and delivered on time
Key Metrics
1,000+
Total Figma components and page templates across 3 design systems
50%
Reduction in the number of Sketch symbols
28,800+
Estimated work hours saved by rebuilding the libraries ahead of time
🚀 Post-Launch
Because I built the design systems ahead of time, design teams were able to use the new components the first day the bank gained access.
The Figma components are used by:
3
Design Systems
30+
Product teams
70+
Designers
200+
Developers
I led Figma training and mentored design teams across web and mobile platforms
Design system teams
Product teams
Testimonial
Amelie H.
Product Designer
As a product designer using the system, Susan was an ideal teammate. Beyond informative practice-wide weekly sessions, she took the time to meet with our smaller design pod at another time each week.
Early in the process, we often rolled through long lists of edits and requests, and she took every one of our comments and questions and worked to improve the design system. Nothing was too small or too big for her to be concerned about.
Read Full Review
Improved construction of the Figma components nearly eliminated common spacing issues we would see in design reviews with Sketch
For example, I built page templates, such as multi-step wizard forms, to include common design patterns that were missing from Sketch.
On the Retail design system team, we saw nearly an 80% reduction in the number of spacing issues we identified during design reviews when designers used the page templates, compared to what we saw with Sketch.

Before

After

Because of my success delivering 3 design systems on time, I was asked to build 2 additional design systems a few months later
Legacy Mobile App Library
150+ Components
Responsive Web View Themed Library
40+ Components
Although the legacy mobile app library was originally descoped from the Figma migration, it suddenly became a priority months later when new features needed to be added. A few months later, the responsive web view library, also previously descoped, was needed in a few weeks. I rebuilt both libraries each under a month, all while continuing my regular work on the Retail design system.
Ultimately, the design systems support the modernization of the digital banking experience, which will reach 12 million customers across the US after the final customer launch wave is completed, estimated fall 2025.
Nearly a year later, the components have more than
2.2 Million
inserts combined across the 3 Figma libraries
Less than
1%
were detached
Process
May 2024
Project Kickoff and Audit
Week 1-15: Figma Conversion
Testing and File Handoff
Actual Deadline
Late October 2024
Figma Access
Nov 2024
Initial Deadline
August 2024
Scroll to view full timeline
Project Kick-Off
To kick off the project, I met with 3 members of design leadership and representatives from each design system to prioritize the components and determine the timeline. The initial scope was one 2 week sprint to audit the Sketch libraries and 8 weeks to rebuild all 3 systems.
Leadership and Design System Reps

Challenges
Getting stakeholder buy-in for rebuilding the components differently in Figma
Stakeholders were concerned that the new approach to building components would be too difficult for designers to learn while they were juggling file rebuilds and new projects.
To ease their worries, I set up regular meetings with leadership to show them how Figma's features like auto layout made component building more intuitive and efficient, ultimately saving design time.
Due to working in siloed teams, I lacked visibility into the other 2 systems
The symbol audit was the first time I had opened the Wealth and Mobile files. There were some points of confusion such as unorganized symbols, and confusing color style naming.
To ensure the new components matched expectations, I established biweekly check-ins with the Wealth and Mobile teams. I reviewed my open questions and made recommendations for improving their components while taking their feedback and needs into consideration.
The Wealth system had not finalized their new colors
Wealth had decided to align to the new color system several months after Retail and Mobile finalized the new color ramps, which was shortly before the Figma rebuild project started. By the time I started rebuilding the libraries, Wealth had not fully set up their color design token structure.
This was a huge blocker for me to set up their Figma color variables, which I needed to get in place prior to building their components.
To make things more complicated, their existing system had several instances of one-off color styles and floating HEX values, with some cases of inconsistent color usage across similar symbols.
I solved these issues by:

Example of how I consolidated similar existing Wealth colors to the new color ramp system and as a single design token.
Sketch Library Audit
I catalogued all symbol categories in a spreadsheet to quantify what would need to be delivered.
Due to the short timeline, I advised stakeholders to remove page templates from scope, since they could be assembled from existing components. This minimized risk, ensuring design work could continue even if templates were delayed - unlike core components, where delays could impact entire project deadlines.
Excluding colors and type styles...
There were almost 2,300 Sketch symbols 😱
I estimated that I could reduce this by at least 30% in Figma.

I created a checklist template to track weekly progress for each design system

Retail
Wealth
Mobile
I listed out the component categories by system, then tagged them by week, starting with foundations, then working from simple to complex components.
I rebuilt the 3 systems at the same time because it was easier to track. Additionally, the Wealth design system shared approximately 70% of components with Retail. I set up their foundations, then decided to wait until Retail was mostly built out and clone the library to save time.
Week 1
Retail Web
Naming convention and folder structure
Set up foundations
Buttons
Wealth
Naming convention and folder structure
Set up foundations
Wealth shares many common components with Retail Web and will be built as a clone of that file when progress has been made
Mobile
Naming convention and folder structure
Set up foundations
Buttons
Card Art
Example checklist for the first week

The Components
Global Color System
Before starting design system work, I set up the color library with our new global (or primitives) color system, which would be aliased by all 3 systems as color roles.
100
98
95
90
80
70
60
50
40
30
20
10
0
Prior to the Figma rebuild, I led the effort to create a shared color ramp library and align the 3 design systems to one scalable color system (case study coming soon).
Foundations
Next, I continued with local foundational tokens - color role variables, typography, grids, and other styles, integrating the new design token naming conventions for Retail and Wealth (Mobile had their own token system established prior to our token working sessions. We were able to align color role naming for the 3 systems but are otherwise not aligned in foundational tokens).
Color Role
$primary
$on-primary
$on-surface
$on-surface-variant-low
$outline
$confirmation
$attention
$error
Retail Value
blue40
neutral100
neutral10
neutral40
neutral90
green50
yellow80
red40
Mobile Value
blue40
neutral100
neutral10
neutral40
neutral95
green50
yellow80
red40
Wealth Value
azurite20
neutral100
neutral10
neutral40
neutral90
green50
yellow80
red40
Some common color roles used across the 3 systems, based on Material 3’s naming convention. They are approx. 75% aligned on naming and colors used, but there are a handful of differences, including the primary color.
Mobile was the only one of the systems that needed to support theming - light and dark mode for 2 different brands - Retail and Wealth.

Because mobile was undergoing a redesign, they already had a token structure in place in their code. Due to tech constraints at the time, Retail Web and Wealth were not ready to fully implement design tokens except colors, so their spacing tokens in Figma were limited to primitives (the base level of design tokens that reference a raw value).
Retail
Wealth
Name
space-050
space-100
space-150
space-200
space-300
Value
5 px
10 px
15 px
20 px
30 px
Mobile
Name
padding-xs
padding-small
padding-medium
margin-large
gutter-small
Value
4 px
6 px
8 px
16 px
20 px
Base Components
Like Building Blocks, these components are made up of combinations of design tokens. They may also include some nested building block elements (such as error text in a text input). I built in basic prototyping functionality (such as hover and selected states) where applicable.
Jumbo
$on-primary
$primary
headline-large
Jumbo
padding-medium
padding-xxl
Building Blocks
Building block components are made up of various design tokens (Figma variables) or nested base components. Some building blocks are also complex components with other nested components that are in turn nested within page templates.

Retail global navigation component is made up of building blocks for icons and menu items.
Building blocks allow flexibility in the system when designers are trying something new.
They are also important for supporting breakable complex components and page templates to ensure designers are still linked to the library.



The Wizard (multistep form) container is an example of a complex component that is a building block for the Wizard Page Template.
Complex Components
Complex components are made up of building blocks or nested base components. The most complicated of the complex components is the account mega, which contains nested building blocks with variants and slots to support a wide range of use cases.


9:41
More
Button
Cards
Rewards
Paze℠
Card Free ATM Access
Statements & Documents
9:41
Hello, Name
Reminders
3
We’re Enhancing Your Security
You might be asked to authenticate at sign on with a one-time passcode. Learn More
Mobile Titlebar building blocks and Page Titlebar variants

Wealth system table rows with nested table cell components
Components with Placeholders and Slots

I created components with placeholders and slots to address common issues we encountered in Sketch:
01.
Layout and spacing mistakes
Designers often struggled with padding and spacing in complex layouts such as containers and multi-step wizard forms.
👉 Solution: Nested placeholder components that let designers add their content without needing to adjust spacing manually.
02.
Broken symbols and inconsistent development handoff
In Sketch, designers would break symbols without notifying the design system team, leading to outdated components being handed off, causing tech debt when development was overriding components to match old styles.
👉 Solution: Components with placeholders are built with building blocks and nested base components. This allows designers to detach if needed while still maintaining correct padding and staying linked to the library updates, ensuring that the Figma component matches the coded component, reducing the likelihood of overrides.
Page and Table Templates

An example of standard page templates for the Retail system (left) and Wealth (right).
I built page templates for standard page layouts, forms, and table templates. The templates were built to be broken, so that designers wouldn’t have to worry about spacing, typography, and colors for the most common patterns and instead can focus on designing great experiences.

Wealth scrollable table template example
Component Notes
As a design systems team, we worked together to create a repeatable notes template that could be used for all Figma components. I took the opportunity to add guidelines to help designers learn how to use the Figma components, especially for new concepts they would need to learn in Figma, such as components with slots.


2
1
3
4
1
Design component name as it appears in the design system documentation
2
Angular component name, if applicable. This helps developers know when to use a component vs custom code.
3
Brief component description
4
Usage guidelines. This is where I included notes specific to that component or Figma tips, such as using auto layout or instance swap properites.
Component note anatomy
Component Testing and Adjustments
The timeline to Figma ended up getting pushed back almost 8 weeks, which gave me and my team time to create a quality control testing process. While 2 of my teammates with Figma access tested the components, I worked on building page templates.

Component Testing Plan
1
Set up a dedicated testing page in the library files and Excel sheet listing out all components
2
Two designers with CGI Figma access divide and conquer to test all components
3
Test each component against the design systems following the testing checklist, where applicable
4
Record test results in the spreadsheet. If a bug is found, assign a severity level and add a description of the issue
We set up an Excel file to compile feedback, where issues were classified according to the severity scale we defined so I knew which component fixes to prioritize.
Severity Scale
Low/None
Medium
High
Definition
Minor adjustments needed, such as color role missing or incorrect spacing, or enhancement opportunities identified. Will not impact designers and can be released and fixed later if needed.
Some bugs identified, such as missing component properties or auto layout issues that could be manually fixed by designers, but are inconvenient.
Many bugs identified, such as missing variants, problems with component properties or responsive behavior that cannot be resolved at the instance level. Need to be fixed prior to release.
Testing Results
Thanks to great teamwork and coordination, I was able to resolve all logged issues just in time for the file migration to the client’s new Figma account.
13%
Medium Severity
77%
Low Severity or No Issues
10%
High Severity
252 Component Categories
Issue Breakdown by System
Severity Level
Low/None
Medium
High
Total Categories
Retail
68
9
7
84
Wealth
75
13
16
94
Mobile
61
10
3
74
Lessons Learned and Reflections
Some components could have been built more intuitively
Some of the first components I built I attempted match closely to how they were built in Sketch, before I really had a grasp of the tool.
For example, I built each input type as a component with its own variants, which makes it difficult to manage from a design system level and more work for our users to find the component they need.
👎 How I built the text input components

👍 I would have built them as one component had I known better


Designers shouldn’t be encouraged to break components
One of the biggest mistakes I made was calling out which components designers could break. I had approached this from the mindset that they would still be linked to the library, and therefore it wasn’t a problem. Moving forward I would instead steer them to build local components to get the most out of slots, or encourage using the building blocks to build pages manually.
It’s not just about rebuilding the components in Figma - it’s also a mentality shift towards improved ways of working and collaboration


Company
CGI
|
Client
Top 10 US Bank
|
Some details under NDA
How I rebuilt 2,200+ Sketch symbols as Figma components
Late in the retail banking modernization project, the client switched design tools from Sketch to Figma and relied on me to rebuild 3 design systems in less than 5 months. Thousands of work hours and millions of dollars were at stake if I failed.
Overview
Team
3 Leadership Stakeholders
3 Retail UX Designers
2 Wealth UX Designers
2 Mobile UX Designers
⭐️ Me (Retail UX Designer)
My Role
Senior Product Designer
Design Systems
Timeline
5 Months
Project Overview

In early 2024, right in the middle of a mobile app redesign and just a few months away from launching retail web banking to customers, the bank decided to switch from Sketch to Figma. The timing was tricky.
The Big Problem
Teams still had to meet tight deadlines, and would also have to wait for the design system libraries to be published, further delaying the migration to Figma.
As a contractor, I was able to access Figma with my company account and so was tasked with rebuilding the bank’s 3 core design systems ahead of time:
Retail
Supports the online banking experience 12M+ customers with net worth under $1M
Wealth
Retail’s sister design system supporting wealthy clients with high net worth
Mobile App
App supporting both Retail and Wealth customers
More Problems
Delivering the 3 libraries on time was key to keeping 2 major releases on track, avoiding delays that could have cost the business significantly. In addition, I continued maintaining and supporting the Retail design system and its user base of 25+ product teams.
I also had to learn Figma.
Results and Impact
100% of components for all 3 systems were rebuilt, tested, and delivered on time
Key Metrics
1,000+
Total Figma components and page templates across 3 design systems
50%
Reduction in the number of Sketch symbols
28,800+
Estimated work hours saved by rebuilding the libraries ahead of time
🚀 Post-Launch
Because I built the design systems ahead of time, design teams were able to use the new components the first day the bank gained access.
The Figma components are used by:
3
Design Systems
30+
Product teams
70+
Designers
200+
Developers
I led Figma training and mentored design teams across web and mobile platforms
Design system teams
Product teams
Testimonial
Amelie H.
Product Designer
As a product designer using the system, Susan was an ideal teammate. Beyond informative practice-wide weekly sessions, she took the time to meet with our smaller design pod at another time each week.
Early in the process, we often rolled through long lists of edits and requests, and she took every one of our comments and questions and worked to improve the design system. Nothing was too small or too big for her to be concerned about.
Read Full Review
Improved construction of the Figma components nearly eliminated common spacing issues we would see in design reviews with Sketch
For example, I built page templates, such as multi-step wizard forms, to include common design patterns that were missing from Sketch.
On the Retail design system team, we saw nearly an 80% reduction in the number of spacing issues we identified during design reviews when designers used the page templates, compared to what we saw with Sketch.

Before

After

Because of my success delivering 3 design systems on time, I was asked to build 2 additional design systems a few months later
Legacy Mobile App Library
150+ Components
Responsive Web View Themed Library
40+ Components
Although the legacy mobile app library was originally descoped from the Figma migration, it suddenly became a priority months later when new features needed to be added. A few months later, the responsive web view library, also previously descoped, was needed in a few weeks. I rebuilt both libraries each under a month, all while continuing my regular work on the Retail design system.
Ultimately, the design systems support the modernization of the digital banking experience, which will reach 12 million customers across the US after the final customer launch wave is completed, estimated fall 2025.
Nearly a year later, the components have more than
2.2 Million
inserts combined across the 3 Figma libraries
Less than
1%
were detached
Process
May 2024
Project Kickoff and Audit
Week 1-15: Figma Conversion
Testing and File Handoff
Actual Deadline
Late October 2024
Figma Access
Nov 2024
Initial Deadline
August 2024
Project Kick-Off
To kick off the project, I met with 3 members of design leadership and representatives from each design system to prioritize the components and determine the timeline. The initial scope was one 2 week sprint to audit the Sketch libraries and 8 weeks to rebuild all 3 systems.
Leadership and Design System Reps

Challenges
Getting stakeholder buy-in for rebuilding the components differently in Figma
Stakeholders were concerned that the new approach to building components would be too difficult for designers to learn while they were juggling file rebuilds and new projects.
To ease their worries, I set up regular meetings with leadership to show them how Figma's features like auto layout made component building more intuitive and efficient, ultimately saving design time.
Due to working in siloed teams, I lacked visibility into the other 2 systems
The symbol audit was the first time I had opened the Wealth and Mobile files. There were some points of confusion such as unorganized symbols, and confusing color style naming.
To ensure the new components matched expectations, I established biweekly check-ins with the Wealth and Mobile teams. I reviewed my open questions and made recommendations for improving their components while taking their feedback and needs into consideration.
The Wealth system had not finalized their new colors
Wealth had decided to align to the new color system several months after Retail and Mobile finalized the new color ramps, which was shortly before the Figma rebuild project started. By the time I started rebuilding the libraries, Wealth had not fully set up their color design token structure.
This was a huge blocker for me to set up their Figma color variables, which I needed to get in place prior to building their components.
To make things more complicated, their existing system had several instances of one-off color styles and floating HEX values, with some cases of inconsistent color usage across similar symbols.
I solved these issues by:

Example of how I consolidated similar existing Wealth colors to the new color ramp system and as a single design token.
Sketch Library Audit
I catalogued all symbol categories in a spreadsheet to quantify what would need to be delivered.
Due to the short timeline, I advised stakeholders to remove page templates from scope, since they could be assembled from existing components. This minimized risk, ensuring design work could continue even if templates were delayed - unlike core components, where delays could impact entire project deadlines.
Excluding colors and type styles...
There were almost 2,300 Sketch symbols 😱
I estimated that I could reduce this by at least 30% in Figma.

I created a checklist template to track weekly progress for each design system

Retail
Wealth
Mobile
I listed out the component categories by system, then tagged them by week, starting with foundations, then working from simple to complex components.
I rebuilt the 3 systems at the same time because it was easier to track. Additionally, the Wealth design system shared approximately 70% of components with Retail. I set up their foundations, then decided to wait until Retail was mostly built out and clone the library to save time.
Week 1
Retail Web
Naming convention and folder structure
Set up foundations
Buttons
Wealth
Naming convention and folder structure
Set up foundations
Wealth shares many common components with Retail Web and will be built as a clone of that file when progress has been made
Mobile
Naming convention and folder structure
Set up foundations
Buttons
Card Art
Example checklist for the first week

The Components
Global Color System
Before starting design system work, I set up the color library with our new global (or primitives) color system, which would be aliased by all 3 systems as color roles.
100
98
95
90
80
70
60
50
40
30
20
10
0
Prior to the Figma rebuild, I led the effort to create a shared color ramp library and align the 3 design systems to one scalable color system (case study coming soon).
Foundations
Next, I continued with local foundational tokens - color role variables, typography, grids, and other styles, integrating the new design token naming conventions for Retail and Wealth (Mobile had their own token system established prior to our token working sessions. We were able to align color role naming for the 3 systems but are otherwise not aligned in foundational tokens).
Color Role
$primary
$on-primary
$on-surface
$on-surface-variant-low
$outline
$confirmation
$attention
$error
Retail Value
blue40
neutral100
neutral10
neutral40
neutral90
green50
yellow80
red40
Mobile Value
blue40
neutral100
neutral10
neutral40
neutral95
green50
yellow80
red40
Wealth Value
azurite20
neutral100
neutral10
neutral40
neutral90
green50
yellow80
red40
Some common color roles used across the 3 systems, based on Material 3’s naming convention. They are approx. 75% aligned on naming and colors used, but there are a handful of differences, including the primary color.
Mobile was the only one of the systems that needed to support theming - light and dark mode for 2 different brands - Retail and Wealth.

Because mobile was undergoing a redesign, they already had a token structure in place in their code. Due to tech constraints at the time, Retail Web and Wealth were not ready to fully implement design tokens except colors, so their spacing tokens in Figma were limited to primitives (the base level of design tokens that reference a raw value).
Retail
Wealth
Name
space-050
space-100
space-150
space-200
space-300
Value
5 px
10 px
15 px
20 px
30 px
Mobile
Name
padding-xs
padding-small
padding-medium
margin-large
gutter-small
Value
4 px
6 px
8 px
16 px
20 px
Base Components
Like Building Blocks, these components are made up of combinations of design tokens. They may also include some nested building block elements (such as error text in a text input). I built in basic prototyping functionality (such as hover and selected states) where applicable.
Jumbo
$on-primary
$primary
headline-large
Jumbo
padding-medium
padding-xxl

Building Blocks
Building block components are made up of various design tokens (Figma variables) or nested base components. Some building blocks are also complex components with other nested components that are in turn nested within page templates.

Retail global navigation component is made up of building blocks for icons and menu items.
Building blocks allow flexibility in the system when designers are trying something new.
They are also important for supporting breakable complex components and page templates to ensure designers are still linked to the library.



The Wizard (multistep form) container is an example of a complex component that is a building block for the Wizard Page Template.
Complex Components
Complex components are made up of building blocks or nested base components. The most complicated of the complex components is the account mega, which contains nested building blocks with variants and slots to support a wide range of use cases.


9:41
More
Button
Cards
Rewards
Paze℠
Card Free ATM Access
Statements & Documents
9:41
Hello, Name
Reminders
3
We’re Enhancing Your Security
You might be asked to authenticate at sign on with a one-time passcode. Learn More
Mobile Titlebar building blocks and Page Titlebar variants

Wealth system table rows with nested table cell components
Components with Placeholders and Slots

I created components with placeholders and slots to address common issues we encountered in Sketch:
01.
Layout and spacing mistakes
Designers often struggled with padding and spacing in complex layouts such as containers and multi-step wizard forms.
👉 Solution: Nested placeholder components that let designers add their content without needing to adjust spacing manually.
02.
Broken symbols and inconsistent development handoff
In Sketch, designers would break symbols without notifying the design system team, leading to outdated components being handed off, causing tech debt when development was overriding components to match old styles.
👉 Solution: Components with placeholders are built with building blocks and nested base components. This allows designers to detach if needed while still maintaining correct padding and staying linked to the library updates, ensuring that the Figma component matches the coded component, reducing the likelihood of overrides.
Page and Table Templates

An example of standard page templates for the Retail system (left) and Wealth (right).
I built page templates for standard page layouts, forms, and table templates. The templates were built to be broken, so that designers wouldn’t have to worry about spacing, typography, and colors for the most common patterns and instead can focus on designing great experiences.

Wealth scrollable table template example
Component Notes
As a design systems team, we worked together to create a repeatable notes template that could be used for all Figma components. I took the opportunity to add guidelines to help designers learn how to use the Figma components, especially for new concepts they would need to learn in Figma, such as components with slots.


2
1
3
4
1
Design component name as it appears in the design system documentation
2
Angular component name, if applicable. This helps developers know when to use a component vs custom code.
3
Brief component description
4
Usage guidelines. This is where I included notes specific to that component or Figma tips, such as using auto layout or instance swap properites.
Component note anatomy
Component Testing and Adjustments
The timeline to Figma ended up getting pushed back almost 8 weeks, which gave me and my team time to create a quality control testing process. While 2 of my teammates with Figma access tested the components, I worked on building page templates.

Component Testing Plan
1
Set up a dedicated testing page in the library files and Excel sheet listing out all components
2
Two designers with CGI Figma access divide and conquer to test all components
3
Test each component against the design systems following the testing checklist, where applicable
4
Record test results in the spreadsheet. If a bug is found, assign a severity level and add a description of the issue
We set up an Excel file to compile feedback, where issues were classified according to the severity scale we defined so I knew which component fixes to prioritize.
Severity Scale
Low/None
Medium
High
Definition
Minor adjustments needed, such as color role missing or incorrect spacing, or enhancement opportunities identified. Will not impact designers and can be released and fixed later if needed.
Some bugs identified, such as missing component properties or auto layout issues that could be manually fixed by designers, but are inconvenient.
Many bugs identified, such as missing variants, problems with component properties or responsive behavior that cannot be resolved at the instance level. Need to be fixed prior to release.
Testing Results
Thanks to great teamwork and coordination, I was able to resolve all logged issues just in time for the file migration to the client’s new Figma account.
13%
Medium Severity
77%
Low Severity or No Issues
10%
High Severity
252 Component Categories
Issue Breakdown by System
Severity Level
Low/None
Medium
High
Total Categories
Retail
68
9
7
84
Wealth
75
13
16
94
Mobile
61
10
3
74
Lessons Learned and Reflections
Some components could have been built more intuitively
Some of the first components I built I attempted match closely to how they were built in Sketch, before I really had a grasp of the tool.
For example, I built each input type as a component with its own variants, which makes it difficult to manage from a design system level and more work for our users to find the component they need.
👎 How I built the text input components

👍 I would have built them as one component had I known better


Designers shouldn’t be encouraged to break components
One of the biggest mistakes I made was calling out which components designers could break. I had approached this from the mindset that they would still be linked to the library, and therefore it wasn’t a problem. Moving forward I would instead steer them to build local components to get the most out of slots, or encourage using the building blocks to build pages manually.
It’s not just about rebuilding the components in Figma - it’s also a mentality shift towards improved ways of working and collaboration
