[2] [[CSS]] の[[キーワード]] [DFN[[CODE(CSS)@en['[[currentColor]]']]]] は、
その[[要素]]の[[色]] ([CODE(CSS)@en['[[color]]']] [[特性]]の値) を表します。

* 仕様書

[REFS[
- [1] [CITE@en[CSS Color Module Level 3]] ([TIME[2011-06-07 21:54:38 +09:00]] 版) <http://www.w3.org/TR/2011/REC-css3-color-20110607/#currentcolor>
- [25] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-11-16 20:26:18 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#2dcontext>
]REFS]

* 意味

[6] [CODE(CSS)@en['[[currentColor]]']] は、 [CODE(CSS)@en['[[color]]']] [[特性]]の値を表します
[SRC[>>1]]。

* 算出値

[7] [CODE(CSS)@en['[[currentColor]]']] の[[算出値]]は、 [CODE(CSS)@en['[[color]]']] [[特性]]の[[算出値]]です
[SRC[>>1]]。

* [CODE(CSS)@en['color']] における扱い

[8] [CODE(CSS)@en['[[color]]: [[currentColor]]']] は [CODE(CSS)@en['[[color]]: [[inherit]]']] 
として扱います [SRC[>>1]]。

[9] [[PR]] 直前の [[WD]] <http://www.w3.org/TR/2008/WD-css3-color-20080721/#currentColor-def> までは
[[構文解析]]の時点で置き換えられると明記されていましたが、なぜか次の [[PR]]
<http://www.w3.org/TR/2010/PR-css3-color-20101028/#currentColor-def>
では削られています。

[23] [CITE@en[Re: '''['''css3-color''']''' currentColor parsing issues]] ([[L. David Baron]] 著, [TIME[2008-07-26 02:17:13 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-style/2008Jul/0540.html>

これによると、 [[CSSOM]] には [CODE(CSS)@en['[[currentColor]]']] のまま現れるべきであり[[構文解析]]時に置き換えるというのは正しくないようです。

* [CODE(HTMLe)@en[canvas]] での扱い

[26] [CODE(DOMi)@en[[[CanvasRenderingContext2D]]]] では、 
- [27] [[レンダリング文脈]]の[[文脈ビットマップ・モード]]が[[固定]]で、 [CODE(HTMLe)@en[[[canvas]]]]
[[要素]]が[[レンダリングされている]]なら、[[色]]が指定された時点 [WEAK[(使われる時点ではなく。)]]
における [CODE(HTMLe)@en[[[canvas]]]] [[要素]]の [CODE(CSS)@en['[[color]]']] [[特性]]の[[算出値]]を表します。 [SRC[>>25]]
- [28] それ以外の場合、[[完全不透明黒]]を表します。 [SRC[>>25]]

[29] [CODE(DOMi)@en[[[CanvasGradient]]]] の [CODE(DOMm)@en[[[addColorStop]]]] では、
[[完全不透明黒]]を表します。 [SRC[>>25]]

* [CODE[SVG ]] での扱い

[SEE[ [CODE[SVG ]] ]]

* 歴史

** 前史

[3] [[CSS1]] と [[CSS2]] では [CODE(CSS)@en['[[border-color]]']] [[特性]]の[[初期値]]を
「[CODE(CSS)@en['[[color]]']] [[特性値]]」と文章で説明していました。 [SRC[>>1]]

** SVG

[4] [[SVG 1.0]] で [CODE(CSS)@en['[[fill]]']], [CODE(CSS)@en['[[stroke]]']],
[CODE(CSS)@en['[[stop-color]]']], [CODE(CSS)@en['[[flood-color]]']], 
[CODE(CSS)@en['[[lighting-color]]']] で使える値として [CODE(CSS)@en['[[currentColor]]']]
が導入されました。 [SRC[>>1]]

** CSS3

[5] [[CSS3]] で [CODE(CSS)@en['[[currentColor]]']] は [CODE(CSS)@en[[[<color>]]]]
が使える場所すべてで使えるように拡張されました。 [SRC[>>1]]

* 実装

[22]
2003年の [[CSS 3]] [[色]][[モジュール]] [[CR]] によれば
[CODE(CSS)@en[[[currentColor]]]] が [CODE(CSS)@en[[[color]]]]
に指定されたら[[構文解析]]の時点で [CODE(CSS)@en[[[inherit]]]]
に置き換えなければなりませんが、 [[Firefox]] 2
はそれをせず、なぜか[[黒]][[色]]
([[初期値]]?) で[[レンダリング]]します。
[CODE(CSS)@en[[[background-color]]]] など他の特性では正常なようです。

* メモ

[24] [[SVG]] 由来のため、 [[CSS]] なのに [[camelCase]] になっているようです。

[30] [CITE@en[''''''[''''''css-color'''''']'''''' currentColor, inheritance, bikeshedding]]
( ([[fantasai]] 著, [TIME[2014-08-19 05:20:53 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2014Aug/0263.html>

[10] [CITE@en[Revert behavior change of 2D context "currentColor" keyword]]
([[junov]]著, [TIME[2016-07-07 05:05:39 +09:00]])
<https://github.com/whatwg/html/commit/c836c70ccff790f82b8a22f3f1897b3bcdcbd870>

[11] [CITE@en[Clarify the definition of addColorStop()]]
([[Ms2ger]]著, [TIME[2018-01-10 18:42:20 +09:00]])
<https://github.com/whatwg/html/commit/cc508ebd8427dd561ed2dc3d5d9a45a967fccf71>

[12] [CITE@en[Clarify the definition of addColorStop by Ms2ger · Pull Request #3308 · whatwg/html]]
([TIME[2018-02-12 13:14:07 +09:00]])
<https://github.com/whatwg/html/pull/3308>

[13] [CITE@en[Editorial: align currentcolor with CSS]]
([[annevk]]著, [TIME[2018-02-22 22:10:10 +09:00]])
<https://github.com/whatwg/html/commit/41dac2fd1720525c1bcc90395ecb577cb6473bb3>

[14] [CITE@en[Editorial: align currentcolor with CSS by annevk · Pull Request #3496 · whatwg/html]]
([TIME[2018-02-24 16:05:02 +09:00]])
<https://github.com/whatwg/html/pull/3496>