Back to Projects

With a bucket of Lego, you can tell any great story.

A 3-part case study on building a scalable design system foundation starting with audit, tokens, and core components so product teams can move faster without sacrificing quality.

My Role: Senior Product Designer (Design Systems)
Scope: Audit • Tokens • Components • Docs • Governance
Team: 1 Designer (me) • 2 UX Engineers
25-30% Faster release velocity (est.)
70+ Engineers supported
WCAG Baseline AA-ready patterns
Tokens Semantic-first foundation

Synopsis

Design systems are only useful if they reduce friction for teams. This work focused on building the “boring” foundations (audit, tokens, components, and docs) so teams can ship consistently and so future parts of the story can scale without rework.


Thrive screens overview

3 part story

This case study is written as a trilogy: build the foundation, scale it across teams, then mature it with accessibility and localization readiness.

Part 1 Published

Foundations

Audit → token architecture → core components → docs & governance baseline.

Jump to Part 1
Part 2 Coming soon

Scaling & Evolving

Adoption strategy, migration playbooks, and integrating with product workflows.

Jump to Part 2
Part 3 Coming soon

Accessibility & Localization

WCAG patterns, content guidelines, and i18n/RTL-ready components & tokens.

Jump to Part 3

Part 1: Foundations

Too many lego pieces

For the most part, every Lego piece connects to every other Lego piece. There is no silo of green pieces that refuse to connect with the blues. Yellow pieces aren’t busy trying to establish their own kingdom. Larger Lego pieces don’t take over meetings or require more attention. All Lego pieces work together toward a common and unified goal. While that seems like a good idea; being able to interchange and combine any Lego pieces, the output would not be ideal. It can be mismatched and oftentimes, it could be a messy process.

Here are the problems that were happening in our kingdom: low usage in reusable components, unclear guidelines within the documentation, and the majority of the components did not meet accessibility standards.

My Role

I owned the end-to-end foundation work, from discovery and audit through token decisions, component patterns, and documentation scaffolding.

Key responsibilities included:

  • 🔍 System Audit & UX Diagnosis - Conducted a cross-platform audit of 100+ screens to identify redundant patterns, design gaps, and accessibility violations.
  • 🧱 Foundation Design & Token Definition - Established base design tokens for color, typography, spacing, and elevation, aligning both design and code.
  • 📦 Component Library Creation - Partnered with engineering to build a centralized, accessible component library in Figma and aligned with Storybook.
  • ♿ Accessibility Integration - Embedded accessible defaults (contrast, focus states, ARIA roles) into the system and created guidelines for inclusive design.
  • 📚 Documentation & Governance - Created usage documentation and helped shape a governance model for ongoing contribution, versioning, and maintenance.

Problem

What was broken?

The product UI had grown organically. Patterns diverged across squads, components were duplicated, and design decisions lived in people’s heads instead of in the system. there was no single source of truth for our design language. The absence of a centralized design system led to a disjointed product experience and operational inefficiencies.

Through an audit and cross-functional conversations, I identified 3 key issues:

1. Component Fragmentation Across Teams
Each product team built their own set of UI components over time; components like buttons, modals, inputs; all slightly different in spacing, behavior, or interaction. This led to a fragmented user experience and extra overhead for both design and engineering. Fixing a bug in one place of a component didn’t guarantee it was fixed elsewhere. Often times, it was not always under the hood change. It also made onboarding harder, since new team members had to navigate inconsistent patterns across the platform.

Figma product teams' files
Preview: team, project and file organization in Figma.

2. Inefficient Design-to-Development Workflow
Without a shared set of common components, designers were constantly recreating the same UI patterns from scratch (ex. buttons, cards, inputs - often with slight variations). Handoffs became messy since engineers had to interpret and rebuild designs manually, which led to inconsistencies and back-and-forth revisions. It slowed everyone down and made even simple features feel heavier to ship. A lot of time was wasted fixing things that could’ve been solved upfront with standardization.

Inconsistent menu experience across the application
Example: inconsistent menu experience across the application.

3. Missing Accessibility Standards
A lot of the existing components didn’t follow basic accessibility standards. A few examples like proper color contrast, keyboard navigation, or semantic HTML were either missing or inconsistent. That meant every team had to solve for accessibility on their own, often overlooking key details or duplicating efforts. It also made it hard to scale inclusive design across the platform, since there was no reliable baseline to build from. We needed a more thoughtful, centralized approach to bake accessibility in from the start.

