← All work Case 01 / 05

The Citi Design System.

How I co-founded and built one shared design language for an over 200-year-old bank, and got 150+ designers across the world to actually use it.

Role

Sr. Product Designer
Co-founder

Team

3 designers, 1 PM,
5 engineers

Timeline

2022 – 2024

Adoption

150+ designers
40+ products

The problem

40+ products and 150+ designers with no shared system: inconsistent UI, duplicated code, slower shipping.

What I did

Co-founded the system: a cross-product audit, an atomic component library for web, iOS and Android, documentation, and biweekly design–engineering workshops, roadshows and office hours.

Impact

Adopted by 150+ designers and became the default starting point for new products. A later rebrand meant updating shared values, not hundreds of files.

CDS Library, the Citi Design System component board: buttons, forms, navigation, inputs, switches, dropdowns, and platform patterns
The brief

40 products, 40 dialects.

When I moved into a senior design role at Citi in 2022, there was no design system. There were design files, lots of them. Components that looked slightly different from team to team, buttons in four different shades of blue, spacing values that were more suggestion than rule. With 150+ designers working across web, iOS, and Android products, the inconsistency wasn't just aesthetic. It was slowing everyone down and creating developer debt.

I was one of the founding designers brought in to change that. No internal playbook, no prior art to follow, just a mandate to build something the whole organization would use.

I'll be honest: it was also my first design system, and the scope was overwhelming at first. But I knew that getting it right would matter for every designer and developer who came after us.

The approach

Learn it. Build it. Get people to use it.

Before I opened Figma, I studied the systems I admired: Atlassian, Shopify, IBM, Adobe. Then came the audit. I pulled screenshots from dozens of products across the organization: every modal, every form field, every error state. When I laid seven shades of warning yellow side by side, the case for the system made itself.

I used atomic design methodology and started with the most-used elements across our products, making sure every component was scalable across iOS, Web, and Android. Documentation grew alongside the components, not after them: usage guidelines, accessibility standards, and examples, all written as we went so adoption wouldn't depend on anyone figuring things out alone.

The decision I'm most proud of was getting engineering in the room from day one, not for review, but as working partners. I ran workshops every other week where designers and developers worked side by side. Components that look great in a design file but can't be implemented cleanly are just mockups. I wanted to build the real thing.

We launched with the smallest viable kit: typography, color, spacing, and ten core components. Then we shipped weekly. But the strategy wasn't just about what we shipped. It was about how we showed up. Training sessions and roadshows instead of announcements. Office hours every Friday. A Slack channel where any designer could ask anything without judgment.

I wanted people to feel like they helped build the system, not like it had been handed to them. That distinction mattered more than any component we designed.

The shift

From scattered to shared.

Before the system, every new product started from scratch. Designers rebuilt the same components every sprint. Engineers wrote the same code in five different ways.

After, teams started from a shared foundation. The conversation between designers and engineers changed from "this doesn't match what I have" to "can we extend this component to handle this edge case?" That shift, small as it sounds, was the whole point.

Fragmented UI before the design system, inconsistent inputs, cards, alerts and patterns across products
BeforeInputs, cards and alerts built differently by every team.
Citi mobile app built on the design system, Accounts screen with consistent components, spacing, and patterns
AfterOne shared kit: the Citi mobile app built on the system.
The outcome

Two years in, it became the default.

It became the starting point for every new product in the design org, and several teams outside it migrated voluntarily.

150+
Designers adopted the system organization-wide.
3
Platforms supported, web, iOS, and Android.
1
Source of truth for all of Citi's digital product design.

Beyond the numbers: designers stopped rebuilding from scratch, which meant faster shipping and more consistent products. Developer debt went down. And when Citi later went through a rebrand, refreshing the system meant updating shared values, not hunting through hundreds of individual files.

What I took with me

A system is a community, not a library.

What I learned is that the Figma file matters less than the people around it. I started this project thinking my job was to design components. I finished it understanding that the components were just the artifact. The real work was building enough trust that 150 people would change how they worked every day.