Design system
Avengers Design System 1.0
Avengers Design System 1.0
In our daily work, the design team often faces a problem where we don't have a main reference for components to rely on. This causes designers to have to communicate about each and every component on how to build them, which creates more tasks and more time spent. That is why we are trying to revamp the design system.
In our daily work, the design team often faces a problem where we don't have a main reference for components to rely on. This causes designers to have to communicate about each and every component on how to build them, which creates more tasks and more time spent. That is why we are trying to revamp the design system.


Overview
Overview
My Role
My Role
Explored competitor research, benchmarking other design systems to inform our structure and approach.
Defined token architecture and naming conventions for colors
Built 10+ main components in Figma, covering anatomy, variants, and states.
Wrote usage guidelines and documentation for each component.
Supported developer handoff, helping the team understand how to implement components without hardcoding.
Explored competitor research, benchmarking other design systems to inform our structure and approach.
Defined token architecture and naming conventions for colors
Built 10+ main components in Figma, covering anatomy, variants, and states.
Wrote usage guidelines and documentation for each component.
Supported developer handoff, helping the team understand how to implement components without hardcoding.
Timeline
Timeline
Feb - April 2025
Feb - April 2025
Team
Team
Asama P.
Thongthod K.
Rawisara L.
Asama P.
Thongthod K.
Rawisara L.
UX/UI Lead
UX/UI Designer
UI Associate (Me)
UX/UI Lead
UX/UI Designer
UI Associate (Me)
Tools
Tools
Figma, Figjam
Figma, Figjam
Before & After
Before & After
Before
Before
Without a design system, every new feature started from zero. Designers had no shared reference to rely on, so each screen was built from scratch with different patterns, colors, and components, even for the same UI element. For developers, translating these designs into code meant constant back-and-forth, taking more time for every team.
Without a design system, every new feature started from zero. Designers had no shared reference to rely on, so each screen was built from scratch with different patterns, colors, and components, even for the same UI element. For developers, translating these designs into code meant constant back-and-forth, taking more time for every team.
After
After
With a shared token and component library in place, the team finally had a foundation to build on. Designers could pick up any new feature with confidence. Development became faster because components were already defined and consistent across the board. And when the brand needed to evolve or a component needed updating, one change in the system cascaded everywhere automatically, no more manual fixes screen by screen.
With a shared token and component library in place, the team finally had a foundation to build on. Designers could pick up any new feature with confidence. Development became faster because components were already defined and consistent across the board. And when the brand needed to evolve or a component needed updating, one change in the system cascaded everywhere automatically, no more manual fixes screen by screen.
Impact
Impact
When design is consistent, everyone benefits. Developers ship faster with reusable components, product and QA move with better alignment, and the business benefits from a consistent product. Most importantly, end users get an experience that feels coherent and predictable, making Salary Hero easier to navigate and trust.
When design is consistent, everyone benefits. Developers ship faster with reusable components, product and QA move with better alignment, and the business benefits from a consistent product. Most importantly, end users get an experience that feels coherent and predictable, making Salary Hero easier to navigate and trust.
Developers
Developers 😎
😎
Faster development
Consistency in code
Less communication overhead
Faster development
Consistency in code
Less communication overhead
Product
Product 👩💼
👩💼
Better alignment across features
Improved decision making
Faster time to market
Better alignment across features
Improved decision making
Faster time to market
QA Teams
QA Teams 🕵️♂️
🕵️♂️
Fewer bugs
Consistent testing criteria
Fewer bugs
Consistent testing criteria
Branding
Branding 🏢
🏢
Brand consistency
Faster campaign execution
Brand consistency
Faster campaign execution
Business
Business 💼
💼
Cost efficiency
Scalability as the product grows
Stronger brand recognition
Cost efficiency
Scalability as the product grows
Stronger brand recognition
End Users
End Users 👤
👤
Consistent experience
More intuitive and predictable interactions
Consistent experience
More intuitive and predictable interactions
Design Process
Design Process
Why we built
Why we built
While working on the product, we kept running into the same problem. There was no shared standard for designers to work from, which meant we constantly had to check in with each other just to make sure our designs were aligned. Small decisions like which color to use, what spacing to apply, or how a button should look were being made differently by different people on the team.
The more we dug into it, the more we realized this wasn't just a designer problem. Developers had to interpret inconsistent designs and fill in the gaps on their own. QA had no clear baseline to test against. New team members took longer to get up to speed because there was nothing to reference. The lack of a shared system was creating friction across the entire team, and we knew a design system was the right way to fix it.
While working on the product, we kept running into the same problem. There was no shared standard for designers to work from, which meant we constantly had to check in with each other just to make sure our designs were aligned. Small decisions like which color to use, what spacing to apply, or how a button should look were being made differently by different people on the team.
The more we dug into it, the more we realized this wasn't just a designer problem. Developers had to interpret inconsistent designs and fill in the gaps on their own. QA had no clear baseline to test against. New team members took longer to get up to speed because there was nothing to reference. The lack of a shared system was creating friction across the entire team, and we knew a design system was the right way to fix it.
Consistency and Governance
Consistency and Governance 🕴️
🕴️
Ensures uniformity across all products with standardized design components and clear governance rules.
Ensures uniformity across all products with standardized design components and clear governance rules.
Faster
Onboarding
Faster
Onboarding 🧑💻️
Faster Onboarding 🧑💻️
🧑💻️
New team members quickly understand design principles, components, and coding standards by referencing the system.
New team members quickly understand design principles, components, and coding standards by referencing the system.
Improved Collaboration
Improved Collaboration 👬👬
👬👬
Smoother communication when everyone refers to the same components and guidelines.
Smoother communication when everyone refers to the same components and guidelines.
Easier Maintenance
& Updates
Easier Maintenance
& Updates 🚧
🚧
Update components systematically without missing details or creating inconsistencies.
Update components systematically without missing details or creating inconsistencies.
Efficiency in Design
& Development
Efficiency in Design
& Development 📱
📱
Reusable pre-built components speed up the process and reduce bugs and misalignments.
Reusable pre-built components speed up the process and reduce bugs and misalignments.
Planing
Planing
The project ran from February to May. We spent the first month planning and researching the right approach, then moved into building tokens and components in March. On 25th April we published the first version, and May was dedicated to working with developers on integrating the system into production.
The project ran from February to May. We spent the first month planning and researching the right approach, then moved into building tokens and components in March. On 25th April we published the first version, and May was dedicated to working with developers on integrating the system into production.

