Re: [csswg-drafts] [css-color] Fallback color in @color-profile that uses RCS (#6767)

For displaying these colors on screen, you're absolutely correct. Chris has just posted while i'm typing this out, and I agree - they're identical (although see below).

But in print, this approach allows us to define our new color as a _separation_ - if the output device recognises it, it can be used as a fifth "ink" alongside cyan/magenta/yellow/black (and if it doesn't, the fallback is used). This is significant even with modern printing methods:

* the output media may not be white. Being able to specify a "white ink" is different to specifying white as an absence of CMYK. This requires a separation.
* separations are not just used for ink: glue, glitter, foil, fold-lines are all specified with separations on devices that support them. For many of these the fallback color doesn't matter, but that's how we need to specify them.
* separations are reuqired for overprinting. This isn't part of CSS nor should it be, but it's a common extension in css-to-print engines.

I'm not going to make a case for Spot colors in PDF, as they're common. I am trying to make a case for a standardized way to specify them in CSS, so that print engines can do so in a compatible way instead of the situation we have now. Just like we've done for `device-cmyk`.

Finally to your point about strings-in-calc. That's a very good point, particularly as I realise the concept I was actually going for was this:
```css
@color-profile --reflex-blue {
  components: "PANTONE Reflex Blue C";
  fallback: device-cmyk("PANTONE Reflex Blue C" calc("PANTONE Reflex Blue C"*0.723) 0 (calc("PANTONE Reflex Blue C"*0.02));
}
```
That's pretty awful. Some alternatives might be:

Use color-mix?
```css
@color-profile --reflex-blue {
  components: "PANTONE Reflex Blue C";
  fallback: color-mix(in device-cmyk, white, device-cmyk(1 0.723 0 0.02) "PANTONE Reflex Blue C");
}
```
Use idents, and only idents?
```css
@color-profile --reflex-blue {
  components: PANTONE\ Reflex\ Blue\ C;
  fallback: device-cmyk(PANTONE\ Reflex\ Blue\ C calc(PANTONE\ Reflex\ Blue\ C*0.723) 0 calc(PANTONE\ Reflex\ Blue\ C*0.02));
```
Or perhaps a new descriptor which would be completely ignored by anything not PDF-based?
```css
@color-profile --reflex-blue {
  components: x;
  component-names: "PANTONE Reflex Blue C";
  fallback: device-cmyk(x calc(x*0.723) 0 calc(x*0.02));
}
```
The last one is the least horrible to my eyes.

-- 
GitHub Notification of comment by faceless2
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6767#issuecomment-952951143 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 27 October 2021 13:50:00 UTC