Walmart Sub-System

A product-driven approach to building a design system that designers love and trust

Three sticker sheets from the Walmart Associate Experience design sub-system. The first sheet has a list of color tokens, the second sheet displays text styles, and the third sheet has home screen components.Three overlapping sticker sheets from the Walmart Associate Experience design sub-system. The first sheet has a list of color tokens, the second sheet displays text styles, and the third sheet has home screen components.Three overlapping sticker sheets from the Walmart Associate Experience design sub-system. The first sheet has a list of color tokens, the second sheet displays text styles, and the third sheet has home screen components.

Company

Walmart

Product

Me@, mobile app for Walmart Associates

My Role

Product designer, design sub-system creator & manager

Timeline

March to August 2024

01

Background

Living Design system diagram showing foundational elements including color tokens, text styles, icons, atoms, molecules, and illustrations, with an arrow pointing down to indicate flow into sub-systems.Living Design system diagram showing foundational elements including color tokens, text styles, icons, atoms, molecules, and illustrations, with an arrow pointing down to indicate flow into sub-systems.
Sub-Systems
Customer Experience sub-system diagram showing the following key elements: molecules, organisms, and templates.Customer Experience sub-system diagram showing the following key elements: molecules, organisms, and templates.
Walmart+ sub-system diagram showing the following key elements: molecules, organisms, and templates.Associate Experience sub-system diagram showing the following key elements: molecules, organisms, and templates.
Sam's Club sub-system diagram showing the following key elements: molecules, organisms, and templates.Sam's Club sub-system diagram showing the following key elements: molecules, organisms, and templates.
Associate Experience sub-system diagram showing the following key elements: molecules, organisms, and templates.
Marketplace sub-system diagram showing the following key elements: molecules, organisms, and templates.
Blue Steel sub-system diagram showing the following key elements: molecules, organisms, and templates.
1
2
3
4
1

All of Walmart’s digital products are governed by a master design system called Living Design, which close friends refer to as LD.

2

To ensure brand and design consistency, foundational elements from LD, such as atoms and molecules, flow downstream into Walmart’s various sub-systems.

3

Foundational elements from LD are used to build additional molecules, organisms, and templates within each sub-system.

4

This case study focuses on how I created and refined the Associate Experience Sub-System, which supports the Me@ mobile app used by over 1.5M Walmart Associates to assist them in their daily work.

02

Pain Points

1

1. Too many library files

Designer searches for home screen component.

Dark grey Figma file cover for Me@Walmart Subsystem
Light green Figma file cover for Me@Walmart Live Experience
White Figma file cover for AX Subsystem
Blue Figma file cover for Copilot MVP
Blue Figma file cover for Sidekick
Illustration of a smiling female designer typing on a laptop.

There are 5 different files with published Me@ components. No one knows what the source of truth is.

Opportunity

Create a single library file with colors, text styles, and components specific to the Me@ app.

I address this pain point in Foundations.

2

2. Instances are not intuitive to update

Designer doesn’t understand what can be updated in the instance.

Designer doesn’t understand what can be updated in the instance. “Can I change the store number? How about today’s date?”

“Can I change the store number? How about today’s date?”

Me@Walmart app homescreen showing a greeting, current store number, clocked-in status, today’s schedule, and options to report an absence or view the full schedule.
Figma properties panel highlighting editable options for the Homepage component, including role (set to TA/TL), a clocked-in status toggle set to on, and a team drop-down set to Deli & Bakery.
Illustration of a female designer with a quizzical expression, shrugging with hands raised

Opportunity

Leverage Figma’s component properties, instance swaps, and nested instances to surface updatable elements in the Properties panel.

I address this pain point in Updating Instances with Ease.

3

3. Components are not responsive

Designer resizes instance for a larger device. Mobile-first? More like mobile‑maybe...

Me@Walmart app homescreen resized to a larger width showing gaps on either side of the app header and body, and a gap to the right of the bottom nav
Illustration of a female designer with a skeptical look on her face

Opportunity

Auto-layout, anyone?

I address this pain point in Ready-to-Use Screen Components.

4

