1. A versão oficial e original, em inglês, deste documento, encontra-se em: //www.w3.org/TR/2011/REC-css3-color-20110607 e os seus direitos são conforme:

2. A única versão normativa deste documento é a versão em língua inglesa que se encontra no site do W3C.

3. O presente documento traduzido para a língua portuguesa do Brasil, pode conter erros de tradução.

Este documento foi traduzido em 28 de janeiro de 2012 por: Maurício Samy Silva e encontra-se hospedado no "Site do Maujor " em //www.maujor.com/
A tradução para a língua portuguesa do Brasil, foi para este documento. Vale dizer, as páginas remetidas pelos links nele constantes, estão em sua versão original em língua inglesa.
Por favor, relate erros encontrados neste documento para Maurício Samy Silva

W3C

Módulo para cores CSS — Nível 3

Recomendação do W3C de 07 de junho de 2011

Essa versão :
//www.w3.org/TR/2011/REC-css3-color-20110607
Última versão :
//www.w3.org/TR/css3-color
Versão anterior :
//www.w3.org/TR/2010/PR-css3-color-20101028
Editores:
Tantek Çelik (invited expert, and before at Microsoft Corporation) <>
Chris Lilley (W3C) <>
L. David Baron (Mozilla Corporation) <>
Autores colaboradores:
Steven Pemberton (CWI) <>
Brad Pettit (Microsoft Corporation) <>

Por favor consulte a errata desse documento para tomar conhecimento de eventuais correções.

Ver também as traduções.


Sumário

CSS (Cascading Style Sheets) é uma linguagem destina-se a descrever como deverpa ser a renderiza de documentos HTML e XML na tela, no papel, em mídia aural, etc. Ela se utiliza de propriedades e valores para definição de cores de textos, de fundos, de borders e outras partes dos elementos de um documento. Esta especificação descreve as propriedades e valores para definição de cores e opacidade. Aqui serão tratadas as funcionalidades para cores previstas nas CSS2, bem como serão introduzidas novas funcionalidades.

Status desse documento

Essa seção descreve o status deste documento à época da sua publicação. Outros documentos poderão sobrescrever esse documento. A listagem das publicações atuais do W3C bem como sua evolução histórica pode ser encontrada em W3C technical reports index at //www.w3.org/TR/.

Comentários podem ser enviados para a (arquivo) lista pública www-style@w3.org (ver instruções). Ao enviar um e-mail, por favor, coloque o texto “css3-color” no assunto do e-mail de preferência escrevendo: “[ css3-color ] …sumário do comentário…

Esse documento foi produzido pelo CSS Working Group (integrante da Style Activity).

Um relatório de implementação contém um teste suite mostrando que os testes dela constantes passou pelo menos em duas implementações independentes.

A lista de cometários sobre o rascunho da última da chamada relaciona e explica as modificações introduzidas nessa especificação desde aquele rascunho. O comentários recebidos durante o estágio de Candidata a Recomendação (para o rascunho de 14 de maio de 2003), bem como o tratamento dado a cada um deles pode ser encontado em análide e repostas aos comemtários. Os comentários recebidos durante a fase de Última Chamada (para o rascunho de 14 de fevereiro de 2003), bem como o tratamento dado a cada um deles pode ser encontado em análise e respostas aos comentários.

Foi disponibilizada uma lista completa das modificações nesse documento.

Esse documento foi revisado pelos membros do W3C, por desenvolvedores de software é por outros grupos do W3C e partes interessadas tendo sido endossado pelo Diretor do W3C como uma Recomendação. Trata-se de um documento estável que pode ser usado como material de referência ou citado por outros documentos. O objetivo do W3C ao criar uma Recomendação é o de chamar a atenção para a especificação e promover seu desenvolvimento global. Isso contribui para a melhoria da funcionalidade e da interoperabilidade da Web.

Esse documento foi produzido por um grupo operando sob a 5 February 2004 W3C Patent Policy. O W3C mantém uma lista pública para divulgação de patentes criada em conjunto com seus grupos e que inclui, também, instruções para publicação de patentes. Qualquer pessoa que tenha conhecimento de uma patente que acredita conter Essential Claim(s) deve divulgar essa informação de acordo com a section 6 of the W3C Patent Policy.

Índice


1. Introdução

As especificações para CSS depois das CSS2, passaram a ser desenvolvidas em módulos de modo a facilitar a implementação de novas funcionalidades de maneira incremental. Essa especificação para cores CSS é um desses módulos.

Esse módulo descreve as propriedades CSS que permite aos autores definir cores e opacidade para um elemento, Esse módulo também descreve com detalhes os tipos de valores CSS <color>.

