Issue
Using clampChroma within a conversion sequence results in a color object with invalid values.
Expected
Post-clampChroma conversions result in color objects with valid values as defined by culorijs.org/color-spaces.
Example
import {rgb, oklch, clampChroma} from "culori"
const max = {l:1, c:0.322, h:360}
rgb(
clampChroma(
oklch({
l: (max.l * 0.5),
c: (max.c * 0.5),
h: (max.h * 0.5),
})
)
)
Result
oklch > clampChroma > rgb
r has a negative value, which is outside of the rgb color-space's documented {min:0, max:1} range.
{mode:'rgb', r:-0.00015269415291914584, g:0.4633768089712706, b:0.40462053745496246}
Other Values
oklch
{mode:'oklch', l:0.5, c:0.161, h:180}
oklch > clampChroma
{mode:'oklch', l:0.5074222643221025, c:0.09214221649333439, h:179.92987163513519}
oklch > rgb
{mode:'rgb', r:-1.1275082865428603, g:0.4943967336505179, b:0.40272542671134454}