4. Library updates cause anxiety

Designer accepts a library update. Fingers crossed...

Before
App header titled Me@ Walmart with chat bubble and inbox icons on the right. All text and icons are white on the blue background.
Figma Update all button with hand pointer hovering over it
After
App header titled Me@ Walmart with chat bubble and inbox icons on the right. The title is appropriately white on the blue background, but the icons have incorrectly switched to black.

This is one example of how most designers were eventually conditioned to never accept library updates.

Illustration of a female designer with a shocked look on her face

Opportunity

Build robust components and thoroughly stress-test them before publishing.

I address this pain point in Ensuring Robustness.

5

5. The design system is getting in the way

Illustration of a female designer with her hands on her hips and a disgruntled look
Curvy line that connects designer's head to thought bubbleCurvy line that connects designer's head to thought bubble

I can work faster if don’t have to use the design system.

Opportunity

Ouch... This, along with the other pain points inspired the goal below, which became my work-life’s mission.

I address this pain point in Birth of the 10X Designer.

Credit: Character illustrations from Open Peeps.

Goal

Enable designers to work efficiently, stay on-brand, and maintain design consistency with a trusted and robust design system

03

Foundations

To solve the chaos of multiple library files from pain point #1, I started by creating a single source-of-truth library. The first step? Tackling the basics: color tokens and text styles.

Purple Figma file cover for Me@ Core Features Library

Color Tokens: Simplifying the Rainbow

Starting point from LD

231 LD color styles

converted to tokens

346 LD color tokens

Very specific but complex token structure:

ld/color/action/text/onFill​/transparent​/disabled

While technically sound, this structure was built for design system experts. Its complexity could easily leave designers with analysis paralysis.

Simplifying for Associate Experience

57

color styles used in Me@

based on thorough audit of key screens

converted to tokens

68 Me@ color tokens

Streamlined token structure:

me/text/brand/default

Under the hood, the new Me@ tokens reference LD tokens, keeping the colors in perfect sync, but on the surface, they’re far easier for designers to use.

My proposed user-friendly structure neatly categorizes color tokens into four simple buckets:

Sticker sheet with a list of fill color tokens from the Me@ Core Features Library, displaying color samples, token names, aliases, and hex codes in each row.
Sticker sheet with a list of border color tokens from the Me@ Core Features Library, displaying color samples, token names, aliases, and hex codes in each row.
Sticker sheet with a list of text color tokens from the Me@ Core Features Library, displaying color samples, token names, aliases, and hex codes in each row.
Sticker sheet with a list of icon color tokens from the Me@ Core Features Library, displaying color samples, token names, aliases, and hex codes in each row.

Guiding designers from color styles to variables

Since many designers I spoke with are intimidated by variables and tokens, I created a detailed guide to help them transition smoothly from the old color styles they’re used to into the new variables and tokens.

List of current color styles grouped by Primary, Base, Background, etc. Each color row has a color sample, the name of the style, and a link to go to the mapping.
Page from the color style guide for the primary color styles. Provides instructions on how to transition from the current color style to the new variables based on how the color is used.
Tip explaining when to use brand vs. info vs. blue color tokens

Text Styles: Less Is More

Starting point from LD

58 LD text styles

covering the gamut from mobile to desktop

Simplifying for Associate Experience

21 Me@ text styles

trimmed down to mobile only

To ensure integrity with LD, the new Me@ text styles are linked to LD’s variables for font family, font weight, text size, and line height. This means that any updates at the enterprise level will automatically cascade down to Me@, keeping everything beautifully in sync.

Sticker sheet for the text styles from the Me@ Core Features Library, showing the font family 'Bogle' with regular and bold weights, and listing text styles by category. Each text style has example text.
Figma design panel with a list of local text styles
Figma text style modal to edit the Body Large Regular style. The properties, such as font family, font weight, text size, and line height are linked to variables.
04

Building Blocks: Molecules & Organisms

After establishing the foundations, I moved on to building molecules and organisms: reusable components tailored for the Associate Experience. These include key elements like the app header, bottom navigation, and various page and section headers.

Updating Instances with Ease

