Designing a Scalable Design System from Scratch

How building a design system in parallel with feature development improved team efficiency, visual consistency, and long-term scalability across the new platform.

Scalable design system

MVP

MVP

Scalable design system

MVP

Scalable design system

Scalable design system

MVP

Designing a Scalable Design System from Scratch

How building a design system in parallel with feature development improved team efficiency, visual consistency, and long-term scalability across the new platform.

Scalable design system

MVP

MVP

Scalable design system

MVP

Scalable design system

Scalable design system

MVP

Designing a Scalable Design System from Scratch

How building a design system in parallel with feature development improved team efficiency, visual consistency, and long-term scalability across the new platform.

Scalable design system

MVP

MVP

Scalable design system

MVP

Scalable design system

Scalable design system

MVP

Designing a Scalable Design System from Scratch

How building a design system in parallel with feature development improved team efficiency, visual consistency, and long-term scalability across the new platform.

Scalable design system

MVP

MVP

Scalable design system

MVP

Scalable design system

Scalable design system

MVP

Role

Role
Role

Product Designer

Product Designer

Product Designer

Year

Year
Year

2024-25

2024-25

2024-25

My Impact

My Impact
My Impact

Component Library Rebuilt

Component Library Rebuilt

Component Library Rebuilt

Boosted UI Consistency

Boosted UI Consistency

Boosted UI Consistency

Enabled Rapid Scaling

Enabled Rapid Scaling

Enabled Rapid Scaling

Overview

Overview
Overview

With the platform undergoing a complete redesign, none of the earlier design system elements could be reused. The new visual language, UX patterns, and platform goals required an entirely fresh foundation. Recognizing this, I initiated and led the creation of a scalable design system built to meet our evolving product needs.

Though developer capacity limited full integration into Storybook, I continuously checked implementation using our preview app. I worked closely with the developers to align on spacing, layout, and token usage.

My goal was to create something flexible, visually rich, and easy for the team to adopt—even under MVP constraints.

With the platform undergoing a complete redesign, none of the earlier design system elements could be reused. The new visual language, UX patterns, and platform goals required an entirely fresh foundation. Recognizing this, I initiated and led the creation of a scalable design system built to meet our evolving product needs.

Though developer capacity limited full integration into Storybook, I continuously checked implementation using our preview app. I worked closely with the developers to align on spacing, layout, and token usage.

My goal was to create something flexible, visually rich, and easy for the team to adopt—even under MVP constraints.

With the platform undergoing a complete redesign, none of the earlier design system elements could be reused. The new visual language, UX patterns, and platform goals required an entirely fresh foundation. Recognizing this, I initiated and led the creation of a scalable design system built to meet our evolving product needs.

Though developer capacity limited full integration into Storybook, I continuously checked implementation using our preview app. I worked closely with the developers to align on spacing, layout, and token usage.

My goal was to create something flexible, visually rich, and easy for the team to adopt—even under MVP constraints.

Process

Process

Process

Figuring Out Where to Start

Figuring Out Where to Start
Figuring Out Where to Start

Building a design system from scratch can feel like a chicken-and-egg problem. Should we start with a fully defined UI kit, or begin designing screens and pull components out of them?

Instead of waiting for the perfect answer, taking the Google Material Design as the reference guide. I began by creating the base elements—colors, typography, spacing, buttons, and text fields—and applied them directly across designs. This helped me test how these foundational pieces scaled across pages, adjust them quickly, and feed improvements back into the system.

Building a design system from scratch can feel like a chicken-and-egg problem. Should we start with a fully defined UI kit, or begin designing screens and pull components out of them?

Instead of waiting for the perfect answer, taking the Google Material Design as the reference guide. I began by creating the base elements—colors, typography, spacing, buttons, and text fields—and applied them directly across designs. This helped me test how these foundational pieces scaled across pages, adjust them quickly, and feed improvements back into the system.

