Color

To maintain consistency throughout D-system digital interfaces, we must apply guidance concerning colour usage. A set of foundational concepts govern this application.

Colour palette
The colour palette unifies D-system digital products and interfaces, giving them a consistent look and feel.

D-system uses colour to signpost the function of elements throughout the interface. This creates recurrent patterns that users can recognise, making the product more predictable and easier to navigate.

Theming & tokens

D-system uses a theming system based on palettes and tokens. Depot always uses tokens instead of direct references to hex values.

The 4 palettes

Full, Brand, App and Component, specific with the following inheritance system:

Full palette*

This is the full Trainline colour palette, with enough variants to cover most cases. These should only populate Brand, Application or Component specific elements, and should never applied directly to the UI.

Brand*

This is the palette where brand colours are specified. This intermediary step lets D-system support themes for business partners (who have a need to use their own colour scheme and have it propagate throughout the UI).

Application (App)*

Here, we declare colour tokens based on their high-level, semantic use in our application. These tokens are not yet component specific.

Component-specific (Comp)*

Here, we declare colour tokens based on how they are used within components considering different states.

* see Library Tab

Color anatomy

D-system’s default themes are derived from the Full palette. The neutral grey family is dominant in the default themes. Variations in value organise content into categories.

The core Full palette serves as the primary library across all D-system products and experiences. Additional colours are used sparingly and purposefully... And for a very good reason!

Depot’s default core & Full palette colours

Core colours follow our branding guidelines.


Mid is the midpoint colour that sits between light and dark shades. Sometimes core is the same as mid, but that isn’t always true for all colours.

100 CORE
120 CORE
90 CORE
140 CORE
Mint
50
60
70
80
90
100 CORE
110
120
130
140
Blue
50
60
70
80
90
100
110
120
130
140
Green
50
60
70
80
90
100
110
120
130
140
Indigo
50
60
70
80
90
100
110
120 CORE
130
140
Red
50
60
70
80
90
100
110
120
130
140
Pink
50
60
70
80
90 CORE
100
110
120
130
140
Yellow
50
60
70
80
90
100
110
120
130
140
Grey
50
60
70
80
90
100
110
120
130
140 CORE
Black & White
Black
White

Layering model

Colors in the neutral gray palette are layered on top of each other to create depth and spatial associations. The layering model defines the logic of how colors stack on top of each other in a UI when using the Depot themes.

In the light themes, layers become one step darker with each added layer and reverse.

In the dark themes, layers become one step lighter with each added layer and reverse.

Also see Backdrop

Implementing color

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

Term
Definition

Theme

A theme is a collection of colors designed to create a specific aesthetic. Themes control the color value assigned to a token. For example, Dark theme.

Token

A token is the role-based identifier that assigns a color. Unlike hex codes, tokens apply universally across themes. For example, $text_subtle, $link_base, $focus_ring.

Role

A role is the systematic usage of a color assigned to a token. Roles cannot be changed between themes.

Value

A value is the unique visual attribute (hex code, rgba value) assigned to a token through the use of themes.

Themes

Themes serve as an organizational framework for color in D-system, with each theme based on a specific primary background color. And they actually get their names from their background color. There a default light theme and a default dark theme.

The light theme is based on White background, and the dark theme use black background. Within each theme, the values for the universal color tokens use the primary background color as the base of its layering model.

Tokens

Tokens are method of applying color in a consistent, reusable, and scalable way. They help us abstract how we use color from the values themselves. They are used in place of hard coded values, like hex codes. Tokens allow for value changes to be made at scale, making design language changes easy to implement, as well as making possible color functionalities like inline theming and light or dark mode.

Each token is assigned a role and a value. The role determines what element to apply a token too and the value is the actual color (hex code) that appears in the assigned theme. Color token names and roles are the same across themes, only the assigned value will change with the theme. For example, under the hood the $text_base token can dynamically map to Gray 70 or Gray 30 depending on the theme.

Token names

For quick reference, the role of a token is represented in the token name itself to help you correctly apply tokens. The first part of the token name references the general UI element the color is being applied to, like background, text, or border. The second part of token name will specify its unique role within the element group like $border-subtle or $text-primary. Additionally, some tokens include aninteraction state at the end, like $background-hover.

Core tokens

Color tokens that can be applied across components are called core tokens. There are ten main groups of core color tokens. They are grouped by the common UI element that they are applied to. Token groups makes it easier to find and apply color tokens. Interaction state tokens are included in the group along side their enabled state tokens.

Token Group
Applied to

Background

Page or primary backgrounds

Layer

Stacked backgrounds (includes layering tokens)

Field

Form and input backgrounds (includes layering tokens)

Border

Dividers, rules, and borders between and around elements (includes layering tokens)

Text

Type and type styles

Link

Standalone and inline links

Icon

Icons and pictograms

Support

Notification elements and status indicators

Focus

Focus states

Skeleton

Skeleton states

Component tokens

Some components have their own specific color tokens, known as component tokens. They represent the properties associated with a particular component. They are not global tokens like the core tokens and should never be used for anything other than their own component.

These are:

  • Button

  • Tag

  • Navigation

Interaction states

The color layering model for interaction tokens is as follows:
For values between Black and Gray 100, interaction gets lighter.
For values between Gray 90 and White, interaction gets darker.

White
50
60
70
80
90
100
110
120
130
140
black
50
60
70
80
90
100
90
120
110
120
130
140

Hover

Hover is a subtle visual change that appears when a mouse cursor moves over an interactive element. Hover states have their own tokens and are identified by -hover added to the end of the base token name, such as $background-hover.

In the D-system themes, hover states token values are “one step” between two adjacent colors on the Full core color palette steps.

These values fall inside of the Full core color palette steps. Hover colors should not be used for anything other hover states.

For values between Black and Grey 120, the hover state is one step lighter.

140
black
130
140
120
130
110
120

For values between Grey 90 and White, the hover state is a one step darker.

90
100
80
90
70
80
60
70
50
60
white
50

Elements like text or icons that use secondary colors for their enabled state, will change to the primary color on hover, giving them a subtle emphasis. Most of the time, this shift in color (on the text or icon element) will be accompanied by a background hover color shift as well.

Active

The active state can be used to indicate a click, tap or down press of a button. Active tokens are identified by -active added after the base token name, such as $button-primary-active. Active state values are two full steps lighter or darker on the Full core color scale. For example, the Blue 60 active state is Blue 80.

For values between core and 120, the active state is two full steps lighter.

130
black
120
140
100
120

For values between 50 and 90, the active state is two full steps darker.

70
50
80
60
90
70
100
80
110
90

Selected

Selected states indicate item(s) or option(s) that have been chosen in the UI by the user through any input method. Selected tokens are identified by the -selected added after base token name, such as $layer-selected-01.

The color logic for selected state is either one full step lighter or darker on the Full core color scale. For example, the Gray100 selected state is Gray 90.

For values between darkest and 120, the selected state is one full step lighter.

140
black
130
140
120
130

For values between lightest and 90, the selected state is one full step darker.

50
White
60
50
70
60
80
70
90
80
100
90

Focus

The focus state draws attention to the active element on a page when using the keyboard or voice to navigate. In D-system, the focus of an element is most commonly indicated by a 2px border around the element. In order to make it easy to identify and locate on a page, most focus states use only one color per theme controlled through the $focus color token.

In the light themes, the focus state usually appears as an indigo 120 border. In the dark themes, the focus state usually appears as a White border.

Focus states are required on all interactive elements and must pass 3:1 color contrast accessibility.

Disabled

A disabled state is applied to a component when the user is not allowed to interact with the component due to either permissions, dependencies, or pre-requisites. Disabled states completely remove the interactive function of a component and therefore don’t receive hover or focus.

Disabled state styling is not subject to WC3 contrast compliance standards and is intentionally de-emphasized in a faded fashion.

Disabled elements are always styled in the Gray family no matter its base color. A component’s specific styling will depend on the elements within it and what layers they are placed on. Some tokens have their own specific disabled tokens, while other elements are grouped together and share a disabled token.

For the light and dark themes, use the disabled color values.

This is the full Trainline colour palette, it includes enough variants to cover most cases. These should only be used to populate Brand, Application or Component Specific and never applied directly to the UI.

Mint (main)
Name
Hex
Contrast
AAA 15.66
mint_50
#F9FDFD
Fail 1.02
AAA 15.27
mint_60
#F3FBF9
Fail 1.05
AAA 14.27
mint_70
#E2F6F0
Fail 1.12
AAA 13.39
mint_80
#D3F1E8
Fail 1.20
AAA 10.68
mint_90
#A0DFD1
Fail 1.50
CORE
AA 5.35
Fail 3.00
mint_100
#00A88F
Fail 3.00
Fail 2.66
AA 6.03
mint_110
#00705F
AA 6.03
AAA 12.08
mint_120
#003E34
AAA 12.08
AAA 15.14
mint_130
#002C25
AAA 15.14
AAA 16.18
mint_140
#002620
AAA 16.18
Blue
Name
Hex
Contrast
AAA 15.74
blue_50
#FBFDFF
Fail 1.02
AAA 20.07
blue_60
#F7FAFF
Fail 1.04
AAA 14.27
blue_70
#EBF2FF
Fail 1.12
AAA 13.35
blue_80
#DFEBFF
Fail 1.20
AA 6.48
blue_90
#78A3FF
Fail 2.48
Fail 4.01
Fail 4.00
blue_100
#3877FF
Fail 4.00
Fail 2.07
AAA 7.75
blue_110
#0044CD
AAA 7.75
AAA 10.09
blue_120
#0035A9
AAA 10.12
AAA 14.04
blue_130
#002472
AAA 14.00
AAA 17.15
blue_140
#001848
AAA 17.15
Green
Name
Hex
Contrast
AAA 15.72
green_50
#FAFEF6
Fail 1.02
AAA 15.33
green_60
#F5FCF0
Fail 1.04
AAA 14.51
green_70
#e1fbd7
Fail 1.11
AAA 13.41
green_80
#D6F3CB
Fail 1.19
AAA 9.19
green_90
#D6F3CB
Fail 1.82
AA 5.31
Fail 3.02
green_100
#11AC23
Fail 3.28
Faiil 2.68
AA 6.00
green_110
#11AC23
AA 6.39
AAA 10.10
green_120
#0F4C23
AAA 10.37
AAA 13.08
green_130
#093911
AAA 13.07
AAA 15.10
green_140
#052D12
AAA 15.09
Indigo (secondary)
Name
Hex
Contrast
AAA 15.69
indigo_50
#FDFCFE
Fail 1.02
AAA 15.23
indigo_60
#FAF8FE
Fail 1.05
AAA 15.23
indigo_70
#f3f1fd
Fail 1.12
AAA 13.39
indigo_80
#ECE8FC
Fail 1.20
AAA 10.70
indigo_90
#D5CEF7
Fail 1.50
AA 5.25
Fail 3.06
indigo_100
#9786E6
Fail 3.08
Fail 2.67
AA 6.02
indigo_110
#4C4FDF
AA 6.00
AA A 9.03
indigo_120
#2332C4
AAA 9.03
CORE
AA A 12.02
indigo_130
#2D00B1
AAA 12.02
AA A 16.09
indigo_140
#160078
AAA 16.09
Red
Name
Hex
Contrast
AAA 15.70
red_50
#FFFCF9
Fail 1.02
AAA 15.25
red_60
#FFF8F1
#FFF8F1
AAA 14.26
red_70
#ffefdf
Fail 1.13
AAA 13.35
red_80
#FFE6CF
Fail 1.20
AA 6.44
red_90
#FF7F58
Fail 2.49
AA 5.34
Fail 3.01
red_100
#FF6120
Fail 3.01
Fail 3.99
Fail 4.02
red_110
#EF370E
Fail 4.04
AA 6.02
red_120
#EF370E
AA 6.06
AAA 9.05
red_130
#950A00
AAA 9.05
AAA 12.05
red_140
#730303
AAA 12.05
Pink
Name
Hex
Contrast
AAA 15.57
pink_50
#FDFBFB
Fail 1.03
AAA 15.25
pink_60
#FFF7F8
Fail 1.05
AAA 14.41
pink_70
#ffeff0
Fail 1.12
AAA 13.45
pink_80
#FFE5E6
Fail 1.19
AAA 8.09
pink_90
#FF9DA1
Fail 2.00
CORE
AA 5.32
Fail 3.02
pink_100
#FF5C62
Fail 3.02
Fail 2.66
AA 6.02
pink_110
#C5004F
AA 6.07
AAA 9.01
pink_120
#930047
AAA 9.01
AAA 13.01
pink_130
#660034
AAA 13.01
AAA 16.13
pink_140
#480025
AAA 16.13
Yellow
Name
Hex
Contrast
AAA 15.76
yellow_50
#FEFDF8
Fail 1.02
AAA 15.34
yellow_60
#FCFAF0
Fail 1.05
AAA 14.77
yellow_70
#fdf7c9
Fail 1.09
AAA 14.57
yellow_80
#FFF6B1
Fail 1.10
AAA 13.35
yellow_90
#FCEC83
Fail 1.21
AAA 11.93
Fail 1.35
yellow_100
#FFDC50
Fail 1.35
AAA 10.12
Fail 1.59
yellow_110
#FFC508
Fail 1.59
AA 5.29
Fail 3.04
yellow_120
#D58000
Fail 3.04
Fail 2.66
AA 6.03
yellow_130
#955200
AA 6.03
AAA 12.13
yellow_140
#502E00
AAA 12.13
Grey
Name
Hex
Contrast
AAA 15.59
grey_50
#FAFCFC
Fail 1.03
AAA 15.32
grey_60
#F8FAFA
Fail 1.05
AAA 14.54
grey_70
#F2F4F4
Fail 1.10
AAA 13.36
grey_80
#E7EBEB
Fail 1.20
AAA 10.75
grey_90
#D0D4D5
Fail 1.49
AA 5.17
Fail 3.10
grey_100
#8A9497
Fail 3.10
Fail 2.64
AA 6.07
grey_110
#5B6466
AA 6.07
AAA 9.02
grey_120
#3F4B4E
AAA 9.05
AAA 12.02
grey_130
#2F383A
AAA 12.02
AAA 16.05
grey_140
#192325
AAA 16.05
CORE
Black & White
Name
Hex
Contrast
AAA 21.00
black
#000000
AAA 21.00
AAA 16.05
white
#FFFFFF
Fail 1.00

Brand

This is the pallet where brand colours are specified. The reason for this intermediary step is so that Depot can support themes for business partners who have a need to use their own colour scheme and have it propagate throughout the UI.

Core are the core colours as per the branding guidelines.


Mid is the midpoint colour that sits between light and dark shades.

Sometimes core is the same as mid, but that isn’t always true for all colours.

Primary
Name
Origin
Hex
primary_core
mint_100
#00a88f
primary_lightest
mint_70
#E2F6F0
primary_lighter
mint_80
#E2F6F0
primary_light
mint_90
#A0DFD1
primary_mid
mint_100
#00A88F
primary_dim
mint_110
#00705f
primary_dark
mint_120
#003E34
primary_darker
mint_130
#002C25
primary_darkest
mint_140
#002620
Secondary
Name
Origin
Hex
secondary_core
indigo_120
#2332C4
secondary_lightest
indigo_70
#F3F1FD
secondary_lighter
indigo_80
#ECE8FC
secondary_light
indigo_90
#D5CEF7
secondary_mid
indigo_100
#9786E6
secondary_dim
indigo_110
#4C4FDF
secondary_dark
indigo_120
#2332C4
secondary_darker
indigo_130
#2D00B1
secondary_darkest
indigo_140
160078
Tertiary
Name
Origin
Hex
tertiary_core
pink_90
#FF9DA1
tertiary_lightest
pink_70
#FFEFF0
tertiary_lighter
pink_80
#FFE5E6
tertiary_light
pink_90
#FF9DA1
tertiary_mid
pink_100
#FF5C62
tertiary_dim
pink_110
#C5004F
tertiary_dark
pink_120
#930047
tertiary_darker
pink_130
#660034
tertiary_darkest
pink_140
#480025
Neutral
Name
Origin
Hex
neutral_core
grey_140
#192325
neutral_lightest
grey_70
#F2F4F4
neutral_lighter
grey_80
#e7ebeb
neutral_light
grey_90
#D0D4D5
neutral_mid
grey_100
#8A9497
neutral_dim
grey_110
#5B6466
neutral_dark
grey_120
#3F4B4E
neutral_darker
grey_130
#2F383A
neutral_darkest
grey_140
#192325
Black & White
Name
Origin
Hex
black
black
#000000
white
white
#FFFFFF

Application (App)

Here we declare colour tokens based on their semantic use in our application on a high level, not yet component specific.

Text
Name
Origin
Hex
text_base
grey_140
#192325
text_subtle
grey_120
#3F4B4E
text_subdued
grey_110
#5B6466
text_inverted
white
#FFFFFF
text_negative
red_120
#c70d00
text_warning
yellow_130
#955200
text_positive
green_110
#0C732B
text_disabled
grey_110
#5B6466
text_urgency_medium
yellow_130
#955200
text_urgency_high
red_120
#c70d00
Link
Name
Origin
Hex
link_base
blue_110
#0044CD
link_hover
blue_120
#004ff9
link_pressed
blue_140
#001848
link_visited_base
indigo_130
#2D00B1
link_visited_hover
indigo_120
#2332C4
link_visited_pressed
indigo_140
#160078
Border
Name
Origin
Hex
border_base
grey_90
#D0D4D5
border_light
grey_70
#F2F4F4
border_dark
grey_100
#8A9497
Action
Name
Origin
Hex
action_primary
primary_core
#00A88F
action_secondary
secondary_core
#2332c4
action_tertiary
white
#ffffff
action_destructive
red120
#c70d00
action_disabled
grey_80
#E7EBEB
Focus
Name
Origin
Hex
focus_ring
secondary_core
#2332c4
Box shadow
Name
Origin
Hex
box_shadow
black
#000000
Backdrop
Name
Origin
Hex
backdrop_base
white
#FFFFFF
backdrop_dark
grey_70
#F2F4F4
backdrop_darker
grey_80
#E7EBEB
backdrop_one_lightest
red_70
#E7EBEB
backdrop_one_lighter
red_80
#ffe6cf
backdrop_one_darker
red_130
#ffe6cf
backdrop_one_darkestred
red_140
#730303
backdrop_two_lightest
yellow_70
#FDF7C9
backdrop_two_lighter
yellow_80
#FDF7C9
backdrop_two_darker
yellow_130
#955200
backdrop_two_darkest
yellow_140
#502E00
backdrop_three_lightest
blue_70
#EBF2FF
backdrop_three_lighter
blue_80
#DFEBFF
backdrop_three_darker
blue_130
#002472
backdrop_three_darkest
blue_140
#001848
backdrop_four_lightest
green_70
#e1fbd7
backdrop_four_lighter
green_80
#D6F3CB
backdrop_four_darker
green_130
#093911
backdrop_four_darkest
green_140
#052D12
Possitive
Name
Origin
Hex
positive_lightest
green_70
#E1FBD7
positive_lighter
green_80
#D6F3CB
positive_light
green_90
#73DB5E
positive_mid
green_100
#11AC23
positive_dark
green_110
#0C732B
positive_darker
green_120
#0F4C23
positive_darkest
green_140
#052D12
Negative
Name
Origin
Hex
negative_lightest
pink_70
#052D12
negative_lighter
pink_80
#ffe5e6
negative_light
pink_90
#ffe5e6
negative_mid
red_110
#ffe5e6
negative_dark
red_120
#C70D00
negative_darker
red_130
#950A00
negative_darkest
red_140
#730303
Warning
Name
Origin
Hex
warning_lightest
yellow_70
#FDF7C9
warning_lighter
yellow_80
#FFF6B1
warning_light
yellow_90
#FCEC83
warning_mid
yellow_110
#FFC508
warning_dark
yellow_120
#FFC508
warning_darker
yellow_130
#955200
warning_darkest
yellow_140
#502E00
Info
Name
Origin
Hex
info_lightest
blue_70
#502E00
info_lighter
blue_80
#DFEBFF
info_light
blue_90
#DFEBFF
info_mid
blue_110
#004FF9
info_dark
blue_120
#0035A9
info_darker
blue_130
#002472
info_darkest
blue_140
#001848
Selection
Name
Origin
Hex
selection_lightest
secondary_lightest
#F3F1FD
selection_lighter
secondary_lighter
#ECE8FC
selection_light
secondary_light
#D5CEF7
selection_mid
secondary_mid
#9786E6
selection_dim
secondary_dim
#4C4FDF
selection_dark
secondary_dark
#2332C4
selection_darker
secondary_darker
#2D00B1
selection_darkest
secondary_darkest
#160078

Component specific (Comp)

Colour tokens based on how they are used within components considering different states.

Button Primary
Name
Origin
Hex
button_primary_background
action_primary
#00A88F
button_primary_background_hover
primary_dim
#00705F
button_primary_background_pressed
primary_dark
#003E34
Button Secondary
Name
Origin
Hex
button_secondary_background
action_secondary
#2332c4
button_secondary_background_hover
secondary_darker
#2D00B1
button_secondary_background_pressed
secondary_darkest
#160078
Button Tertiary
Name
Origin
Hex
button_tertiary_background
action_tertiary
#ffffff
button_tertiary_background_hover
neutral_lightest
#F2F4F4
button_tertiary_background_pressed
neutral_light
#D0D4D5
button_tertiary_border
border_base
#D0D4D5
Message Negative
Name
Origin
Hex
message_negative_background
negative_lightest
#FFEFF0
message_negative_left_edge
negative_mid
#EF370E
message_negative_border
negative_light
#FF9DA1
Message Warning
Name
Origin
Hex
message_warning_background
warning_lightest
#FDF7C9
message_warning_left_edge
warning_mid
#FFC508
message_warning_border
warning_mid
#FFC508
Message Info
Name
Origin
Hex
message_info_background
info_lightest
#EBF2FF
message_info_left_edge
info_mid
#0044CD
message_info_border
info_light
#78A3FF
Message Positive
Name
Origin
Hex
message_positive_background
positive_lightest
#E1FBD7
message_positive_left_edge
positive_mid
#11AC23
message_positive_border
positive_light
#73DB5E
Monochrome Fill
Name
Origin
Hex
carrier_logo_monochrome_fill
neutral_mid
#8A9497
Focus Ring
Name
Origin
Hex
focus_ring
selection_dark, 48%
#8A9497, 48%
Box Shadow
Name
Origin
Hex
box_shadow
black, 12%
#000000, 12%
Overlay Backdrop
Name
Origin
Hex
overlay_backdrop_dim
black, 24%
#000000, 24%
overlay_backdrop_dark
black, 48%
#000000, 48%
overlay_backdrop_darkest
black, 80%
#000000, 80%
Input
Name
Origin
Hex
input_border
border_base
#D0D4D5
input_border_hover
selection_dim
#4C4FDF
input_border_focus
selection_dark
#2332C4
input_invalid_border
negative_mid
#EF370E
input_invalid_border_hover
negative_dark
#C70D00
input_invalid_border_focus
negative_mid
#EF370E
input_placeholder_text
text_subdued
#5B6466
Input Binary
Name
Origin
Hex
input_binary_background_base
white
#FFFFFF
input_binary_background_hover
selection_lighter
#ECE8FC
input_binary_background_pressed
selection_light
#D5CEF7
input_binary_border_base
border_dark
#2332C4
input_binary_border_hover
selection_dim
#4C4FDF
input_binary_border_pressed
selection_dim
#4C4FDF
input_binary_selected_background_base
selection_dark
#2332C4
input_binary_selected_background_hover
selection_darker
#2D00B1
input_binary_selected_background_pressed
selection_darkest
#160078
input_binary_selected_border_base
selection_dark
#2332C4
Table
Name
Origin
Hex
table_row
neutral_lightest
#F2F4F4
table_row_hover
primary_lightest
#E2F6F0
table_row_active_border
action_primary
#E2F6F0
Skeleton
Name
Origin
Hex
skeleton_background_base
neutral_lightest
#F2F4F4
skeleton_background_darker
neutral_lighter
#E7EBEB

Ticketing Specification eTicket

The cells below should identify within the Issued Specification changes made by Rail Delivering Group - National Rail

RDG color name example
Name
Origin
Hex
button_primary_background
action_primary
#00A88F

D-system uses Color to express various positive or negative actions, message moods, connectivity and priority status, even membership level.

The below list is only an indication of the color category and does not include proper color values rather than an overall hue per mood.

Expression
Blue
Neutral
Green
Yellow
Red
Indigo
Actions
Actions
Primary
Secondary
Confirm
Warning
Remove
Help
Messages
Actions
Primary
Secondary
Success
Warning
Error
Information
Connectivity
Actions
Primary
Unavailable
Available
Warning
Busy
Focus
Status
Actions
In progress
Default/To do
Added/Complete
Moved
Removed/Failed
New
Priority
Actions
in
Trivial
Minor
Medium/Blocker
Major/Critical
New
Team
Actions
Me
Others
Minor
Medium/Blocker
Major/Critical
New

Accessibility

Using various forms of contrast is the most important consideration when making user-friendly color and interface choices. Awareness of standards and best practices is the key to accessible color selections.

Contrast ratios

Contrast is the difference in brightness between any two elements. The Web Content Acessibility Guidelines (WCAG) set specific ratios that achieve the minimum required contrast for legibility.

Generally speaking, small text is any size below 24px and requires a 4.5:1 contrast ratio.

Large text is anything above 24px and requires a 3:1 contrast ratio.

Graphical elements, such as data visualizations, also require a 3:1 contrast ratio.

All borders need a contrast ratio of at least 3.0:1 against their backgrounds. This includes borders on actionable elements like text inputs, radio buttons, and checkboxes.

Useful resources:

Check the color contrast of your borders and learn more about best practices with these excellent color contrast tools:
Color Contrast Analyzer (Chrome Extension)
TPG’s Color Contrast Analyser
tanaguru contrast finder
‍WebAIM’s Contrast Checker
Colorable

A11y project reference:
Check the contrast of borders for input elements

WCAG reference:
1.4.3 Contrast (Minimum)

Icons need a contrast ratio of at least 3.0:1 against background colors.

Text should have sufficient contrast against its background to be readable.

Level AA compliance requires a contrast ratio of:
3:1 for large text (>18pt normal, >14pt bold)
4.5:1 for body text (<18pt normal, <14pt bold)

Text that overlaps images or videos needs sufficient contrast against the background to be fully legible. Images and videos with busy backgrounds make text difficult to read.

Make sure text on images and videos have a minimum contrast of:
3:1 for large text (>18pt normal, >14pt bold)
4.5:1 for body text (<18pt normal, <14pt bold)If needed, add an overlay on your image or video to increase the readability and contrast between elements.

Please see the Library tab for more