Client
PayPal
Year
2025-2026
Context
PayPal.com Design System is a multi-brand enterprise design system undergoing its sixth versioning process. Venmo.com is one of the brands governed by the system, along with two others.
Role
Design Systems Lead for Venmo.com, worked along-side the Systems Lead of PayPal.com, the architect of v5 and its predecessor. Architectural decisions were a joint effort, while the hands-on rebuild for Venmo.com was solely my responsibility.
Contents
· Frame
· The Problem
· The Approach
· Key Decisions
· Outcomes
· What's Outstanding
· Closer

Frame

The system was being asked to do something it wasn't built for.

Three brands. Two of them in simultaneous redesign. Two parent product systems also restructuring beneath them. 4.5 million component and token insertions this year, 70+ distinct Figma teams pulling from the system every day, building marketing pages and product experiences against a foundation that was quietly buckling under the load.

V5 had to quickly mature into v6 and undergo a migration from variant-based theming to mode-based architecture, a rebuild of the color theme structure, and the introduction of a new collection that would absorb the brand change v5 couldn't.

The Problem

Two structural pains.

The system couldn't scale across brands without compounding cost. Every brand added to v5 multiplied configuration complexity. Variable modes carried brand and viewport combinations in the same axis. Color theme and viewport size were implemented as variant properties on the components themselves, so every brand × theme × breakpoint combination produced its own variant. A new brand meant new modes, new variants, new tokens, new everything across the whole library.

The system couldn't stay aligned with its parent product systems. Venmo.com inherits brand identity and foundational structure from the Venmo app's design system (VDS). PayPal.com inherits from the PayPal app's design system (PDS). v5 held all three brands' primitives in one shared collection, meaning whenever a parent system updated, syncing required surgical edits across a structure that wasn't designed to isolate the work. A parent brand redesign was a multi-week cleanup operation.

V5 Token Aliasing Flow

Files ran heavy. The variant explosion driven by the theme-as-variant approach pushed library files into performance territory that affected every consuming team. Existing theme structure often forced external users to reach outside the system for stronger brand expression. That broke color and typography patterns and cut them off from future system improvements. Variable mode mismatches happened constantly (applying PayPal brand mode, but a Venmo responsive mode to a component), producing inaccurate brand rendering that was hard to debug because the failure mode was silent.

Underneath the architectural problems were operational ones. v5 had two of the three structural pieces v6 would eventually need: a Color Plate collection and a Responsive collection, but almost no one outside the system team used them. Most consuming designers had never touched variable modes in Figma. The technical capacity for mode-based work was sitting there, unused.

All of this came to a head as Venmo and PayPal went through simultaneous brand redesigns, while VDS and PDS were going through their own restructures. Four upstream sources of brand and architectural change, all moving at once, against a v5 architecture that was never built to hold it.

The Approach

The architectural move was to introduce a layer that didn't exist in v5: a brand collection that would sit between parent primitives and the consuming layers, acting as a stable contract that absorbs brand change rather than propagating it downward.

This move would resolve the brand sync pain described above. Parent primitives would feed into the brand collection to define its semantic role tokens. Consuming layers would only need to pull from this collection. When PDS or VDS shipped a change, only the brand layer would update; the layers below would see no structural change. The same architecture would work in reverse for new brands: add a brand mode, map new primitives, feed consuming layers.

V6 Architecture Proposition


A key constraint shaped the process: we had to keep engineering and authoring overhead to a minimum. Existing component token usage had to be preserved. The brand collection had to solve for multi-brand within the existing structure of our semantic collections. This meant that the structure of brand itself had to offer strong and flexible role pairing patterns.

To support the brand collection at scale, v5's shared reference layer would also need to be replaced by a set of individual primitives collections, cloned from each brand's parent system (PDS / VDS / FDS).

We adapted and expanded on PDS's token role pairing techniques to strengthen our multi-brand and alignment efforts. Applying them consistently across the full role taxonomy would reinforce scalability and consistency of design decisions. Visual coherence enforced through structure, not just review cycles.

The orchestration brand layer would also enable a downstream architectural move that v5 had blocked: removing the theme variant property and using variable modes to drive color theme configuration. The variant explosion that had been driving file bloat would compress into mode-level control.

To keep the mode system scalable, v5's primitive-based naming convention (White/Black/Blue 300) would need to change to a semantic one (Primary/Secondary/Tertiary). The payoff for moving to fully semantic naming was structural: if system brands changed or added core colors, the color plate taxonomy and architecture wouldn't need to change. Primary stays primary. The plate names stay honest.

With Venmo's rebrand came an opportunity for a wider range of visual expression. Marketing stakeholder buy-in inspired an expanded color theme set from the new brand identity's 15 core color ramps. Candidate colors went through exploration rounds, component-matrix testing, and page-level validation.

V6 Color triage & Component matrix


Adoption and alignment decisions were evaluated against three changing reference systems (PayPal.com within our system; VDS upstream; PDS upstream). Aligned with VDS where brand identity had to flow non-negotiably, and with PayPal.com where the shared path served Venmo. Diverged with new patterns where marketing-driven needs required structural moves neither parent supported. Not a blended hybrid, but an area-by-area decision pattern.