Building a design system from scratch can feel like a chicken-and-egg problem. Should we start with a fully defined UI kit, or begin designing screens and pull components out of them?

Instead of waiting for the perfect answer, taking the Google Material Design as the reference guide. I began by creating the base elements—colors, typography, spacing, buttons, and text fields—and applied them directly across designs. This helped me test how these foundational pieces scaled across pages, adjust them quickly, and feed improvements back into the system.

Problem
Problem
Problem

Color Palette Issues

Color Palette Issues
Color Palette Issues

The product had no structured color system. Brand colors were used as-is, without any supporting tints or shades. In addition, a single standard black was used for almost all text, with no typographic or tonal hierarchy

The product had no structured color system. Brand colors were used as-is, without any supporting tints or shades. In addition, a single standard black was used for almost all text, with no typographic or tonal hierarchy

The product had no structured color system. Brand colors were used as-is, without any supporting tints or shades. In addition, a single standard black was used for almost all text, with no typographic or tonal hierarchy

Problems Without a Hue-Based System

Problems Without a Hue-Based System


  • Inconsistent UI: Designers manually tweaked opacity or brightness to make colors fit, resulting in a disjointed look across the product.

  • Poor Visual Hierarchy: With no tonal variation, elements like primary buttons, cards, and disabled states lacked distinction.

  • Unscalable Components: Colors didn’t adapt well to different surfaces or use cases, especially in scenarios requiring contrast or accessibility.


  • Inconsistent UI: Designers manually tweaked opacity or brightness to make colors fit, resulting in a disjointed look across the product.

  • Poor Visual Hierarchy: With no tonal variation, elements like primary buttons, cards, and disabled states lacked distinction.

  • Unscalable Components: Colors didn’t adapt well to different surfaces or use cases, especially in scenarios requiring contrast or accessibility.

Inconsistent UI: Designers manually tweaked opacity or brightness to make colors fit, resulting in a disjointed look across the product.

  • Poor Visual Hierarchy: With no tonal variation, elements like primary buttons, cards, and disabled states lacked distinction.

  • Unscalable Components: Colors didn’t adapt well to different surfaces or use cases, especially in scenarios requiring contrast or accessibility.

Problems Without a
Hue-Based System


  • Inconsistent UI: Designers manually tweaked opacity or brightness to make colors fit, resulting in a disjointed look across the product.

  • Poor Visual Hierarchy: With no tonal variation, elements like primary buttons, cards, and disabled states lacked distinction.

  • Unscalable Components: Colors didn’t adapt well to different surfaces or use cases, especially in scenarios requiring contrast or accessibility.

Inconsistent UI: Designers manually tweaked opacity or brightness to make colors fit, resulting in a disjointed look across the product.

  • Poor Visual Hierarchy: With no tonal variation, elements like primary buttons, cards, and disabled states lacked distinction.

  • Unscalable Components: Colors didn’t adapt well to different surfaces or use cases, especially in scenarios requiring contrast or accessibility.

what i did

what i did
what i did

✦Introduced Color Tokens & Tints

Introduced Color Tokens & Tints
Introduced Color Tokens & Tints

Since we were working with an existing color pallet and didn’t plan to change it, I separated the customer and merchant color schemes and introduced a structured, token-based color system using multiple tints of our brand colors using tints.dev (Eg: Iris 100Iris 900) to ensure consistency and flexibility across the UI. This softened the visual experience, reduce harsh contrasts, and resulted in a more refined and trustworthy interface.

Since we were working with an existing color pallet and didn’t plan to change it, I separated the customer and merchant color schemes and introduced a structured, token-based color system using multiple tints of our brand colors using tints.dev (Eg: Iris 100Iris 900) to ensure consistency and flexibility across the UI. This softened the visual experience, reduce harsh contrasts, and resulted in a more refined and trustworthy interface.

