View Project

Limeade

Building a consistent design language across teams

Team

  • 1 x Product Manager
  • 4 x UX Designers
  • 1 x Engineer
  • 1 x UX Researcher

Role

UX/UI Designer

Year

2021

Overview

Limeade is an employee experience platform that focuses on well-being and workplace culture. As engineers began to migrate the product to React, I was tasked with addressing design inconsistencies and providing visual design guidance for new React components. With no source of truth for design styles, addressing inconsistencies and preventing new ones was a challenge.

The scope soon grew to building buy-in for a new design system and leading the creation of a shared pattern library.  I worked cross-functionally with designers, researchers, and engineers to establish a central source for design assets and align on what good design means at Limeade.

Impact

3+ hours saved

Average time saved on each project not having to recreate design assets

80+
components

Published as a team library along with the latest updates to accessibility

    Improved consistency

    From outdated and inconsistent style guides to a single source of truth for design styles

      Problem

      As designers and engineers work on an increasing number of initiatives, the lack of a single source of truth for design assets leads to decreased productivity and uneven customer experiences within the Limeade product.

      The solution - one brick at a time

      We approached the problem in small, manageable steps to demonstrate value and build buy-in for a design system. The foundational elements were missing and served as the low-hanging fruit. We focused on establishing a visual design language and pattern library to quickly improve design consistency and productivity. As we made progress, our goal was to sustain the momentum and build organizational support.

      Challenges

      The primary risk to building a design system was the lack of dedicated resources. Designers and engineers had to prioritize roadmap initiatives over design system work. Since I was tasked with addressing design inconsistency, I could devote more time to this effort. However, for this project to continue, dedicated resources would be essential.

      Project phases

      01

      Research

      • User interviews
      • UI audit
      • Design system inspiration

      02

      Design foundations

      • Design principles
      • Visual design language
      • Accessibility color audit

      03

      Pattern libraries

      • Reusable UI components
      • Page templates
      • Component documentation

      04

      Design tokens

      • Token documentation
      • Engineering hand-off
      • Proof of concept presentation

      Research

      Our first step was analyzing the current state of design practice at Limeade. This began with a visual UI audit to identify design inconsistencies. We then interviewed designers, engineers, and PMs across the company to expand our knowledge of the way teams work and communicate.

      Designers and engineers highlighted the amount of wasted time searching for the latest designs or finding out if UI exists. The only way designers stay up-to-date is through critique sessions, browsing old files and check-ins. We also discovered a disconnect between marketing and product. Teammates from marketing also found it difficult to stay current on the latest designs and product initiatives.

      Not knowing if a UI component exists or not is a big concern.”


      - Engineer
      “We tend to look at what marketing has done but sometimes it is unclear how the product should look or behave.”

      - Designer
      We went through the entire product to document components and areas of inconsistency

      Making the business case

      To build buy-in and make a stronger business case for a design system, we presented our research findings and UI audit to key stakeholders. We focused on how a design system would align with company OKRs and highlighted the benefits of a design system such as increased productivity and product quality.

      Challange

      As Limeade went through it's own rebranding effort, there was confusion on how a white label product aligns with the Limeade corporate brand. Missing guidance created a challenge for designers and engineers working on the UI and opened the door for more inconsistencies in the product.

      Aligning on design principles

      Design principles served as the starting point for building a shared language and greater alignment. Prior to this, Limeade had no product design principles. To establish new ones, I facilitated a 2-day workshop with teammates from product and marketing. After aligning on new principles, we presented the results of our workshop to other teams and demonstrated how design principles act as a compass for design decisions.

      Our first iteration of design principles after the 2 day workshop

      Design foundations

      Close collaboration between teams made progress towards a consistent design language possible. While we pushed for better guidance on branding and white-labeling, small steps were made in the meantime. Reviewing styles from the recent rebrand and our UI audit presented other opportunities for alignment and design consistency. Our efforts resulted in a single style library that could be referenced by teams and used for future design components.

      Improvements to accessibility

      I incorporated WCAG contrast levels with each color to simplify design decisions and eliminate guesswork. As the Limeade product went through a series of accessibility tests, this gave designers and engineers a place to reference when addressing contrast issues.

      Improvements to consistency

      Color

      Alignment on primary green colors and a simple but flexible palette that can be applied to new design components

      Typography

      A consistent set of typography styles that align with marketing and the recent rebrand effort

      Iconography

      A new icon library that can be used across platforms and accessed by engineers and designers

      UI libraries

      A consistent visual language was applied to new components and marked a pivotal step in achieving better consistency in the product. Organizing design assets into a single library resulted in significant time savings and improved efficiency for designers and engineers.

      Building a scalable pattern library

      I used atomic design as the framework for building our pattern library. Using the visual styles we defined, I began with the smallest atomic components and combined them to form progressively more complex patterns and templates.

      I began by focusing on the atoms and molecules
      I progressed to adding more complex templates and design patterns to the library

      Design tokens

      We collaborated with engineering to develop a proof of concept for design tokens. Our POC successfully demonstrated how tokens can improve UI consistency at scale and allow for more efficient collaboration between designers and engineers.

      Green light for design tokens

      After meeting with engineering leads, we received the green light to work on a proof of concept for design tokens. One of our goals with the POC was to gain more engineering buy-in for the design system. We used Figma and a tool called Style Dictionary to manage the tokens. This step involved lots of back and forth collaboration with the engineer as we learned how to structure the design tokens and JSON files properly. Once set up, we were able to update visual styles across all platforms from a single source.

      Base tokens were created from our new color palette and added to a JSON file for engineering

      Design token architecture

      I was tasked with defining the naming structure of our design tokens and documenting them in Figma. Base tokens served as the building blocks for providing consistency and flexibility. Once the base tokens were defined, I moved on to decision tokens. Lots of research went into this step along with close collaboration with the engineer.

      The first step was documenting base tokens from the visual styles defined in Figma
      We used a consistent hierarchical structure for creating decision tokens
      We showed how using base and decision tokens together allows for efficient UI updates and a scalable system
      I used a Figma plugin for generating the initial JSON files for design tokens
      Our simple but effective POC demonstrated how styles could be updated and maintained from a single source

      Engineering hand-off

      The hand-off process involved some trial and error. I used a Figma plugin to generate the JSON files needed for design tokens.  For the tokens to work with Style Dictionary, I had to manually update the JSON before handing it off to the engineer. There was lots of room for improvement but we came up with a system that worked for the proof of concept.

      Changing priorities and accessibility

      Unfortunately, a change in roadmap priorities and leadership caused the design system effort to be put on hold. Resources grew very thin with engineers and designers, including myself, being pulled into different initiatives. I continued to chip away at documentation and a mobile pattern library but progress became slow.

      Accessibility testing of the product became one of the top priorities. I worked part-time with the accessibility team to address design bugs from testing. Since we now had a central source of truth for design assets, I could quickly update components to reflect the latest accessibility changes.

      Areas of improvement

      As the scope of this project grew, we were presented with bigger challenges. Addressing issues such as legacy code or white labeling were difficult problems to navigate. We did our best to take small steps forward and embrace the learning process. However, it would have been great to have someone there that could accelerate the learning curve. Seeking mentorship or consulting with someone with prior design system experience would have been ideal.