No items found.
Measurable Impact

Key Decisions

The brand collection. Three modes: PayPal, Fastlane, Venmo. Each mode holds the brand's semantic role token mappings, aliased from the brand's primitive collection.

Paired role grammar. Six semantic roles categorized by levels of emphasis, expressed identically across content, background, and border tokens. The pairing is selective rather than universal: roles where text, surface, and edge work together get the triplet; categories with one-sided usage (elevated surfaces, focus borders, link text) don't.

Three independent primitives collections (PDS ref, FDS ref, VDS ref): one for each existing brand, with plenty of room for adding more as we scale multi-brand.

Brand decoupled from viewport. Brand-specific viewport modes removed, leaving 3 core modes for all brands (1920, 1470, base), with the Brand collection driving how brand values render.

Brand-semantic hybrid plate names. Color plate modes pair a brand prefix with a semantic role (e.g., Brand A / Primary, Brand B / Accent 1). Every brand uses identical semantic taxonomy underneath.

Opacity overlays for interactive states. Hover and pressed modeled as light and dark overlay tokens applied on top of default colors, rather than discrete colors per state per theme, saving on future design and engineering overhead.

The theme component variant property removed. Color theme now configured via Color Plate mode at the page or section level, not via component variant. Variant explosion compressed into mode-level control.

Outcomes

Venmo.com drives about 130,000 monthly insertions. Roughly 41% of all library activity in the most recent month is on v6, against 59% still on v5. v6 launched a few months ago. The library activity metric reflects a short adoption window, not steady state.

After migrating the key Venmo.com user pages, swapping v5 libraries for v6 and reconfiguring every component across the affected files, Venmo.com became the most v6-mature brand inside the system. About 84% of recent Venmo activity is on v6.

V6 Variant Reduction (real example)

The theme variant removal compressed variant count by roughly 46% across core component libraries: from ~3,500 variants down to ~1,900, while the component set count stayed nearly identical.

The Venmo color theme rebuild went from 5 to 14 plates, giving partner teams expressive range within the system rather than around it. The hands-on reset and reconfiguration that made v6 production-ready (props, components, appearance modes, and tokens across every variant of every core library file) was the foundation adoption is now building on.

V6 Venmo Color Plates
Considerations

What's Outstanding

The color plate structure itself is a known limit. v6 ships with brand-prefixed plate modes (P / Primary, V / Primary, F / Primary), but the architectural ideal is one set of plates: Primary, Secondary, Tertiary, etc., configured per-brand through Figma's extended collections, so the plate count stays fixed as brands are added. The tooling constraint: Token Studio doesn't yet support extended collections, so brand-prefixed modes are the path that ships today. When that constraint lifts, the color plate collection becomes mainly PayPal.com, extended for Venmo and Fastlane. A new brand extends the collection again, same plate names, new values, same architecture.

The same compression move applies to viewport. Components currently carry a viewport variant property the way they once carried theme; adding component dimensions tokens in the Responsive collection would let viewport configuration move to mode-level, just as color theme did. Variant counts compress again; the system gains the same multi-brand scalability for dimensions that v6 already gained for color.

v6 is shipped in Figma, but the Venmo color theme rebuild is mid-handoff to engineering. Past Storybook design reviews. Next: staging-environment design reviews, authoring team alignment, production delivery.

Adoption is still in the early curve. v6 capturing 41% of activity in a few months is the first signal; the deeper question is what happens as the remaining 59% of v5-anchored work migrates. New page work and feature rollouts are forced to v6 by the rebrand itself; v5 continues to serve maintenance on pages not yet flipped to v6 in production. Documentation, coaching, and the contribution model carry the second half of adoption more than architecture does.

The operational layer is now a harder problem than the architectural one. Which is the point design systems work eventually reaches.

Operational Layer


Architecture is half the work. The other half is the layer that determines whether a design system survives its own success: documentation, coaching, the contribution model, governance, intake, deprecation.

V6 made modes mandatory for every consuming designer, so onboarding and education was a prerequisite. I authored the documentation that bridged that gap (covering the new architecture, the practices it required, and the migration process for working files) and ran it through live presentations and recorded share-outs.

Live coaching runs through Slack, weekly Design System office hours, and 1:1 sessions. Engineering partnership through GitHub PRs, Storybook component reviews, and production validation alongside the authoring teams. Component specifications live inside the library files themselves, keeping documentation co-located with the source of truth.

The token implementation workflow runs through Tokens Studio and Claude Code as the primary surfaces for direct repo updates. Increasingly, Claude Code is doing the work Tokens Studio used to. Figma agents are now standard practice for file-wide maintenance. This integration is only ramping up. Claude Code now uses our React component library to build production-ready prototypes. Using this framework as a foundation, I've added QA skills to the project, and am now running automated QA reports for eng and authoring, comparing against the Figma source of truth. Early days, but the direction is clear: a rapidly developing shift to AI-integrated maintenance of structural and operational layers of the design system.

( More Work )