Color

Color is used in our UI based on its function. These are known as Semantic Colors, and are the primary color types that we apply to our UI.

The Semantic Colors reference our Core Colors, which are never directly used in our UI except as references. If you find the need to use any color outside of our Semantic Colors, reach out to PG (sekei) for a discussion about whether or not our palette should be extended. As a reminder, our Design System is meant to provide helpful constraints for consistency and velocity, so always try to work within the constraints provided without breaking or extending our styles.

Token Structure

Our token structure highlights our tokens are set up between Figma and our Tailwind codebase, with Figma in purple and Tailwind in blue.

Token Diagram

Token Diagram


Semantic Colors

Semantic Colors are tied to a specific meaning and applied directly to our UI.

Semantic Colors help us improve consistency by creating a set of self documenting tokens that make it easy to apply to various UI elements, rather than having to pick pseudo-randomly from our entire palette of neutrals.

By mapping and coding roles through tokens, rather than assigning hex values, a color can update systematically if a color palette changes. Tokens enable changes to a role's color value to cascade consistently.

OnDark Example

OnDark Example

Usage

Using our Semantic Color palette involves three main steps. Eventually these steps should become second nature and will help us create a more consistent and scalable UI.

01. What’s the function?

The first step is to figure out the function of the element you’re applying the color to.

In the example below, the color is being applied to the background of a card, therefore the function is background (surface). You can search for that in the color panel on the right to find the appropriate color style.

Function

Function

02. What's the context?

The second step is to decide which context the UI element is in. This is either onDark or onLight, and is completely separate from a theme (i.e. Dark Mode or Light Mode). In the example below, the text of this button could be considered to be in a “dark mode” theme because all of its surrounding elements are dark.

However, the text appears on a light background (bright yellow), so the context of this specific element is onLight. This ensures the text has appropriate contrast with the background it sits on.

Context

Context

03. What's the value?

The final step is to select the appropriate value from the right function/context. Back to our card background example, you can see that there are five options for surface/onDark:

  1. low
  2. base
  3. medium
  4. hight
  5. overlay

In the case of surfaces, we select the level based on elevation, meaning that base surfaces usually sit above low surfaces, medium sit above base, and so on.

In our example, the card is on top of a surface/onDark/low, so we’ve selected the surface/onDark/base as our card background.

Value

Value

 


Content

The content colors can be used for elements that communicate any kind of content with the user.

The colour palettes are subdivided based on the theme they appear on. “On Light” palettes are to be applied in light contexts and vice versa.

Content Example

Content Example

Surface

As the name suggest, surfaces are any area of the product that has other content “laying” on top of it. This usually means backgrounds for elements like cards, sidebars, pages, etc.

Surface Example

Surface Example

Border

As the name suggest, surfaces are any area of the product that has other content “laying” on top of it. This usually means backgrounds for elements like cards, sidebars, pages, etc.

border

subtle
#f0f3f5
medium
#e4eaed
strong
#d6dde0
active
#1f8fff
disabled
#f0f3f5

border / onLight

base
#9494a8
subtle
#c0c0d1
focused
#5f5dfe
strong
#282834

border / onDark

base
#4c4c5c
subtle
#282834
strong
#c0c0d1
focused
#5f5dfe
Border Example

Border Example

Action

The Action palette is used for UI elements that perform an action, typically buttons or links. Because this color is based on our primary palette, it can be used in other areas too such as badges, or other UI elements.

However, be mindful not to overuse this color, as it should be tied to more primary or prominent UI elements.

action

subtle
#ebf5ff
default
#0c74db
active
#1f8fff
disabled
#f0f3f5

action / onLight

inactive
#9494a8
active
#e3bd38
base
#806506
subtle
#fdf7e4

action / onDark

subtle
#3c2f04
inactive
#4c4c5c
active
#fde48b
base
#fcd23e
Action Example

Action Example

Alert

The Alert palette is used for UI elements that perform destructive or dangerous actions, typically buttons, error messages, as well as notifications.

alert

subtle
#ffe9e0
default
#ca2a00
active
#ff4300
disabled
#f2edeb

alert / onLight

inactive
#9494a8
active
#ff8c9c
base
#cc4151
subtle
#ffe5e9

alert / onDark

subtle
#380b10
inactive
#4c4c5c
active
#ffb2bd
base
#ff8c9c
Alert Example

Alert Example

Positive

The Positive palette is used for UI elements that are tied to positive concepts or actions, typically text or badges tied to partners and discounts.

positive

subtle
#e1faea
default
#057943
active
#00b25f
disabled
#ebf2ef

positive / onDark

subtle
#0d2b0d
inactive
#4c4c5c
active
#bff6bf
base
#94f094

positive / onLight

inactive
#9494a8
active
#77bf77
base
#477347
subtle
#f2fff2
Positive Example

Positive Example

Gradients

Gradients provide a collection of pre-baked combinations of brand colors. While the provided gradients act as recommendations that can be quickly added to a design, designers are free to create their own gradients provided they:

  1. Use the brand colors exclusively
  2. Document them as custom gradients for engineers

gradient

primary

Collection
-

greenlight

Collection
-

shimmer

Collection
-

pro

Collection
-

gradient / brand

1

Collection
-

2

Collection
-

3

Collection
-

4

Collection
-

5

Collection
-
Gradient Example

Gradient Example

 


Core Colors

The core colors form the foundation of our UI color palette. These comprehensive palettes are based on our brand, and are almost entirely void of meaning. The purpose of these colors is to provide us with a wide chromatic range to then compose our semantic palettes, which are then applied to the UI based on their function and meaning.

Core Color Ladders

Core Color Ladders

This is a placeholder until Figma releases token supp