Web colors
HTML |
---|
Comparisons |
Authors of web pages have a variety of options available for specifying colors for elements of web documents. Colors may be specified as an RGB triplet in hexadecimal format (a hex triplet); they may also be specified according to their common English names in some cases.
The first versions of Mosaic and Netscape Navigator used the X11 color names as the basis for their color lists, as both started as X Window System applications. The origin of the X11 color list is unknown. [1]
Web colors have an unambiguous colorimetric definition, sRGB, which relates the chromaticities of a particular phosphor set, a given transfer curve, adaptive whitepoint, and viewing conditions. These have been chosen to be similar to many real-world monitors and viewing conditions, so that even without color management rendering is fairly close to the specified values. However, user agents vary in the fidelity with which they represent the specified colors. More advanced user agents use color management to provide better color fidelity; this is particularly important for Web to print applications.
Hex triplet
A hex triplet is a six-digit, three-byte hexadecimal number used in HTML and CSS, and other computing applications, to represent colors. The bytes represent the red, green and blue components of the color. One byte represents a number in the range 00 to FF (in hexadecimal notation), or 0 to 255 in decimal notation. This represents the least (0) to the most (255) intensity of each of the color components. The hex triplet is formed by concatenating three bytes in hexadecimal notation, in the following order:
- Byte 1: red value
- Byte 2: green value
- Byte 3: blue value
For example, consider the color where the red/green/blue values are decimal numbers: red=36, green=104, blue=160 (a greyish-blue color). The decimal numbers 36, 104 and 160 are 24, 68 and A0 respectively in hexadecimal notation. To obtain the hex triplet, we simply write the three hex bytes together without spaces, thus: 2468A0. If a byte is less than 16 (decimal) or 10 (hex) it must be represented with a leading zero to keep the number of digits in the triplet equal to six. For example, the decimal triplet 0,1,2 would be represented by the hex triplet 000102.
The number of colors that can be represented by this system is
Converting RGB to hexadecimal
Converting an RGB value to a hexadecimal value is quite simple. Any Microsoft Windows computer is capable of converting the values with the built-in system calculator. Open up the calculator (Start -> Program -> Accessories -> Calculator) and input the single RGB value. If the RGB value is in the range 0.0 to 1.0, rather than 0 to 255, then multiply it by 255. Next, click the button next to "Hex." (If the Hex button is not visible, choose Scientific from the View menu.) This will convert the value in the input box to a hexadecimal value.
If you do not use Windows, go to the website http://www.telacommunications.com/nutshell/rgbform.htm. This website will perform the same action as the calculator would, in terms of the hex conversion (though it will assume your values are in the range 0 to 255, not 0.0 to 1.0).
HTML color names
The HTML 4.01 specification[1] defines sixteen named colors, as follows (names are defined in this context to be case independent):
Color | Hexadecimal | Color | Hexadecimal | Color | Hexadecimal | Color | Hexadecimal |
---|---|---|---|---|---|---|---|
black | #000000 | silver | #c0c0c0 | maroon | #800000 | red | #ff0000 |
navy | #000080 | blue | #0000ff | purple | #800080 | fuchsia | #ff00ff |
green | #008000 | lime | #00ff00 | olive | #808000 | yellow | #ffff00 |
teal | #008080 | aqua | #00ffff | gray | #808080 | white | #ffffff |
These 16 were also specified as sRGB and included in the HTML 3.0 specification which noted "These colors were originally picked as being the standard 16 colors supported with the Windows VGA palette." [2]
X11 color names
In addition, a number of colors are defined by web browsers such as Internet Explorer or Mozilla Firefox. A particular browser may not recognize all of these colors, but as of 2005 all modern general-use browsers support the full list. Many of these colors are from the list of X11 color names distributed with the X Window System. These colors were standardized by SVG 1.0, and are accepted by SVG Full user agents. They are not part of SVG Tiny. i The list of colours actually shipped with the X11 product varies between implementations, and clashes with certain of the HTML names such as green. Furthermore, X11 colors are defined as simple RGB (hence, no particular color), rather than sRGB. This means that the list of colors found in X11 (e.g. in /usr/lib/X11/rgb.txt) should not directly be used to choose colors for the web.[3]
Some of the web "X11 colors", along with their hexadecimal equivalents, are listed below.
color | hexadecimal | color | hexadecimal |
---|---|---|---|
indianred | #cd5c5c | darksalmon | #e9967a |
lightcoral | #f08080 | salmon | #fa8072 |
orangered | #ff4500 | red | #ff0000 |
crimson | #dc143c | firebrick | #b22222 |
darkred | #8b0000 | mediumvioletred | #c71585 |
pink | #ffc0cb | lightpink | #ffb6c1 |
hotpink | #ff69b4 | deeppink | #ff1493 |
palevioletred | #db7093 | darkkhaki | #bdb76b |
khaki | #f0e68c | palegoldenrod | #eee8aa |
lightgoldenrodyellow | #fafad2 | lightyellow | #ffffe0 |
lemonchiffon | #fffacd | yellow | #ffff00 |
gold | #ffd700 | papayawhip | #ffefd5 |
moccasin | #ffe4b5 | peachpuff | #ffdab9 |
cyan | #00ffff | aqua | #00ffff |
aquamarine | #7fffd4 | turquoise | #40e0d0 |
mediumturquoise | #48d1cc | darkturquoise | #00ced1 |
cadetblue | #5f9ea0 | slategray | #708090 |
lightcyan | #e0ffff | paleturquoise | #afeeee |
powderblue | #b0e0e6 | lightsteelblue | #b0c4de |
steelblue | #4682b4 | lightblue | #add8e6 |
skyblue | #87ceeb | lightskyblue | #87cefa |
deepskyblue | #00bfff | cornflowerblue | #6495ed |
royalblue | #4169e1 | mediumslateblue | #7b68ee |
dodgerblue | #1e90ff | blue | #0000ff |
mediumblue | #0000cd | darkblue | #00008b |
navy | #000080 | midnightblue | #191970 |
lightsalmon | #ffa07a | orange | #ffa500 |
darkorange | #ff8c00 | coral | #ff7f50 |
tomato | #ff6347 | orangered | #ff4500 |
aquamarine | #7fffd4 | mediumspringgreen | #00fa9a |
springgreen | #00ff7f | palegreen | #98fb98 |
greenyellow | #adff2f | chartreuse | #7fff00 |
lawngreen | #7cfc00 | lime | #00ff00 |
lightgreen | #90ee90 | yellowgreen | #9acd32 |
limegreen | #32cd32 | mediumseagreen | #3cb371 |
darkseagreen | #8fbc8f | forestgreen | #228b22 |
seagreen | #2e8b57 | green | #008000 |
olivedrab | #6b8e23 | olive | #808000 |
darkolivegreen | #556b2f | darkgreen | #006400 |
mediumaquamarine | #66cdaa | turquoise | #40e0d0 |
lightseagreen | #20b2aa | darkcyan | #008b8b |
teal | #008080 | lavender | #e6e6fa |
thistle | #d8bfd8 | plum | #dda0dd |
violet | #ee82ee | fuchsia | #ff00ff |
magenta | #ff00ff | orchid | #da70d6 |
mediumorchid | #ba55d3 | darkorchid | #9932cc |
blueviolet | #8a2be2 | darkviolet | #9400d3 |
mediumpurple | #9370db | slateblue | #6a5acd |
purple | #800080 | darkmagenta | #8b008b |
darkslateblue | #483d8b | indigo | #4b0082 |
honeydew | #f0fff0 | mintcream | #f5fffa |
azure | #f0ffff | aliceblue | #f0f8ff |
ghostwhite | #f8f8ff | whitesmoke | #f5f5f5 |
lavenderblush | #fff0f5 | mistyrose | #ffe4e1 |
antiquewhite | #faebd7 | seashell | #fff5ee |
snow | #fffafa | white | #ffffff |
beige | #f5f5dc | linen | #faf0e6 |
oldlace | #fdf5e6 | floralwhite | #fffaf0 |
ivory | #fffff0 | gainsboro | #dcdcdc |
lightgrey | #d3d3d3 | silver | #c0c0c0 |
darkgray | #a9a9a9 | gray | #808080 |
dimgray | #696969 | darkslategray | #2f4f4f |
lightslategray | #778899 | slategray | #708090 |
cornsilk | #fff8dc | blanchedalmond | #ffebcd |
bisque | #ffe4c4 | navajowhite | #ffdead |
wheat | #f5deb3 | sandybrown | #f4a460 |
goldenrod | #daa520 | darkgoldenrod | #b8860b |
peru | #cd853f | chocolate | #d2691e |
maroon | #800000 | saddlebrown | #8b4513 |
brown | #a52a2a | sienna | #a0522d |
darkred | #8b0000 | burlywood | #deb887 |
tan | #d2b48c | rosybrown | #bc8f8f |
black | #000000 |
Color depth |
---|
Related |
Web-safe colors
Another set of 216 color values are commonly considered to be the "web-safe" color palette; developed at a time when many computer displays were only capable of displaying 256 colors. A set of colors was needed that could be shown without dithering on 256-color displays; the number 216 was chosen partly because computer operating systems customarily reserved sixteen to twenty colors for their own use; it was also selected because it allows exactly six shades each of red, green, and blue. (6 × 6 × 6 = 216). The palette was first identified by Lynda Weinman.
The list of colors is often presented as if it has special properties that render them immune to dithering. In fact, on 256-color displays applications can set a palette of any selection of colors that they choose, dithering the rest. These colors were chosen specifically because they matched the palettes selected by the then leading browser applications. Fortunately, there were not radically different palettes in use in different popular browsers.
"Web-safe" colors had a flaw in that, on systems such as X Windows where the palette is shared between applications, smaller color cubes (5x5x5 or 4x4x4) were often allocated by browsers — thus, the "web safe" colors would actually dither on such systems. Better results were obtained by providing an image with a larger range of colors and allowing the browser to quantize the color space if needed, rather than suffer the quality loss of a double quantization.
By the early years of the 21st century, driven by the needs of video games and digital photos, personal computers typically had at least 16-bit color and usually 24-bit (truecolor). Even mobile devices had at least 16-bit color, driven by the inclusion of cameras on cellphones. The use of "web-safe" colors fell into disuse, but persisted as folklore.
The "web-safe" colors do not have names, but each can be specified by an RGB triplet. In the table below, a three-digit number is used as a shorthand notation for the six-digit hexadecimal numerals above. The digit "3" is equivalent to the hexadecimal numeral "33"; "C" is equivalent to "CC". For example, "F63" in the table below is equivalent to "#FF6633" in the system used previously. Below are the values for the 6 shades of each color out of 256 possible color shades.
digit | hexadecimal | decimal |
---|---|---|
0 | 00 | 0 |
3 | 33 | 51 |
6 | 66 | 102 |
9 | 99 | 153 |
C or (12) | CC | 204 |
F or (15) | FF | 255 |
The following table shows all of the "web-safe" colors, underlining the really-safe (see next section) colors. The lack of gamma correction means that the six desired intensities 0%, 20%, 40%, 60%, 80%, and 100% are displayed as 0%, 2%, 10%, 28%, 57%, and 100% on a standard 2.5 gamma CRT or LCD, making most colors very dark. The intensities at the low end of the range are nearly indistinguishable from each other:
000 | 300 | 600 | 900 | C00 | F00 | 003 | 303 | 603 | 903 | C03 | F03 |
006 | 306 | 606 | 906 | C06 | F06 | 009 | 309 | 609 | 909 | C09 | F09 |
00C | 30C | 60C | 90C | C0C | F0C | 00F | 30F | 60F | 90F | C0F | F0F |
030 | 330 | 630 | 930 | C30 | F30 | 033 | 333 | 633 | 933 | C33 | F33 |
036 | 336 | 636 | 936 | C36 | F36 | 039 | 339 | 639 | 939 | C39 | F39 |
03C | 33C | 63C | 93C | C3C | F3C | 03F | 33F | 63F | 93F | C3F | F3F |
060 | 360 | 660 | 960 | C60 | F60 | 063 | 363 | 663 | 963 | C63 | F63 |
066 | 366 | 666 | 966 | C66 | F66 | 069 | 369 | 669 | 969 | C69 | F69 |
06C | 36C | 66C | 96C | C6C | F6C | 06F | 36F | 66F | 96F | C6F | F6F |
090 | 390 | 690 | 990 | C90 | F90 | 093 | 393 | 693 | 993 | C93 | F93 |
096 | 396 | 696 | 996 | C96 | F96 | 099 | 399 | 699 | 999 | C99 | F99 |
09C | 39C | 69C | 99C | C9C | F9C | 09F | 39F | 69F | 99F | C9F | F9F |
0C0 | 3C0 | 6C0 | 9C0 | CC0 | FC0 | 0C3 | 3C3 | 6C3 | 9C3 | CC3 | FC3 |
0C6 | 3C6 | 6C6 | 9C6 | CC6 | FC6 | 0C9 | 3C9 | 6C9 | 9C9 | CC9 | FC9 |
0CC | 3CC | 6CC | 9CC | CCC | FCC | 0CF | 3CF | 6CF | 9CF | CCF | FCF |
0F0 | 3F0 | 6F0 | 9F0 | CF0 | FF0 | 0F3 | 3F3 | 6F3 | 9F3 | CF3 | FF3 |
0F6 | 3F6 | 6F6 | 9F6 | CF6 | FF6 | 0F9 | 3F9 | 6F9 | 9F9 | CF9 | FF9 |
0FC | 3FC | 6FC | 9FC | CFC | FFC | 0FF | 3FF | 6FF | 9FF | CFF | FFF |
Really web safe colors
Designers were often encouraged to stick to these 216 "web-safe" colors in their websites; however, 8-bit color displays were much more common when the 216-color palette was developed than they are now. David Lehn and Hadley Stern have since discovered that only 22 of the 216 colors in the web-safe palette are reliably displayed without inconsistent remapping on 16-bit computer displays. They called these 22 colors the "really safe" palette; it consists mainly of shades of green and yellow, as can be seen in the table above, where the "really safe" colors are underlined.
CSS colors
The Cascading Style Sheets language defines the same number of named colors as the HTML 4 spec, namely the 16 listed above. Additionally, CSS 2.1 adds the 'orange' color name to the list:
Color | Hexadecimal |
---|---|
orange | #ffa500 |
CSS 2, SVG and CSS 2.1 also allow web authors to use so-called system colors, which are color names whose values are taken from the operating system. This enables web authors to style their content in line with the operating system of the user agent. See [2]. As of early 2004, it appears that the CSS3 color module will once again drop these values, marking them deprecated, but this may change: [3].
The developing CSS3 specification will also introduce HSL color space values to style sheets:
/* RGB model */ p { color: #f00 } /* #rgb */ p { color: #ff0000 } /* #rrggbb */ p { color: rgb(255,0,0) } /* integer range 0 - 255 */ p { color: rgb(100%, 0%, 0%) } /* float range 0.0% - 100.0% */ /* RGB with alpha channel, added to CSS3 */ p { color: rgba(255,0,0,0.5) /* 0.5 opacity, semi-transparent */ /* HSL model, added to CSS3 */ p { color: hsl(0, 100%, 50%) } /* red */ p { color: hsl(120, 100%, 50%) } /* green */ p { color: hsl(120, 100%, 25%) } /* light green */ p { color: hsl(120, 100%, 75%) } /* dark green */ p { color: hsl(120, 50%, 50%) } /* pastel green */ /* HSL model with alpha channel */ p { color: hsla(120, 100%, 50%, 1) } /* green */ p { color: hsla(120, 100%, 50%, 0.5) } /* semi-transparent green */ p { color: hsla(120, 100%, 50%, 0.1) } /* very transparent green */
Accessibility
- Some browsers and devices don't support colors.
- For blind and colorblind users Web content depending on colors can be unusable or difficult to use.
- Mixing legacy markup like bgcolor with modern CSS fails for legacy browsers not supporting CSS.
- The shorthand #RGB as in bgcolor="#0FF" does not work with some browsers, it should be #RRGGBB as in bgcolor="#00FFFF".
- Typically both foreground and background color are modified to avoid black on black effects.
Popular browsers show links as shades of blue, dark background colors like blue or navy don't work for such links. Using CSS to modify link colors cannot work with legacy browsers. The Netscape 4.x support for CSS is so pitiful that users often disable it.
References
See also
- X11 color names
- RGB color space
- hexadecimal
- HTML and CSS
- color
- RGB color model
- alphabetic list of colors, with samples and codes
External links
- CSS2.1 Color Specification
- Web-Colors-explained.com
- 4096 web colors & hexadecimal codes produced by combining 16 shades of each primary color (Red, Green & Blue)
- XHTML colour names and their sRGB values</ref>