Getting started
Note: If you are not upgrading to our Q2 2022 color tokens this guide is not for you and you can review our color tokens.
Before getting started and reviewing all of new beautiful colors we need spend some time reflecting on just where we are coming from and by that I mean we need to look at our old colors. Long ago before we were even where we are today our colors used a naming convention of their precieved lightness according to a white background. While that may have worked at one time we have long since out grown the naming convention.
Example of tokens named by precieved lightness
The problem & resolution
The old way of naming our color tokens presented issues for us to scale as a system. The main issues were the following:
-
Inconsistency -- The first problem with the way we were naming our tokens was that it was not consistent across color families. What was
lightest
in one color scale another would be usingpale
. -
Unable to scale -- The second problem was our inability to grow our color scales. For example how do you scale and add a color between
gray-light
andgray-lighter
(gray-semi-light?). In our new palette there was a need for more colors in each family and this forced us to use a more scalable approach. -
Confusing in other contexts --Lastly there is the problem of naming something in precieved lightness against a given background. Our old color tokens used the target background of white and all precieved lightness was measured against that white background. The problem becomes when we change that background to maybe a dark context the color light becomes confusing when its the darkest color. As we want our colors to be adaptive using the same contrast across different contexts precieved lightness was not something we could use.
The resolution
To resolve many of the issues outlined above we have moved our color naming convention to use numbers instead of precieved lightness. This has unlocked our color tokens to flex according to the context, scale to support more colors in a family and avoid inconsitencies across color families.
Phase 1: Translation
If you are a early adopter of our new design system you have already been using our new color token naming convention. This phase is called a transition because our color tokens did not disrupt or add and new colors to our legacy system. We simply translated the previous tokens to a normalized color scale. This allowed for us to provide the run way to begin to scale our color scales accordingly and avoid minimum impact when we integrate into our unified palette.
Example of gray-dark translating to gray-80
Old convention → New convention
Note: all other subs color were depracted in this transition as there was uncertainty on which colors would remain after the final color consilidation of our new palette of phase 2.
Phase 2: Growth & Adoption (Final Phase)
The evolution of our color palette is the introduction to our unfied color palette. This palette was worked across the orginzation with many different departments. Our main goal with this palette is to unifiy and remove the variance in color that we find throughout our product at large.
Which colors changed in phase 2?
Grayscale tokens
The grayscale now ranges from 0
to 700
Token | Notes |
---|---|
gray0 | no change to value |
gray20 | no change to value |
gray40 | no change to value |
gray60 | new color value |
gray80 | no change to value |
gray100 | new color value |
gray200 | new color value: equivalent to gray100 in phase 1 |
gray300 | new color value: equivalent to gray200 in phase 1 |
gray400 | new color value: equivalent to gray300 in phase 1 |
gray500 | new color value: equivalent to gray400 in phase 1 |
gray600 | new color value: equivalent to gray500 in phase 1 |
gray700 | new color value: equivalent to gray600 in phase 1 |
Vivid blue
Note: vividblue is no longer a supported token. All of the vividblues have been merged into one family of blue. Please review the blue tokens to map to the desired blue value.
Blue
All colors for blue have changed in value and now support a scale from 40
to 600
:
Token | Notes |
---|---|
blue40 | new token added |
blue60 | new token added |
blue80 | change to value |
blue100 | change to value: equivalent to vividblue100 in phase 1 |
blue200 | change to value |
blue300 | change to value |
blue400 | new token added |
blue500 | new token added |
blue600 | new token added : equivalent to vividblue300 in phase 1 |
Red
All colors for red have changed in value and now support a scale from 40
to 600
:
Token | Notes |
---|---|
red40 | new token added |
red60 | new token added |
red80 | change to value |
red100 | no change to value |
red200 | change to value |
red300 | change to value |
red400 | new token added |
red500 | new token added |
red600 | new token added : equivalent to red300 in phase 1 |
Green
All colors for green have changed in value and now support a scale from 40
to 600
:
Token | Notes |
---|---|
green40 | new token added |
green60 | new token added |
green80 | change to value |
green100 | no change to value |
green200 | change to value |
green300 | change to value |
green400 | new token added |
green500 | new token added |
green600 | new token added : equivalent to green300 in phase 1 |
Gold
All colors for gold have changed in value and now support a scale from 40
to 600
:
Token | Notes |
---|---|
gold40 | new token added : equivalent to gold80 before the change |
gold60 | new token added : equivalent to gold100 before the change |
gold80 | change to value : equivalent to gold200 before the change |
gold100 | change to value |
gold200 | change to value |
gold300 | change to value |
gold400 | new token added |
gold500 | new token added |
gold600 | new token added : equivalent to gold300 in phase 1 |
Orange
All colors for orange have changed in value and now support a scale from 40
to 600
:
Token | Notes |
---|---|
orange40 | new token added |
orange60 | new token added |
orange80 | change to value |
orange100 | no change to value |
orange200 | change to value |
orange300 | change to value |
orange400 | new token added |
orange500 | new token added |
orange600 | new token added : equivalent to orange300 in phase 1 |