Since we were working with an existing color pallet and didn’t plan to change it, I separated the customer and merchant color schemes and introduced a structured, token-based color system using multiple tints of our brand colors using tints.dev (Eg: Iris 100Iris 900) to ensure consistency and flexibility across the UI. This softened the visual experience, reduce harsh contrasts, and resulted in a more refined and trustworthy interface.

Neutral Pallet for Text

Neutral Pallet for Text

Added a neutral palette (grays) to the system, with multiple weights (Gray 100 to Gray 900). This gave us a solid base for:

  • Creating text hierarchies

  • Supporting backgrounds, borders, and surface elevations

  • Reducing visual noise by using color only when needed

  • Replaced the overuse of pure black text with neutral-based typography, improving readability, accessibility, and overall tone of the interface.

Added a neutral palette (grays) to the system, with multiple weights (Gray 100 to Gray 900). This gave us a solid base for:

  • Creating text hierarchies

  • Supporting backgrounds, borders, and surface elevations

  • Reducing visual noise by using color only when needed

  • Replaced the overuse of pure black text with neutral-based typography, improving readability, accessibility, and overall tone of the interface.

Neutral Pallet for Text

Added a neutral palette (grays) to the system, with multiple weights (Gray 100 to Gray 900). This gave us a solid base for:

  • Creating text hierarchies

  • Supporting backgrounds, borders, and surface elevations

  • Reducing visual noise by using color only when needed

  • Replaced the overuse of pure black text with neutral-based typography, improving readability, accessibility, and overall tone of the interface.

✦Typography System

✦Typography System

Standardized font sizes and weights to support visual hierarchy, readability, and scalability.

Standardized font sizes and weights to support visual hierarchy, readability, and scalability.

I simplified the system by removing Montserrat and standardizing on Inter—a modern, legible font with better responsiveness. I also created a new responsive type scale aligned to mobile-first design principles.

I simplified the system by removing Montserrat and standardizing on Inter—a modern, legible font with better responsiveness. I also created a new responsive type scale aligned to mobile-first design principles.

Contextual Guidance With Tool Tips

Standardized font sizes and weights to support visual hierarchy, readability, and scalability.

I simplified the system by removing Montserrat and standardizing on Inter—a modern, legible font with better responsiveness. I also created a new responsive type scale aligned to mobile-first design principles.

Typography & Contrast

Typography & Contrast
Typography & Contrast
Typography & Contrast
  • Improved contrast with the neutral grey background providing better depth

  • Varied text weights - notice how "New coupon!" stands out as the main message

  • Better readability through improved background contrast

  • Improved contrast with the neutral grey background providing better depth

  • Varied text weights - notice how "New coupon!" stands out as the main message

  • Better readability through improved background contrast

  • Improved contrast with the neutral grey background providing better depth

  • Varied text weights - notice how "New coupon!" stands out as the main message

  • Better readability through improved background contrast

✦ Buttons & States

Buttons & States

Buttons & States

Buttons & States

Created primary, secondary, and disabled button variants with clear hover, focus, and disabled states to support various interaction needs. I included an icon which helps to identify and understand the context for the user.

Created primary, secondary, and disabled button variants with clear hover, focus, and disabled states to support various interaction needs. I included an icon which helps to identify and understand the context for the user.

Created primary, secondary, and disabled button variants with clear hover, focus, and disabled states to support various interaction needs. I included an icon which helps to identify and understand the context for the user.

Accessibility Improvement

Accessibility Improvement

Updated button colors from failing contrast ratio to WCAG-compliant high contrast , ensuring text readability meets accessibility standards for all users.

Updated button colors from failing contrast ratio to WCAG-compliant high contrast , ensuring text readability meets accessibility standards for all users.

Updated button colors from failing contrast ratio to WCAG-compliant high contrast , ensuring text readability meets accessibility standards for all users.

✦ Text Fields & Inputs

Text Fields & Inputs

Text Fields & Inputs

✦ Text Fields & Inputs