Remember in pain point #2 when our designer struggled to figure out what could be updated in an instance? That’s now a thing of the past. By leveraging Figma’s component properties, I made essential fields easily accessible directly in the Properties panel.

Figma layers panel listing pages from the Me@ Core Features Library, such as Action Item, App Header, App Logo, Associates, Bottom Nav, etc
Me@ app bottom nav with 5 menu options: Home, Profile, Ask Sam, Team, and Work
1
1
2
3
4
4

I applied the same approach to these components too so designers can now update key content quickly without having to dig into nested layers. No more guesswork!

1
3
2
4
Figma properties panel highlighting editable options for the bottom nav component, including an on toggle for an alarm on the home menu, an off toggle for a badge on the Team menu, an on toggle for a badge on the Work menu and a number for that badge
05

Component Testing

To ensure the new components meet designers’ needs, I set up weekly feedback sessions. These meetings became a crucial part of the process, allowing me to fine-tune components and build trust in the system.

Here’s a template I used during these sessions:

Top part of component testing template with playground area showing avatars variants with different statuses, such as clocked in, clocked out, and absent
Second section of component testing template highlighting changes from old component where the new avatar is slightly bigger than the old one and has a lighter blue background
Third section of component testing template for fine-tuning the component: do we need a version of the small avatar with the clock status dot?
Bottom section of the component testing template to get feedback on the component name via thumbs-up or thumbs-down, and collect keywords, such as profile, associate photo, and associate picture

Playground Area

This is where I drag in the component under review and demonstrate how it works. I go over the variants and show what can be updated in the Properties panel so designers can see in real-time how changes affect the component.

Changes from Old Component

This is where I highlight any differences between the old and new components, inviting designers to weigh in on whether the updates improve or complicate the design, and ensuring we’re all aligned.

Fine-Tuning

This section addresses remaining tweaks. Do we need more variants? Another size option? Designers can suggest adjustments to make sure the component meets all their needs.

Naming & Searchability

Designers cast a quick vote on the component's name (thumbs-up or thumbs-down). I also collect alternate names and keywords that I add to the component configuration to improve searchability, ensuring no component gets lost in the system.

Ensuring Robustness

In addition to gathering feedback from designers, I thoroughly tested how instances behave when used outside of the library file. I’m hoping this extra step will help alleviate designer anxiety from pain point #4 and convince them that library updates are not evil.

Icon color is preserved?

Text overrides are retained, even after switching variants?

Component resizing works as expected?

Auto-layout settings are preserved?

Nested components retain their state?

06

Ready-to-Use Screen Components

Now that the foundations and building blocks are in place, it’s time to assemble them into app-specific screens for the Me@ app. These screens serve as the source-of-truth, always reflecting the latest and greatest version, and are ready to be used in flows or as a starting point for new features.

Responsive & Prototype-Ready

In pain point #3, resizing components was like trying to stuff a square peg into a round hole. Well, problem solved! The screen components I created are not just responsive but also prototype‑ready.

As a bonus, I set up device modes for seamless switching between XCover, Android, and iOS. With one click, the screen resizes itself and the device artifacts are updated. It’s pure magic!

Me@Walmart app header with XCover status bar, menu icon, chat icon, and inbox icon, fixed at the top of the screen.Scrollable homescreen from the Me@ app on an XCover deviceMe@ Walmart app bottom navigation, showing icons for Home (active), Profile, Ask Sam, Team with 5 notifications, and Work with 8 notifications. Also includes the XCover system navigation bar.
360 x 780
Me@Walmart app header with Android status bar, menu icon, chat icon, and inbox icon, fixed at the top of the screen.Scrollable homescreen from the Me@ app on an Android deviceMe@ Walmart app bottom navigation, showing icons for Home (active), Profile, Ask Sam, Team with 5 notifications, and Work with 8 notifications. Also includes the Android system navigation bar.
412 x 846
Me@Walmart app header with iOS status bar and notch, menu icon, chat icon, and inbox icon, fixed at the top of the screen.Scrollable homescreen from the Me@ app on an iOS deviceMe@ Walmart app bottom navigation, showing icons for Home (active), Profile, Ask Sam, Team with 5 notifications, and Work with 8 notifications. Also includes the iOS system home button bar.
375 x 812
Me@Walmart app header with iOS status bar, menu icon, chat icon, and inbox icon, fixed at the top of the screen.Scrollable homescreen from the Me@ app on an iOS deviceMe@ Walmart app bottom navigation, showing icons for Home (active), Profile, Ask Sam, Team with 5 notifications, and Work with 8 notifications.
375 x 667
Scrollable ↕
Figma design panel with properties for homescreen component.
Try it