Exploration
Exploration
Before jumping into building, we took time to explore what the best approach to a design system would look like for Salary Hero. That's when we discovered atomic design, a methodology that structures everything from the smallest elements like colors and typography, all the way up to full page templates. It gave us a clear mental model for how to build in a way that's consistent and scalable.
We also looked outward, studying some of the most well-regarded design systems in the industry to understand what good actually looks like in practice. Uber's Base and LINE stood out as strong references.
Before jumping into building, we took time to explore what the best approach to a design system would look like for Salary Hero. That's when we discovered atomic design, a methodology that structures everything from the smallest elements like colors and typography, all the way up to full page templates. It gave us a clear mental model for how to build in a way that's consistent and scalable.
We also looked outward, studying some of the most well-regarded design systems in the industry to understand what good actually looks like in practice. Uber's Base and LINE stood out as strong references.
From Uber's Base system
From Uber's Base system
Uber gave us a strong foundation to reference. Their atoms-to-templates hierarchy confirmed we were structuring things the right way. We adopted their approach to token naming : clear and scalable and used their component documentation style as the benchmark for our own, covering anatomy, variants, states, and specs in one place.
Uber gave us a strong foundation to reference. Their atoms-to-templates hierarchy confirmed we were structuring things the right way. We adopted their approach to token naming : clear and scalable and used their component documentation style as the benchmark for our own, covering anatomy, variants, states, and specs in one place.


From LINE
From LINE
LINE reinforced our color token decisions. Seeing how they organized colors into primary, secondary, and semantic layers gave us confidence in our own structure. It also echoed what we'd already taken from Uber, which told us we were heading in the right direction.
LINE reinforced our color token decisions. Seeing how they organized colors into primary, secondary, and semantic layers gave us confidence in our own structure. It also echoed what we'd already taken from Uber, which told us we were heading in the right direction.