Accessibility Insights automated checks on a root page
Accessibility automated checks results on one of the root pages.

Solution

To address these issues, I led the creation of a foundational design system focused on scalability, usability, and accessibility. This included:

We set up a collaborative working model with design and engineering leads to make sure the system wasn’t just built in isolation. For example, we’d co-create components like tables or filters together, aligning early on technical constraints and design needs. We also ran pilots with a few product teams to gather feedback before rolling things out more broadly. This helped us catch edge cases early, make quick adjustments, and build trust. Over time, that collaboration turned into shared ownership, which made adoption smoother and more sustainable.

Design system working modal
Preview of the design system working modals and rituals for product teams.

Most components are designed to meet AA-level accessibility standards outlined in WCAG 2.1 and 2.2. We regularly use Accessibility Insights to audit components for issues like insufficient color contrast, missing ARIA labels, or poor keyboard navigation. For example, we caught low contrast in secondary buttons and missing focus states in modals, which we quickly resolved. We also ensured icon-only buttons had proper aria-labels for screen readers. This ongoing accessibility review process helps us catch issues early and ship components that are usable for everyone.

Accessibility passing
Accessibility Insights summary of the whole application.

We built a shared design token architecture that kept Figma and the codebase in sync. UI elements like color, spacing, and typography were defined in one source of truth. For example, we mapped semantic tokens like button-primary-bg and text-muted directly from our design library to the front-end, which reduced handoff confusion and visual mismatches. When we updated a global spacing token, it reflected consistently across both platforms without manual overrides. This alignment made implementation faster and helped designers and engineers speak the same language. It also reduced drift over time and simplified onboarding for new team members.

One of the semantic token listing for data visualization
A preview of the semantic design tokens in data visualization section.

We built a centralized component library shared across teams, with clear specs, usage guidelines, and interaction patterns baked in. Since we support three design systems, we separated them into distinct libraries, each tailored to a specific product surface, so teams knew exactly where to go without second-guessing. This structure cut down confusion, reduced duplicate work, and made adoption much smoother. It also gave us more control when rolling out updates specific to each system.

Leafkit design system centralized Figma files
A directory of where Leafkit design system centralized Figma files live.

Impact

The system reduced inconsistencies and sped up delivery by making decisions reusable. We also created a foundation to scale future parts of the system without rewrites.

25-30%Time savings (est.) from reuse + fewer handoff loops
Reduced driftFewer duplicated patterns across squads
AA-readyAccessible defaults baked into core components
Faster onboardingClear docs helped new contributors ramp quickly

What I’m tracking next

Adoption by team, component reuse rates, design/development cycle time, and accessibility defect trends.

Reflection

For me, this work wasn’t just about making things look consistent; it was about building the right blocks so the people creating the product could move faster and with less friction. Like snapping Legos into place, watching designers and engineers finally use the same pieces and speak the same visual language felt like a real win.

If I were to do it again, I’d push to get stakeholders aligned even earlier and be more intentional about tracking the system’s impact from day one. That said, getting this foundation in place was a huge unlock. It gave us the momentum to move faster, ship with more confidence, and focus on solving bigger product problems.

Preview of Thrive Product Screens
Preview of Leafkit design system components throughout the product screens.

Lessons learned
  • Evidence beats opinion. Audit artifacts made decisions faster and less political.
  • Tokens are an API. Naming by intent makes future theming and refactors survivable.
  • Docs are part of the component. Missing guidance becomes Slack messages and bugs.
  • Governance can be lightweight. A simple intake + review process prevents drift.

Part 2: Scaling & Evolving

This section is intentionally a placeholder while Part 2 is being written.

Coming soon placeholder
Coming soon: migration playbooks, adoption strategy, and cross-team enablement.

Part 3: Maturing with Accessibility & Localization

This section is intentionally a placeholder while Part 3 is being written.

Coming soon placeholder
Coming soon: WCAG patterns, content guidelines, i18n/RTL readiness.

Let’s build something great.

Always open to connecting about roles, systems work, and solving messy problems.