W3C home > Mailing lists > Public > public-css-archive@w3.org > December 2017

Re: [csswg-drafts] [css-color] Separation / DeviceN color support

From: Mike Bremford via GitHub <sysbot+gh@w3.org>
Date: Sat, 02 Dec 2017 10:59:58 +0000
To: public-css-archive@w3.org
Message-ID: <issue_comment.created-348684525-1512212397-sysbot+gh@w3.org>
I think I see what's going on . If I can paraphrase what I think you were saying: for a named colour, an ICC profile is referenced which maps that named colour to a process colour (more probably, to an exchange space like XYZ or Lab, but the effect is the same). So a "named colour" in this context is treated exactly the same way as if you were using any other single-component ICC Profile, say a calibrated grey colorspace, and would theoretically look like this:
@color-profile pantonereflexblue {
    src: url(reflexblue.icc);
color: color(pantonereflexblue "Pantone Reflex Blue", #0000FF);
Is that what you meant? It's a very sensible approach. But it's not how PDF or PostScript typically do it!

Instead of an ICC profile, PDF and PostScript allow you to map a named colour (or set of named colours) to a process color by defining a _function_. This is done entirely with PDF or PostScript primitives, so no ICC profile is involved.

For a single ink the function is often just linear: 100% ink maps to `cmyk(100% 60% 20% 0)`, 0% ink maps to `cmyk(0 0 0 0)` with interpolation between. For more inks the function is MxN and often defined with a lookup table or via a PostScript function.

Effectively you're doing the same job as an ICC profile (mapping a range of colour components in a custom colorspace to a range in a common colourspace), just via a different mechanism.

This was what I was hoping to cater for when I raised this issue. My suggestion would have done so for single colours in any colourspace and would cover linear gradients in a single ink. However it won't work for more inks when used in gradients.

So I think I need to revisit this.

If it's OK I'll leave this issue open but post a followup Monday when I have more time. I think a better solution (and a closer analogy to what is done in PDF/PostScript) is allowing a @color-profile to be defined using an alternative mechanism that's not an ICC profile - something like

@color-profile reflexblue {
    colors: "Pantone Reflex Blue CVC";
    color-space: device-cmyk;
    function: linear(0 0 0 0 100% 80% 60% 0);

GitHub Notification of comment by faceless2
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2023#issuecomment-348684525 using your GitHub account
Received on Saturday, 2 December 2017 11:00:00 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 06:41:21 UTC