Skip to content
Syed Uzair Altaf, home

Case study · Design systems

Building Mango: a Design System for Enterprise Commerce

Designed, built and governed end-to-end as the sole designer — from benchmarking five industry design systems to shipping 40 published components (150+ variations), a responsive token architecture and reusable patterns used across an enterprise commerce suite.
  • Research
  • Foundations
  • Components
  • Patterns
  • Governance
A collage of Mango components: dark navigation rail, breadcrumb, avatar group, stepper, tabs, a blue Design System tile, badges, file upload, slider, tree view, buttons and a list
Role
Lead UX Designer · sole designer
Partners
Product, architecture & engineering
Output
40 components · 150+ variations

Overview

Mango was built for an enterprise, omni-channel commerce platform used by large businesses to manage catalogs, pricing, promotions, content and stores. Its legacy tooling had grown screen by screen — inconsistent patterns, duplicated components and no shared visual language between design and engineering.

Mango is the design system I created to fix that at the root: one source of truth for foundations, components and patterns, built to be accessible by default and to scale with every new commerce module.

Why a Design System?

Before designing a single component, I aligned stakeholders on the outcomes the system had to deliver.

  • Speeds up development

    Faster builds, reusable components and quicker releases.
  • Visual & functional consistency

    A unified look, predictable UX and shared standards across every tool.
  • Less design & engineering rework

    Fewer errors, less duplication and teams aligned on one source of truth.
  • Scalable experiences

    Flexible, extensible and future-ready for new modules and business models.

My Role

As Lead UX Designer, I was the only designer on the system — accountable for its strategy, craft and adoption.

  1. Sole Designer & System Owner

    Conceived, designed and maintained Mango single-handedly, partnering with product managers, architects and engineering leads.
  2. Research & Benchmarking

    Evaluated Material UI, Carbon, Atlassian, Garden and an internal enterprise design system across seven parameters to choose the right foundation.
  3. Foundations → Components → Patterns

    Built the token architecture, typography, color, 40 components and reusable product patterns in Figma.
  4. Governance & Engineering Handoff

    Defined the 5-step contribution and validation process — every engineering handoff requires Design Lead approval.

What I Explored

Rather than reinvent the wheel, I benchmarked five mature design systems against seven parameters before committing to a foundation.

  • Material UI

    Google

  • Carbon

    IBM

  • Atlassian DS

    Atlassian

  • Garden

    Zendesk

  • Internal DS

    Enterprise CoE

Compared on

  • Component libraries
  • Principles
  • Responsiveness
  • Accessibility
  • Documentation
  • Customization
  • Drawbacks
Decision
A Material-based foundation, extended for enterprise commerce — proven component coverage and accessibility patterns, adapted to our brand, information density and data-heavy workflows.

The north star

Three Pillars Behind Every Decision

Before a single token or component existed, I defined three principles. Every decision in Mango is checked against them — and each one is tied to a measurable outcome.

  • Pillar 01

    Consistency

    Visual and behavioural consistency across every tool.

    In practice

    • One token set and one component API for every module
    • A shared UI Shell and patterns, so tasks look and work the same everywhere

    80–90%

    tool consistency

  • Pillar 02

    Accessibility

    We design for everyone.

    In practice

    • WCAG 2.1 AA as the minimum bar — AAA where it matters
    • Contrast tuned into the colour scale, not checked afterwards

    AA → AAA

    all audited components pass

  • Pillar 03

    Efficiency

    Teams build faster and smarter.

    In practice

    • Configure, don’t detach — properties, slots and variable modes
    • Ready-made patterns for recurring commerce workflows

    40%

    faster development

A Three-Fold Framework

With the pillars set, I organised Mango into three layers that build on each other — from raw styles, to reusable components, to complete product patterns.

  1. Style Guide

    Foundational styles — typography, color, spacing, radius, elevation — expressed as tokens.

  2. Component Library

    40 reusable UI components with 150+ variations, built on the style guide.

  3. Patterns

    Repeatable UX solutions — forms, filters, modals, translation, empty states, error messages.

Foundations · Systematic & Scalable

