2023-2024

Scaling a UI
Library

Stabilizing a fragmented UI foundation
for clinician workflows

2023-2024

Scaling

a UI
Library

Stabilizing a fragmented UI foundation for clinician workflows

My Role

UX/UI Designer

Scope

Built foundational components in Figma and audited key sections of the clinician portal, shipping 40+ reusable components adopted by engineering and reducing design-to-development time by ~30%.

Team Allison Spillane (UI Designer), SaraSai lors (Engineering Lead) 

Year 2023-2024
Duration One Year

Team Allison Spillane (UI Designer), SaraSai lors (Engineering Lead) 

Year 2023-2024
Duration One Year

ClinicianConnect is a web-based telehealth platform developed at Health Recovery Solutions (HRS), supporting care teams in managing complex patient data. I worked on features used to triage cases, monitor vitals, and manage care workflows.

The Problem

The Problem

As the platform evolved, new features were added without a shared design foundation, resulting in inconsistent UI patterns and growing variation across components and interactions. These inconsistencies made clinician workflows harder to navigate in time-sensitive situations and created ongoing rework for both design and engineering teams.

As the platform evolved, new features were added without a shared design foundation, resulting in inconsistent UI patterns and growing variation across components and interactions. These inconsistencies made clinician workflows harder to navigate in time-sensitive situations and created ongoing rework for both design and engineering teams.

As the platform evolved, new features were added without a shared design foundation, resulting in inconsistent UI patterns and growing variation across components and interactions. These inconsistencies made clinician workflows harder to navigate in time-sensitive situations and created ongoing rework for both design and engineering teams.

WHERE IT BROKE DOWN

Clinicians needed predictable interaction patterns to move quickly between fields and assign patients.

Clinicians needed predictable interaction patterns to move quickly between fields and assign patients.

Instead, focus states were often unclear or missing, making it difficult to understand which elements were active during keyboard navigation. Dropdown patterns also varied across screens, creating inconsistent interactions that slowed workflows and increased the risk of error.

Patterns fragmented as the product scaled without a shared system.

The Solution

The Solution

To improve design consistency and development velocity, my teammate and I partnered with engineering to build a scalable component library in Figma, aligning on naming conventions and implementation constraints from the start.

Rather than building a full design system upfront, the first phase focused on a structured, reusable foundation that could deliver immediate value while supporting future system growth.

To improve design consistency and development velocity, my teammate and I partnered with engineering to build a scalable component library in Figma, aligning on naming conventions and implementation constraints from the start.

Rather than building a full design system upfront, the first phase focused on a structured, reusable foundation that could deliver immediate value while supporting future system growth.

Defining the
Scope

Defining the
Scope

ClinicianConnect had grown without a shared inventory of existing UI patterns, creating variation across workflows as the platform evolved. Introducing new components too early risked adding to the inconsistency rather than reducing it.

Instead of creating new patterns immediately, the team focused on documenting and structuring existing components first, stabilizing the foundation before anything new was introduced.

Stabilize Before Standardizing

We prioritized consistency across workflows before introducing new component patterns.

Cleaner Handoffs

A shared source of truth reduced implementation ambiguity and back-and-forth.

Defining the
Scope

Stabilize Before Standardizing

We prioritized consistency across workflows before introducing new component patterns.

Cleaner Handoffs

A shared source of truth reduced implementation ambiguity and back-and-forth.

Mapping the
Interface

Mapping the
Interface

Starting with a full UI walkthrough, the team and I inventoried interface patterns across key screens to understand what components were currently in use.

Starting with a full UI walkthrough, the team and I inventoried interface patterns across key screens to understand what components were currently in use.

Key Observations

Key Observations

Different button styles, form labels, and modal behaviors had evolved without a shared structure. These variations made it difficult for users to predict system behavior and increased cognitive load for task completion.

