Colors
The colour value types: what a <color> can be, the keyword colours, and the pieces colour functions are built from. The functions themselves, rgb(), oklch(), color-mix(), light-dark() and the rest, are under Color functions. Gradients are under Images, shapes & positions.
Colour values
<color>
Any colour. It can be a hex value, a named colour, transparent, currentcolor, a system colour, or a colour function: rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch(), color(), color-mix(), contrast-color() or light-dark().
| Syntax | <color-base> | currentColor | <system-color> | <contrast-color()> | <device-cmyk()> | <light-dark-color> |
|---|---|
| Used by | color, background-color, border-color, outline-color, text-decoration-color, accent-color, fill, shadows and gradients |
| Support | Chrome 1 · Firefox 1 · Safari 1 |
| Spec | css-color-5 |
<color-base> is the group of hex colours, colour functions, named colours, color-mix() and transparent. Every colour, however written, resolves to a colour in some colour space plus an alpha channel.
color: #1a1a2e;
background-color: oklch(95% 0.03 90);
border-color: color-mix(in oklab, currentcolor 30%, transparent);
<hex-color>
A colour written as # and hexadecimal digits: #rgb, #rgba, #rrggbb or #rrggbbaa. The short forms double each digit, so #f80 is #ff8800. Letters may be upper or lower case.
| Definition | A hash token whose value is 3, 4, 6 or 8 hexadecimal digits |
|---|---|
| Used by | Anywhere a <color> is accepted |
| Support | Chrome 1 · Firefox 1 · Safari 1 With alpha ( #rgba, #rrggbbaa): Chrome 62 · Firefox 49 · Safari 10 |
| Spec | css-color-4 |
The fourth or last two digits are the alpha channel: #0008 and #00000080 are both half-transparent black. Hex colours are always in the sRGB colour space.
<named-color>
One of 148 colour keywords, all in the sRGB space and all fully opaque. Names are case-insensitive. Each gray name also has a grey spelling, and aqua/cyan and fuchsia/magenta are pairs with the same value.
| Syntax | aliceblue | antiquewhite | aqua | … | yellow | yellowgreen | transparent (each keyword is in the table below) |
|---|---|
| Used by | Anywhere a <color> is accepted |
| Support | Chrome 1 · Firefox 1 · Safari 1rebeccapurple: Chrome 38 · Firefox 33 · Safari 9 |
| Spec | css-color-4 |
| Swatch | Keyword | Hex |
|---|---|---|
aliceblue | #f0f8ff | |
antiquewhite | #faebd7 | |
aqua | #00ffff | |
aquamarine | #7fffd4 | |
azure | #f0ffff | |
beige | #f5f5dc | |
bisque | #ffe4c4 | |
black | #000000 | |
blanchedalmond | #ffebcd | |
blue | #0000ff | |
blueviolet | #8a2be2 | |
brown | #a52a2a | |
burlywood | #deb887 | |
cadetblue | #5f9ea0 | |
chartreuse | #7fff00 | |
chocolate | #d2691e | |
coral | #ff7f50 | |
cornflowerblue | #6495ed | |
cornsilk | #fff8dc | |
crimson | #dc143c | |
cyan | #00ffff | |
darkblue | #00008b | |
darkcyan | #008b8b | |
darkgoldenrod | #b8860b | |
darkgray | #a9a9a9 | |
darkgreen | #006400 | |
darkgrey | #a9a9a9 | |
darkkhaki | #bdb76b | |
darkmagenta | #8b008b | |
darkolivegreen | #556b2f | |
darkorange | #ff8c00 | |
darkorchid | #9932cc | |
darkred | #8b0000 | |
darksalmon | #e9967a | |
darkseagreen | #8fbc8f | |
darkslateblue | #483d8b | |
darkslategray | #2f4f4f | |
darkslategrey | #2f4f4f | |
darkturquoise | #00ced1 | |
darkviolet | #9400d3 | |
deeppink | #ff1493 | |
deepskyblue | #00bfff | |
dimgray | #696969 | |
dimgrey | #696969 | |
dodgerblue | #1e90ff | |
firebrick | #b22222 | |
floralwhite | #fffaf0 | |
forestgreen | #228b22 | |
fuchsia | #ff00ff | |
gainsboro | #dcdcdc | |
ghostwhite | #f8f8ff | |
gold | #ffd700 | |
goldenrod | #daa520 | |
gray | #808080 | |
green | #008000 | |
greenyellow | #adff2f | |
grey | #808080 | |
honeydew | #f0fff0 | |
hotpink | #ff69b4 | |
indianred | #cd5c5c | |
indigo | #4b0082 | |
ivory | #fffff0 | |
khaki | #f0e68c | |
lavender | #e6e6fa | |
lavenderblush | #fff0f5 | |
lawngreen | #7cfc00 | |
lemonchiffon | #fffacd | |
lightblue | #add8e6 | |
lightcoral | #f08080 | |
lightcyan | #e0ffff | |
lightgoldenrodyellow | #fafad2 | |
lightgray | #d3d3d3 | |
lightgreen | #90ee90 | |
lightgrey | #d3d3d3 | |
lightpink | #ffb6c1 | |
lightsalmon | #ffa07a | |
lightseagreen | #20b2aa | |
lightskyblue | #87cefa | |
lightslategray | #778899 | |
lightslategrey | #778899 | |
lightsteelblue | #b0c4de | |
lightyellow | #ffffe0 | |
lime | #00ff00 | |
limegreen | #32cd32 | |
linen | #faf0e6 | |
magenta | #ff00ff | |
maroon | #800000 | |
mediumaquamarine | #66cdaa | |
mediumblue | #0000cd | |
mediumorchid | #ba55d3 | |
mediumpurple | #9370db | |
mediumseagreen | #3cb371 | |
mediumslateblue | #7b68ee | |
mediumspringgreen | #00fa9a | |
mediumturquoise | #48d1cc | |
mediumvioletred | #c71585 | |
midnightblue | #191970 | |
mintcream | #f5fffa | |
mistyrose | #ffe4e1 | |
moccasin | #ffe4b5 | |
navajowhite | #ffdead | |
navy | #000080 | |
oldlace | #fdf5e6 | |
olive | #808000 | |
olivedrab | #6b8e23 | |
orange | #ffa500 | |
orangered | #ff4500 | |
orchid | #da70d6 | |
palegoldenrod | #eee8aa | |
palegreen | #98fb98 | |
paleturquoise | #afeeee | |
palevioletred | #db7093 | |
papayawhip | #ffefd5 | |
peachpuff | #ffdab9 | |
peru | #cd853f | |
pink | #ffc0cb | |
plum | #dda0dd | |
powderblue | #b0e0e6 | |
purple | #800080 | |
rebeccapurple | #663399 | |
red | #ff0000 | |
rosybrown | #bc8f8f | |
royalblue | #4169e1 | |
saddlebrown | #8b4513 | |
salmon | #fa8072 | |
sandybrown | #f4a460 | |
seagreen | #2e8b57 | |
seashell | #fff5ee | |
sienna | #a0522d | |
silver | #c0c0c0 | |
skyblue | #87ceeb | |
slateblue | #6a5acd | |
slategray | #708090 | |
slategrey | #708090 | |
snow | #fffafa | |
springgreen | #00ff7f | |
steelblue | #4682b4 | |
tan | #d2b48c | |
teal | #008080 | |
thistle | #d8bfd8 | |
tomato | #ff6347 | |
turquoise | #40e0d0 | |
violet | #ee82ee | |
wheat | #f5deb3 | |
white | #ffffff | |
whitesmoke | #f5f5f5 | |
yellow | #ffff00 | |
yellowgreen | #9acd32 |
transparent
A fully transparent colour, the same as rgb(0 0 0 / 0). It is the initial value of background-color.
| Definition | A keyword equal to transparent black |
|---|---|
| Used by | background-color, gradient stops, color-mix(), and anywhere a <color> is accepted |
| Support | Chrome 1 · Firefox 1 · Safari 1 |
| Spec | css-color-4 |
Gradients interpolate in premultiplied alpha, so fading red to transparent stays red as it fades instead of passing through grey.
currentcolor
The element's own color value. It lets borders, shadows, SVG fills and other colours follow the text colour, including when the text colour changes on hover or in a different theme. It is often written currentColor; keywords are case-insensitive.
| Definition | A keyword that resolves to the value of the color property |
|---|---|
| Used by | The initial value of border-color and text-decoration-color, and the default colour of box-shadow and text-shadow |
| Support | Chrome 1 · Firefox 1.5 · Safari 4 |
| Spec | css-color-4 |
On the color property itself, currentcolor means the inherited value. On other properties it is inherited as the keyword, so a child that inherits a currentcolor value resolves it against its own color, not its parent's.
svg.icon { fill: currentcolor; }
<system-color>
Keywords for the colours the browser and operating system use for page backgrounds, text, links, buttons, form fields and selections. In forced colours mode, such as Windows High Contrast, these are the colours the user has chosen, so they are the safe choice for custom controls in that mode.
| Syntax | AccentColor | AccentColorText | ActiveText | ButtonBorder | ButtonFace | ButtonText | Canvas | CanvasText | Field | FieldText | GrayText | Highlight | HighlightText | LinkText | Mark | MarkText | SelectedItem | SelectedItemText | VisitedText | <deprecated-color> |
|---|---|
| Used by | Anywhere a <color> is accepted; most useful inside @media (forced-colors: active) |
| Support | Chrome 1 · Firefox 1 · Safari 1AccentColor, AccentColorText: Chrome 149 · Firefox 103 · Safari 16.5ButtonBorder: Chrome 101 · Firefox 109 · Safari noMark, MarkText: Chrome 102 · Firefox 109 · Safari no |
| Spec | css-color-4 |
| Keyword | Colour of |
|---|---|
AccentColor | The background of accented controls, such as a checked checkbox. |
AccentColorText | Text on an AccentColor background. |
ActiveText | Text of a link being activated. |
ButtonBorder | The border of a button. |
ButtonFace | The background of a button. |
ButtonText | Text on a button. |
Canvas | The background of the page or application content. |
CanvasText | Text on a Canvas background. |
Field | The background of an input field. |
FieldText | Text in an input field. |
GrayText | Disabled text. |
Highlight | The background of selected text. |
HighlightText | Selected text. |
LinkText | Text of an unvisited link. |
Mark | The background of marked text, as in <mark>. |
MarkText | Marked text. |
SelectedItem | The background of a selected item, such as a chosen option. |
SelectedItemText | Text of a selected item. |
VisitedText | Text of a visited link. |
The older keywords in <deprecated-color>, such as ButtonHighlight, Window and ThreeDShadow, are still accepted but now map to one of the colours above. Use the current names instead.
@media (forced-colors: active) {
.toggle[aria-pressed=true] { background: Highlight; color: HighlightText; }
}
Colour components & interpolation
<hue>
The hue angle in a polar colour function: where the colour sits around the colour wheel. A plain number is read as degrees, and values wrap, so 380 is the same as 20.
| Syntax | <number> | <angle> |
|---|---|
| Used by | hsl(), hwb(), lch() and oklch() |
| Spec | css-color-4 |
The same number names a different colour in each space: hue 0 is red in hsl() but a pinkish red in oklch().
<alpha-value>
The opacity of a colour, from fully transparent to fully opaque. A number runs from 0 to 1, a percentage from 0% to 100%; values outside the range are clamped.
| Syntax | <number> | <percentage> |
|---|---|
| Used by | The part after / in rgb(), hsl(), oklch(), color() and the other colour functions |
| Spec | css-color-4 |
background: rgb(0 0 0 / 50%);
<color-interpolation-method>
Chooses the colour space in which two colours are blended. The same two colours mix to quite different middles in different spaces: perceptual spaces such as oklab avoid the dull grey midpoints that sRGB can give.
| Syntax | in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ] |
|---|---|
| Used by | color-mix() and every gradient function in Gradients |
| Spec | css-color-5 |
| Kind | Colour spaces |
|---|---|
| Rectangular | srgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, lab, oklab, xyz, xyz-d50, xyz-d65 |
| Polar | hsl, hwb, lch, oklch, optionally followed by a <hue-interpolation-method> |
background: linear-gradient(in oklch longer hue, red, red);
color: color-mix(in srgb, white 20%, navy);
<hue-interpolation-method>
When blending in a polar space, decides which way round the hue wheel to travel between the two hues. The default is shorter hue.
| Syntax | [ shorter | longer | increasing | decreasing ] hue |
|---|---|
| Used by | <color-interpolation-method>, after a polar colour space |
| Spec | css-color-5 |
| Value | Path |
|---|---|
shorter hue | The shorter arc, never more than 180°. |
longer hue | The longer arc, at least 180°. |
increasing hue | Always with increasing hue angle. |
decreasing hue | Always with decreasing hue angle. |