Skip to content

Wavelengths

Wavelengths

Visible light is the portion of the electromagnetic spectrum detectable by the human eye, with wavelengths ranging from approximately 380 nm to 750 nm.

Violet light has the shortest (highest energy) visible wavelengths, around 380–450 nm. Red light has the longest (lowest energy) visible wavelengths, around 620–750 nm.

Light Wavelength
Violet 380–450 nm
Blue 450–495 nm
Green 495–570 nm
Yellow 570–590 nm
Orange 590–620 nm
Red 620–750 nm

Table 1. Approximate wavelengths of light.

Estimate Dominant Wavelength of Color

Colors are made up of certain frequencies of light, sometimes multiple if they are not a pure frequency. In color science, colors can be classified by their dominant wavelength.

Dominant wavelengths are acquired by drawing a line from the white point through the color to the edge of the horseshoe shape of the spectrum. The intersection on that line would be the dominant wavelength. If the line was extended in the opposite direction, the intersection on the other side of the spectral locus would be complementary wavelength.

Dominant and Complementary Wavelength

It is common to see these wavelengths depicted relative to the illuminant E, but often they are calculated relative to the current working illuminant. It should be noted that since these wavelengths are calculated relative to a specific white point, the values can vary depending on what white point is chosen.

Colors in the direction of the bottom line, often referred to as the "line of purples", don't really have a dominant wavelength because purples cannot be defined by a pure wavelength because they do not represent monochromatic light. In these cases, the complementary wavelength is used. They are denoted with a negative sign.

Dominant and Complementary Wavelength

In ColorAide, we can call the wavelength() function to acquire the closest, dominant wavelength (between 360 - 780 nm). This will return the dominant wavelength and two intersection points, usually these intersection points will be the same.

>>> Color('cyan').wavelength()
(491.0, [0.03851927861042377, 0.3280562096329436], [0.03851927861042377, 0.3280562096329436])

If a color is in the direction of the "line of purples", the complementary wavelength is returned with a negative sign, but the coordinates will be returned with the first one as an intersection with the "line of purples", and the second will be associated with the complementary wavelength..

>>> Color('magenta').wavelength()
(-549.0, [0.3246214634376017, 0.0746128668039302], [0.29540911176297835, 0.6979697802523211])

We can also query colors from the perspective of the complementary wavelength. When this is done, the complementary wavelength is returned with both coordinates representing the intersection of the spectral locus at the closest, complementary wavelength. If the complementary intersection falls on the "line of purples", then the dominant wavelength is returned with a negative sign, and the two points will be intersection with the "line of purples" and the intersection at the dominant wavelength, respectively.

>>> Color('cyan').wavelength(complementary=True)
(611.0, [0.6697181892467388, 0.3300786330584409], [0.6697181892467388, 0.3300786330584409])
>>> Color('magenta').wavelength(complementary=True)
(549.0, [0.29540911176297835, 0.6979697802523211], [0.29540911176297835, 0.6979697802523211])

Colors will be evaluated in the current white point as specified by the color space. If it is desired to evaluate a color from a different white point perspective, a new white point can be chosen.

Note

During conversions, colors are chromatically adapted, if the white point changes, so the wavelengths of colors will shift if they are converted. When we evaluate in different white points, we take the xy coordinates relative to the current white point which should preserve the wavelengths, assuming the color space transformation to the xy coordinates does not introduce errors.

>>> from coloraide.cat import WHITES
>>> Color('magenta').wavelength()
(-549.0, [0.3246214634376017, 0.0746128668039302], [0.29540911176297835, 0.6979697802523211])
>>> Color('magenta').wavelength(white=WHITES['2deg']['E'])
(-557.0, [0.3150611261435087, 0.07016695354910243], [0.354777237976685, 0.6421780273545967])

Tip

It should be noted that the general implementation as described above for approximating wavelengths can be become more difficult at higher wavelengths (typically 700 nm in the red-orange region) due to the non-linear shape of the spectral locus in that area. As wavelengths approach 700 nm, the curve becomes steeper and more curved, making precise interpolation between discrete data points on the locus more challenging.