Change the device to see the magic happen

Layer
Pass through
100%
Device
XCover
App Header
Me@Walmart app header with Android status bar, menu icon, chat icon, and inbox icon.
Intro Section
Greeting section of the homescreen, showing a personalized welcome message, store number, current date, and week number
Clocked In Card
Card showing current status as 'Clocked in' with a link to view the timeclock and an illustration of an employee giving a thumbs up
Schedule Card
Card showing today's schedule for Apparel TA, with shift details from 7:00 AM to 4:00 PM at Store #978, and a link to view the full schedule
New Section
Placeholder section with a title and gray boxes representing content blocks
My Team Section
Card showing team status for the Apparel team, with 11 employees clocked in and 3 absent. Includes a link to view the roster and an illustration of clothing on hangers

Modular Approach

Each screen component is made up of stacked sub-components, just like legos. Here’s why that approach is so powerful:

Designer inserts an instance of the home screen into an exploration file.

Designer detaches instance to insert a brand new section (yes, it’s ok to detach in this case).

Designer makes a bunch of awesome changes to the new section (feeling creative today).

Everything else on the screen stays linked to the original sub-components while providing flexibility to work on the new section.

07

Streamlined Library Structure

With the foundations, 10 screens, and 48 components all in one file, things could easily spiral into chaos. Not under my watch! I developed a meticulous system to keep everything neatly organized.

Each component is placed in its own page (left panel below), doubling as a table of content for the library file and an organized reference for external files that link to the library. Here’s a closer look at how each page is structured:

Figma layers panel listing pages from the Me@ Core Features Library, categorized into foundations, screens, and components

This component sheet neatly showcases the final component.

1
2
3
4

Who to contact? The name hyperlink opens a new Slack message for questions about the component.

Indicating that this component has modes and interactive elements when used in a prototype.

Clearly labeling each variant for easy identification.

Sticker sheet for the App Header component showing different variants for Main tab, Landing page, Sub-page, and Overlay. The sheet includes component description, owner information and the last update date.
🔒 Parts
Private Base Part Components sheet for the App Header, showing various Main tab options such as Home, Team, Profile, Work, and customizable Screen Title options. A note in the sheet header says that these are the components needed to build the main component, they're not meant to be used on their own, and they're not available outside of this file
5

Supporting components used in the main component above, but not meant for standalone use. To avoid cluttering the library, these are not published.

1

The component sheet neatly showcases the final component.

2

Who to contact? The name hyperlink opens a new Slack message for questions about the component.

3

The tags indicate that this component has modes and interactive elements when used in a prototype.

4

Clearly labeling each variant for easy identification.

5

Supporting components used in the main component, but not meant for standalone use. To avoid cluttering the library, these are not published.

“Automagic” Organization

Manually organizing all of this? No thanks! I used the Scripter plugin to write and run automation scripts, cutting hours of tedious work down to just seconds. Check out the demo video below to see how I transformed a messy pile of freshly built components into a setup Marie Kondo would approve.

❖ Me@ Core Features LIbrary

Inspiring Innovation

The impact of this organized system extended beyond just efficiency. Other designers took notice and began applying similar structures to their own work.

Hello there! I’m a designer on the data experiences team. I’ve been stalking your subsystem file 👀 It is SO GOOD. I just started working on a new customer data platform and building out a whole new subsystem library for it so I went to your file for inspiration.

– Senior UX Designer at Walmart

08

Utility Library: The Indispensable Companion

The Component Sheet above is a perfect example of what the Utility Library offers:  a collection of must-have resources that empower designers to move from idea to execution with maximum efficiency.

