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 bycolor, background-color, border-color, outline-color, text-decoration-color, accent-color, fill, shadows and gradients
SupportChrome 1 · Firefox 1 · Safari 1
Speccss-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);
Three ways to write a colour.

<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.

DefinitionA hash token whose value is 3, 4, 6 or 8 hexadecimal digits
Used byAnywhere a <color> is accepted
SupportChrome 1 · Firefox 1 · Safari 1
With alpha (#rgba, #rrggbbaa): Chrome 62 · Firefox 49 · Safari 10
Speccss-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.

Syntaxaliceblue | antiquewhite | aqua | … | yellow | yellowgreen | transparent (each keyword is in the table below)
Used byAnywhere a <color> is accepted
SupportChrome 1 · Firefox 1 · Safari 1
rebeccapurple: Chrome 38 · Firefox 33 · Safari 9
Speccss-color-4
SwatchKeywordHex
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.

DefinitionA keyword equal to transparent black
Used bybackground-color, gradient stops, color-mix(), and anywhere a <color> is accepted
SupportChrome 1 · Firefox 1 · Safari 1
Speccss-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.

DefinitionA keyword that resolves to the value of the color property
Used byThe initial value of border-color and text-decoration-color, and the default colour of box-shadow and text-shadow
SupportChrome 1 · Firefox 1.5 · Safari 4
Speccss-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; }
An inline icon that always matches the surrounding text.

<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.

SyntaxAccentColor | AccentColorText | ActiveText | ButtonBorder | ButtonFace | ButtonText | Canvas | CanvasText | Field | FieldText | GrayText | Highlight | HighlightText | LinkText | Mark | MarkText | SelectedItem | SelectedItemText | VisitedText | <deprecated-color>
Used byAnywhere a <color> is accepted; most useful inside @media (forced-colors: active)
SupportChrome 1 · Firefox 1 · Safari 1
AccentColor, AccentColorText: Chrome 149 · Firefox 103 · Safari 16.5
ButtonBorder: Chrome 101 · Firefox 109 · Safari no
Mark, MarkText: Chrome 102 · Firefox 109 · Safari no
Speccss-color-4
KeywordColour of
AccentColorThe background of accented controls, such as a checked checkbox.
AccentColorTextText on an AccentColor background.
ActiveTextText of a link being activated.
ButtonBorderThe border of a button.
ButtonFaceThe background of a button.
ButtonTextText on a button.
CanvasThe background of the page or application content.
CanvasTextText on a Canvas background.
FieldThe background of an input field.
FieldTextText in an input field.
GrayTextDisabled text.
HighlightThe background of selected text.
HighlightTextSelected text.
LinkTextText of an unvisited link.
MarkThe background of marked text, as in <mark>.
MarkTextMarked text.
SelectedItemThe background of a selected item, such as a chosen option.
SelectedItemTextText of a selected item.
VisitedTextText 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; }
}
A pressed toggle that stays visible in high-contrast mode.

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 byhsl(), hwb(), lch() and oklch()
Speccss-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 byThe part after / in rgb(), hsl(), oklch(), color() and the other colour functions
Speccss-color-4
background: rgb(0 0 0 / 50%);
Half-transparent black.

<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.

Syntaxin [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
Used bycolor-mix() and every gradient function in Gradients
Speccss-color-5
KindColour spaces
Rectangularsrgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, lab, oklab, xyz, xyz-d50, xyz-d65
Polarhsl, 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);
A full rainbow made by going the long way round the hue wheel, and a mix in sRGB.

<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
Speccss-color-5
ValuePath
shorter hueThe shorter arc, never more than 180°.
longer hueThe longer arc, at least 180°.
increasing hueAlways with increasing hue angle.
decreasing hueAlways with decreasing hue angle.