Additionally, chromaticity coordinates for high-wavelength sources are more sensitive to small measurement errors, and the CIE 1931 color matching functions have lower sensitivity in the deep red region, which can reduce the accuracy of chromaticity calculations. This, combined with the complex geometry of the spectral locus, makes the intersection point harder to determine reliably using simple interpolation methods.

Do the way the wavelengths clump and curl in the 700+ nm region, it is possible to get multiple intersections, with multiple wavelengths. ColorAide simply takes the first as it evaluates wavelengths from lowest to highest. Other methods would need to be employed to more accurately handle colors at wavelengths beyond 700 nm. In ColorAide, results will be most reliable in the range up to 700 nm, assuming color space transformations introduce no additional error beyond what can be tolerated.

>>> Color.from_wavelength('xyz-d65', 698, scale=False).wavelength()[0]
698.0
>>> Color.from_wavelength('xyz-d65', 699, scale=False).wavelength()[0]
699.0
>>> Color.from_wavelength('xyz-d65', 700, scale=False).wavelength()[0]
699.0
>>> Color.from_wavelength('xyz-d65', 705, scale=False).wavelength()[0]
699.0
>>> Color.from_wavelength('xyz-d65', 780, scale=False).wavelength()[0]
699.0

Colors from Wavelengths

ColorAide also offers a way to generate colors from a given wavelength. Wavelengths are allowed in the range of 360-780 nm.

>>> Color.interpolate([Color.from_wavelength('xyz-d65', r) for r in range(360, 780, 1)])
<coloraide.interpolate.linear.InterpolatorLinear object at 0x7f048018b250>

In order to convert a color from a wavelength, we simply use the Color Matching Functions (CMFs) and look up the wavelength. If the wavelength is not specifically in the table, we interpolate the value from the closest wavelength. From this, we extract the XYZ coordinates and scale them such that they are visible within an RGB gamut, preferably a linear gamut, and returned in the specified color space. The default scaling color space is linear sRGB (srgb-linear).

>>> Color.from_wavelength('srgb', 405).wavelength()
(405.0, [0.17302096545549503, 0.004775050361859285], [0.17302096545549503, 0.004775050361859285])

Colors will have the best results if they are specified with a target color space and a linear scaling space which have a common white point. Colors are created. For instance, ProPhoto uses a D50 white point, so it would be best to scale in prophoto-rgb-linear instead of something like rec2020-linear that has a D65 white point.

>>> Color.from_wavelength('prophoto-rgb', 405, scale_space='prophoto-rgb-linear').wavelength()
(405.0, [0.17302096545549503, 0.004775050361859285], [0.17302096545549503, 0.004775050361859285])
>>> Color.from_wavelength('prophoto-rgb', 405, scale_space='rec2020-linear').wavelength()
(405.0, [0.17302096545549503, 0.004775050361859285], [0.17302096545549503, 0.004775050361859285])

Tip

While colors can be created in the range of 360 - 780 nm, evaluating the wavelength via wavelength() in the range of 700+ nm may be in accurate. Read here to learn why.

Converting a color from the original target space, if changing white points, will alter the wavelength of the color due to chromatic adaptation.

If it is desired, scaling can be turned off, and the color will be created from the raw, unscaled XYZ coordinates.

