Color

Maintaining consistent and engaging digital interfaces, whether applications or experiences, demands extended guidance around color usage. The following concepts are the foundation as we strive to achieve balance and harmony through our User Interface design.

Implementation

BDS uses tokens and themes to manage color. Tokens are role-based, and themes specify the color values that serve those roles.

Tokens

Tokens are a method of abstracting color by role or usage, independent of the actual color values. For a different theme, that same token could be mapped to a different hex value. Thus, tokens not only allow for more efficient color updates within a theme, but also enable easily switch between different themes.

A single token can be associated with multiple roles, but only if the color value is used consistently across those roles. This allows for uniform color application across themes while maintaining full styling flexibility.

Themes

There are two default themes. The light theme use White and Gray 10 backgrounds, and the dark theme use Gray 100 and Gray 90 backgrounds. Default color tokens are provided for each component based on the primary background color.

Tokens by theme

In some cases, it is helpful to apply light components to dark backgrounds or dark components to light backgrounds. This technique is useful to focus attention or create visual tension.

White

Core color tokens
Token Role Value
ui-background Default page background
#FFFFFF
interactive-01 Primary interactive color; Primary buttons
#0F62FE
interactive-02 Secondary interactive color; Secondary button
#393939
interactive-03 4.5:1 AA contrast; Tertiary button
#0F62FE
interactive-04 3:1 AA contrast; Selected elements; Active elements; Accent icons
#0F62FE
danger Danger button background; 3:1 AA contrast
#DA1E28
ui-01 Container background on $ui-background; Secondary page background
#F4F4F4
ui-02 Container background on $ui-01; Light variant background
#FFFFFF
ui-03 Subtle border; Tertiary background
#E0E0E0
ui-04 3:1 aa element contrast; Medium contrast border
#8D8D8D
ui-05 4.5:1 aa element contrast; High contrast border; Emphasis elements
#161616
decorative-01 Light variant elements
#E0E0E0
text-01 Primary text; Body copy; Headers; Hover text color for $text-02
#161616
text-02 Secondary text; Input labels
#525252
text-03 Placeholder text
#A8A8A8
text-error Error message text
#DA1E28
icon-01 Primary icons
#161616
icon-02 Secondary icons
#525252
field-01 Default input fields; Fields on $ui-backgrounds
#F4F4F4
inverse-01 Inverse text color; Inverse icon color
#FFFFFF
inverse-02 High contrast backgrounds; High contrast elements
#393939
support-01 Error
#DA1E28
support-02 Success
#24A148
support-03 Warning
#F1C21B
inverse-support-01 Danger in high contrast moments
#FA4D56
inverse-support-02 Success in high contrast moments
#42BE65
inverse-support-03 Warning in high contrast moments
#F1C21B
overlay-01 Background overlay 50%
#161616
Interactive color tokens
Token Role Value
focus Focus border; Focus underline
#0F62FE
inverse-focus-ui Focus on high contrast moments
#FFFFFF
hover-primary $interactive-01 hover
#0353E9
hover-primary-text $interactive-01 text hover
#054ADA
hover-secondary $interactive-02 hover
#4C4C4C
hover-ui $ui-01 hover; $ui-02 hover; Transparent background hover
#E5E5E5
hover-ui-light “Light” variant hover
#E5E5E5
hover-selected-ui Selected row hover
#CACACA
inverse-hover-ui Hover for $inverse-02
#4C4C4C
active-primary $interactive-01 active
#002D9C
active-secondary $interactive-02 active; $inverse-01 active
#6F6F6F
active-ui $ui-01 active; $ui-02 active
#C6C6C6
selected-ui Selected UI elements
#E0E0E0
skeleton-01 Skeleton state of graphics
#E5E5E5
skeleton-02 Skeleton state of texts
#C6C6C6
disabled-01 Disabled fields; Disabled backgrounds; Disabled border
#F4F4F4
disabled-02 Disabled elements on $disabled-01; Disabled label; Disabled text on $disabled-01; Disabled icons; Disabled border
#C6C6C6

Gray 100

Core color tokens
Token Role Value
ui-background Default page background
#161616
interactive-01 Primary interactive color; Primary buttons
#0F62FE
interactive-02 Secondary interactive color; Secondary button
#6F6F6F
interactive-03 4.5:1 AA contrast; Tertiary button
#FFFFFF
interactive-04 3:1 AA contrast; Selected elements; Active elements; Accent icons
#4589FF
danger Danger button background; 3:1 AA contrast
#DA1E28
ui-01 Container background on $ui-background; Secondary page background
#262626
ui-02 Container background on $ui-01; Light variant background
#393939
ui-03 Subtle border; Tertiary background
#393939
ui-04 3:1 aa element contrast; Medium contrast border
#6F6F6F
ui-05 4.5:1 aa element contrast; High contrast border; Emphasis elements
#F4F4F4
decorative-01 Light variant elements
#525252
text-01 Primary text; Body copy; Headers; Hover text color for $text-02
#F4F4F4
text-02 Secondary text; Input labels
#C6C6C6
text-03 Placeholder text
#6F6F6F
text-error Error message text
#FF8389
icon-01 Primary icons
#F4F4F4
icon-02 Secondary icons
#C6C6C6
field-01 Default input fields; Fields on $ui-backgrounds
#262626
inverse-01 Inverse text color; Inverse icon color
#161616
inverse-02 High contrast backgrounds; High contrast elements
#F4F4F4
support-01 Error
#FA4D56
support-02 Success
#42BE65
support-03 Warning
#F1C21B
inverse-support-01 Danger in high contrast moments
#DA1E28
inverse-support-02 Success in high contrast moments
#24A148
inverse-support-03 Warning in high contrast moments
#F1C21B
overlay-01 Background overlay 50%
#161616
Interactive color tokens
Token Role Value
focus Focus border; Focus underline
#FFFFFF
inverse-focus-ui Focus on high contrast moments
#0F62FE
hover-primary $interactive-01 hover
#0353E9
hover-primary-text $interactive-01 text hover
#A6C8FF
hover-secondary $interactive-02 hover
#606060
hover-ui $ui-01 hover; $ui-02 hover; Transparent background hover
#353535
hover-ui-light “Light” variant hover
#525252
hover-selected-ui Selected row hover
#4C4C4C
inverse-hover-ui Hover for $inverse-02
#E5E5E5
active-primary $interactive-01 active
#002D9C
active-secondary $interactive-02 active; $inverse-01 active
#393939
active-ui $ui-01 active; $ui-02 active
#525252
selected-ui Selected UI elements
#393939
skeleton-01 Skeleton state of graphics
#353535
skeleton-02 Skeleton state of texts
#393939
disabled-01 Disabled fields; Disabled backgrounds; Disabled border
#262626
disabled-02 Disabled elements on $disabled-01; Disabled label; Disabled text on $disabled-01; Disabled icons; Disabled border
#525252