css/css-color

edit

WPT coverage of the tests of css/css-color at the revision 5602b0f210e3. The tests link to their results in the browsers on wpt.fyi. The tentative tests (experimental features) and the reftests are listed separately from the stable tests.

GroupPassingTestsDisabledPass rate
Stable6769097%
Tentative000–
Reftests304308199%
All371377199%

Failure reasons

The tests that do not pass (failing or disabled), by kind of reason. A test with several reasons counts once per kind.

  • BUG: 1
  • TEST BUG: 4
  • FLAKY: 1

Stable tests

TestResultSubtestsKindDescription
animation/color-composition.htmlPass20 / 20
animation/color-interpolation.htmlPass192 / 192
animation/opacity-interpolation.htmlPass120 / 120
canvas-display-p3-gamut-mapping.htmlPass17 / 17
canvas-srgb-gamut-mapping.htmlPass14 / 14
color-initial-canvastext.htmlPass2 / 2
color-mix-currentcolor-parent-change.htmlPass1 / 1
color-mix-currentcolor-visited-getcomputedstyle.htmlPass1 / 1
color-mix-missing-components.htmlPass3 / 3
computed-color.htmlPass10 / 10
contrast-color-currentcolor-inherited.htmlPass1 / 1
inheritance.htmlPass4 / 4
light-dark-basic.htmlPass2 / 2
light-dark-currentcolor-in-color.htmlPass1 / 1
light-dark-image.htmlPass35 / 35
nested-color-mix-with-currentcolor.htmlPass2 / 2
none-components-treated-as-zero.htmlPass18 / 18
parsing/alpha-color-computed.htmlPass33 / 33
parsing/alpha-color-parsing-invalid.htmlPass23 / 23
parsing/alpha-color-parsing-valid.htmlPass45 / 45
parsing/color-computed-color-function.htmlPass468 / 468
parsing/color-computed-color-mix-function.htmlPass977 / 977
parsing/color-computed-contrast-color-function.htmlPass17 / 17
parsing/color-computed-hex-color.htmlPass6 / 6
parsing/color-computed-hsl.htmlPass3,753 / 3,753
parsing/color-computed-hwb.htmlPass70 / 70
parsing/color-computed-lab.htmlPass136 / 136
parsing/color-computed-named-color.htmlPass455 / 455
parsing/color-computed-none.htmlPass678 / 678
parsing/color-computed-powerless.htmlFail568 / 570TEST BUGa computed value with a negative lightness or a hue that serializes as 360 cannot round-trip, as parsing clamps the lightness and normalizes the hue (fails in every browser)
parsing/color-computed-relative-color.htmlFail1,185 / 1,187TEST BUGtwo subtests convert from and to rec2020 with the pure 2.4 gamma transfer function of the current CSS Color 4 draft (ITU-R BT.1886), while the library, as every browser and the rec2020 reftests, uses the piecewise ITU-R BT.2020 transfer function (1.0993 * L^0.45 - 0.0993): color(from color(rec2020 0.25 0.5 0.75) srgb r g b) is color(srgb -0.280036 0.565528 0.79951) instead of color(srgb -0.328686 0.491201 0.76185); fails in every browser
parsing/color-computed-rgb.htmlPass99 / 99
parsing/color-computed.htmlPass16 / 16
parsing/color-invalid-color-function.htmlPass124 / 124
parsing/color-invalid-color-layers-function.htmlPass93 / 93
parsing/color-invalid-color-mix-function.htmlPass141 / 141
parsing/color-invalid-contrast-color-function.htmlPass9 / 9
parsing/color-invalid-hex-color.htmlPass10 / 10
parsing/color-invalid-hsl.htmlPass23 / 23
parsing/color-invalid-hwb.htmlPass6 / 6
parsing/color-invalid-lab.htmlPass18 / 18
parsing/color-invalid-named-color.htmlPass184 / 184
parsing/color-invalid-relative-color.htmlPass161 / 161
parsing/color-invalid-rgb.htmlPass30 / 30
parsing/color-invalid.htmlPass12 / 12
parsing/color-mix-out-of-gamut.htmlPass18 / 18
parsing/color-valid-color-function.htmlPass340 / 340
parsing/color-valid-color-layers-function.htmlPass170 / 170
parsing/color-valid-color-mix-function.htmlPass677 / 677
parsing/color-valid-contrast-color-function.htmlPass17 / 17
parsing/color-valid-hsl.htmlPass60 / 60
parsing/color-valid-hwb.htmlPass39 / 39
parsing/color-valid-lab.htmlPass158 / 158
parsing/color-valid-relative-color-opaque-alpha.htmlPass8 / 8
parsing/color-valid-relative-color.htmlPass1,147 / 1,147
parsing/color-valid-rgb.htmlPass70 / 70
parsing/color-valid-system-color.htmlPass19 / 19
parsing/color-valid.htmlPass17 / 17
parsing/contrast-color-function-calc-container.htmlPass2 / 2
parsing/opacity-computed.htmlPass30 / 30
parsing/opacity-invalid.htmlPass3 / 3
parsing/opacity-valid.htmlPass30 / 30
parsing/relative-color-out-of-gamut.htmlPass27 / 27
relative-color-with-system-color.htmlPass3 / 3
relative-color-with-zoom.htmlPass1 / 1
relative-currentcolor-visited-getcomputedstyle.htmlPass1 / 1
system-color-compute.htmlPass27 / 27
system-color-consistency.htmlPass62 / 62
system-color-support.htmlPass21 / 21

