Skip to content

<absolute-color-base> not enough anymore #9555

Description

@svgeesus

The notion of <absolute-color-base> was introduced to the grammar of <color> in CSS Color 4 to separate out problematic things like currentColor (which can't be resolved until used-value time and depends on the value of color on that element and its ancestors) or <system-color> which depend on light/dark mode, and forced colors mode

It continued on in CSS Color 5 where it is also used to exclude problematic device-cmyk() (which has no colorimetric basis and might be resolved by an ICC profile or might be an eye-searingly inaccurate naive color conversion

<absolute-color-base> is used directly in the grammar for the override-colors descriptor on @font-palette-values (to exclude currentColor). But there is no good reason to exclude device-cmyk() there.

However, this is no longer sufficient because CSS Color 5 introduces color-mix() and Relative Color Syntax so what used to be a resolvable, colorimetric item like rgb(30% 70% 20%) could now be rgb(from currentColor r g b) or color-mix(in oklab, rgb(30% 70% 20%) 40%, currentColor).

There is still a need to exclude certain problematic color forms for various reasons, but I am now of the opinion that doing this via formal syntax is no longer workable and the exclusion should be case-by-case in prose, instead.

/cc @fantasai @cdoublev @drott @LeaVerou because I have had discussions touching on this in various other issues and would like feedback.

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions