--- title: Colors description: 'Immutable, atomic CSS classes to rapidly build product' status: Stable status_issue: 'https://github.com/github/design-systems/issues/97' --- import {Box, BorderBox} from '@primer/components' import {palettes, allColors} from '../../src/color-variables' import {PaletteTable, PaletteTableFragment, PaletteHeading, PaletteCell, PaletteValue} from '../../src/color-system' Use color utilities to apply color to the background of elements, text, and borders. ## Background colors Background colors are most commonly used for filling large blocks of content or areas with a color. When selecting a background color, make sure the foreground color contrast passes a minimum WCAG accessibility rating of [level AA](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html). Meeting these standards ensures that content is accessible by everyone, regardless of disability or user device. You can [check your color combination with this demo site](https://colorable.jxnblk.com/). For more information, read our [accessibility standards](../principles/accessibility). ### Background utilities {palettes.map(({name, title, value}) => ( {title} ))} ## Text colors Use text color utilities to set text or [Octicons](https://octicons.github.com) to a specific color. Color contrast must pass a minimum WCAG accessibility rating of [level AA](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html). This ensures that viewers who cannot see the full color spectrum are able to read the text. To customize outside of the suggested combinations below, we recommend using this [color contrast testing tool](https://colorable.jxnblk.com/). For more information, read our [accessibility standards](../principles/accessibility). These are our most common text with background color combinations. They don't all pass accessibility standards currently, but will be updated in the future. **⚠️ Any of the combinations with a warning icon must be used with caution**. ### Text color inheritance You can set the color inheritance on an element by using the `text-inherit` class. ```html live
This text is purple, including the link
``` ### Text on white background ```html live
.text-blue
.text-gray-dark
.text-gray
.text-gray-light
.text-red
.text-orange
.text-orange-light ⚠️
.text-yellow ⚠️
.text-green
.text-purple
``` ### Text on colored backgrounds ```html live
.text-white on .bg-blue
.text-gray-dark on .bg-blue-light
.text-white on .bg-red
.text-red on .bg-red-light
.text-gray-dark on .bg-green-light
.text-gray-dark on .bg-yellow-dark
.text-gray-dark on .bg-yellow
.text-gray-dark on .bg-yellow-light
.text-white on .bg-purple
.text-white on .bg-gray-dark
.text-gray-dark on .bg-gray
``` ### Text color utilities }, 'variable', {title: 'Value', Cell: PaletteCell.Background, Value: PaletteValue.Value} ]}> {palettes.map(({name, title, value}) => ( }, 'variable', {title: 'Value', Cell: PaletteCell.Background, Value: PaletteValue.Value} ]}> {title} ))} ## White background You can make a background explicitly white (`#fff`) with the `bg-white` utility: ```html live
.bg-white over .bg-gray-dark
``` ## Link colors Base link styles turn links blue and apply an underline on hover. You can override the base link styles with text color utilities and the following link utilities. **Bear in mind that link styles are easier for more people to see and interact with when the changes in styles do not rely on color alone.** Use `link-gray` to turn the link color to `$text-gray` and remain hover on blue. ```html live link-gray ``` Use `link-gray-dark` to turn the link color to `$text-gray-dark` and remain hover on blue. ```html live link-gray-dark ``` Use `.muted-link` to turn the link light gray in color, and blue on hover or focus with no underline. ```html live muted-link ``` Use `link-hover-blue` to make any text color used with links to turn blue on hover. This is useful when you want only part of a link to turn blue on hover. ```html live A link with only part of it is blue on hover. ``` ## Border colors Border colors are documented on the [border utilities page](../utilities/borders#border-width-style-and-color-utilities).