Color

CSS Named Colors: Complete List with Hex Codes

HR
Hassaan Rasheed
· August 24, 2026 14 min read

A code editor displaying a CSS file with multiple named color properties highlighted, including rebeccapurple, cornflowerblue, and tomato, with a browser developer tools panel open on the right showing the computed color values in hex and RGB format alongside a color swatch for each named color

You type color: green in a CSS file and the text appears in a dark, almost forest-like green rather than the bright green you expected. That is because CSS green is #008000, a half-brightness value inherited from the original HTML 4.01 palette. The bright primary green is lime in CSS. This small distinction trips up developers regularly, and it is one of several things about CSS named colors that behave differently from what the name alone suggests.

The color name finder lets you look up any of the 148 CSS named colors by name or hex code and see the exact values instantly. This guide covers the full list organized by color family, explains where each group came from, identifies the alias pairs, and flags which named colors create accessibility problems.

Where CSS Named Colors Come From

CSS did not originate its color names. The list traces back to the X Window System developed at MIT in 1985. X11 included a human-readable color file for graphical interfaces containing hundreds of color names with RGB values. When the web emerged in the early 1990s, HTML inherited a subset of these.

HTML 4.01 (1997) formally defined 16 named colors based on the VGA 16-color palette. These became the baseline every browser had to support. SVG (Scalable Vector Graphics) adopted the broader X11 color list in 2001. When CSS Color Level 3 was published in 2011, it incorporated the SVG named color list, expanding the CSS keyword set from 17 to 147. CSS Color Level 4 (2022) added one more: rebeccapurple. The total is now 148 accepted named color keywords.

The apparent discrepancy across sources: many articles cite 140 because they count only unique hex values and treat alias pairs as single entries. The CSS specification itself lists 148 keywords, counting each alias spelling separately.

The 16 Original CSS Named Colors

These 16 keywords come from HTML 4.01 and map to the VGA 16-color palette. Every CSS-capable browser has supported them since the late 1990s. A critical detail: in this original palette, green is #008000, a half-brightness green. The full-brightness green is lime. CSS 2.1 added orange as the 17th named color.

NameHexRGB
aqua#00FFFF0, 255, 255
black#0000000, 0, 0
blue#0000FF0, 0, 255
fuchsia#FF00FF255, 0, 255
gray#808080128, 128, 128
green#0080000, 128, 0
lime#00FF000, 255, 0
maroon#800000128, 0, 0
navy#0000800, 0, 128
olive#808000128, 128, 0
purple#800080128, 0, 128
red#FF0000255, 0, 0
silver#C0C0C0192, 192, 192
teal#0080800, 128, 128
white#FFFFFF255, 255, 255
yellow#FFFF00255, 255, 0

Notice that navy and maroon are the 50% brightness versions of blue and red respectively. olive is 50% red + 50% green with no blue (a dark yellow-green). The original 16 followed a strict 8-color, 16-color doubling pattern inherited from the VGA palette.

What Is rebeccapurple?