Different button styles, form labels, and modal behaviors had evolved without a shared structure. These variations made it difficult for users to predict system behavior and increased cognitive load for task completion.

Different button styles, form labels, and modal behaviors had evolved without a shared structure. These variations made it difficult for users to predict system behavior and increased cognitive load for task completion.

Observed Validation Variations

Audit: Validation States

Audit: Validation States

01

Default field

02

Required field + success feedback

03

Required field + success + help icon

04

Required field

Variability in input styling and validation states spotted across clinician workflows.

Competitive
Analysis

As there was no shared system for the web platform, the team and I looked at established systems like Material and IBM Carbon to understand how mature systems structure components, documentation, and scalability. Rather than replicating them, we focused on identifying patterns that could introduce structure without over-engineering at our stage.

Material Design

What Works

  • Exceptional documentation

  • Beginner-friendly onboarding

  • Well-defined component anatomy

Where It Breaks Down

  • Can be overly prescriptive

  • Customization becomes harder without breaking key patterns

Design Takeaways
Borrow Material’s component structure and documentation patterns, while avoiding overly rigid constraints.

Material Design

What Works

  • Exceptional documentation

  • Beginner-friendly onboarding

  • Well-defined component anatomy

Where It Breaks Down

  • Can be overly prescriptive

  • Customization becomes harder without breaking key patterns

Design Takeaways
Borrow Material’s component structure and documentation patterns, while avoiding overly rigid constraints.

Material Design

What Works

  • Exceptional documentation

  • Beginner-friendly onboarding

  • Well-defined component anatomy

Where It Breaks Down

  • Can be overly prescriptive

  • Customization becomes harder without breaking key patterns

Design Takeaways
Borrow Material’s component structure and documentation patterns, while avoiding overly rigid constraints.

Carbon Design

What Works

  • Clear and minimal navigation

  • Documentation that supports scale

  • Defines accessibility user groups

Where It Breaks Down

  • Visual style can feel rigid

  • Extensive documentation can feel overwhelming at first

Design Takeaways
Start smaller to improve usability and maintainability, while building a flexible foundation for scale.

Carbon Design

What Works

  • Clear and minimal navigation

  • Documentation that supports scale

  • Defines accessibility user groups

Where It Breaks Down

  • Visual style can feel rigid

  • Extensive documentation can feel overwhelming at first

Design Takeaways
Start smaller to improve usability and maintainability, while building a flexible foundation for scale.

Comparative analysis informed a lightweight, scalable structure for the initial UI library.

UI Audit: Making

Sense of a Mess

UI Audit: Making

Sense of a Mess

Next, the team divided the platform into key workflows, and I audited dozens of live screens, tagging UI components to create a clear inventory of patterns and inconsistencies across the product.

What this Uncovered

Inconsistent component implementations slowed production and increased design and engineering debt across teams.

What this Uncovered

Inconsistent component implementations slowed production and increased design and engineering debt across teams.

What this Uncovered

Inconsistent component implementations slowed production and increased design and engineering debt across teams.

Using Brad Frost’s atomic design principles, we audited live screens by tagging UI elements, creating a component inventory, identifying gaps needed to build a scalable system.

Patient Inventory Dashboard

Pattern Mapping

Tagging recurring UI elements across workflows to understand platform structure.

Modal Patterns

Confirmation flows varied across workflows and lacked predictable behavior.

Missing Standards

No shared component definitions led teams to rely on local implementations.

Button Patterns

Primary, secondary, and utility actions varied across workflows.

Modal Variations Across Workflows

Key Findings
• Documentation and tagging inconsistencies
• Multiple button styles without system
• No shared component documentation

Using Brad Frost’s atomic design principles, we audited live screens to map UI patterns and document system gaps.

Building the System

Building the System

With the audit complete, I used atomic design principles to build from the ground up, starting with typography and spacing before tackling interactive components where variation was highest. I prioritized clarity, reusability, and accessibility so components could be integrated immediately as new workflows were introduced, establishing consistent patterns and reducing redundant implementations.

Visual Foundations

Typography

ClinicianConnect

H1

22px/Semibold

ClinicianConnect

H2

16px/Bold

This UI Library was built to support
reusability across screens and teams

Body Paragraph

16px/Regular

Sizing and Spacing

All component sizing should be in multiples of 8px or 4px, 8px is preferable. Consistent, standard, and scalable.

Example: System modal with real-world copy

Icons

Icons used across core flows to reinforce actions and system states.

Colors

Colors used to support hierarchy, feedback, and interaction.

Accent and Functional Colors

Primary

Default

Hover

Selected

Success

Confirmed/Saved

Warning

Errors & Destructive

Danger

Errors & Destructive

Neutral System Colors

Active

Selected or Non-primary Elements

Disabled

Non-interactive, disabled states

Icons

Icons used across core flows to reinforce actions and system states.

Icons

Icons used across core flows to reinforce actions and system states.

Core Components

Input Fields

Input fields for text entry and validation.

Enabled

Text

Forgot Password?

Focused

|Text

Forgot Password?

Filled

●●●●●

Forgot Password?

Input stroke outlines and helper text colors are exaggerated for documentation clarity.

Input Fields

Input fields for text entry and validation.

Enabled

Text

Forgot Password?

Focused

|Text

Forgot Password?

Filled

●●●●●

Forgot Password?

Input stroke outlines and helper text colors are exaggerated for documentation clarity.

Buttons

Buttons across core flows (default and disabled states).

Primary

Secondary

Default

Button

Button

Disabled

Button

Button

Buttons

Buttons across core flows (default and disabled states).

Primary

Default

Button

Disabled

Button

Secondary

Default

Button

Disabled

Button

System in Context

40+

reusable components reduced variation across workflows

  • Consistent states across form components

  • Clear focus and validation feedback

  • Predictable dropdown interactions

  • Consistent states across form components

  • Clear focus and validation feedback

  • Predictable dropdown interactions

The

Outcome

The

Outcome

The library became a single source of truth for incoming feature requests, giving teams a reference point to quickly assess what patterns already existed before building something new.

Instead of recreating components feature by feature, design and engineering could build on a consistent foundation, reducing rework and speeding up iteration.

BEFORE

Fragmented component patterns

  • Inconsistent borders and spacing

  • No shared validation pattern

  • Different interaction patterns for
    similar inputs

AFTER

Introduced a shared component system across clinician workflows.

INPUT FIELDS

TEXT AREA

TEXT AREA

~30%

Faster design-to-development time

Faster design-to-development time

Cleaner handoffs, reduced rework, faster decisions.

(Estimated from reduced design iteration cycles)

What’s Next

What’s Next

Before wrapping up my contribution, the following priorities were identified to help evolve the library into a more scalable system:

Component Standardization

Align design and front-end components, define a semantic token structure, and consolidate variations to reduce duplication and overrides.

Promoting Internal Adoption

Create lightweight documentation and onboarding to encourage component-first thinking across teams.

Improve Accessibility

Formalize WCAG 2.1 AA standards, document focus states and validation patterns, and align UI decisions with healthcare compliance needs.

Component Standardization

Align design and front-end components, define a semantic token structure, and consolidate variations to reduce duplication and overrides.

Promoting Internal Adoption

Create lightweight documentation and onboarding to encourage component-first thinking across teams.

Improve Accessibility

Formalize WCAG 2.1 AA standards, document focus states and validation patterns, and align UI decisions with healthcare compliance needs.

Let's Make Something Clear.

wu.mlucy@gmail.com

© 2026, Lucy Wu. All rights reserved

Let's Make Something Clear.

wu.mlucy@gmail.com

© 2026, Lucy Wu. All rights reserved

Let's Make Something Clear.

wu.mlucy@gmail.com

© 2026, Lucy Wu. All rights reserved