- From: CSS Meeting Bot via GitHub <noreply@w3.org>
- Date: Tue, 31 Mar 2026 22:01:40 +0000
- To: public-css-archive@w3.org
The CSS Working Group just discussed `[css-color-5] RCS channel keywords interaction with calc() is underspecified`, and agreed to the following: * `RESOLVED: none in calc gets turned to 0` <details><summary>The full IRC log of that discussion</summary> <emilio> ChrisL: we don't say when it resolves right now<br> <TabAtkins> q+<br> <emilio> ... we already have resolutions that there are no `none`s in `calc()<br> <Rossen> ack florian<br> <florian> q-<br> <emilio> ... kinda forgot about this one<br> <emilio> ... we concluded that we don't let `none` escape `calc()` and that answers most of the questions<br> <emilio> TabAtkins: that's a reasonable possibility I remember discussing<br> <Rossen> ack TabAtkins<br> <emilio> ... the other possibility is to define a channel keyword as an analogous component<br> <emilio> ... infectious<br> <emilio> emilio: ISTR discussing both options and deciding the former but might be misremembering<br> <dbaron> (leaving for the rest of the day)<br> <emilio> ChrisL: I think with that we answer all of weinig's questions<br> <emilio> TabAtkins: looking back at the preceding argument and lea didn't like convert to 0<br> <emilio> ... did she change her mind<br> <emilio> ChrisL: she didn't<br> <ChrisL> https://github.com/w3c/csswg-drafts/issues/10211#issuecomment-3807032366<br> <emilio> emilio: lea, would you be cool defining `none` as `0` in `calc`? Or make `none` infectious?<br> <emilio> TabAtkins: you argued against `0`<br> <emilio> lea: I don't like losing `none`, but I don't have anything better to propose in the general case, if we can avoid it in some cases<br> <emilio> ChrisL: we have that<br> <emilio> ... converting colors converts powerless to missing, and the other only happens in for different color spaces<br> <emilio> lea: so if you use `calc(r * 2)` and `r` is `none`, then does it get converted to `0` or kept as `none * 1.2`?<br> <emilio> ChrisL: with this proposal, `0`<br> <emilio> emilio: so you're arguing for infectious (`none * 1.2` is `none`)?<br> <emilio> lea: no<br> <emilio> ... I want them to get preserved as `none * 1.2` and then resolved when `none` gets a value<br> <lea> lea: `none` is not `NaN`. `none * 1.2` means "whenever that color gets interpolated, `none` resolves to that component in the other color and then multiplied by 1.2"<br> <lea> lea: That preserves intent the best, but it may be too complex<br> <lea> That said, `calc(l * 1.1)` in L expecting to get a slightly lighter tint, and with this, it would get black. That can have a11y implications<br> <lea> Option 1: none = 0 in `calc()`, always<br> <emilio> emilio: recap: 1. none = 0 in calc. 2. none behaves infectiously (like NaN), 3. none gets preserved (harder to implement)<br> <lea> Option 2: calc(something with none) = none, always<br> <lea> Option 3: none gets preserved, iff same color space<br> <emilio> TabAtkins: just making sure that there's no difference between calc(r) and r in a relative color<br> <emilio> [general agreement]<br> <ChrisL> calc here meaning math functions<br> <lea> My worry is that none happens organically for certain conversions and Options 1 & 2 break expectations around contrast quite dangerously<br> <Rossen> 1, 3, 2<br> <TabAtkins> 1 or 2 (no opinion between them)<br> <ChrisL> 3, 2, 1<br> <lea> 3, 1, 2<br> <astearns> abstain<br> <kbabbitt> abstain<br> <kizu> 2, 3, 1<br> <hoch> abstain<br> <dshin> abstain<br> <alisonmaher> abstain<br> <arronei> 1, 3, 2<br> <oriol> Maybe 2, but no strong opinion<br> <Kurt> abstain<br> <emilio> 1 or 2 indistinctly, 3<br> <florian> abstain<br> <miriam> abstain<br> <emilio> lea: with (1) at least you have clamp() and apply guardrails<br> <emilio> RESOLVED: none in calc gets turned to 0<br> </details> -- GitHub Notification of comment by css-meeting-bot Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10280#issuecomment-4165853609 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 31 March 2026 22:01:40 UTC