Skip to content

[css-typed-om] Do we need separate classes per color space? #1034

Open
@LeaVerou

Description

@LeaVerou

Given that the entire set of numeric types is represented by a single CSSUnitValue class, I was surprised to see the class hierarchy of CSSColorValue. Is this complexity and rigidity needed? Note that this requires adding new classes and new methods on every CSSColorValue for every single color space supported (and it makes it harder to support custom color spaces).

Why not just

[Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
interface CSSColorValue : CSSStyleValue {
	constructor(CSSKeywordish colorspace, sequence<CSSNumberish> coords, optional alpha);

	attribute CSSKeywordish colorspace;
	attribute sequence<CSSNumberish> coords;
	attribute CSSNumberish alpha;

    CSSColorValue to(CSSKeywordish colorspace);

    [Exposed=Window] static CSSColorValue parse(USVString cssText);
};

Though I'm not sure how to represent the difference between e.g. color(srgb...) and rgb(...). Perhaps an additional type attribute.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions