UKG People Assist had drifted from its own design system. Components were duplicated, color usage was inconsistent, and interaction patterns existed in multiple conflicting forms. In parallel, prototyping remained slow and limited—Figma hotspots could not support the breadth of a real HR case.
Over one focused month I audited and upgraded the component library, introduced semantic tokens and variables, and replaced traditional prototyping with high-fidelity, AI-assisted applications built in Replit and Claude. The result: a coherent system, prototypes that testers treated as the live product, and a repeatable process the team could continue using.
UKG People Assist is a SaaS platform that gives employees and managers a single place for HR tasks—requests, approvals, benefits, case management, and support escalation. Like many products that scale across multiple feature teams, the interface had gradually diverged from the design system it was meant to follow.
Components had been locally overridden. Color usage varied between similar screens. Several interaction patterns existed in two or three slightly different forms depending on which team had shipped them. None of this was catastrophic on its own, but together it made the product feel less coherent, slowed design–engineering handoff, and made it difficult to test new ideas without first untangling which version of a pattern a given screen was using.
I joined as Senior UX Designer with a clear mandate: bring the application back into alignment with the rest of the system, upgrade components where the system itself was falling short, and establish a faster, more reliable prototyping process that could support user research without requiring full engineering builds.
“We can’t tell if this pattern is the current one or the old one anymore.”
design system
The first phase was diagnostic. I systematically identified every place the product had diverged from the system and decided, case by case, whether the divergence was simple drift to correct or a genuine gap the system needed to grow to cover.
I went screen by screen through the application, cataloguing every instance of core components—inputs, tables, cards, status indicators, navigation—and flagged where an implementation no longer matched its system source. Some issues were straightforward (a spacing override, a stale corner radius). Others revealed real usability gaps that the existing components did not yet solve, particularly around dense data tables and multi-step case management flows.
A significant portion of the upgrade work happened at the token layer. I restructured color and spacing tokens using Figma Variables so that semantic tokens (surface/default, text/muted, border/focus) resolved automatically to the correct primitive values. Designers no longer picked raw hex values per screen. This enabled light and high-contrast modes without maintaining parallel component sets, and made accessibility contrast checks a structural property of the system rather than a per-designer memory task.
Where the audit surfaced a genuine gap rather than simple drift, I prepared proposals with usability rationale, before/after comparisons, and updated component specs, then presented them to the design system’s governance group. Several were adopted directly into the shared library: a revised data-table row pattern for case management, a clearer multi-state status badge, and a consolidated approval-action pattern that replaced three near-duplicate versions that had spread across different features.
ai-assisted prototyping
Aligning the system fixed what the product looked like. The larger shift was in how we tested what it should look like next. Figma prototyping remained reliable for individual flows, but it became slow and limited once a concept needed to cover the full breadth of a real HR case—moving across requests, approvals, notifications, and support in one continuous, believable session.
Above is a capture of a prototype generated from a defined Figma flow and rendered through Replit into complete working front-end code. Fidelity was high enough that participants in usability sessions treated it as the production application. The behavior we observed—hesitation, backtracking, wrong turns, confidence—became a far more honest signal than what is typically captured when people know they are clicking through a mockup.
The India-based engineering team used the generated code as a living reference for implementation. This reduced miscommunication between design and engineering and shortened the path from validated concept to production. Joint review sessions allowed engineers to experience the intended flow directly and ask clarifying questions in context.
The fidelity threshold this process reached was the decisive factor. Participants treated the prototype as production software. That honesty of signal directly improved the quality of findings around task completion, time-to-task, and support contact rates.
breadth
UKG People Assist is one project, but the underlying skill set applies to any product that needs a design system to remain coherent under real product velocity.
Structuring color, spacing, radius, and type as layered tokens (primitive → semantic → component) in Figma Variables so themes, density, and contrast modes become a mode switch rather than a redesign.
Building color ramps with contrast and accessibility built into the scale itself, and mapping status/semantic color (success, warning, destructive) so consistency holds as new features ship.
Designing components with the variant, boolean, and instance-swap properties that make correct use easier than override—and auditing for drift on a regular cadence rather than once.
Selecting the right prototyping depth for what is actually being tested—from rapid Figma click-throughs for layout questions to full AI-generated applications when the question is end-to-end task completion.
Treating Claude as a way to turn a well-specified design—states, logic, copy—into a functioning artifact quickly, and Replit as the delivery layer that makes it something real people can use, not merely watch.
Making the case for component and pattern changes with clear usability rationale and comparisons, then shepherding them through review so improvements land in the shared library rather than a single team’s file.