Solution
Solution
Atomic Design
Atomic Design
Atomic design gave us a clear, logical structure to build from, starting with the smallest building blocks and scaling up layer by layer into full page templates. Rather than designing screens in isolation, we could now build a system where every decision connects back to a shared foundation.
We structured the system into four layers.
After exploring different approaches, atomic design stood out as the right methodology for Salary Hero. It gave us a clear, logical structure to build from, starting with the smallest building blocks and scaling up layer by layer into full page templates. Rather than designing screens in isolation, we could now build a system where every decision connects back to a shared foundation.
We structured the system into four layers.
Atoms
Atoms
The smallest building blocks of the system. Foundational values like colors, typography, spacing, shadows, and icons, all defined as tokens so they can be reused and updated consistently across the entire product.
The smallest building blocks of the system. Foundational values like colors, typography, spacing, shadows, and icons, all defined as tokens so they can be reused and updated consistently across the entire product.
Components
Components
Functional UI pieces built by combining atoms. A text field, a button, a dropdown. Each component is documented with its anatomy, variants, states, and specs so designers and developers are always working from the same definition.
Functional UI pieces built by combining atoms. A text field, a button, a dropdown. Each component is documented with its anatomy, variants, states, and specs so designers and developers are always working from the same definition.
Patterns
Patterns
Reusable combinations of components that solve common user flows. The employee login screen below is a good example, two input fields and a button working together as a single repeatable pattern, removing the need to redesign the same flow from scratch every time.
Reusable combinations of components that solve common user flows. The employee login screen below is a good example, two input fields and a button working together as a single repeatable pattern, removing the need to redesign the same flow from scratch every time.
Templates
Templates
The outermost layer, where patterns and components come together into full page structures. Templates define the layout and hierarchy of each screen, ensuring every part of the Salary Hero app feels like it belongs to the same product.
The outermost layer, where patterns and components come together into full page structures. Templates define the layout and hierarchy of each screen, ensuring every part of the Salary Hero app feels like it belongs to the same product.


Tokenization
Atomic design gave us the structure, but tokens are what make it truly scalable. Every visual value, from colors and spacing to typography and border radius, is defined once and referenced everywhere. We are able to update a single token and it cascades across the entire product automatically.
Atomic design gave us the structure, but tokens are what make it truly scalable. Every visual value, from colors and spacing to typography and border radius, is defined once and referenced everywhere. We are able to update a single token and it cascades across the entire product automatically.
Colors
Colors
Every color in the product is defined as a token with a specific hex code, organized into primary, secondary, and semantic layers. Updating a color token automatically updates it across every component and screen that uses it.
Every color in the product is defined as a token with a specific hex code, organized into primary, secondary, and semantic layers. Updating a color token automatically updates it across every component and screen that uses it.
Typography
Typography
Text sizes are defined on a consistent scale so nothing feels inconsistent. Each token maps to a specific use case, from display headings down to captions, keeping the hierarchy clear and readable across the app.
Text sizes are defined on a consistent scale so nothing feels inconsistent. Each token maps to a specific use case, from display headings down to captions, keeping the hierarchy clear and readable across the app.
Spacing and sizing
Spacing and sizing
We used a 4-point grid system as the foundation for all spacing and component sizing. Every margin, padding, and element size is a multiple of 4, which keeps layouts consistent and makes it easier for developers to implement without guessing.
We used a 4-point grid system as the foundation for all spacing and component sizing. Every margin, padding, and element size is a multiple of 4, which keeps layouts consistent and makes it easier for developers to implement without guessing.
Copywriting
Copywriting
We documented all UI copy as part of the system. Every label, button text, error message, and placeholder is recorded in one place. This makes it easy to maintain consistent tone across the product and straightforward to switch between languages when needed.
We documented all UI copy as part of the system. Every label, button text, error message, and placeholder is recorded in one place. This makes it easy to maintain consistent tone across the product and straightforward to switch between languages when needed.


Guideline
Guideline
We wrote detailed guidelines covering component anatomy, usage rules, tokenization standards, date and number formatting, and a copywriting guide with a shared glossary. Everything a designer or developer needs to work with the system independently, without having to ask.
As we built each component, the team discussed the use cases together to make sure everyone understood not just how it looks but when and why to use it. For developers coming into the Figma file, the guidelines serve as a clear reference so nothing gets lost in translation.
We wrote detailed guidelines covering component anatomy, usage rules, tokenization standards, date and number formatting, and a copywriting guide with a shared glossary. Everything a designer or developer needs to work with the system independently, without having to ask.
As we built each component, the team discussed the use cases together to make sure everyone understood not just how it looks but when and why to use it. For developers coming into the Figma file, the guidelines serve as a clear reference so nothing gets lost in translation.


Results
Results
Atoms
Atoms
These are the atoms we built as the foundation of the system. Typography, colors, icons, spacing, shadows, image ratios, and logo usage. Getting these right first meant everything built on top would naturally stay consistent.
These are the atoms we built as the foundation of the system. Typography, colors, icons, spacing, shadows, image ratios, and logo usage. Getting these right first meant everything built on top would naturally stay consistent.














