- From: Aaron VonderHaar via GitHub <sysbot+gh@w3.org>
- Date: Sun, 09 Sep 2018 18:31:34 +0000
- To: public-css-archive@w3.org
avh4 has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-color-3] HSL examples show incorrect RGB values ==
Section [4.2.4. HSL color values](https://www.w3.org/TR/css-color-3/#hsl-color) provides an algorithm for translating HSL to RGB, and states that the tables in section [4.2.4.1. HSL examples](https://www.w3.org/TR/css-color-3/#hsl-examples) are generated using this algorithm.
> The algorithm to translate HSL to RGB is simple (here expressed in ABC [ABC] which was used to generate the tables.)
However, the RGB values in the example tables do not match the output of the algorithm.
---
For example, in the "0° Reds" example table, Saturation=100% and Lightness=88 is shown to have the RGB value `#FFBFBF`.
However, running the following ABC program (the algorithm from the spec plus the additional line `WRITE hsl.to.rgb(0/360, 1.00, 0.88)` produces the output `(1.00, 0.76, 0.76)`, which converts to the [0,255] range as `(255.0, 193.8, 193.8)`, which is the hex RGB value `#FFC2C2` (if rounded) (or `#FFC1C1`, if floored).
<details>
<summary>ABC program</summary>
```abc
HOW TO RETURN hsl.to.rgb(h, s, l):
SELECT:
l<=0.5: PUT l*(s+1) IN m2
ELSE: PUT l+s-l*s IN m2
PUT l*2-m2 IN m1
PUT hue.to.rgb(m1, m2, h+1/3) IN r
PUT hue.to.rgb(m1, m2, h ) IN g
PUT hue.to.rgb(m1, m2, h-1/3) IN b
RETURN (r, g, b)
HOW TO RETURN hue.to.rgb(m1, m2, h):
IF h<0: PUT h+1 IN h
IF h>1: PUT h-1 IN h
IF h*6<1: RETURN m1+(m2-m1)*h*6
IF h*2<1: RETURN m2
IF h*3<2: RETURN m1+(m2-m1)*(2/3-h)*6
RETURN m1
WRITE hsl.to.rgb(0/360, 1.00, 0.88)
```
</details>
Of the 540 examples, 251 of them appear not to match the reference algorithm.
---
I'm assuming the given algorithm is meant to be considered authoritative and the example tables are not--is that a correct assumption?
If so, can the example tables be fixed to have correct RGB values? Or alternatively, at least add a note that the example tables only provide "close" and not accurate values for the purposes of illustration?
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3088 using your GitHub account
Received on Sunday, 9 September 2018 18:31:44 UTC