Defined text box styles with consistent corner radius, spacing, focus states, and validations—establishing a frictionless form interaction experience.

Defined text box styles with consistent corner radius, spacing, focus states, and validations—establishing a frictionless form interaction experience.

Defined text box styles with consistent corner radius, spacing, focus states, and validations—establishing a frictionless form interaction experience.

✦ Toasts and Tool tips

Toasts and Tool tips

Toasts and Tool tips

✦ Toasts and Tool tips

Implemented contextual tooltips triggered on hover or tap to guide users in unfamiliar flows without overwhelming them. Also introduced a guided tour pattern to walk users through newly launched features, improving onboarding and feature discovery.

Implemented contextual tooltips triggered on hover or tap to guide users in unfamiliar flows without overwhelming them. Also introduced a guided tour pattern to walk users through newly launched features, improving onboarding and feature discovery.

Implemented contextual tooltips triggered on hover or tap to guide users in unfamiliar flows without overwhelming them. Also introduced a guided tour pattern to walk users through newly launched features, improving onboarding and feature discovery.

✦ Feature-Specific Components

Feature-Specific Components

✦ Feature-Specific Components

Grouped unique UI elements used in core product features (like explore cards, stamp cards, QR interactions, etc.) into their own library sections for clarity.

Grouped unique UI elements used in core product features (like explore cards, stamp cards, QR interactions, etc.) into their own library sections for clarity.

Handover

Handover

To ensure smooth collaboration with developers, I created detailed handover documentation for each component in the design system.

To ensure smooth collaboration with developers, I created detailed handover documentation for each component in the design system.

Building in Parallel


Building in Parallel

The UI and design system evolved side-by-side, informing each other.

  • Components were created as needed, not invented in isolation.

  • Screens became validation points for consistency and reusability.

  • I kept the system simple and clear and focused on what was practically used.

This kept the system grounded in real use cases, and helped avoid subjective debates about visuals by anchoring discussions in usability and consistency.

The UI and design system evolved side-by-side, informing each other.

  • Components were created as needed, not invented in isolation.

  • Screens became validation points for consistency and reusability.

  • I kept the system simple and clear and focused on what was practically used.

This kept the system grounded in real use cases, and helped avoid subjective debates about visuals by anchoring discussions in usability and consistency.

The UI and design system evolved side-by-side, informing each other.

  • Components were created as needed, not invented in isolation.

  • Screens became validation points for consistency and reusability.

  • I kept the system simple and clear and focused on what was practically used.

This kept the system grounded in real use cases, and helped avoid subjective debates about visuals by anchoring discussions in usability and consistency.

Outcome & Learnings

Outcome & Learnings

Although Storybook implementation was postponed due to limited dev resources, the design system served as a core collaboration

  • My proactive communication with developers helped minimize inconsistencies and reduce bugs.

  • Adding validation elements like banners and toasts significantly improved UX.

  • The visual richness achieved with subtle tints, shadows, and spacing elevated the app's perceived quality.

  • Creating the system in parallel with feature design enabled faster delivery and consistency throughout the product.

Although Storybook implementation was postponed due to limited dev resources, the design system served as a core collaboration

  • My proactive communication with developers helped minimize inconsistencies and reduce bugs.

  • Adding validation elements like banners and toasts significantly improved UX.

  • The visual richness achieved with subtle tints, shadows, and spacing elevated the app's perceived quality.

  • Creating the system in parallel with feature design enabled faster delivery and consistency throughout the product.

Although Storybook implementation was postponed due to limited dev resources, the design system served as a core collaboration

  • My proactive communication with developers helped minimize inconsistencies and reduce bugs.

  • Adding validation elements like banners and toasts significantly improved UX.

  • The visual richness achieved with subtle tints, shadows, and spacing elevated the app's perceived quality.

  • Creating the system in parallel with feature design enabled faster delivery and consistency throughout the product.

©ramya bandaru

©ramya bandaru

©ramya bandaru

©ramya bandaru