A token architecture built to scale

Every visual decision lives in a variable — not in a component. Primitive tokens hold raw values (Mango Blue 500 = #2E6BFF); component tokens such as Button/Primary/Default/fill point to them; components consume only component tokens.

Change one primitive and every screen updates — the foundation for future theming and brand variations.

Mango Blue scale — each swatch below is bound to the live variable

  • Blue25

    #EFF5FF

  • Blue50

    #DAE6FF

  • Blue100

    #BFD5FF

  • Blue200

    #A2C1FF

  • Blue300

    #89B0FF

  • Blue400

    #6495FF

  • Blue500

    #2E6BFF

  • Blue600

    #1052FF

  • Blue700

    #0034CD

  • Blue800

    #002495

  • Blue900

    #00176E

  • 212

    foundation variables

  • 239

    component-level tokens

  • 3

    modes · Desktop / iPad / Mobile

  • 17

    text styles

  • 11

    elevation styles

Token values per variable mode
TokenDesktopiPadMobile
Typography/Size/H1969660
Typography/Size/H2606032
Typography/Size/H3484828
Typography/Size/H4343424
Padding/Size/s101616
Corner Radius/xxl483232

One variable, three modes: type scale, padding and radius are defined once and resolve per breakpoint — Desktop, iPad or Mobile — instead of maintaining separate mobile components.

Components Built to Flex

40 published components and 150+ variations — each built with auto-layout, variable bindings and a property API designed for real product scenarios, not just the happy path.

Variant properties · Instance swap · Booleans

Button — 144 variants, one clean API

Four variant properties — Variant (Primary, Secondary, Ghost, Icon-only), State (5), Size (2) and Type (Default, Error, Alert, Success, Black) — plus boolean toggles for icons and badge, instance-swap icons and an editable label.

Designers configure instead of detaching, and every state is already token-bound and accessible.

Native slots · 3 types × 5 states × 3 sizes

Cards — any content, zero detaching

45 variants built around native Figma slots. Product teams drop in images, metadata, lists or actions while the card keeps its spacing, borders and interaction states.

The same component powers catalog tiles, dashboards and asset libraries.

Boolean configuration · Auto-layout

Data tables & filters for enterprise-scale data

The Filter Bar exposes 7 boolean properties (search, filters, selected chips, columns, actions…) and table cells expose 10 — so one component adapts from a simple list to a dense, filterable grid.

Auto-layout keeps columns, chips and actions aligned at any width.

Library at a glance

40 components · 150+ variations · ongoing enhancement

  • Typography
  • Color Palette
  • Accordion
  • Avatars
  • Badges
  • Breadcrumbs
  • Buttons
  • Split Buttons
  • Chips
  • Cards
  • Comments
  • Date Picker
  • Dividers
  • Empty States
  • FAB
  • File Upload
  • Graphs
  • Header
  • Lists
  • Menus
  • Modals
  • Multi Select
  • Pagination
  • Progress Indicator
  • Selection Controls
  • Scrollbar
  • Side Drawer
  • Sliders
  • Snackbars
  • Stepper
  • Tabs
  • Table + Filter
  • Text Fields
  • Toggle Switch
  • Tooltips
  • Translate
  • Tree Structure
  • UI Shell
  • Banners
  • Flags

How Every Component Is Built

Scale doesn’t come from the number of components — it comes from how each one is constructed. Every Mango component follows the same anatomy.

  1. Auto-layout everywhere

    Buttons hug their label; fields and cards fill their container. Copy can grow or translate without breaking spacing.

  2. Token-bound spacing

    Padding, gap, height, radius and fill are bound to variables — never typed by hand. Padding Y even adapts per breakpoint.

  3. One properties panel

    Variant, boolean, instance-swap and text properties turn 144 variants into one component designers configure, not detach.

Native slots

Open where it matters, locked where it counts

The card’s shell — padding, border, header and actions — stays locked to tokens, while the slot accepts any content. Same Cards component, different content, nothing detached.

Variable modes

One component, every breakpoint

Text styles and spacing are bound to variables with Desktop, iPad and Mobile modes. These three frames use the exact same styles — only the mode changes.

Text style sizes per mode
StyleDesktopiPadMobile
H19696
H26060
H34848
H43434
H52424

Reusable Patterns

Components solve UI problems; patterns solve product problems. I documented recurring commerce workflows as ready-to-use patterns, so every module handles them the same way.

Pattern · Localization

Multi-language input

Enterprise catalogs serve many regions. The Translate pattern lets admins choose languages and edit every translatable field in a side drawer — rich text, validation and per-language collapse included — without leaving the record.

Built from Side Drawer, Accordion, Text Field and Rich Text Editor components.

Pattern · Navigation

UI Shell & navigation

One shell for every module: a collapsible primary rail, expanded menus for Business Tools and Administration, a tertiary nav for deep sections and a global top bar for workspace, store preview and user menu.

Users never relearn where things live — and new modules plug into the shell instead of inventing their own navigation.

Also documented:

  • Filters & bulk actions
  • File upload & scheduling
  • Delete confirmation
  • Snackbar messaging
  • Channel association
  • Onboarding guide
  • Login
  • Landing page & card grid

Accessibility, Verified

Every major component was checked against WCAG 2.1 AA contrast standards using Figma plugins and industry tools — covering text, icons and backgrounds.

  • UI Shell

    15.4:1

    WCAG AAA

  • Button

    4.53:1

  • FAB

    4.53:1

  • Success banner

    13.53:1

    WCAG AAA

  • Warning

    4.64:1

  • Chip label

    9.93:1

    WCAG AAA

  • Tree

    21.1:1

    WCAG AAA

  • Tooltip

    15.41:1

    WCAG AAA

  • Text field label

    11.73:1

    WCAG AAA

  • Menu item

    21.1:1

    WCAG AAA

  • Info banner

    14.23:1

    WCAG AAA

  • Delete action

    4.59:1

Contrast built into the palette

The Mango scale was tuned for a deliberate contrast progression: Blue 500 on white scores WCAG 4.5:1 (AA) and APCA 77 — rated best for text — so the primary brand colour is safe for buttons and links by default.

A 5-Step Contribution Process

To keep the system healthy as more teams adopted it, I set up a lightweight governance loop from request to release.

  1. Step 1

    Initiate

    New need identified; set up in Figma for reuse across the design team and planned for responsive behaviour.

  2. Step 2

    Design

    Reusable component, pattern or style-guide update designed and documented, ready for engineering handoff.

  3. Step 3

    Build

    Engineering replicates the component, pattern or style in the coded library.

  4. Step 4

    Validate

    Three rounds of validation — UX Lead, then Testing team, then Dev team.

  5. Step 5

    Evolve

    New requests reviewed jointly by Engineering & Design — and the loop starts again.

What We Achieved

Outcomes reported by the product and engineering teams after adopting Mango.

  • 40%

    faster development

    Shared components

  • 60%

    code reuse

    Common component library

  • 80–90%

    tool consistency

    Across the tool suite

  • 50–70%

    smoother handoff

    Synced design & code

  • Accessibility

    Minimum AA · AAA in selected areas

  • Theming / branding time

    70–90% faster with centralised control

  • Style maintenance

    50–60% less effort thanks to shared styles

  • Component testing time

    30–40% improvement

  • New developer onboarding

    30–50% quicker with ready UI blocks

  • Runtime performance

    10–20% faster with optimised components

  • UX/UI efficiency

    80–90% improvement in design time

  • Scalability

    Easier to scale across teams & features

  • Design handoff

    Single source of truth for design & code

Figures are team-reported estimates gathered after adoption.

Reflection

Building Mango as the only designer meant being researcher, system architect, advocate and gatekeeper at once. The biggest lesson: a design system is a product, not a file — it succeeds through governance, documentation and trust with engineering as much as through pixels.

What’s next — continued component enhancement and an AI-readiness audit of the library to support design-to-code tooling.

Thank you

Next case study

Designing with AI

AI agents as a force multiplier for design.

Read case study
Subscriptions overview dashboard built with an AI agent from the team's design system, shown in a device frame