Components
Components
These are the components we built on top of the atom foundation. Buttons, dropdowns, input fields, navigation, badges, tables, toast notifications, and more. The more complex ones come with detailed guidelines covering anatomy, variants, and usage rules. Still growing.
These are the components we built on top of the atom foundation. Buttons, dropdowns, input fields, navigation, badges, tables, toast notifications, and more. The more complex ones come with detailed guidelines covering anatomy, variants, and usage rules. Still growing.


Patterns & Templates
Patterns & Templates
Patterns and templates are where everything comes together. Some patterns we kept in the working product files since that is where we actually build the features. For templates we made a separate page so it is easy to find and reference when we need it. Every screen here is built from the same components and tokens underneath.
Patterns and templates are where everything comes together. Some patterns we kept in the working product files since that is where we actually build the features. For templates we made a separate page so it is easy to find and reference when we need it. Every screen here is built from the same components and tokens underneath.


Hand-off & Implementation
Hand-off & Implementation
To keep everyone in the loop, we announce design system updates on the 25th of every month. The announcement covers what changed, what is new, and anything the team needs to know before using the latest version.
We also set up a clear update process. The design team makes the changes, stakeholders including the design lead, product manager, and frontend lead sign off, and then we publish the updated library and post in the group chat. If needed, we also present the new designs to other stakeholders before publishing.
So far we have built 702 components in total and more are on the way.
To keep everyone in the loop, we announce design system updates on the 25th of every month. The announcement covers what changed, what is new, and anything the team needs to know before using the latest version.
We also set up a clear update process. The design team makes the changes, stakeholders including the design lead, product manager, and frontend lead sign off, and then we publish the updated library and post in the group chat. If needed, we also present the new designs to other stakeholders before publishing.
So far we have built 702 components in total and more are on the way.






Reflections
Reflections
This was one of my very first projects after moving from the admin team into the product design team. Honestly I had no idea what anyone was talking about at the start. Design systems, tokens, atomic design, it was all new to me. Figma was also still new to me at the time, so I was learning everything on the job, from how variables and tokenization work, to building nested components, setting up auto layout, and working with the 4 point grid system. Looking back this project taught me more about design and Figma than anything else. It is where I really started to grow as a designer.
This was one of my very first projects after moving from the admin team into the product design team. Honestly I had no idea what anyone was talking about at the start. Design systems, tokens, atomic design, it was all new to me. Figma was also still new to me at the time, so I was learning everything on the job, from how variables and tokenization work, to building nested components, setting up auto layout, and working with the 4 point grid system. Looking back this project taught me more about design and Figma than anything else. It is where I really started to grow as a designer.
Learning
Learning
Looking back now there are things I wish we had done differently. These are the lessons that stuck with me the most.
Looking back now there are things I wish we had done differently. These are the lessons that stuck with me the most.
Prioritize one platform first
Prioritize one platform first
Building mobile and console at the same time was too ambitious. Starting with one platform would have made adoption much more realistic.
Building mobile and console at the same time was too ambitious. Starting with one platform would have made adoption much more realistic.
Involve developers early
Involve developers early
We should have talked to developers before we started building. Understanding the technical constraints earlier would have saved a lot of time.
We should have talked to developers before we started building. Understanding the technical constraints earlier would have saved a lot of time.
Focus on quick wins
Focus on quick wins
Prioritizing the most used or most painful components first would have built momentum and shown the value of the system much sooner.
Prioritizing the most used or most painful components first would have built momentum and shown the value of the system much sooner.
What's next
When the project resumes, the plan is to tackle console components as the next phase, starting with the highest-impact pieces rather than trying to cover everything at once.
Focus on console components
Focus on console components
The mobile side is more established so the next priority is bringing the same consistency to the console. This means building and documenting components that work within the console's existing setup including its dependency on Ant Design.
The mobile side is more established so the next priority is bringing the same consistency to the console. This means building and documenting components that work within the console's existing setup including its dependency on Ant Design.
Make sure components are actually being used
Make sure components are actually being used
We want to set up regular check ins with the developer team to make sure they are using the components we built rather than hardcoding their own solutions. We also want to agree on a clear timeline together for when and how each component will be implemented in production, so adoption happens in a structured way instead of being left open ended.
We want to set up regular check ins with the developer team to make sure they are using the components we built rather than hardcoding their own solutions. We also want to agree on a clear timeline together for when and how each component will be implemented in production, so adoption happens in a structured way instead of being left open ended.
Keep maintaining and updating the system as the product grows
Keep maintaining and updating the system as the product grows
A design system is never really finished. As Salary Hero adds new features and evolves, the system needs to grow with it. This means regular updates, clear announcements, and making sure the team always has something reliable to build from.