規定版はW3Cのサイトにある英語版である。翻訳された文書は翻訳からの誤りが含まれているかもしれない。
Copyright © 2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
CSS(段階スタイルシート)は、画面上、紙面上、音声などでのHTML及びXMLの文書のレンダリング方法を記述するための言語である。文書の要素に色をつけるには、色に関する特性及びそれぞれの値を使う。この規定はCSS水準3に提案される特性及び値を説明する。CSS水準2の特性及び値を包含し、拡張する。
この規定は、将来のCSS水準3(CSS3)に向けた規定のモジュールの一つである。CSS1及びCSS2にすでに存在している色に関する特性及び値を説明するだけでなく、同じように、CSS3向けの新しい特性及び値も提案する。作業グループは、CSS3のすべての実装が、すべての特性及び値を実装することを期待しない。代わりに、おそらくいくつかのCSS3の変形、いわゆる"プロファイル"を作ることになる。例えば、32ビット色の利用者エージェント向けのプロファイルのみが、提案される色に関する特性及び値のすべてを含むことになるだろう。
規定は、次の勧告及び作業ドラフトの関連する部分の統合及びいくつかの新しい機能の追加の結果である。
この規定は、CSS作業部会(スタイル作業の一部、要約を参照)によって、W3C勧告候補として提案されている。この文書は、平成15年2月14日付け最終作業ドラフトの改訂版であり、最終レビューの間に受け取った提案、実装者による意見及びW3CのCSS作業部会の更なる検討を盛り込んでいる。
すべての人に、この規定をレビューし、実装し、(アーカイブされた)公開メーリングリストwww-style(使用説明書を参照)に意見を送付することを奨励する。W3Cの会員はCSS作業部会に直接意見を送付することもできる。
この文書の最新版を見つけるには、上の"最新の版"のリンクをたどるか、W3C技術報告の一覧を訪ねてください。
この規定がCR期間を終えるには、次の条件が満たされなくてはならない。
色モジュールのすべての機能に対する、少なくとも二つの相互利用可能な実装がなければならない。
この基準の目的上、次の用語を定義する。
色モジュールの中の節や小節
色モジュールのテストスイートのそれぞれのテストケースに、または、実装がウェブブラウザでないなら同等のテストに合格すること。そのような利用者エージェント(UA)が相互利用可能性を主張するために使われることになれば、テストスイートの中の該当するテストにはそれぞれ、同等のテストが作成されるべきである。加えて、そのようなUAが相互利用可能性を主張するために使われることになれば、相互利用可能性を目的として同じように同等のテストに合格する、一つ以上の追加のUAがなければならない。同等のテストは、同等のレビューの目的上、一般に入手可能としなければならない。
次のことを満たす利用者エージェント
最低限の6ヶ月のCR期間が経過していなければならない。どんな残っている大きな誤りも見つけられるよう十分な時間が与えられることが保証される。
CSS作業グループは、この文書がすべての最終の意見に対応し、安定していると考えることができると考えている。まだ作業部会によって更新されることがありうるが、その意味するところを明確にするだけのためである。もし、予想外に重大な問題が見つかれば、作業ドラフトの状態に戻される。そうでなければ、終了基準が満たされればすぐに前進して勧告案となる。どちらの場合も、勧告候補段階の継続期間は少なくとも6ヶ月になる(平成15年4月 - 平成15年10月).
CSSに関する特許情報開示は、作業グループの特許情報開示ページ上で参照できるだろう。
現在のW3C勧告とほかの技術文書の一覧は、http://www.w3.org/TRで参照できる。
CSS3は、規定を簡略化し、実装者がその実装に適当な特定のモジュールを柔軟にサポートできるようにするために、分けられプロファイル化されたモジュールの集合である。
このモジュールは、作者が前景色と要素の不透明度を指定することができるようになるCSS特性を説明する。追加の特性により、ICC色プロファイル及び画像内容のレンダリングインテントを指定できるようになる。また、このモジュールは、CSS<color>値型を詳細な説明も行う。
このCSS3モジュールは、次のほかのCSS3モジュールに依存している。
次のCSS3のモジュールは、このモジュールに依存している。
名称: | color |
値: | <color> | inherit | attr(<identifier>,color) |
初期値: | 利用者エージェントに依存する |
適用対象: | すべての要素 |
継承: | する |
パーセント値: | N/A |
メディア: | 視覚メディア |
計算値: |
|
この特性は、要素のテキスト内容の前景色を記述する。加えて、色の値を受け入れるどのほかの特性にも潜在的間接値(currentColor)を与える。'currentColor'キーワードが'color'特性そのものに指定されれば、'color:inherit'として扱われる。
ライムグリーンを指定するのに異なった方法がある。
em { color: lime } /* 定義済みの色名 */ em { color: rgb(0,255,0) } /* 0-255の範囲のRGB */
色を設定するのにbody要素上の'text'属性を参照するには、次のようにすればよい。
body { color: attr(text,color); } /* 'text'属性を用いる */
ガンマの課題に関する情報については, PNG規定([PNG1.0])のGamma Tutorialを参照されたい。
ガンマ補正の計算では、CRTに表示するUAは理想的なCRTを想定してよく、ディザ化によって生じる見かけのガンマへの影響を無視してもい。すなわち、現プラットフォームで行わなければならない最小処理は、次のとおり。
"ガンマを適用"とは、OSで処理される前に、つのR、G及びBのそれぞれがR'=Rgamma, G'=Ggamma, B'=Bgammaに変換されなければならないことを意味する。
これは、ブラウザの起動の都度、256要素の照合表を次のとおり構築することによって、迅速に実行してもよい。
for i := 0 to 255 do raw := i / 255.0; corr := pow (raw, gamma); table[i] := trunc (0.5 + corr * 255.0) end
この処理によって,色属性ごとの面倒な数学的処理の実施を,1画素当りはるかに小さいものとすることができる。
不透明度は、概念的には後処理操作と考えることができる。概念的には、要素(その子も含む)がRGBAオフスクリーンイメージにレンダリングされた後、不透明度の設定がオフスクリーンレンダリングを合成して、現在の複合レンダリングとする。
名称: | opacity |
値: | <alphavalue> | inherit |
初期値: | 1 |
適用対象: | すべての要素 |
継承: | しない |
パーセント値: | N/A |
メディア: | 視覚メディア |
計算値: | <alphavalue>を範囲[0.0,1.0]に切り取ると指定値と同じ |
名前: | color-profile |
値: | auto | sRGB | <name> | <uri> | inherit |
初期値: | auto |
適用対象: | すべての要素 |
継承: | する |
パーセント値: | N/A |
メディア: | 視覚メディア |
計算値: | 指定値 |
この特性により、デフォルトでないソース色プロファイルを指定できる。
/* たとえ画像が組み込みプロファイルを含んでいても 指定されたプロファイルを用いる */ IMG { color-profile: url("http://example.com/profiles/eg.icm") }
名称: | rendering-intent |
値: | auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric | inherit |
初期値: | auto |
適用対象: | すべての要素 |
継承: | する |
パーセント値: | N/A |
メディア: | 視覚メディア |
計算値: | 指定値 |
この特性により、デフォルトでない色プロファイルのレンダリングインテントを指定できる。auto又はinheritでない値の振る舞いは国際色彩協会標準[ICC32]によって定義される。
SVG 1.0は、color-profile及びrendering-intent特性をグループ化する手段として、@color-profile@規則を導入した。
@color-profile規則は、色プロファイルの記述を指定するのに使うことができる。一般的な形式は、次のようなものである。
@color-profile { <color-profile-description> }
ここで、<color-profile-description>は、次のような形式である。
descriptor: value; [...] descriptor: value;
それぞれの@color-profile規則は、暗示的に又は明示的にそれぞれの色プロファイルの記述子に値を指定する。規則の中で明示的な値を与えられない記述子は、この規定の中のそれぞれの記述子のところに記載されている初期値をとる。この記述子は、定義される@color-profile規則の内容の中にだけ適用され、文書言語の要素には適用されない。したがって、どの要素に記述子が適用されるのか、あるいは、値が子要素に継承されるかどうかは、考えなくてよい。
次のものは、<color-profile-description>に対する記述子である。
値: | <name> |
初期値: | 未定義 |
メディア: | 視覚メディア |
値: | sRGB | <local-profile> | <uri> | (<local-profile> <uri>) |
初期値: | sRGB |
メディア: | 視覚メディア |
"local(" + <string> + ")"ここで、<string>は、国際色彩協会によって指定されるプロファイルの一意IDとする。(注意。プロファイル記述フィールドは、プロファイルの一意IDを表現してはいない。現在のICCの提案では、プロファイルの一意IDはプロファイルのヘッダの中のMD5エンコードされた値である。)
値: | auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric |
初期値: | auto |
メディア: | 視覚メディア |
'rendering-intent'特性の説明を参照のこと。
<color>は、キーワード又は数値RGB指定のいずれかとする。
HTML4のキーワードの色のリストは、aqua、black、blue、fuchsia、gray、green、lime、maroon、navy、olive、purple、red、silver、teal、white及びyellowである。色名は、大文字・小文字を区別しない。
Black = #000000 | Green = #008000 | ||
Silver = #C0C0C0 | Lime = #00FF00 | ||
Gray = #808080 | Olive = #808000 | ||
White = #FFFFFF | Yellow = #FFFF00 | ||
Maroon = #800000 | Navy = #000080 | ||
Red = #FF0000 | Blue = #0000FF | ||
Purple = #800080 | Teal = #008080 | ||
Fuchsia = #FF00FF | Aqua = #00FFFF |
body {color: black; background: white } h1 { color: maroon } h2 { color: olive }
RGB色モデルは数値色指定に使われる。次の例はすべて同じ色を指定している。
em { color: #f00 } /* #rgb */ em { color: #ff0000 } /* #rrggbb */ em { color: rgb(255,0,0) } /* 0 - 255の範囲の整数 */ em { color: rgb(100%, 0%, 0%) } /* 0.0% - 100.0%の範囲の浮動小数 */
16進記法のRGB値のフォーマットは、'#'で始まり,その直後に3桁又は6桁の16進数が続くものとする。3桁の数字のRGB記法(#rgb)は、ゼロを付加するのではなく、数字を重複させることによって、6桁の形式(#rrggbb)に変換される。例えば、#fb0は#ffbb00に展開される。これによって、確実に白(#ffffff)は短い記法(#fff)で指定でき、ディスプレイの色ビット幅への依存性が除去される。
関数的記法でのRGB値のフォーマットは、'rgb('で始まり,これに三つの数値(三つの整数値又は三つのパーセント値のいずれか)をコンマで区切ったリストが続き、さらに')'が続くものとする。整数値255は100%に対応し、16進記法でのF又はFFに対応する。すなわち,rgb(255,255,255) = rgb(100%,100%,100%) = #FFFである。空白文字が、数値の前後にあってもよい。
すべてのRGB色は、sRGB色空間で指定される([SRGB]参照)。利用者エージェントがこれらの色を表示する正確さは一律でなくともよいが、sRGBを使用することによって、その色が何かという、あいまい性のない客観的に測定可能な定義が提供され、国際規格への関係付けが可能となる([COLORIMETRY]を参照)。
装置の全色域外の値は,切り取るほうがよい。red,green及びblueの値は,装置がサポートする範囲内にあるように変更されなければならない。全色域がsRGBと同じである典型的なCRTモニタに対しては,次の三つの規則は等しい。
em { color: rgb(255,0,0) } /* 0 - 255の範囲の整数 */ em { color: rgb(300,0,0) } /* rgb(255,0,0)に切り取られる */ em { color: rgb(255,-10,0) } /* rgb(255,0,0)に切り取られる */ em { color: rgb(110%, 0%, 0%) } /* rgb(100%,0%,0%)に切り取られる */
プリンタなどの他の装置は、sRGBとは異なる全色域をもっている。すなわち、0..255のsRGB範囲外の色の幾つかは表示できる(その装置の全色域内で)が、0..255のsRGB範囲内の他の色は全色域外にあって、切り取られることになる。
RGB色モデルは、色の不透明度を指定できるようにするため、'alpha'を含むようにこの規定の中で拡張される。この例は、すべて同じ色を指定している。
em { color: rgb(255,0,0) } /* 0 - 255の範囲の整数 */ em { color: rgba(255,0,0,1) /* 同じ。明示的に不透明度が1となっている */ em { color: rgb(100%,0%,0%) } /* 0.0% - 100.0%の範囲の浮動小数 */ em { color: rgba(100%,0%,0%,1) } /* 同じ。明示的に不透明度が1となっている */
RGB値と違い、RGBA値には16進記法がない。
関数的記法でのRGBA値のフォーマットは、'rgba('で始まり,これに三つの数値(三つの整数値又は三つのパーセント値のいずれか)をコンマで区切ったリストが続き、<alphavalue>が続き、さらに')'が続くものとする。整数値255は100%に対応し、16進記法でのF又はFFに対応する。すなわち、rgba(255,255,255,0.8) = rgba(100%,100%,100%,0.8)である。空白文字が,数値の前後にあってもよい。
次の例は、新しいrgba()記法で可能になった新しい効果を指定している。
p { color: rgba(0,0,255,0.5) } /* 半透明な均一な青 */ p { color: rgba(100%, 50%, 0%, 0.1) } /* 透明度の高い均一なオレンジ */
注意。RGBA値が利用者エージェントにサポートされていなければ、CSSの前方互換解析規則ごとに認識できない値のように扱われるべきである。RGBA値は、単に不透明度が無視されたRGB値として扱われてはならない。
CSS1は、background-color特性に'transparent'の値を導入した。CSS2は、border-colorも'transparent'の値を受け入れられるようにした。Open eBook(tm) Publication Structure 1.0.1 [OEB101]は、'color'特性も'transparent'キーワードを受け入れられるように拡張した。CSS3は、<color>の値を受け入れるすべての特性で使えるようにするために、色の値を'transparent'を含むように拡張する。これにより、CSS3でのそういった特性の定義を簡略化する。
CSS3は、数値のRGBの色を補足するものとして、数値の色相・彩度・明度(HSL)の色を加える。RGB色には次の制限があることが観察されている。
いくつかほかにもも可能な色のスキームがある。HSLの利点は、明暗に対称性があり(例えば、HSVの場合では、ない)、HSLをRGBに変換するのが平易であることである。
HSLの色は、三つ一組の数値(色相、彩度、明度)でエンコードされる。色相は色相環(すなわち、円形に表現された虹)の角度として表現される。この角度は、典型的に度で測られるので、単位はCSSでは暗黙的とし、構文的には<number>が与えられる。定義によると、red=0=360であり、ほかの色は、円周上に広がっているので、green=120、blue=360などとなっている。角度として、-120=240及び480=120のように暗黙的に丸められる。実装が角度xを範囲[0,360)に標準化する一つの方法は、((x mod 360) + 360) mod 360)を計算することである。彩度や明度はパーセントとして表現される。100%は最大の彩度であり、0%は灰色の陰である。0%の明度は黒であり、100%の明度は白であり、50%の明度は'normal'である。
それゆえ、例えば、
* { color: hsl(0, 100%, 50%) } /* 赤 */ * { color: hsl(120, 100%, 50%) } /* 緑 */ * { color: hsl(120, 100%, 25%) } /* 薄緑 */ * { color: hsl(120, 100%, 75%) } /* 深緑 */ * { color: hsl(120, 50%, 50%) } /* パステルグリーンなど */
RGBにHSLが勝る点は、はるかに直感的だということである。欲しい色を推測し、それから微調整することができる。色に一致するセットを作るのも容易である(色相を同じままにして、明度/暗度や彩度を変えることによって)。
HSLをRGBに変換するアルゴリズムは単純である(ここでは、テーブルを生成するのに使われるABC[ABC]で表現した)。次のアルゴリズムでは、三つの値(H、SとL)がすべて割合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
下の表は、それぞれ一つの色相を表現している。赤、黄、緑、シアン、青、マゼンタと、その中間色すべて(最後のは、マゼンタと赤の間の色)という、12の均等に間隔をあけた色(すなわち、30¡間隔)が、色相環から選ばれている。
それぞれの表のX軸は彩度(100%、75%、50%、25%、0%)を表現している。
Y軸は明度を表現している。50%は'normal'である。
0¡赤 | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
30¡赤黄(=オレンジ) | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
60¡黄 | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
90¡黄緑 | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
120¡緑 | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
150¡グリーンシアン | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
180¡シアン | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
210¡シアンブルー | |||||
---|---|---|---|---|---|
Saturation | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
240¡青 | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
270¡ブルーマゼンタ | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
300¡マゼンタ | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
330¡マゼンタレッド | |||||
---|---|---|---|---|---|
彩度 | |||||
100% | 75% | 50% | 25% | 0% | |
100 | |||||
88 | |||||
75 | |||||
63 | |||||
50 | |||||
38 | |||||
25 | |||||
13 | |||||
0 |
ちょうど'rgb()'関数的記法が、対応するアルファのある関数的記法'rgba()'を持っていたように、'hsl()'関数的記法は、対応するアルファのある関数的記法'hsla()'を持っている。次の例は同じ色を指定している。
em { color: hsl(120, 100%, 50%) } /* 緑 */ em { color: hsla(120, 100%, 50%, 1) } /* 同じ。明示的に不透明度が1となっている */
関数的記法でのHSLAの色の値のフォーマットは、'hsla('で始まり、これに度での色相、パーセントでの彩度及び明度及び<alphavalue>が続き、さらに')'が続くものとする。
次の例は、新しいhsla()記法で可能になった新しい効果を指定している。
p { color: hsla(240, 100%, 50%, 0.5) } /* 半透明の均一な青 */ p { color: hsla(30, 100%, 50%, 0.1) } /* 透明度の高い均一なオレンジ */
下の表は、一般的なブラウザによってサポートされているX11色[X11COLORS]とSVG 1.0から加わったgray/greyの変異形のリストを与える。結果のリストはSVG 1.0色キーワード名とまったく同じである。左の二つの色の区画により、二つの方法での表のセルの背景色の設定を例証している。最初の列は色名を使い、2番目の列はそれぞれの数値の色の値を使っている。
名前で | 数値で | 色名 | 16進rgb | 10進 |
---|---|---|---|---|
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 |
CSS1及びCSS2は、'border-color'特性の初期値を'color'特性の値
と定義したが、相当するキーワードを定義しなかった。この脱落はSVGによって認識され、したがって'fill'、'stroke'、'stop-color'、'flood-color'、'lighting-color'に対しSVG1.0は'currentColor'の値を導入した。CSS3は、<color>の値を受け入れるすべての特性で使えるようにするために、色の値を'currentColor'キーワードを含むように拡張する。これは、CSS3におけるそういった特性の定義を簡略化する。
推奨しない。あらかじめ定義された色値をテキスト、背景等に割り当てることができる以外に、CSS2により、文書作成者は利用者の図形環境に統合するという方法で、色を指定することができる。
システムに対応する値がない場合は、最も近似するシステム属性又はデフォルト色に指定値を対応付けるのがよい。CSSのプロファイルにはシステム色をまったくサポートしないものもあるであろうことに注意すること。
次は,色関連のCSSの値及びその一般的な意味について、付加的な値を列挙したものである。いずれの色特性も次の名前を一つとることができる。これらは大文字及び小文字を区別しないが、より読み易くするために、後述するように大文字及び小文字を混在させることを推奨する。
例えば, 段落の前景の色及び背景の色を利用者のウィンドウと同じに設定するためには,次のように書く。
p { color: WindowText; background-color: Window }
注意。システム色のキーワード値の計算値は、キーワードそのものである。
利用者インタフェース関連の要素の見た目を完全に指定するCSS3 UIの'appearance'特性を推奨し、CSS2システム色は非推奨とする。
:focus {outline: 1px solid flavor} /* 現在フォーカスされている要素の周りに、もしあれば、色が ブラウザの強調色と同じ輪郭線を置く */
色は、文書に多量の情報を加え、より読みやすくすることができるが、文書中に色を含めるときは、W3Cウェブ内容アクセシビリティガイドライン[WCAG]を参照されたい。
この附属書は参考であって, 規定ではない。このスタイルシートは、HTML、XHTML1、XHTML 1.1、XHTML Basic及びほかのXHTMLファミリ文書のデフォルトのスタイル化の一部として、実装は使用することができる。
html { color: black; background: white; color-profile: sRGB; rendering-intent: auto } body[text] { color: attr(text,color}; } body[bgcolor],table[bgcolor],tr[bgcolor],td[bgcolor],th[bgcolor] { background-color: attr(bgcolor,color); } font[color] { color: attr(color,color); } /* traditional desktop user agent colors for hyperlinks */ :link { color: blue; } :visited { color: purple; } img,object { color-profile: auto; rendering-intent: auto } /* default focus outline */ :focus { outline: 1px dotted gray; outline: 1px solid flavor; }
CSS3色を使った規定は、それぞれ、許容し、除外するCSS3の色の機能のサブセットを定義し、サブセットのすべての構成要素のそこでの意味を説明しなければならない。
規定でない例:
CSS3色のプロファイル | |
---|---|
規定 | HTML4 |
許容 | HTML4 color keywords RGB six digit hex color values |
除外 | 'color'特性 'opacity'特性 'color-profile'特性 'rendering-intent'特性 @color-profile規則 RGBの三つの十六進法の色の値及びRGBの関数的記法の色の値 RGBAの色の値 HSL及びHSLAの色の値 SVGの色の値 'currentColor'の色の値 CSS2 UI色 'transparent'の色の値 'flavor'の色の値 |
特別な制約 | なし。 |
CSS3色のプロファイル | |
---|---|
規定 | CSS水準1 |
許容 | 'color'特性 HTML4の色のキーワード RGBの色のキーワード |
除外 | 'opacity'特性 'color-profile'特性 'rendering-intent'特性 @color-profile規則 RGBAの色の値 HSL及びHSLAの色の値 SVGの色の値 'currentColor'の色の値 CSS2 UI色 'transparent'の色の値 'flavor'の色の値 |
特別な制約 | なし。 |
CSS3色のプロファイル | |
---|---|
規定 | CSS水準2 |
許容 | 'color'特性 HTML4の色のキーワード RGBの色の値 CSS2 UI色 色の値'transparent' |
除外 | 'opacity'特性 'color-profile'特性 'rendering-intent'特性 @color-profile規則 RGBAの色の値 HSL及びHSLAの色の値 SVG の色のキーワード 色の値'currentColor' 色の値'flavor' |
特別な制約 | 色の値'transparent'が'color'特性に対しては妥当でない。 |
CSS3色のプロファイル | |
---|---|
規定 | SVG 1.0及び1.1 |
許容 | 'color'特性 'opacity'特性 @color-profile規則 HTML4の色のキーワード RGBの色のキーワード CSS2 UI色 SVGの色のキーワード 色の値'currentColor' |
除外 | 'color-profile'特性 'rendering-intent'特性 RGBAの色の値 HSL及びHSLAの色の値 色の値'transparent' 色の値'flavor' |
特別な制約 | 色の値'currentColor'が'color'特性に対しては妥当でない。 |
This specification shall refer to a test suite allowing 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 [link forthcoming].
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, David Baron, Bert Bos, Joe Clark, fantasai, Ian Hickson, Susan Lesch, Christoph Päper, Jonathan Stanley, Andrew Thompson, Russ Weakley, Etan Wexler, David Woolley, Boris Zbarsky, Steve Zilles, and all the rest of the www-style community. And thanks to Chris Lilley for being the resident CSS Color expert.
Property | Values | Initial | Applies to | Inh. | Percentages | Media |
---|---|---|---|---|---|---|
color | <color> | inherit | attr(<identifier>,color) | depends on user agent | all elements | yes | N/A | visual |
color-profile | auto | sRGB | <name> | <uri> | inherit | auto | all elements | yes | N/A | visual |
opacity | <alphavalue> | inherit | 1 | all elements | no | N/A | visual |
rendering-intent | auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric | inherit | auto | all elements | yes | N/A | visual |