Here are a few designer and engineer favorites:

Callouts

This versatile little gem is by far the most popular component among designers.

A variety of callout components, showing different color options like Default, Success, Warning, and Error, as well as direction options for Left, Right, Up, and Down, and pointer styles including Dot, Arrow, and Line

Great for documenting design decisions for a new feature:

Screen from the Me@ app  with callouts highlighting key features such as Team Switcher, Metrics, Reactive Insights, and Chevron for navigation

... or for annotating specs in a development hand‑off file:

Message screen from the Me@ app, with annotations for the design specs for elements like Page Header, DND Header, Message Thread Items, Divider, Secondary Button, and noting that the bottom navigation is not displayed

Project Management Templates

Giving designers a consistent framework to quickly get started on new projects and stay organized, without having to re-invent the wheel.

Project brief header with designer name, last update date, and links to related documents such as 4itb channel, PRD, tickets, exploration, and dev handoff.Project brief template with the following sections: problem statement, project goals, success criteria, stakeholders, deliverables, timeline, and areas of focus.
Checklist template pre-filled with sample tasks. Each task can be converted to a subtasks and has a status pill.
Meeting notes template with meeting name, date list of attendees, discussion points, and a to-do list

Versioning Template

This is like a time machine all bundled up in a neat little table, giving designers a snapshot of the entire history of a screen or feature while clearly highlighting the most current version.

A versioning table displaying different drops of the messaging screens, each with a handoff date, design specs, and a description of changes from the prior version

VQA Template

Engineers especially love this template because it provides a clear overview of all issues by priority level and saves time compared to live review sessions.

Visual Quality Assurance (VQA) template comparing a demo screen to the reference design for message read history. The left side contains design issues identified, marked as P2 or P3, and annotations pointing to relevant areas on the demo screen, with a reference design on the right for comparison.

This is great! A deliverable like this is more clear than ad hoc notes we used to take in the past.

– Walmart Engineer

Birth of the 10X Designer

Between the Utility Library and the revamped Associate Experience sub-system, designers now experience the system as a support tool that enhances creativity rather than being a blocker, as was raised in pain point #5.

09

Impact

Although the Associate Experience sub-system is just on the verge of being officially released, its impact is already clear:



Creating Buzz

Designers who have been involved in testing the sub-system are eagerly waiting for its full release. This excitement has spread across the entire Associate Experience team, generating anticipation for the broader rollout.

Cross-Team Influence

Other teams are already using the Associate Experience sub-system as a model for their own libraries, reflecting the effectiveness of its structure and the thoughtful organization of components. Even before its official publication, the sub-system is shaping the way other designers work.

The Utility Library is another example of the growing impact:

Widespread Adoption

Despite the fact that it hasn’t been publicized, the Utility Library is already in use by 18 teams across the organization, well beyond its original scope. Designers who see these utility components in presentations or feedback sessions often request to use them in their own files.

Feedback from Engineers

Engineers have praised the clear design-to-development handoff. They especially appreciate the effectiveness of the VQA template in ensuring perfect alignment between design and code.

10

Retrospective & Learnings

Too Many Cooks in the Kitchen

The original open-source sub-system suffered from inconsistencies and lack of structure. With too many contributors and no clear guidelines, the components weren’t built properly. Establishing structure and a streamlined process was essential for success.

Designer Feedback Is Crucial

Involving designers early on not only ensured that they would actually use the new components, but also boosted excitement and buy-in. Their feedback was pivotal in refining the system and tailoring it to their needs.

Quality Over Quantity

In an earlier attempt to revamp the sub-system, the focus was on building everything at once under a tight deadline: all components from the old sub-system plus documentation. That spread us too thin and affected quality. As a lead on the second attempt, I prioritized key components first, leaving documentation for later. This shift resulted in better quality, stronger designer buy-in, and ultimately a more successful system.

The Right Amount of Documentation

Dense, text-heavy documentation from the old sub-system was intimidating and rarely referred to. Keeping text to a minimum supported by visual examples resulted in more engagement and better usability.