WorkAboutResumeLinkedIn

From Fragmented UI to a Scalable Design System

How I consolidated a fragmented component library into a reusable system that improved consistency, speed, and collaboration.

Overview

A redesign revealed a bigger opportunity

I joined the American Cancer Society during a website redesign and quickly realized the main challenge wasn't the pages themselves, but the lack of a scalable system. UI components were stuck in static documentation, making them hard to maintain, reuse, and hand off.

Instead of treating these as isolated design issues, I focused on the root cause. I proposed and created a scalable design system that gave teams a shared foundation, supported the redesign, and made future projects easier to build.

Problems Discovered

The existing UI approach couldn't scale

Component library existed, but couldn't scale

UI components were stored in a static PDF, with no technical details, usage guidelines, or ownership

Rework became the default

Designers and developers interpreted patterns differently, leading to inconsistent interfaces and repeated work

The core issue

The problem wasn't missing components; it was the lack of a scalable system

Design Decisions

Starting with what already exists

Before building new components, I audited those already in use. This showed which components teams depended on, where duplication happened, and which patterns to scale or remove.

Basing decisions on real usage made it easier to consolidate and sped up adoption of new components.

Consolidating components before adding new ones

The audit revealed that many components were built for slightly different needs, resulting in a long list of variations that looked different but worked the same.

Instead of adding more, I consolidted them into a smaller set of flexible components designed to handle multiple use cases.

Before: component compilation
After: card components
BeforeAfter
Before: 12 card variations → After: 4 flexible card components

Building a scalable structure with Atomic Design

A design system only works if teams see how its pieces fit together. Without a clear structure, even good components are hard to use, maintain, and scale.

From atoms to pages:

I used Atomic Design to connect foundations, components, and page patterns. This made the system easier to maintain, grow, and reuse.

Reducing handoff friction

The biggest challenge was handing off designs to developers. I prioritized a developer-first approach by removing guesswork, setting clear expectations, and defining consistent patterns, so designers and developers could work from the same source of truth.

Types of button component and their states
Spacing and size specifications of a button component
Types of callout component
Spacing and size specifications of a callout component
Design System in Action
Outcome

Improving speed, consistency, and collaboration

Reusable components, documentation, and shared standards reduced friction across the entire design-to-development workflow.

Faster Delivery

Reduced repetitive work, helping teams design and ship screens faster

Improved Consistency

Shared components and guidelines created a more unified user experience

Reduced Rework

Clear specs improved designer-developer handoff and minimized rework

Learnings

Systems Thinking

Design systems are products, not just component libraries. Their success depends on product thinking, governance, and continuous collaboration.

Strong Foundations

A design system's strength comes from a solid foundation. Consistent tokens, patterns, documentation, and workflows create lasting value.

Drive Adoption

Adoption doesn't happen automatically. A design system creates impact only when teams understand it, trust it, and choose to use it consistently.