Reftests

TestResultVariantsKindDescription
a98rgb-001.htmlPass1 / 1
a98rgb-002.htmlPass1 / 1
a98rgb-003.htmlPass1 / 1
a98rgb-004.htmlPass1 / 1
animation/contrast-color-interpolation.htmlPass1 / 1
animation/opacity-animation-ending-correctly-001.htmlPass1 / 1
animation/opacity-animation-ending-correctly-002.htmlDisabled–FLAKYreftest whose result depends on the platform: the glyphs are antialiased by the font engine of the platform (CoreText, FreeType, DirectWrite), so it passes on Linux and fails on macOS or the reverse
at-color-profile-001.htmlPass1 / 1
background-color-hsl-001.htmlPass1 / 1
background-color-hsl-002.htmlPass1 / 1
background-color-hsl-003.htmlPass1 / 1
background-color-hsl-004.htmlPass1 / 1
background-color-rgb-001.htmlPass1 / 1
background-color-rgb-002.htmlPass1 / 1
background-color-rgb-003.htmlPass1 / 1
body-opacity-0-to-1-stacking-context.htmlPass1 / 1
border-bottom-color.xhtPass1 / 1
border-color-currentcolor.htmlPass1 / 1
border-left-color.xhtPass1 / 1
border-right-color.xhtPass1 / 1
border-top-color.xhtPass1 / 1
canvas-change-opacity.htmlPass1 / 1
clip-opacity-out-of-flow.htmlPass1 / 1
color-001.htmlPass1 / 1
color-002.htmlPass1 / 1
color-003.htmlPass1 / 1
color-layers-no-blend-mode.htmlPass1 / 1
color-mix-basic-001.htmlPass1 / 1
color-mix-currentcolor-001.htmlPass1 / 1
color-mix-currentcolor-002.htmlPass1 / 1
color-mix-currentcolor-003.htmlPass1 / 1
color-mix-currentcolor-nested-for-color-property.htmlPass1 / 1
color-mix-currentcolor-visited.htmlPass1 / 1
color-mix-non-srgb-001.htmlFail0 / 1TEST BUGthe references are the colors of the test clipped to sRGB per channel, as the browsers paint them, while the library CSS gamut maps the colors outside of sRGB (https://drafts.csswg.org/css-color-4/#css-gamut-mapping: the OkLCh chroma is reduced at constant lightness and hue): color-mix(in lab, red, green) is painted (160,108,0) instead of the clipped (161,108,0)
color-mix-percents-01.htmlPass1 / 1
color-mix-percents-02.htmlPass1 / 1
color-svg-visited.htmlPass1 / 1
composited-filters-under-opacity.htmlPass1 / 1
contrast-color-001.htmlPass1 / 1
contrast-color-style-query.htmlPass1 / 1
currentcolor-001.htmlPass1 / 1
currentcolor-002.htmlPass1 / 1
currentcolor-003.htmlFail0 / 1BUGthe currentcolor of filter: drop-shadow() on an inline box whose first fragment is on a first line with a ::first-line color: the filter applies to the box as a whole (all its fragments) with the color of the style of the box, where the shadow of the fragment of the first line is expected in the ::first-line color (the backgrounds, borders, outlines and shadows of the fragments are painted in it; only Firefox passes this test)
currentcolor-004.htmlPass1 / 1
currentcolor-005.htmlPass1 / 1
currentcolor-visited-fallback.htmlPass1 / 1
deprecated-sameas-001.htmlPass1 / 1
deprecated-sameas-002.htmlPass1 / 1
deprecated-sameas-003.htmlPass1 / 1
deprecated-sameas-004.htmlPass1 / 1
deprecated-sameas-005.htmlPass1 / 1
deprecated-sameas-006.htmlPass1 / 1
deprecated-sameas-007.htmlPass1 / 1
deprecated-sameas-008.htmlPass1 / 1
deprecated-sameas-009.htmlPass1 / 1
deprecated-sameas-010.htmlPass1 / 1
deprecated-sameas-011.htmlPass1 / 1
deprecated-sameas-012.htmlPass1 / 1
deprecated-sameas-013.htmlPass1 / 1
deprecated-sameas-014.htmlPass1 / 1
deprecated-sameas-015.htmlPass1 / 1
deprecated-sameas-016.htmlPass1 / 1
deprecated-sameas-017.htmlPass1 / 1
deprecated-sameas-018.htmlPass1 / 1
deprecated-sameas-019.htmlPass1 / 1
deprecated-sameas-020.htmlPass1 / 1
deprecated-sameas-021.htmlPass1 / 1
deprecated-sameas-022.htmlPass1 / 1
deprecated-sameas-023.htmlPass1 / 1
display-p3-001.htmlPass1 / 1
display-p3-002.htmlPass1 / 1
display-p3-003.htmlPass1 / 1
display-p3-004.htmlPass1 / 1
display-p3-005.htmlPass1 / 1
display-p3-006.htmlPass1 / 1
display-p3-linear-001.htmlPass1 / 1
display-p3-linear-002.htmlPass1 / 1
display-p3-linear-003.htmlPass1 / 1
display-p3-linear-004.htmlPass1 / 1
display-p3-linear-005.htmlPass1 / 1
display-p3-linear-006.htmlPass1 / 1
filters-under-will-change-opacity.htmlPass1 / 1
hex-001.htmlPass1 / 1
hex-002.htmlPass1 / 1
hex-003.htmlPass1 / 1
hex-004.htmlPass1 / 1
hsl-001.htmlPass1 / 1
hsl-002.htmlPass1 / 1
hsl-003.htmlPass1 / 1
hsl-004.htmlPass1 / 1
hsl-005.htmlPass1 / 1
hsl-006.htmlPass1 / 1
hsl-007.htmlPass1 / 1
hsl-008.htmlPass1 / 1
hsl-clamp-negative-saturation.htmlPass1 / 1
hsla-001.htmlPass1 / 1
hsla-002.htmlPass1 / 1
hsla-003.htmlPass1 / 1
hsla-004.htmlPass1 / 1
hsla-005.htmlPass1 / 1
hsla-006.htmlPass1 / 1
hsla-007.htmlPass1 / 1
hsla-008.htmlPass1 / 1
hsla-clamp-negative-saturation.htmlPass1 / 1
hwb-001.htmlPass1 / 1
hwb-002.htmlPass1 / 1
hwb-003.htmlPass1 / 1
hwb-004.htmlPass1 / 1
hwb-005.htmlPass1 / 1
inline-opacity-float-child.htmlPass1 / 1
lab-001.htmlPass1 / 1
lab-002.htmlPass1 / 1
lab-003.htmlPass1 / 1
lab-004.htmlPass1 / 1
lab-005.htmlPass1 / 1
lab-006.htmlPass1 / 1
lab-007.htmlPass1 / 1
lab-008.htmlPass1 / 1
lab-l-over-100-1.htmlPass1 / 1
lab-l-over-100-2.htmlPass1 / 1
lch-001.htmlPass1 / 1
lch-002.htmlPass1 / 1
lch-003.htmlPass1 / 1
lch-004.htmlPass1 / 1
lch-005.htmlPass1 / 1
lch-006.htmlPass1 / 1
lch-007.htmlPass1 / 1
lch-008.htmlPass1 / 1
lch-009.htmlPass1 / 1
lch-010.htmlPass1 / 1
lch-l-over-100-1.htmlPass1 / 1
lch-l-over-100-2.htmlPass1 / 1
light-dark-currentcolor.htmlPass1 / 1
light-dark-image-none-interpolation.htmlPass1 / 1
light-dark-image-none.htmlPass1 / 1
light-dark-inheritance.htmlPass1 / 1
named-001.htmlPass1 / 1
oklab-001.htmlPass1 / 1
oklab-002.htmlPass1 / 1
oklab-003.htmlPass1 / 1
oklab-004.htmlPass1 / 1
oklab-005.htmlPass1 / 1
oklab-006.htmlPass1 / 1
oklab-007.htmlPass1 / 1
oklab-008.htmlPass1 / 1
oklab-009.htmlPass1 / 1
oklab-l-almost-0.htmlPass1 / 1
oklab-l-almost-1.htmlPass1 / 1
oklab-l-over-1-1.htmlPass1 / 1
oklab-l-over-1-2.htmlPass1 / 1
oklch-001.htmlPass1 / 1
oklch-002.htmlPass1 / 1
oklch-003.htmlPass1 / 1
oklch-004.htmlPass1 / 1
oklch-005.htmlPass1 / 1
oklch-006.htmlPass1 / 1
oklch-007.htmlPass1 / 1
oklch-008.htmlPass1 / 1
oklch-009.htmlPass1 / 1
oklch-010.htmlPass1 / 1
oklch-011.htmlPass1 / 1
oklch-l-almost-0.htmlPass1 / 1
oklch-l-almost-1.htmlPass1 / 1
oklch-l-over-1-1.htmlPass1 / 1
oklch-l-over-1-2.htmlPass1 / 1
opacity-overlapping-letters.htmlPass1 / 1
out-of-gamut-legacy-rgb.htmlPass1 / 1
predefined-001.htmlPass1 / 1
predefined-002.htmlPass1 / 1
predefined-005.htmlPass1 / 1
predefined-006.htmlPass1 / 1
predefined-007.htmlPass1 / 1
predefined-008.htmlPass1 / 1
predefined-009.htmlPass1 / 1
predefined-010.htmlPass1 / 1
predefined-011.htmlPass1 / 1
predefined-012.htmlPass1 / 1
predefined-016.htmlPass1 / 1
prophoto-rgb-001.htmlPass1 / 1
prophoto-rgb-002.htmlPass1 / 1
prophoto-rgb-003.htmlPass1 / 1
prophoto-rgb-004.htmlPass1 / 1
prophoto-rgb-005.htmlPass1 / 1
rec2020-001.htmlPass1 / 1
rec2020-002.htmlPass1 / 1
rec2020-003.htmlPass1 / 1
rec2020-004.htmlPass1 / 1
rec2020-005.htmlPass1 / 1
relative-currentcolor-a98rgb-01.htmlPass1 / 1
relative-currentcolor-displayp3-01.htmlPass1 / 1
relative-currentcolor-hsl-01.htmlPass1 / 1
relative-currentcolor-hsl-02.htmlPass1 / 1
relative-currentcolor-hwb-01.htmlPass1 / 1
relative-currentcolor-lab-01.htmlPass1 / 1
relative-currentcolor-lch-01.htmlPass1 / 1
relative-currentcolor-oklab-01.htmlPass1 / 1
relative-currentcolor-oklch-01.htmlPass1 / 1
relative-currentcolor-prophoto-01.htmlPass1 / 1
relative-currentcolor-rec2020-01.htmlPass1 / 1
relative-currentcolor-rec2020-02.htmlPass1 / 1
relative-currentcolor-rgb-01.htmlPass1 / 1
relative-currentcolor-rgb-02.htmlPass1 / 1
relative-currentcolor-xyzd50-01.htmlPass1 / 1
relative-currentcolor-xyzd65-01.htmlPass1 / 1
rgb-001.htmlPass1 / 1
rgb-002.htmlPass1 / 1
rgb-003.htmlPass1 / 1
rgb-004.htmlPass1 / 1
rgb-005.htmlPass1 / 1
rgb-006.htmlPass1 / 1
rgb-007.htmlPass1 / 1
rgb-008.htmlPass1 / 1
rgba-001.htmlPass1 / 1
rgba-002.htmlPass1 / 1
rgba-003.htmlPass1 / 1
rgba-004.htmlPass1 / 1
rgba-005.htmlPass1 / 1
rgba-006.htmlPass1 / 1
rgba-007.htmlPass1 / 1
rgba-008.htmlPass1 / 1
srgb-linear-001.htmlPass1 / 1
srgb-linear-002.htmlPass1 / 1
srgb-linear-003.htmlPass1 / 1
srgb-linear-004.htmlPass1 / 1
system-color-hightlights-vs-getSelection-001.htmlPass1 / 1
system-color-hightlights-vs-getSelection-002.htmlPass1 / 1
t31-color-currentColor-b.xhtPass1 / 1
t31-color-text-a.xhtPass1 / 1
t32-opacity-basic-0.0-a.xhtPass1 / 1
t32-opacity-basic-0.6-a.xhtPass1 / 1
t32-opacity-basic-1.0-a.xhtPass1 / 1
t32-opacity-clamping-0.0-b.xhtPass1 / 1
t32-opacity-clamping-1.0-b.xhtPass1 / 1
t32-opacity-offscreen-b.xhtPass1 / 1
t32-opacity-offscreen-multiple-boxes-1-c.xhtPass1 / 1
t32-opacity-offscreen-multiple-boxes-2-c.xhtPass1 / 1
t32-opacity-offscreen-with-alpha-c.xhtPass1 / 1
t32-opacity-zorder-c.xhtPass1 / 1
t41-html4-keywords-a.xhtPass1 / 1
t421-rgb-clip-outside-gamut-b.xhtPass1 / 1
t421-rgb-func-int-a.xhtPass1 / 1
t421-rgb-func-no-mixed-f.xhtPass1 / 1
t421-rgb-func-pct-a.xhtPass1 / 1
t421-rgb-func-whitespace-b.xhtPass1 / 1
t421-rgb-hex-parsing-f.xhtPass1 / 1
t421-rgb-hex3-a.xhtPass1 / 1
t421-rgb-hex3-expand-b.xhtPass1 / 1
t421-rgb-hex6-a.xhtPass1 / 1
t421-rgb-values-meaning-b.xhtPass1 / 1
t422-rgba-a0.0-a.xhtPass1 / 1
t422-rgba-a0.6-a.xhtPass1 / 1
t422-rgba-a1.0-a.xhtPass1 / 1
t422-rgba-clamping-a0.0-b.xhtPass1 / 1
t422-rgba-clamping-a1.0-b.xhtPass1 / 1
t422-rgba-clip-outside-device-gamut-b.xhtPass1 / 1
t422-rgba-func-int-a.xhtPass1 / 1
t422-rgba-func-no-mixed-f.xhtPass1 / 1
t422-rgba-func-pct-a.xhtPass1 / 1
t422-rgba-func-whitespace-b.xhtPass1 / 1
t422-rgba-values-meaning-b.xhtPass1 / 1
t423-transparent-1-a.xhtPass1 / 1
t423-transparent-2-a.xhtPass1 / 1
t424-hsl-basic-a.xhtPass1 / 1
t424-hsl-h-rotating-b.xhtPass1 / 1
t424-hsl-parsing-f.xhtPass1 / 1
t424-hsl-values-b-1.htmlPass1 / 1
t424-hsl-values-b-10.htmlPass1 / 1
t424-hsl-values-b-11.htmlPass1 / 1
t424-hsl-values-b-12.htmlPass1 / 1
t424-hsl-values-b-13.htmlPass1 / 1
t424-hsl-values-b-14.htmlPass1 / 1
t424-hsl-values-b-15.htmlPass1 / 1
t424-hsl-values-b-2.htmlPass1 / 1
t424-hsl-values-b-3.htmlPass1 / 1
t424-hsl-values-b-4.htmlPass1 / 1
t424-hsl-values-b-5.htmlPass1 / 1
t424-hsl-values-b-6.htmlPass1 / 1
t424-hsl-values-b-7.htmlPass1 / 1
t424-hsl-values-b-8.htmlPass1 / 1
t424-hsl-values-b-9.htmlPass1 / 1
t425-hsla-basic-a.xhtPass1 / 1
t425-hsla-h-rotating-b.xhtPass1 / 1
t425-hsla-parsing-f.xhtPass1 / 1
t425-hsla-values-b.xhtPass1 / 1
t43-svg-keywords-a.xhtPass1 / 1
t44-currentcolor-background-b.xhtPass1 / 1
t44-currentcolor-border-b.xhtPass1 / 1
t44-currentcolor-inherited-c.xhtPass1 / 1
tagged-images-001.htmlPass1 / 1
tagged-images-002.htmlPass1 / 1
tagged-images-003.htmlPass1 / 1
tagged-images-004.htmlPass1 / 1
untagged-images-001.htmlPass1 / 1
xyz-001.htmlPass1 / 1
xyz-002.htmlPass1 / 1
xyz-003.htmlPass1 / 1
xyz-004.htmlPass1 / 1
xyz-005.htmlPass1 / 1
xyz-d50-001.htmlPass1 / 1
xyz-d50-002.htmlPass1 / 1
xyz-d50-003.htmlPass1 / 1
xyz-d50-004.htmlFail0 / 1TEST BUGthe reference is color(xyz-d50 0 1 0) converted to sRGB with 6 digits (color(srgb -1.20716 1.3163 -0.489014)), the same color only when both are clipped per channel as in the browsers: the library CSS gamut maps them (https://drafts.csswg.org/css-color-4/#css-gamut-mapping), and the rounding of the reference moves the mapped color by one level (152,255,198 instead of 152,255,199)
xyz-d50-005.htmlPass1 / 1
xyz-d65-001.htmlPass1 / 1
xyz-d65-002.htmlPass1 / 1
xyz-d65-003.htmlPass1 / 1
xyz-d65-004.htmlPass1 / 1
xyz-d65-005.htmlPass1 / 1