rebeccapurple (#663399) was added to the CSS Color Level 4 specification in June 2014. The name honors Rebecca Meyer, the six-year-old daughter of CSS educator and author Eric Meyer. Rebecca died of brain cancer on June 7, 2014, her birthday.

Eric Meyer is one of the best-known CSS educators on the web, having written definitive guides to CSS layout and cofounded An Event Apart. After Rebecca's death, the web development community proposed naming a CSS color after her as a tribute. The CSS Working Group, which governs the CSS specification, approved the name within days.

The specific name rebeccapurple was Eric Meyer's request. Rebecca had recently told him she was old enough to be called Rebecca rather than Becca. rebeccapurple honors that request. The hex value #663399 encodes equal red and blue channels (both at 102 out of 255) and no green, producing a medium-dark purple that was her favorite shade.

It is the only CSS named color added specifically to honor a person. The addition was supported by browser vendors and the W3C without objection, reflecting the respect the community had for Meyer's contribution to the discipline.

A visual reference chart showing the 16 original HTML CSS named colors as color swatches arranged in a grid, each labeled with the color name and hex code below it, with a separate highlighted row showing rebeccapurple added in CSS Color Level 4 in 2014, distinguishing it from the original 16 VGA palette colors

What Are the CSS Color Aliases?

CSS includes named color pairs where two different keywords produce the same hex value. These aliases reconcile the older HTML 4.01 names with the X11 names used in the SVG specification.

The two color aliases:

KeywordAliasHexOrigin
aquacyan#00FFFFaqua from HTML 4.01, cyan from X11
fuchsiamagenta#FF00FFfuchsia from HTML 4.01, magenta from X11

Seven additional aliases exist for gray spelling variants. Both American English (gray) and British English (grey) spellings are accepted for each:

Color nameHex
gray / grey#808080
darkgray / darkgrey#A9A9A9
lightgray / lightgrey#D3D3D3
dimgray / dimgrey#696969
slategray / slategrey#708090
darkslategray / darkslategrey#2F4F4F
lightslategray / lightslategrey#778899

All 9 alias relationships produce identical computed color values. There is no visual or behavioral difference between writing cyan and aqua, or gray and grey, in any CSS property.

CSS Named Colors by Family

Key CSS named colors organized by color family, with hex and RGB values. The color name finder has the complete 148-keyword interactive reference with search by name or hex.

Reds and pinks

NameHexRGB
red#FF0000255, 0, 0
darkred#8B0000139, 0, 0
firebrick#B22222178, 34, 34
crimson#DC143C220, 20, 60
indianred#CD5C5C205, 92, 92
lightcoral#F08080240, 128, 128
salmon#FA8072250, 128, 114
lightsalmon#FFA07A255, 160, 122
coral#FF7F50255, 127, 80
tomato#FF6347255, 99, 71
hotpink#FF69B4255, 105, 180
deeppink#FF1493255, 20, 147
pink#FFC0CB255, 192, 203
lightpink#FFB6C1255, 182, 193

hotpink and deeppink are named for the same hue but differ significantly in saturation: hotpink at RGB(255, 105, 180) is a brighter magenta-pink, while deeppink at RGB(255, 20, 147) is almost fully saturated. The difference between them at the RGB level is in the green channel: 105 vs 20.

Oranges and yellows

NameHexRGB
orange#FFA500255, 165, 0
darkorange#FF8C00255, 140, 0
orangered#FF4500255, 69, 0
gold#FFD700255, 215, 0
yellow#FFFF00255, 255, 0
lightyellow#FFFFE0255, 255, 224
lemonchiffon#FFFACD255, 250, 205
khaki#F0E68C240, 230, 140
darkkhaki#BDB76B189, 183, 107

CSS orange (#FFA500) and gold (#FFD700) are often confused. Both have maximum red (255). The difference is in the green channel: orange has 165 and gold has 215. Higher green pushes the color toward yellow, which is why gold appears more yellow-toned than orange even though both are fully red at the R channel. The shades of orange color names guide covers the broader orange family including burnt orange, terracotta, and amber, which are not CSS named colors.

Greens

NameHexRGB
lime#00FF000, 255, 0
green#0080000, 128, 0
darkgreen#0064000, 100, 0
limegreen#32CD3250, 205, 50
forestgreen#228B2234, 139, 34
seagreen#2E8B5746, 139, 87
mediumseagreen#3CB37160, 179, 113
springgreen#00FF7F0, 255, 127
chartreuse#7FFF00127, 255, 0
greenyellow#ADFF2F173, 255, 47
yellowgreen#9ACD32154, 205, 50
olivedrab#6B8E23107, 142, 35
olive#808000128, 128, 0
darkolivegreen#556B2F85, 107, 47
palegreen#98FB98152, 251, 152
lightgreen#90EE90144, 238, 144
honeydew#F0FFF0240, 255, 240

The shades of green color names guide covers CSS and non-CSS greens side by side, including emerald (#50C878), hunter green (#355E3B), and seafoam, which do not appear in the CSS named color list.

Blues and cyans

NameHexRGB
blue#0000FF0, 0, 255
darkblue#00008B0, 0, 139
mediumblue#0000CD0, 0, 205
navy#0000800, 0, 128
royalblue#4169E165, 105, 225
steelblue#4682B470, 130, 180
dodgerblue#1E90FF30, 144, 255
cornflowerblue#6495ED100, 149, 237
skyblue#87CEEB135, 206, 235
lightskyblue#87CEFA135, 206, 250
deepskyblue#00BFFF0, 191, 255
cadetblue#5F9EA095, 158, 160
lightblue#ADD8E6173, 216, 230
powderblue#B0E0E6176, 224, 230
aliceblue#F0F8FF240, 248, 255
cyan / aqua#00FFFF0, 255, 255
darkcyan#008B8B0, 139, 139
teal#0080800, 128, 128
turquoise#40E0D064, 224, 208
aquamarine#7FFFD4127, 255, 212

skyblue and lightskyblue share identical red and green values (135, 206) but differ only in the blue channel: 235 vs 250. The effect is subtle: lightskyblue appears slightly more intensely blue while skyblue reads as slightly more gray-toned.

Purples and violets

NameHexRGB
purple#800080128, 0, 128
darkviolet#9400D3148, 0, 211
darkorchid#9932CC153, 50, 204
darkmagenta#8B008B139, 0, 139
rebeccapurple#663399102, 51, 153
blueviolet#8A2BE2138, 43, 226
indigo#4B008275, 0, 130
violet#EE82EE238, 130, 238
orchid#DA70D6218, 112, 214
mediumpurple#9370DB147, 112, 219
plum#DDA0DD221, 160, 221
lavender#E6E6FA230, 230, 250
thistle#D8BFD8216, 191, 216
fuchsia / magenta#FF00FF255, 0, 255

The shades of purple color names guide covers the full purple-violet-lavender spectrum with additional names like mauve, amethyst, and wisteria that are not CSS keywords.

Browns and earth tones

NameHexRGB
brown#A52A2A165, 42, 42
saddlebrown#8B4513139, 69, 19
sienna#A0522D160, 82, 45
chocolate#D2691E210, 105, 30
peru#CD853F205, 133, 63
tan#D2B48C210, 180, 140
burlywood#DEB887222, 184, 135
wheat#F5DEB3245, 222, 179
moccasin#FFE4B5255, 228, 181
peachpuff#FFDAB9255, 218, 185
bisque#FFE4C4255, 228, 196
sandybrown#F4A460244, 164, 96
rosybrown#BC8F8F188, 143, 143
cornsilk#FFF8DC255, 248, 220

Whites, grays, and black

NameHexRGB
white#FFFFFF255, 255, 255
snow#FFFAFA255, 250, 250
ivory#FFFFF0255, 255, 240
floralwhite#FFFAF0255, 250, 240
ghostwhite#F8F8FF248, 248, 255
whitesmoke#F5F5F5245, 245, 245
seashell#FFF5EE255, 245, 238
linen#FAF0E6250, 240, 230
oldlace#FDF5E6253, 245, 230
antiquewhite#FAEBD7250, 235, 215
silver#C0C0C0192, 192, 192
lightgray#D3D3D3211, 211, 211
gainsboro#DCDCDC220, 220, 220
gray#808080128, 128, 128
darkgray#A9A9A9169, 169, 169
dimgray#696969105, 105, 105
slategray#708090112, 128, 144
lightslategray#778899119, 136, 153
darkslategray#2F4F4F47, 79, 79
black#0000000, 0, 0

slategray (#708090) is distinctive in the gray family because it has a blue tint: the blue channel (144) is higher than the red (112) and green (128) channels. This gives it a cool, steel-blue tone that distinguishes it from the purely neutral grays like gray (#808080) where all three channels are equal.

Which CSS Named Colors Fail Accessibility Contrast?

WCAG 2.1 Level AA requires a minimum contrast ratio of 4.5:1 for normal body text against its background, and 3:1 for large text (18pt or 14pt bold). Several popular CSS named colors fail these thresholds when used as text on white.

orange (#FFA500) has a contrast ratio of approximately 1.92:1 against white (#FFFFFF). It fails WCAG at every conformance level. yellow (#FFFF00) against white is 1.07:1, nearly invisible as text. lime (#00FF00) against white is 1.37:1. gold (#FFD700) against white is 1.28:1. These are safe for borders, backgrounds, icons, and decorative elements. They should not be used for body text on light backgrounds.

Colors that pass WCAG AA on white include most of the dark CSS named colors: navy (15.0:1), darkgreen (8.37:1), maroon (8.32:1), darkslategray (10.7:1), saddlebrown (4.83:1), and indigo (9.86:1). Use the contrast checker to verify any color combination before shipping text that uses named colors.

One specific trap: green (#008000) passes WCAG AA on white at approximately 5.13:1, but lime (#00FF00), despite being the brighter green, fails at 1.37:1. The counterintuitive result is that the darker CSS green passes accessibility requirements while the brighter one fails badly.

Named Colors vs. Hex Codes: When to Use Which

color: red and color: #FF0000 are identical instructions to the browser. Named colors do not carry special behavior or different performance characteristics. The choice is purely about readability and flexibility.

Named colors work well for common colors where the name communicates intent without ambiguity: white, black, transparent, and simple accent colors in utility classes or debug stylesheets. Writing border: 1px solid black or background: white is immediately readable without needing to parse a hex value.

Hex codes (or HSL) are necessary for any color outside the 148 named keywords, which is almost every brand or design system color. A design system will specify #1A73E8, not cornflowerblue (#6495ED), because no named color exists at exactly that blue. Precision and custom palette control require hex or functional notation.

One practical use of the named colors: they establish a shared vocabulary for quick communication. Saying a button is steelblue in a team discussion conveys the approximate hue more quickly than reciting a hex code. The color name finder identifies the nearest CSS named color to any hex value, which is useful for converting custom brand colors into the closest standard keyword for documentation or communication. The tints and shades generator creates systematic lighter and darker variants of any color, named or hex, for building scale-based design system palettes.

The color tools section has the color name finder, contrast checker, and tints and shades generator alongside other utilities for CSS color work.

Frequently Asked Questions

CSS named colors are 148 color keywords defined in the CSS Color Level 4 specification that can be used anywhere a color value is accepted in CSS. Instead of writing #FF0000 or rgb(255, 0, 0), you can write red. The keywords are case-insensitive: Red, RED, and red all resolve to the same color value. They are supported in all modern browsers and in SVG files, and are valid in every CSS property that accepts a color: color, background-color, border-color, fill, stroke, and others.

The CSS Color Level 4 specification defines 148 named color keywords. Many articles cite 140, but this excludes 8 alias pairs and spelling variants. aqua and cyan both map to #00FFFF. fuchsia and magenta both map to #FF00FF. Seven gray-family colors each accept both gray and grey spellings (gray/grey, darkgray/darkgrey, lightgray/lightgrey, dimgray/dimgrey, slategray/slategrey, darkslategray/darkslategrey, lightslategray/lightslategrey). The 148 count includes all accepted keyword spellings; lower counts exclude the aliases.

rebeccapurple (#663399) was added to the CSS specification in June 2014 in memory of Rebecca Meyer, the daughter of CSS educator Eric Meyer. Rebecca died of brain cancer at age 6 on June 7, 2014. Her favorite color was purple. The CSS Working Group approved the addition within days of her death. The name rebeccapurple was chosen at Eric Meyer's request because Rebecca had recently told him she was old enough to be called Rebecca, not Becca. It is the only CSS named color honoring a specific person.

Two CSS named colors are direct aliases: aqua and cyan both resolve to #00FFFF (aqua is the HTML 4.01 name; cyan is the X11 name for the same color). fuchsia and magenta both resolve to #FF00FF by the same logic. Seven additional alias pairs exist for gray spelling variants: gray/grey, darkgray/darkgrey, lightgray/lightgrey, dimgray/dimgrey, slategray/slategrey, darkslategray/darkslategrey, and lightslategray/lightslategrey. In each pair, both spellings are valid CSS and resolve to identical hex values.

Named colors and hex codes produce identical computed values. color: red and color: #FF0000 are the same instruction to the browser. Named colors are limited to 148 options and are useful for common colors where the name communicates intent clearly. Hex codes cover all 16.7 million 24-bit RGB colors. Any specific brand color, custom palette shade, or color outside the 148 named keywords requires a hex, RGB, or HSL value. Named colors are readable shorthand for standard colors; they are not a separate color system with different behavior.

Several CSS named colors produce insufficient contrast as text on a white background. orange (#FFA500) has a contrast ratio of approximately 1.92:1 against white — it fails WCAG at every level. yellow (#FFFF00) against white is 1.07:1. lime (#00FF00) against white is 1.37:1. gold (#FFD700) against white is 1.28:1. These colors are safe for decorative use, backgrounds, and borders, but not for body text on light backgrounds. Dark named colors like navy, maroon, darkgreen, and saddlebrown pass WCAG AA on white.

Yes. CSS accepts both spellings for all seven gray-family named colors: gray/grey, darkgray/darkgrey, lightgray/lightgrey, dimgray/dimgrey, slategray/slategrey, darkslategray/darkslategrey, and lightslategray/lightslategrey. Both spellings were included to support American English and British English. The hex values are identical regardless of spelling. Using either spelling consistently is correct CSS. Mixing spellings in the same codebase is valid but may trigger linting warnings if your CSS linter enforces a spelling convention.

HR

Written by

Hassaan Rasheed

Builder of ToolCenterHub. Passionate about creating fast, privacy-first tools that anyone can use without friction, accounts, or paywalls. Writing about design, development, and the web.

Connect on LinkedIn