Aqui são definidas as propriedades e valores CSS relacionados não só nas CSS1 e CSS2, como também uma série de novas propriedades e valores.

O grupo de trabalho não espera que todas as implementações em CSS3 implementem todas as propriedades e valores aqui previstos. Provavelmente existirão variações dessa especificação denominadas "perfis". Por exemplo: poderá haver uma implementação específica para dispositivos de usuário do tipo 32-bit de cores que faça uso somente da parte da especiifcação relacionada aquele perfil de cores.

Essa especificação reune assuntos pertinentes à cores existentes nas seguintes Recomendações e Rascunhos de Trabalho, bem como adiciona novas funcionalidades:

2. Dependências

Terminologia adicional pode ser encontrada e definida na seção Definições das [CSS21]. Exemplos de código fonte e fragmentos de códigos estão disponíveis em linguagem XML [XML10] ou HTML [HTML401].

3. Propriedades para cores

3.1. Cores de frente : propriedade ‘color

Nome: color
Valor: <color> | inherit
Inicial: depende do agente de usuário
Aplica-se a: todos os elementos
Heradada: sim
Porcentagem: N/A
Mídia: visual
Valor computado :
  • O valor computado para as palavras-chave básicas para cores, valores RGB hexadecimal e palavras-chave estendidas para cores é o equivalente triplet para valores RGB numéricos, isto é, representação com uso de seis dígitos hexadecimais ou com o valor funcional rgb(...) e valor alfa igual a 1.
  • O valor computado para ‘transparent’ é o quadruplet para valores RGBA iguais a zero, isto é, rgba(0,0,0,0).
  • Ver a definição de ‘currentColor’ para saber como é determinado seu valor computado .
  • Para todos os outros valores, o valor computado é igual ao valor especificado.

Essa propriedade define o valor da cor de frente do conteúdo textual de um elemento. Também poderá ser usada como um valor indireto de cor (currentColor) para qualquer outra propriedade que aceite valores de cor. Se a palavra-chave ‘currentColor’ for definida como valor para a propriedade ‘color’ a declaração será equivalente a ‘color: inherit’.

Existem diferentes sintaxes para definir um valor de cor como mostrado a seguir para a cor green:

Example(s):

em { color: lime }               /* Cor com uso de palavra-chave */
em { color: rgb(0,255,0) }       /* Cor com uso RGB faixa: 0-255   */
<color>
Unidades de cores são definidas na seguinte seção.

3.2. Transparência: propriedade ‘opacity

Opacidade pode ser imaginada como o resultado de uma operação. O conceito básico para obtenção da opacidade é de que o elemento e seus descendentes são renderizados e misturados com os componentes na tela. Ver composição alfa simples para detalhes.

Nome: opacity
Valor: <alphavalue> | inherit
Inicial: 1
Aplica-se a : todos os elementos
Herdada: não
Porcentagem: N/A
Mídia: visual
Valor computado : O mesmo que o valor definido para a cor com aplicação de <alphavalue> especificada na faixa [0.0,1.0].
<alphavalue>
A sintaxe é um <number>. A opacidade será aplicada ao elemento como um todo único. Valores fora da faixa 0.0 (totalmente transparente) até 1.0 (totalmente opaco) serão "arredondados" para dentro da faixa. Se o objeto é um elemento container o efeito será aplicado aos seus conteúdos de uma maneira como se esses fossem misturados contra um fundo usando uma máscara para a qual o valor de cada pixel da máscara fosse o <alphavalue>.

Since an element with opacity less than 1 is composited from a single offscreen image, content outside of it cannot be layered in z-order between pieces of content inside of it. For the same reason, implementations must create a new stacking context for any element with opacity less than 1. If an element with opacity less than 1 is not positioned, implementations must paint the layer it creates, within its parent stacking context, at the same stacking order that would be used if it were a positioned element with ‘z-index: 0’ and ‘opacity: 1’. If an element with opacity less than 1 is positioned, the ‘z-index’ property applies as described in [CSS21], except that ‘auto’ is treated as ‘0’ since a new stacking context is always created. See section 9.9 and Appendix E of [CSS21] for more information on stacking contexts. The rules in this paragraph do not apply to SVG elements, since SVG has its own rendering model ([SVG11], Chapter 3).

4. Unidades para cores

Um valor <color> pode ser uma palavra-chave ou um valor especificado com números.

4.1. Palavras-chave básicas

As palavras-chave básica, para definir cores, são: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white e yellow. Nomes de cores são insensíveis ao tamanho de caixa.