>>> Steps(
...     [
...         c.clip('srgb')
...         for c in Color.steps(
...             [Color.from_wavelength('srgb', r, scale=False) for r in range(380, 751, 1)],
...             steps=500
...         )
...     ]
... )
[color(--oklab 0.09808 0.01843 -0.0526 / 1), color(--oklab 0.10038 0.01886 -0.05384 / 1), color(--oklab 0.10266 0.01928 -0.05506 / 1), color(--oklab 0.10497 0.01971 -0.05631 / 1), color(--oklab 0.1074 0.02016 -0.05762 / 1), color(--oklab 0.11014 0.02067 -0.05909 / 1), color(--oklab 0.11316 0.02123 -0.06072 / 1), color(--oklab 0.11646 0.02184 -0.0625 / 1), color(--oklab 0.12013 0.02251 -0.06448 / 1), color(--oklab 0.12411 0.02325 -0.06662 / 1), color(--oklab 0.12822 0.024 -0.06884 / 1), color(--oklab 0.13244 0.02478 -0.07112 / 1), color(--oklab 0.1367 0.02556 -0.07342 / 1), color(--oklab 0.14095 0.02634 -0.07572 / 1), color(--oklab 0.14515 0.0271 -0.07799 / 1), color(--oklab 0.14932 0.02786 -0.08024 / 1), color(--oklab 0.15353 0.02862 -0.08253 / 1), color(--oklab 0.15795 0.02942 -0.08492 / 1), color(--oklab 0.16259 0.03026 -0.08743 / 1), color(--oklab 0.16749 0.03115 -0.09009 / 1), color(--oklab 0.17282 0.03212 -0.09297 / 1), color(--oklab 0.1786 0.03318 -0.0961 / 1), color(--oklab 0.18467 0.03428 -0.09938 / 1), color(--oklab 0.19094 0.03543 -0.10277 / 1), color(--oklab 0.1972 0.03657 -0.10616 / 1), color(--oklab 0.20326 0.03767 -0.10944 / 1), color(--oklab 0.20908 0.03872 -0.11259 / 1), color(--oklab 0.21459 0.03972 -0.11558 / 1), color(--oklab 0.21959 0.04061 -0.11829 / 1), color(--oklab 0.22451 0.04149 -0.12097 / 1), color(--oklab 0.22949 0.04238 -0.12368 / 1), color(--oklab 0.23468 0.04329 -0.12652 / 1), color(--oklab 0.24054 0.04432 -0.12971 / 1), color(--oklab 0.247 0.04546 -0.13324 / 1), color(--oklab 0.25406 0.0467 -0.1371 / 1), color(--oklab 0.26182 0.04806 -0.14134 / 1), color(--oklab 0.27024 0.04953 -0.14594 / 1), color(--oklab 0.27896 0.05105 -0.15071 / 1), color(--oklab 0.28792 0.05261 -0.15561 / 1), color(--oklab 0.29707 0.0542 -0.16062 / 1), color(--oklab 0.30631 0.05581 -0.16568 / 1), color(--oklab 0.31558 0.05742 -0.17076 / 1), color(--oklab 0.3249 0.05904 -0.17586 / 1), color(--oklab 0.33433 0.06066 -0.18104 / 1), color(--oklab 0.34399 0.06231 -0.18635 / 1), color(--oklab 0.35386 0.06399 -0.19179 / 1), color(--oklab 0.36398 0.0657 -0.19736 / 1), color(--oklab 0.37444 0.06747 -0.20313 / 1), color(--oklab 0.38512 0.06927 -0.20903 / 1), color(--oklab 0.39594 0.07108 -0.215 / 1), color(--oklab 0.40687 0.0729 -0.22105 / 1), color(--oklab 0.418 0.07472 -0.22724 / 1), color(--oklab 0.42932 0.07653 -0.23356 / 1), color(--oklab 0.44082 0.07834 -0.24 / 1), color(--oklab 0.45249 0.08014 -0.24656 / 1), color(--oklab 0.46442 0.08194 -0.25332 / 1), color(--oklab 0.47634 0.0837 -0.26008 / 1), color(--oklab 0.48811 0.08541 -0.26679 / 1), color(--oklab 0.49962 0.08704 -0.27338 / 1), color(--oklab 0.5103 0.08858 -0.27947 / 1), color(--oklab 0.51316 0.09315 -0.27784 / 1), color(--oklab 0.51588 0.09742 -0.27628 / 1), color(--oklab 0.51843 0.10136 -0.27482 / 1), color(--oklab 0.52076 0.10487 -0.27349 / 1), color(--oklab 0.52294 0.10811 -0.27224 / 1), color(--oklab 0.52496 0.11108 -0.27107 / 1), color(--oklab 0.52681 0.11375 -0.27001 / 1), color(--oklab 0.52841 0.11605 -0.26908 / 1), color(--oklab 0.52985 0.11808 -0.26826 / 1), color(--oklab 0.53111 0.11984 -0.26753 / 1), color(--oklab 0.53216 0.1213 -0.26693 / 1), color(--oklab 0.53299 0.12245 -0.26645 / 1), color(--oklab 0.53366 0.12337 -0.26606 / 1), color(--oklab 0.53417 0.12408 -0.26576 / 1), color(--oklab 0.53451 0.12453 -0.26557 / 1), color(--oklab 0.53465 0.12473 -0.26548 / 1), color(--oklab 0.53466 0.12474 -0.26548 / 1), color(--oklab 0.53452 0.12454 -0.26556 / 1), color(--oklab 0.53419 0.1241 -0.26575 / 1), color(--oklab 0.5337 0.12343 -0.26603 / 1), color(--oklab 0.53308 0.12257 -0.26639 / 1), color(--oklab 0.53232 0.12153 -0.26683 / 1), color(--oklab 0.53139 0.12024 -0.26737 / 1), color(--oklab 0.53032 0.11873 -0.26799 / 1), color(--oklab 0.52911 0.11704 -0.26868 / 1), color(--oklab 0.52779 0.11516 -0.26944 / 1), color(--oklab 0.52629 0.11301 -0.27031 / 1), color(--oklab 0.52467 0.11066 -0.27124 / 1), color(--oklab 0.52294 0.10811 -0.27224 / 1), color(--oklab 0.52108 0.10535 -0.2733 / 1), color(--oklab 0.51906 0.1023 -0.27446 / 1), color(--oklab 0.51692 0.09904 -0.27569 / 1), color(--oklab 0.51468 0.09555 -0.27697 / 1), color(--oklab 0.51232 0.09182 -0.27832 / 1), color(--oklab 0.50982 0.08781 -0.27974 / 1), color(--oklab 0.50723 0.08355 -0.28122 / 1), color(--oklab 0.50453 0.07905 -0.28275 / 1), color(--oklab 0.50172 0.07425 -0.28434 / 1), color(--oklab 0.49875 0.06906 -0.28602 / 1), color(--oklab 0.49565 0.06352 -0.28776 / 1), color(--oklab 0.49241 0.05756 -0.28959 / 1), color(--oklab 0.48897 0.05109 -0.2915 / 1), color(--oklab 0.48533 0.04402 -0.29354 / 1), color(--oklab 0.48151 0.03636 -0.29565 / 1), color(--oklab 0.4775 0.02807 -0.29786 / 1), color(--oklab 0.47329 0.01902 -0.30017 / 1), color(--oklab 0.46886 0.00914 -0.30257 / 1), color(--oklab 0.46426 -0.00157 -0.30505 / 1), color(--oklab 0.45946 -0.01323 -0.30761 / 1), color(--oklab 0.45443 -0.02606 -0.31026 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45201 -0.03246 -0.31153 / 1), color(--oklab 0.45915 -0.03143 -0.30674 / 1), color(--oklab 0.47093 -0.03032 -0.29885 / 1), color(--oklab 0.48232 -0.02984 -0.29124 / 1), color(--oklab 0.4932 -0.02988 -0.28397 / 1), color(--oklab 0.50365 -0.03031 -0.27702 / 1), color(--oklab 0.51373 -0.03106 -0.27033 / 1), color(--oklab 0.52353 -0.03206 -0.26385 / 1), color(--oklab 0.53302 -0.03326 -0.2576 / 1), color(--oklab 0.54223 -0.03462 -0.25156 / 1), color(--oklab 0.55121 -0.03613 -0.24569 / 1), color(--oklab 0.55999 -0.03775 -0.23997 / 1), color(--oklab 0.56854 -0.03946 -0.23442 / 1), color(--oklab 0.57466 -0.04144 -0.22569 / 1), color(--oklab 0.57945 -0.04374 -0.21499 / 1), color(--oklab 0.58423 -0.04625 -0.20427 / 1), color(--oklab 0.58896 -0.04895 -0.19358 / 1), color(--oklab 0.59366 -0.05182 -0.18291 / 1), color(--oklab 0.59831 -0.05486 -0.17229 / 1), color(--oklab 0.60296 -0.05806 -0.1617 / 1), color(--oklab 0.6076 -0.06139 -0.15117 / 1), color(--oklab 0.61226 -0.06486 -0.14069 / 1), color(--oklab 0.617 -0.06846 -0.13028 / 1), color(--oklab 0.62181 -0.07218 -0.11997 / 1), color(--oklab 0.62669 -0.07599 -0.10977 / 1), color(--oklab 0.63163 -0.0799 -0.09969 / 1), color(--oklab 0.63672 -0.08388 -0.08976 / 1), color(--oklab 0.6419 -0.08795 -0.07996 / 1), color(--oklab 0.64718 -0.09208 -0.07026 / 1), color(--oklab 0.65257 -0.09628 -0.06067 / 1), color(--oklab 0.65816 -0.10056 -0.0512 / 1), color(--oklab 0.66388 -0.1049 -0.04184 / 1), color(--oklab 0.66973 -0.10929 -0.03259 / 1), color(--oklab 0.67571 -0.11372 -0.02346 / 1), color(--oklab 0.68188 -0.11818 -0.0145 / 1), color(--oklab 0.68813 -0.12266 -0.00568 / 1), color(--oklab 0.69448 -0.12715 0.00298 / 1), color(--oklab 0.70092 -0.13164 0.01148 / 1), color(--oklab 0.70747 -0.13611 0.01976 / 1), color(--oklab 0.71408 -0.14056 0.02789 / 1), color(--oklab 0.72079 -0.145 0.03586 / 1), color(--oklab 0.72764 -0.14944 0.04368 / 1), color(--oklab 0.73469 -0.15388 0.05134 / 1), color(--oklab 0.74191 -0.15833 0.05887 / 1), color(--oklab 0.74932 -0.16279 0.0663 / 1), color(--oklab 0.75697 -0.16725 0.07358 / 1), color(--oklab 0.7648 -0.1717 0.0807 / 1), color(--oklab 0.77271 -0.17613 0.0877 / 1), color(--oklab 0.78066 -0.18053 0.09456 / 1), color(--oklab 0.78863 -0.18488 0.10128 / 1), color(--oklab 0.79652 -0.18917 0.10787 / 1), color(--oklab 0.80433 -0.19343 0.11437 / 1), color(--oklab 0.81204 -0.19763 0.12077 / 1), color(--oklab 0.81964 -0.20178 0.12704 / 1), color(--oklab 0.82718 -0.20587 0.1332 / 1), color(--oklab 0.83465 -0.20991 0.13926 / 1), color(--oklab 0.84207 -0.21391 0.14521 / 1), color(--oklab 0.84944 -0.21783 0.151 / 1), color(--oklab 0.85677 -0.2217 0.15667 / 1), color(--oklab 0.86404 -0.22551 0.16222 / 1), color(--oklab 0.8679 -0.22831 0.16687 / 1), color(--oklab 0.86748 -0.22986 0.1704 / 1), color(--oklab 0.86707 -0.23142 0.17392 / 1), color(--oklab 0.86668 -0.23296 0.17741 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86644 -0.23389 0.1795 / 1), color(--oklab 0.86699 -0.23284 0.1796 / 1), color(--oklab 0.8713 -0.22472 0.1804 / 1), color(--oklab 0.87562 -0.21671 0.1812 / 1), color(--oklab 0.87996 -0.20879 0.18201 / 1), color(--oklab 0.88433 -0.20096 0.18282 / 1), color(--oklab 0.8887 -0.19323 0.18363 / 1), color(--oklab 0.89309 -0.1856 0.18445 / 1), color(--oklab 0.89749 -0.17808 0.18527 / 1), color(--oklab 0.90191 -0.17064 0.1861 / 1), color(--oklab 0.90632 -0.16332 0.18693 / 1), color(--oklab 0.91074 -0.15611 0.18775 / 1), color(--oklab 0.91516 -0.149 0.18858 / 1), color(--oklab 0.91958 -0.142 0.18941 / 1), color(--oklab 0.92399 -0.13511 0.19024 / 1), color(--oklab 0.92839 -0.12833 0.19107 / 1), color(--oklab 0.93279 -0.12165 0.1919 / 1), color(--oklab 0.93718 -0.11508 0.19273 / 1), color(--oklab 0.94156 -0.10862 0.19356 / 1), color(--oklab 0.94592 -0.10226 0.19438 / 1), color(--oklab 0.95027 -0.09601 0.19521 / 1), color(--oklab 0.95459 -0.08987 0.19603 / 1), color(--oklab 0.9589 -0.08384 0.19684 / 1), color(--oklab 0.96318 -0.07793 0.19766 / 1), color(--oklab 0.96743 -0.07212 0.19846 / 1), color(--oklab 0.96798 -0.07137 0.19857 / 1), color(--oklab 0.96798 -0.07137 0.19857 / 1), color(--oklab 0.96542 -0.06976 0.19803 / 1), color(--oklab 0.9603 -0.06652 0.19695 / 1), color(--oklab 0.95507 -0.06318 0.19584 / 1), color(--oklab 0.94972 -0.05973 0.19471 / 1), color(--oklab 0.94425 -0.05619 0.19356 / 1), color(--oklab 0.93865 -0.05252 0.19238 / 1), color(--oklab 0.93294 -0.04875 0.19117 / 1), color(--oklab 0.92712 -0.04487 0.18994 / 1), color(--oklab 0.92117 -0.04087 0.18868 / 1), color(--oklab 0.9151 -0.03674 0.1874 / 1), color(--oklab 0.90891 -0.03249 0.18609 / 1), color(--oklab 0.90261 -0.02812 0.18475 / 1), color(--oklab 0.89618 -0.02362 0.18339 / 1), color(--oklab 0.88964 -0.01897 0.18201 / 1), color(--oklab 0.88298 -0.0142 0.18059 / 1), color(--oklab 0.87622 -0.00929 0.17916 / 1), color(--oklab 0.86935 -0.00425 0.1777 / 1), color(--oklab 0.86238 0.00093 0.17622 / 1), color(--oklab 0.85532 0.00625 0.17472 / 1), color(--oklab 0.84817 0.01171 0.1732 / 1), color(--oklab 0.84092 0.0173 0.17166 / 1), color(--oklab 0.8336 0.02304 0.17011 / 1), color(--oklab 0.82619 0.02893 0.16853 / 1), color(--oklab 0.81871 0.03496 0.16693 / 1), color(--oklab 0.81115 0.04113 0.16532 / 1), color(--oklab 0.80353 0.04746 0.1637 / 1), color(--oklab 0.79584 0.05393 0.16206 / 1), color(--oklab 0.78809 0.06056 0.1604 / 1), color(--oklab 0.78031 0.06731 0.15874 / 1), color(--oklab 0.77252 0.07418 0.15707 / 1), color(--oklab 0.76472 0.08118 0.1554 / 1), color(--oklab 0.75691 0.08829 0.15373 / 1), color(--oklab 0.74917 0.09544 0.15207 / 1), color(--oklab 0.74146 0.1027 0.15041 / 1), color(--oklab 0.73377 0.11005 0.14876 / 1), color(--oklab 0.72609 0.11751 0.14711 / 1), color(--oklab 0.71847 0.12504 0.14547 / 1), color(--oklab 0.71084 0.1327 0.14383 / 1), color(--oklab 0.70321 0.14048 0.14218 / 1), color(--oklab 0.69559 0.1484 0.14053 / 1), color(--oklab 0.68802 0.15639 0.1389 / 1), color(--oklab 0.68049 0.16448 0.13727 / 1), color(--oklab 0.67301 0.17264 0.13565 / 1), color(--oklab 0.66563 0.18083 0.13405 / 1), color(--oklab 0.65843 0.18895 0.13249 / 1), color(--oklab 0.65136 0.19706 0.13095 / 1), color(--oklab 0.64443 0.20514 0.12944 / 1), color(--oklab 0.63769 0.21312 0.12797 / 1), color(--oklab 0.63115 0.22098 0.12654 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62796 0.22486 0.12585 / 1), color(--oklab 0.62148 0.22255 0.12455 / 1), color(--oklab 0.61458 0.22008 0.12317 / 1), color(--oklab 0.60765 0.21759 0.12178 / 1), color(--oklab 0.60067 0.21509 0.12038 / 1), color(--oklab 0.59366 0.21258 0.11897 / 1), color(--oklab 0.58663 0.21007 0.11756 / 1), color(--oklab 0.5796 0.20755 0.11616 / 1), color(--oklab 0.57258 0.20503 0.11475 / 1), color(--oklab 0.56558 0.20253 0.11335 / 1), color(--oklab 0.5586 0.20003 0.11195 / 1), color(--oklab 0.55163 0.19753 0.11055 / 1), color(--oklab 0.54468 0.19504 0.10916 / 1), color(--oklab 0.53774 0.19256 0.10777 / 1), color(--oklab 0.53079 0.19007 0.10637 / 1), color(--oklab 0.52385 0.18758 0.10498 / 1), color(--oklab 0.51689 0.18509 0.10359 / 1), color(--oklab 0.50994 0.1826 0.1022 / 1), color(--oklab 0.503 0.18012 0.1008 / 1), color(--oklab 0.49605 0.17763 0.09941 / 1), color(--oklab 0.48911 0.17514 0.09802 / 1), color(--oklab 0.48217 0.17266 0.09663 / 1), color(--oklab 0.47523 0.17017 0.09524 / 1), color(--oklab 0.4683 0.16769 0.09385 / 1), color(--oklab 0.46138 0.16522 0.09246 / 1), color(--oklab 0.45448 0.16274 0.09108 / 1), color(--oklab 0.44759 0.16028 0.0897 / 1), color(--oklab 0.44073 0.15782 0.08832 / 1), color(--oklab 0.43391 0.15538 0.08696 / 1), color(--oklab 0.42712 0.15294 0.0856 / 1), color(--oklab 0.42036 0.15053 0.08424 / 1), color(--oklab 0.41365 0.14812 0.0829 / 1), color(--oklab 0.40702 0.14575 0.08157 / 1), color(--oklab 0.40047 0.1434 0.08026 / 1), color(--oklab 0.39401 0.14109 0.07896 / 1), color(--oklab 0.38768 0.13882 0.07769 / 1), color(--oklab 0.38153 0.13662 0.07646 / 1), color(--oklab 0.3755 0.13446 0.07525 / 1), color(--oklab 0.3696 0.13235 0.07407 / 1), color(--oklab 0.36386 0.13029 0.07292 / 1), color(--oklab 0.35826 0.12829 0.0718 / 1), color(--oklab 0.35278 0.12633 0.0707 / 1), color(--oklab 0.3474 0.1244 0.06962 / 1), color(--oklab 0.34218 0.12253 0.06857 / 1), color(--oklab 0.33708 0.12071 0.06755 / 1), color(--oklab 0.33208 0.11891 0.06655 / 1), color(--oklab 0.32713 0.11714 0.06556 / 1), color(--oklab 0.32223 0.11539 0.06458 / 1), color(--oklab 0.31729 0.11362 0.06359 / 1), color(--oklab 0.3123 0.11183 0.06259 / 1), color(--oklab 0.30723 0.11002 0.06157 / 1), color(--oklab 0.30208 0.10817 0.06054 / 1), color(--oklab 0.29689 0.10631 0.0595 / 1), color(--oklab 0.29169 0.10445 0.05846 / 1), color(--oklab 0.28649 0.10259 0.05741 / 1), color(--oklab 0.28136 0.10075 0.05639 / 1), color(--oklab 0.27631 0.09894 0.05537 / 1), color(--oklab 0.27131 0.09715 0.05437 / 1), color(--oklab 0.26638 0.09539 0.05338 / 1), color(--oklab 0.26155 0.09366 0.05242 / 1), color(--oklab 0.25678 0.09195 0.05146 / 1), color(--oklab 0.25209 0.09027 0.05052 / 1), color(--oklab 0.2475 0.08863 0.0496 / 1), color(--oklab 0.24303 0.08703 0.04871 / 1), color(--oklab 0.23867 0.08547 0.04783 / 1), color(--oklab 0.23441 0.08394 0.04698 / 1), color(--oklab 0.23027 0.08246 0.04615 / 1), color(--oklab 0.22627 0.08102 0.04535 / 1), color(--oklab 0.22237 0.07963 0.04456 / 1), color(--oklab 0.21856 0.07826 0.0438 / 1), color(--oklab 0.21489 0.07695 0.04307 / 1), color(--oklab 0.21136 0.07568 0.04236 / 1), color(--oklab 0.20791 0.07445 0.04167 / 1), color(--oklab 0.20455 0.07325 0.04099 / 1), color(--oklab 0.20127 0.07207 0.04034 / 1), color(--oklab 0.19804 0.07092 0.03969 / 1), color(--oklab 0.19484 0.06977 0.03905 / 1), color(--oklab 0.19166 0.06863 0.03841 / 1), color(--oklab 0.18851 0.0675 0.03778 / 1), color(--oklab 0.18539 0.06639 0.03715 / 1), color(--oklab 0.18231 0.06528 0.03654 / 1), color(--oklab 0.17927 0.06419 0.03593 / 1), color(--oklab 0.1763 0.06313 0.03533 / 1), color(--oklab 0.17339 0.06209 0.03475 / 1), color(--oklab 0.17052 0.06106 0.03417 / 1), color(--oklab 0.1677 0.06005 0.03361 / 1), color(--oklab 0.16494 0.05906 0.03306 / 1), color(--oklab 0.16222 0.05809 0.03251 / 1), color(--oklab 0.15954 0.05713 0.03197 / 1), color(--oklab 0.15689 0.05618 0.03144 / 1), color(--oklab 0.15428 0.05525 0.03092 / 1), color(--oklab 0.1517 0.05432 0.0304 / 1), color(--oklab 0.14916 0.05341 0.02989 / 1), color(--oklab 0.14665 0.05251 0.02939 / 1), color(--oklab 0.14418 0.05163 0.02889 / 1), color(--oklab 0.14174 0.05076 0.02841 / 1), color(--oklab 0.13933 0.04989 0.02792 / 1), color(--oklab 0.13696 0.04904 0.02745 / 1), color(--oklab 0.13463 0.04821 0.02698 / 1), color(--oklab 0.13233 0.04738 0.02652 / 1), color(--oklab 0.13005 0.04657 0.02606 / 1), color(--oklab 0.12783 0.04577 0.02562 / 1), color(--oklab 0.12564 0.04499 0.02518 / 1), color(--oklab 0.12349 0.04422 0.02475 / 1), color(--oklab 0.12138 0.04347 0.02433 / 1), color(--oklab 0.11932 0.04273 0.02391 / 1), color(--oklab 0.1173 0.042 0.02351 / 1), color(--oklab 0.11531 0.04129 0.02311 / 1), color(--oklab 0.11334 0.04059 0.02271 / 1), color(--oklab 0.11142 0.0399 0.02233 / 1), color(--oklab 0.10952 0.03922 0.02195 / 1), color(--oklab 0.10764 0.03854 0.02157 / 1), color(--oklab 0.10578 0.03788 0.0212 / 1), color(--oklab 0.10396 0.03723 0.02083 / 1), color(--oklab 0.10216 0.03658 0.02047 / 1), color(--oklab 0.10037 0.03594 0.02012 / 1), color(--oklab 0.09862 0.03531 0.01976 / 1), color(--oklab 0.09688 0.03469 0.01942 / 1), color(--oklab 0.09517 0.03408 0.01907 / 1), color(--oklab 0.09347 0.03347 0.01873 / 1), color(--oklab 0.0918 0.03287 0.0184 / 1), color(--oklab 0.09015 0.03228 0.01807 / 1), color(--oklab 0.08853 0.0317 0.01774 / 1), color(--oklab 0.08692 0.03113 0.01742 / 1), color(--oklab 0.08535 0.03056 0.0171 / 1), color(--oklab 0.08381 0.03001 0.0168 / 1), color(--oklab 0.08228 0.02947 0.01649 / 1), color(--oklab 0.08079 0.02893 0.01619 / 1), color(--oklab 0.07932 0.0284 0.0159 / 1), color(--oklab 0.07787 0.02789 0.01561 / 1), color(--oklab 0.07645 0.02738 0.01532 / 1), color(--oklab 0.07505 0.02688 0.01504 / 1), color(--oklab 0.07368 0.02639 0.01477 / 1), color(--oklab 0.07234 0.02591 0.0145 / 1), color(--oklab 0.07103 0.02543 0.01423 / 1), color(--oklab 0.06973 0.02497 0.01398 / 1), color(--oklab 0.06848 0.02452 0.01372 / 1), color(--oklab 0.06725 0.02408 0.01348 / 1), color(--oklab 0.06605 0.02365 0.01324 / 1), color(--oklab 0.06487 0.02323 0.013 / 1), color(--oklab 0.06373 0.02282 0.01277 / 1), color(--oklab 0.06262 0.02242 0.01255 / 1), color(--oklab 0.06153 0.02203 0.01233 / 1), color(--oklab 0.06046 0.02165 0.01212 / 1)]