Color names and sRGB values
Nome Numérico Nome da cor Hex rgb Decimal
black #000000 0,0,0
silver #C0C0C0 192,192,192
gray #808080 128,128,128
white #FFFFFF 255,255,255
maroon #800000 128,0,0
red #FF0000 255,0,0
purple #800080 128,0,128
fuchsia #FF00FF 255,0,255
green #008000 0,128,0
lime #00FF00 0,255,0
olive #808000 128,128,0
yellow #FFFF00 255,255,0
navy #000080 0,0,128
blue #0000FF 0,0,255
teal #008080 0,128,128
aqua #00FFFF 0,255,255

Example(s):

body {color: black; background: white }
h1 { color: maroon }
h2 { color: olive }

4.2. Valores numéricos para cores

4.2.1. Valores RGB

O modelo RGB para cores é usado como especificação numérica para cores. Os exemplos a seguir definem a mesma cor:

Example(s):


em { color: #f00 }              /* #rgb */
em { color: #ff0000 }           /* #rrggbb */
em { color: rgb(255,0,0) }
em { color: rgb(100%, 0%, 0%) }

O formato hexadecimal de um valor RGB usa a sintaxe ‘#’ imediatamente seguido por três ou seis caracteres dígitos hexadecimais. A sintaxe RGB com três dígitos (#rgb) é convertida para o formato (#rrggbb) replicando-se os dígitos. Por exemplo: #fb0 transforma-se em #ffbb00. Isso nos garante que a cor branca (#ffffff) poderá ser escrita com a sintaxe (#fff) removendo qualquer dependência de profundidade de cor do display.

O formato de um valor RGB em sua notação funcional é ‘rgb(’ seguido por uma lista de três valores núméricos separados por vírgula (três números inteiros ou três porcentagens) seguido por ‘)’. O valor inteiro 255 corresponde a 100%, e para F ou FF em notação hexadecimal: rgb(255,255,255) = rgb(100%,100%,100%) = #FFF. É permitida a inserção de espaços em branco entre os valores numéricos.

Todas as cores RGB são especificadas no espaço sRGB para cores (ver [SRGB]). Os agentes de usuário podem apresentar variações na representação dessas cores, mas o uso do espaço sRGB proporciona uma maneira objetiva e inequívoca de se determinar a cor de acordo com os padrões internacionais (ver [COLORIMETRY]).

Values outside the device gamut should be clipped or mapped into the gamut when the gamut is known: the red, green, and blue values must be changed to fall within the range supported by the device. User agents may perform higher quality mapping of colors from one gamut to another. This specification does not define precise clipping behavior. For a typical CRT monitor, whose device gamut is the same as sRGB, the four rules below are equivalent:

Example(s):

em { color: rgb(255,0,0) }       /* integer range 0 - 255 */
em { color: rgb(300,0,0) }       /* clipped to rgb(255,0,0) */
em { color: rgb(255,-10,0) }     /* clipped to rgb(255,0,0) */
em { color: rgb(110%, 0%, 0%) }  /* clipped to rgb(100%,0%,0%) */

Other devices, such as printers, have different gamuts than sRGB; some colors outside the 0..255 sRGB range will be representable (inside the device gamut), while other colors inside the 0..255 sRGB range will be outside the device gamut and will thus be mapped.

4.2.2. RGBA color values

The RGB color model is extended in this specification to include “alpha” to allow specification of the opacity of a color. See simple alpha compositing for details. These examples all specify the same color:

Example(s):

em { color: rgb(255,0,0) }      /* integer range 0 - 255 */
em { color: rgba(255,0,0,1)     /* the same, with explicit opacity of 1 */
em { color: rgb(100%,0%,0%) }   /* float range 0.0% - 100.0% */
em { color: rgba(100%,0%,0%,1) } /* the same, with explicit opacity of 1 */

Unlike RGB values, there is no hexadecimal notation for an RGBA value.

The format of an RGBA value in the functional notation is ‘rgba(’ followed by a comma-separated list of three numerical values (either three integer values or three percentage values), followed by an <alphavalue>, followed by ‘)’. The integer value 255 corresponds to 100%, rgba(255,255,255,0.8) = rgba(100%,100%,100%,0.8). White space characters are allowed around the numerical values.

Implementations must clip the red, green, and blue components of RGBA color values to the device gamut according to the rules for the RGB color value composed of those components.

These examples specify effects that are possible with the rgba() notation:

Example(s):

p { color: rgba(0,0,255,0.5) }        /* semi-transparent solid blue */
p { color: rgba(100%, 50%, 0%, 0.1) } /* very transparent solid orange */

Note. If RGBA values are not supported by a user agent, they should be treated like unrecognized values per the CSS forward compatibility parsing rules ([CSS21], Chapter 4). RGBA values must not be treated as simply an RGB value with the opacity ignored.

4.2.3. transparent’ color keyword

CSS1 introduced the ‘transparent’ value for the background-color property. CSS2 allowed border-color to also accept the ‘transparent’ value. The Open eBook(tm) Publication Structure 1.0.1 [OEB101] extended the ‘color’ property to also accept the ‘transparent’ keyword. CSS3 extends the color value to include the ‘transparent’ keyword to allow its use with all properties that accept a <color> value. This simplifies the definition of those properties in CSS3.

transparent
Fully transparent. This keyword can be considered a shorthand for transparent black, rgba(0,0,0,0), which is its computed value.

4.2.4. HSL color values

CSS3 adds numerical hue-saturation-lightness (HSL) colors as a complement to numerical RGB colors. It has been observed that RGB colors have the following limitations:

There are several other color schemes possible. Some advantages of HSL are that it is symmetrical to lightness and darkness (which is not the case with HSV for example), and it is trivial to convert HSL to RGB.

HSL colors are encoding as a triple (hue, saturation, lightness). Hue is represented as an angle of the color circle (i.e. the rainbow represented in a circle). This angle is so typically measured in degrees that the unit is implicit in CSS; syntactically, only a <number> is given. By definition red=0=360, and the other colors are spread around the circle, so green=120, blue=240, etc. As an angle, it implicitly wraps around such that -120=240 and 480=120. One way an implementation could normalize such an angle x to the range [0,360) (i.e. zero degrees, inclusive, to 360 degrees, exclusive) is to compute (((x mod 360) + 360) mod 360). Saturation and lightness are represented as percentages. 100% is full saturation, and 0% is a shade of gray. 0% lightness is black, 100% lightness is white, and 50% lightness is “normal”.

So for instance:

Example(s):

* { color: hsl(0, 100%, 50%) }   /* red */
* { color: hsl(120, 100%, 50%) } /* lime */ 
* { color: hsl(120, 100%, 25%) } /* dark green */ 
* { color: hsl(120, 100%, 75%) } /* light green */ 
* { color: hsl(120, 75%, 75%) }  /* pastel green, and so on */

The advantage of HSL over RGB is that it is far more intuitive: you can guess at the colors you want, and then tweak. It is also easier to create sets of matching colors (by keeping the hue the same and varying the lightness/darkness, and saturation)

If saturation is less than 0%, implementations must clip it to 0%. If the resulting value is outside the device gamut, implementations must clip it to the device gamut. This clipping should preserve the hue when possible, but is otherwise undefined. (In other words, the clipping is different from applying the rules for clipping of RGB colors after applying the algorithm below for converting HSL to RGB.)

The algorithm to translate HSL to RGB is simple (here expressed in ABC [ABC] which was used to generate the tables.) In these algorithms, all three values (H, S and L) have been normalized to fractions 0..1:


    HOW TO RETURN hsl.to.rgb(h, s, l): 
       SELECT: 
	  l<=0.5: PUT l*(s+1) IN m2
	  ELSE: PUT l+s-l*s IN m2
       PUT l*2-m2 IN m1
       PUT hue.to.rgb(m1, m2, h+1/3) IN r
       PUT hue.to.rgb(m1, m2, h    ) IN g
       PUT hue.to.rgb(m1, m2, h-1/3) IN b
       RETURN (r, g, b)

    HOW TO RETURN hue.to.rgb(m1, m2, h): 
       IF h<0: PUT h+1 IN h
       IF h>1: PUT h-1 IN h
       IF h*6<1: RETURN m1+(m2-m1)*h*6
       IF h*2<1: RETURN m2
       IF h*3<2: RETURN m1+(m2-m1)*(2/3-h)*6
       RETURN m1
4.2.4.1. HSL examples

Each table below represents one hue. Twelve equally spaced colors (i.e. at 30° intervals) have been chosen from the color circle: red, yellow, green, cyan, blue, magenta, with all the intermediate colors (the last is the color between magenta and red).

The X axis of each table represents the saturation (100%, 75%, 50%, 25%, 0%).

The Y axis represents the lightness. 50% is “normal”.

0° Reds
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
30° Red-Yellows (=Oranges)
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
60° Yellows
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
90° Yellow-Greens
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
120° Greens
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
150° Green-Cyans
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
180° Cyans
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
210° Cyan-Blues
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
240° Blues
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
270° Blue-Magentas
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
300° Magentas
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0
330° Magenta-Reds
Saturation
100% 75% 50% 25% 0%
100
88
75
63
50
38
25
13
0

4.2.5. Valores HSLA para cores

Tal como para notação funcional ‘rgb()’ existe a notação com opacidade ‘rgba()’ a notação funcional ‘hsl()’ tem sua notação com opacidade ‘hsla()’. Ver simple alpha compositing para detalhes. Os exemplos a seguir definem uma mesma cor:

Example(s):

em { color: hsl(120, 100%, 50%) }     /* green */
em { color: hsla(120, 100%, 50%, 1) } /* idem com opacidade explicita igual a 1 */

O formato para definir um valor de cor HSLA com uso de notação funcional é ‘hsla(’ seguido pelo valor de hue graus, saturação e brilho em porcentagem, e um valor <alphavalue>, seguidos por um sinal ‘)’. Espaços em branco são permitidos entre os valores numéricos.As implementações deveram ajsutar os valores de hue, saturação e brilho componentes da cor HSLA para o gamut do dispositivo de acordo com as regras de composição HSL para aqueles valores.

Os exemplos a seguir mostram a sintaxe para obter o efeito de cor com uso da notação hsla():

Example(s):

p { color: hsla(240, 100%, 50%, 0.5) } /* azul semi-transparente */
p { color: hsla(30, 100%, 50%, 0.1) }  /* laranja muito transparente */

4.3. Palavras-chave estendidas para cores

A tabela a seguir fornece uma listagem das cores X11 [X11COLORS] suportadas pelos navegadores populares com adicão das variantes da cor gray/grey da SVG 1.0. A lista é exatamente a mesma da SVG 1.0 color keyword names. Esta especificação estende a definição dessas cores para além das SVG. As duas paletas de cores à esquerda mostradas a seguir demostram a definição de uma cor para o fundo de célilas de uma tabela segundo duas sintaxes: Na primeira coluna usou-se o nome da cor e na segunda seu respectivo valor numérico.

Named Numeric Color name Hex rgb Decimal
aliceblue #f0f8ff 240,248,255
antiquewhite #faebd7 250,235,215
aqua #00ffff 0,255,255
aquamarine #7fffd4 127,255,212
azure #f0ffff 240,255,255
beige #f5f5dc 245,245,220
bisque #ffe4c4 255,228,196
black #000000 0,0,0
blanchedalmond #ffebcd 255,235,205
blue #0000ff 0,0,255
blueviolet #8a2be2 138,43,226
brown #a52a2a 165,42,42
burlywood #deb887 222,184,135
cadetblue #5f9ea0 95,158,160
chartreuse #7fff00 127,255,0
chocolate #d2691e 210,105,30
coral #ff7f50 255,127,80
cornflowerblue #6495ed 100,149,237
cornsilk #fff8dc 255,248,220
crimson #dc143c 220,20,60
cyan #00ffff 0,255,255
darkblue #00008b 0,0,139
darkcyan #008b8b 0,139,139
darkgoldenrod #b8860b 184,134,11
darkgray #a9a9a9 169,169,169
darkgreen #006400 0,100,0
darkgrey #a9a9a9 169,169,169
darkkhaki #bdb76b 189,183,107
darkmagenta #8b008b 139,0,139
darkolivegreen #556b2f 85,107,47
darkorange #ff8c00 255,140,0
darkorchid #9932cc 153,50,204
darkred #8b0000 139,0,0
darksalmon #e9967a 233,150,122
darkseagreen #8fbc8f 143,188,143
darkslateblue #483d8b 72,61,139
darkslategray #2f4f4f 47,79,79
darkslategrey #2f4f4f 47,79,79
darkturquoise #00ced1 0,206,209
darkviolet #9400d3 148,0,211
deeppink #ff1493 255,20,147
deepskyblue #00bfff 0,191,255
dimgray #696969 105,105,105
dimgrey #696969 105,105,105
dodgerblue #1e90ff 30,144,255
firebrick #b22222 178,34,34
floralwhite #fffaf0 255,250,240
forestgreen #228b22 34,139,34
fuchsia #ff00ff 255,0,255
gainsboro #dcdcdc 220,220,220
ghostwhite #f8f8ff 248,248,255
gold #ffd700 255,215,0
goldenrod #daa520 218,165,32
gray #808080 128,128,128
green #008000 0,128,0
greenyellow #adff2f 173,255,47
grey #808080 128,128,128
honeydew #f0fff0 240,255,240
hotpink #ff69b4 255,105,180
indianred #cd5c5c 205,92,92
indigo #4b0082 75,0,130
ivory #fffff0 255,255,240
khaki #f0e68c 240,230,140
lavender #e6e6fa 230,230,250
lavenderblush #fff0f5 255,240,245
lawngreen #7cfc00 124,252,0
lemonchiffon #fffacd 255,250,205
lightblue #add8e6 173,216,230
lightcoral #f08080 240,128,128
lightcyan #e0ffff 224,255,255
lightgoldenrodyellow #fafad2 250,250,210
lightgray #d3d3d3 211,211,211
lightgreen #90ee90 144,238,144
lightgrey #d3d3d3 211,211,211
lightpink #ffb6c1 255,182,193
lightsalmon #ffa07a 255,160,122
lightseagreen #20b2aa 32,178,170
lightskyblue #87cefa 135,206,250
lightslategray #778899 119,136,153
lightslategrey #778899 119,136,153
lightsteelblue #b0c4de 176,196,222
lightyellow #ffffe0 255,255,224
lime #00ff00 0,255,0
limegreen #32cd32 50,205,50
linen #faf0e6 250,240,230
magenta #ff00ff 255,0,255
maroon #800000 128,0,0
mediumaquamarine #66cdaa 102,205,170
mediumblue #0000cd 0,0,205
mediumorchid #ba55d3 186,85,211
mediumpurple #9370db 147,112,219
mediumseagreen #3cb371 60,179,113
mediumslateblue #7b68ee 123,104,238
mediumspringgreen #00fa9a 0,250,154
mediumturquoise #48d1cc 72,209,204
mediumvioletred #c71585 199,21,133
midnightblue #191970 25,25,112
mintcream #f5fffa 245,255,250
mistyrose #ffe4e1 255,228,225
moccasin #ffe4b5 255,228,181
navajowhite #ffdead 255,222,173
navy #000080 0,0,128
oldlace #fdf5e6 253,245,230
olive #808000 128,128,0
olivedrab #6b8e23 107,142,35
orange #ffa500 255,165,0
orangered #ff4500 255,69,0
orchid #da70d6 218,112,214
palegoldenrod #eee8aa 238,232,170
palegreen #98fb98 152,251,152
paleturquoise #afeeee 175,238,238
palevioletred #db7093 219,112,147
papayawhip #ffefd5 255,239,213
peachpuff #ffdab9 255,218,185
peru #cd853f 205,133,63
pink #ffc0cb 255,192,203
plum #dda0dd 221,160,221
powderblue #b0e0e6 176,224,230
purple #800080 128,0,128
red #ff0000 255,0,0
rosybrown #bc8f8f 188,143,143
royalblue #4169e1 65,105,225
saddlebrown #8b4513 139,69,19
salmon #fa8072 250,128,114
sandybrown #f4a460 244,164,96
seagreen #2e8b57 46,139,87
seashell #fff5ee 255,245,238
sienna #a0522d 160,82,45
silver #c0c0c0 192,192,192
skyblue #87ceeb 135,206,235
slateblue #6a5acd 106,90,205
slategray #708090 112,128,144
slategrey #708090 112,128,144
snow #fffafa 255,250,250
springgreen #00ff7f 0,255,127
steelblue #4682b4 70,130,180
tan #d2b48c 210,180,140
teal #008080 0,128,128
thistle #d8bfd8 216,191,216
tomato #ff6347 255,99,71
turquoise #40e0d0 64,224,208
violet #ee82ee 238,130,238
wheat #f5deb3 245,222,179
white #ffffff 255,255,255
whitesmoke #f5f5f5 245,245,245
yellow #ffff00 255,255,0
yellowgreen #9acd32 154,205,50

4.4. Palavra-chave currentColor

As especificações para as CSS1 e CSS2 definem que o valor inicial da ‘propriedade border-color é igual ao valor da propriedadecolor’, mas não definem uma palavra-chave para esses casos. Essa omissão foi reconhecida na SVG e a SVG 1.0 criou o valor‘currentColor para as propriedades ‘fill’, ‘stroke’, ‘stop-color’, ‘flood-color’, e ‘lighting-color’. CSS3 extendeu os valores para cores e incluiu a palavra-chave ‘currentColor’ para ser usada por todas as propriedades que aceitam o valor <color>. Isso simplifica a definição daquelas propriedades nas CSS3.

currentColor
Valor da propriedade ‘color’. O valor computado para a palavra-chave ‘currentColor’ é igual ao valor computado para a propriedade ‘color’. Se o valor ‘currentColor’ for definido para a propriedade ‘color’ ele será tratado como ‘color: inherit’.

4.5. Cores CSS do sistema

4.5.1. Cores CSS2 do sistema

Em desuso. Além da possibilidade de definir cores de textos, fundo, etc, com uso de palavras-chave, as CSS2 prevêem que os autores podem especificar cores usando uma sintaxe que permite integrar a estilização aos padrões de cores da interface gráfica do sistema do usário.

Para sistemas que não possuem o valor especificado o valor adotado deve ser o mais próximo valor disponível no sistema ou uma cor padrão. Notar que alguns perfis CSS podem não suportar Sistema de Cores.

A listagem mostrada a seguir mostra os nomes para os valores de cores relacionados ao sistema e seu significado. Qualquer propriedade que admita valor de cor pode ser especificada com os estes. Embora os nomes sejam insensíveis ao tamanho de caixa, é recomendável que se adota a grafia mostrada de modo a melhorar a legibilidade dos valores.

ActiveBorder
Borda ativa da janela.
ActiveCaption
Legenda ativa da janela.
AppWorkspace
Cor de fundo de múltiplas interfaces.
Background
Fundo do desktop.
ButtonFace
Cor de fundo da face para elementos 3-D que aparecem em 3-D devido a um layer em volta da borda.
ButtonHighlight
The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.
ButtonShadow
The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.
ButtonText
Text on push buttons.
CaptionText
Text in caption, size box, and scrollbar arrow box.
GrayText
Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.
Highlight
Item(s) selected in a control.
HighlightText
Text of item(s) selected in a control.
InactiveBorder
Inactive window border.
InactiveCaption
Inactive window caption.
InactiveCaptionText
Color of text in an inactive caption.
InfoBackground
Background color for tooltip controls.
InfoText
Text color for tooltip controls.
Menu
Menu background.
MenuText
Text in menus.
Scrollbar
Scroll bar gray area.
ThreeDDarkShadow
The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.
ThreeDFace
The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.
ThreeDHighlight
The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.
ThreeDLightShadow
The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.
ThreeDShadow
The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.
Window
Fundo da janela.
WindowFrame
Quadro da janela.
WindowText
Texto na janela.

DEPRECATED EXAMPLE(S):

Por exemplo: para definir as cores de frente e de fundo de um parágrafo como sendo iguais às cores de frente e de fundo da janela do usuário declare o seguinte:

p { color: WindowText; background-color: Window }

Nota. As CSS2 colocaram em desuso as cores definidas pelo Sistema de Cores em favor da propriedade CSS3 UI ‘appearance’. Se fvocê pretende simular a aparência de um elemento ou controle da interface do usuário, por favor use a propriedade ‘appearance’ em lugar de uma combinação de cores usando o Sistema de Cores.

4.6. Notas sobre uso de cores

Embora as cores possam se constituir em uma poderosa maneira de transmitir informação como também aumentar a legibilidade do documento, não deixer de considerar o que prescreve as W3C Web Content Accessibility Guidelines [WCAG20] sobre uso de cores em documentos.

5. Simple alpha compositing

When drawing, implementations must handle alpha according to the rules in Section 14.2 Simple alpha compositing of [SVG11]. (If the ‘color-interpolation’ or ‘color-rendering’ properties mentioned in that section are not implemented or do not apply, implementations must act as though they have their initial values.)

6. Sample style sheet for (X)HTML

Este apêndice é informativo e não normativo. This style sheet could be used by an implementation as part of its default styling of HTML4, XHTML1, XHTML1.1, XHTML Basic, and other XHTML Family documents.

html { 
	color: black;
	background: white;
}


/* traditional desktop user agent colors for hyperlinks */
:link    { color: blue; }   
:visited { color: purple; }

/* default focus outline */
:focus {
	outline: 1px dotted;  /* or 1px dotted invert */
}

7. Profiles

Each specification using CSS3 Color must define the subset of CSS3 Color features it allows and excludes, and describe the local meaning of all the components of that subset.

Non normative examples:

CSS3 Color profile
Specification HTML4
Accepts Basic color keywords
RGB six digit hex color values
Excludes color’ property
opacity’ property
RGB three digit hex color values and RGB functional notation color value
RGBA color values
HSL and HSLA color values
Extended color keywords
currentColor’ color value
CSS2 UI Colors
transparent’ color value
Extra constraints none.
CSS3 Color profile
Specification CSS level 1
Accepts color’ property
Basic color keywords
RGB color values
Excludes opacity’ property
RGBA color values
HSL and HSLA color values
Extended color keywords
currentColor’ color value
CSS2 UI Colors
transparent’ color value
Extra constraints none.
CSS3 Color profile
Specification CSS level 2
Accepts color’ property
Basic color keywords
RGB color values
CSS2 UI Colors
transparent’ color value
Excludes opacity’ property
RGBA color values
HSL and HSLA color values
Extended color keywords
currentColor’ color value
Extra constraints transparent’ color value not valid for ‘color’ property.
orange’ color value (part of Extended color keywords) is accepted in CSS level 2 revision 1
CSS3 Color profile
Specification SVG 1.0 and 1.1
Accepts color’ property
opacity’ property
Basic color keywords
RGB color values
CSS2 UI Colors
Extended color keywords
currentColor’ color value
Excludes RGBA color values
HSL and HSLA color values
transparent’ color value
Extra constraints currentColor’ color value not valid for ‘color’ property.

8. Test suite

A CSS Color Module Test Suite has been developed, although further tests may be added. This test suite is intended to allow user agents to verify their basic conformance to the specification. This test suite does not pretend to be exhaustive and does not cover all possible numerical color values. These tests are available at //www.w3.org/Style/CSS/Test/CSS3/Color/current/.

9. Call for Implementations of dropped features

A number of features that were present in the 14 May 2003 Candidate Recommendation are no longer present in this specification. However, the call for implementations for these features remains, and they may be included in a future level of this specification given sufficient implementations and a test suite to demonstrate interoperability. These features are:

10. Acknowledgments

Thanks to Brad Pettit both for writing up color-profiles, and for implementing it. Thanks to Steven Pemberton for his write up on HSL colors. Thanks especially to the feedback from Marc Attinasi, Bert Bos, Joe Clark, fantasai, Patrick Garies, Tony Graham, Ian Hickson, Susan Lesch, Alex LeDonne, Cameron McCormack, Krzysztof Maczyński, Chris Moschini, Chris Murphy, Christoph Päper, David Perrell, Jacob Refstrup, Dave Singer, Jonathan Stanley, Andrew Thompson, Russ Weakley, Etan Wexler, David Woolley, Boris Zbarsky, Steve Zilles, the XSL FO subgroup of the XSL working group, and all the rest of the www-style community. And thanks to Chris Lilley for being the resident CSS Color expert.

11. Changes

This document differs from the previous, 28 October 2010, Proposed Recommendation document as follows: the date, status and styling are updated for W3C Recommendation, the references are updated, and this changes appendix lists no substantive changes.

12. References

12.1. Normative

[COLORIMETRY]
Colorimetry, Third Edition. CIE 15:2004. ISBN 978-3-901906-33-6
[CSS21]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. W3C Recommendation. URL: //www.w3.org/TR/2011/REC-CSS2-20110607
[SRGB]
Multimedia systems and equipment - Colour measurement and management - Part 2-1: Colour management - Default RGB colour space - sRGB. IEC 61966-2-1 (1999-10) ISBN: 2-8318-4989-6 - ICS codes: 33.160.60, 37.080 - TC 100 - 51 pp. as amended by Amendment A1:2003. URL: //www.colour.org/tc8-05/Docs/colorspace/61966-2-1.pdf
[SVG11]
Jon Ferraiolo et al. Scalable Vector Graphics (SVG) 1.1. 14 January 2003. W3C Recommendation. URL: //www.w3.org/TR/2003/REC-SVG11-20030114/

12.2. Informative

[ABC]
Leo Geurts; Lambert Meertens; Steven Pemberton. The ABC Programmer's Handbook. Prentice-Hall. ISBN: 0-13-000027-2. URL: //www.cwi.nl/~steven/abc
[CSS2]
Ian Jacobs; et al. Cascading Style Sheets, level 2 (CSS2) Specification. 11 April 2008. W3C Recommendation. URL: //www.w3.org/TR/2008/REC-CSS2-20080411
[CSS3UI]
Tantek Çelik. CSS3 Basic User Interface Module. 11 May 2004. W3C Candidate Recommendation. (Work in progress.) URL: //www.w3.org/TR/2004/CR-css3-ui-20040511
[HTML401]
David Raggett; Ian Jacobs; Arnaud Le Hors. HTML 4.01 Specification. 24 December 1999. W3C Recommendation. URL: //www.w3.org/TR/1999/REC-html401-19991224
[OEB101]
Open eBook(tm) Publication Structure 1.0.1. Open eBook Forum(tm). 02 July 2001. URL: //www.openebook.org/oebps/oebps1.0.1/download/oeb101-xhtml.htm
[SVG10]
Jon Ferraiolo. Scalable Vector Graphics (SVG) 1.0 Specification. 4 September 2001. W3C Recommendation. URL: //www.w3.org/TR/2001/REC-SVG-20010904
[WCAG20]
Michael Cooper; et al. Web Content Accessibility Guidelines (WCAG) 2.0. 11 December 2008. W3C Recommendation. URL: //www.w3.org/TR/2008/REC-WCAG20-20081211
[X11COLORS]
X11 Color Names URL: //en.wikipedia.org/wiki/X11_color_names
[XML10]
C. M. Sperberg-McQueen; et al. Extensible Markup Language (XML) 1.0 (Fifth Edition). 26 November 2008. W3C Recommendation. URL: //www.w3.org/TR/2008/REC-xml-20081126/

Index

Property index

Property Values Initial Applies to Inh. Percentages Media
color <color> | inherit depends on user agent all elements yes N/A visual
opacity <alphavalue> | inherit 1 all elements no N/A visual