From dbee36199c648eef7d25f3c201b082c29e8853d9 Mon Sep 17 00:00:00 2001 From: Illia Achour Date: Wed, 2 Sep 2026 15:37:53 -0400 Subject: [PATCH 1/4] Add the Oklab family of color spaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HSL lightness is not perceived lightness: blue and yellow at 0.5 differ by more than 0.3 in Oklab L, which is why an HSL lightness slider does something visibly different at every hue. Okhsl and Okhsv fix that, and their saturation is measured against the sRGB gamut, so full saturation is reachable at every hue instead of running off the end of what the screen can show. Oklab and OkLCh come along for interpolation and for moving values in and out of CSS. This is a breaking change. PickerColor is a public sealed interface, so four new implementations stop any consumer's exhaustive `when` from compiling — hence 2.0.0 rather than 1.2.0. The saved-state format keeps its existing space keys, so a state persisted by 1.x still restores. Out-of-gamut Oklab and OkLCh go through the CSS Color 4 algorithm rather than either obvious alternative. Clamping each RGB channel shifts lightness and hue as a side effect, which is what the LAB path already does. Reducing chroma alone holds both but over-corrects badly on yellows, where the gamut surface curves away from the search line. The spec's binary search with local-MINDE clipping keeps the chroma that pure reduction throws away. Eight spaces would have meant sixty-four hand-written branches in the derived-state matrix, so conversions now route through RGB instead of being spelled out pairwise. --- README.md | 102 ++++- colorpicker/api/colorpicker.klib.api | 214 ++++++++++ colorpicker/api/jvm/colorpicker.api | 211 ++++++++++ .../colorpicker/conversion/ComposeColorExt.kt | 34 ++ .../colorpicker/conversion/GamutMapping.kt | 75 ++++ .../colorpicker/conversion/HexConversions.kt | 11 +- .../colorpicker/conversion/LabConversions.kt | 2 +- .../side/colorpicker/conversion/OkGamut.kt | 303 +++++++++++++++ .../conversion/OkhslConversions.kt | 128 ++++++ .../conversion/OkhsvConversions.kt | 139 +++++++ .../conversion/OklabConversions.kt | 109 ++++++ .../conversion/PickerColorConversions.kt | 41 ++ .../side/colorpicker/model/OkhslColor.kt | 125 ++++++ .../side/colorpicker/model/OkhsvColor.kt | 124 ++++++ .../side/colorpicker/model/OklabColor.kt | 120 ++++++ .../side/colorpicker/model/OklchColor.kt | 114 ++++++ .../side/colorpicker/model/PickerColor.kt | 2 +- .../colorpicker/state/ColorPickerState.kt | 199 ++++++++-- .../state/SaveableColorPickerState.kt | 71 +++- .../side/colorpicker/ui/OkhslColorPicker.kt | 60 +++ .../codes/side/colorpicker/ui/OkhslSliders.kt | 267 +++++++++++++ .../side/colorpicker/ui/OkhsvColorPicker.kt | 61 +++ .../codes/side/colorpicker/ui/OkhsvSliders.kt | 237 ++++++++++++ .../conversion/OkConversionsTest.kt | 366 ++++++++++++++++++ .../state/OkColorPickerStateTest.kt | 219 +++++++++++ docs/images/okhsl-contextual.png | Bin 0 -> 116878 bytes docs/images/okhsl-independent.png | Bin 0 -> 120307 bytes docs/images/okhsv-contextual.png | Bin 0 -> 109039 bytes docs/images/okhsv-independent.png | Bin 0 -> 113359 bytes docs/index.md | 102 ++++- .../side/colorpicker/sample/SampleApp.kt | 43 +- screenshot-tests/build.gradle.kts | 4 + .../screenshot/ColorPickerPreviews.kt | 30 ++ ...ualPreview_Okhsl contextual_f9158ec4_0.png | Bin 0 -> 116878 bytes ...ntPreview_Okhsl independent_89c53e9f_0.png | Bin 0 -> 120307 bytes ...ualPreview_Okhsv contextual_42b873fe_0.png | Bin 0 -> 109039 bytes ...ntPreview_Okhsv independent_b9c3f979_0.png | Bin 0 -> 113359 bytes 37 files changed, 3447 insertions(+), 66 deletions(-) create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OklabConversions.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/PickerColorConversions.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhslColor.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhsvColor.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklabColor.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklchColor.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslColorPicker.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvColorPicker.kt create mode 100644 colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt create mode 100644 colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt create mode 100644 colorpicker/src/commonTest/kotlin/codes/side/colorpicker/state/OkColorPickerStateTest.kt create mode 100644 docs/images/okhsl-contextual.png create mode 100644 docs/images/okhsl-independent.png create mode 100644 docs/images/okhsv-contextual.png create mode 100644 docs/images/okhsv-independent.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhslContextualPreview_Okhsl contextual_f9158ec4_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhslIndependentPreview_Okhsl independent_89c53e9f_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhsvContextualPreview_Okhsv contextual_42b873fe_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhsvIndependentPreview_Okhsv independent_b9c3f979_0.png diff --git a/README.md b/README.md index 718f65f..de1d4f1 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Kotlin Multiplatform color picker library for Android, iOS, Desktop (JVM), and W - Compose Multiplatform (Android, iOS, Desktop/JVM, Web/Wasm) - Material 3 theming via `ColorPickerDefaults` - HSL, RGB, CMYK, and LAB color models +- Perceptual color: Okhsl and Okhsv pickers, with Oklab and OkLCh for interchange and manipulation +- CSS Color 4 gamut mapping, so an out-of-gamut Oklab or OkLCh color keeps its lightness and hue - Alpha channel support - Zero-drift editing: `ColorPickerState` keeps the authoritative color in the space you edited, so edit-in-X-read-X is always exact (conversions themselves are float-based) - Unidirectional data flow with `ColorPickerState` @@ -43,12 +45,14 @@ Every picker takes a `ColoringMode`. `Independent` shows each channel's full ran `Contextual` previews the resulting color at every slider position. `HslColorPicker` defaults to `Independent`; the others default to `Contextual`. -| Model | Independent | Contextual | -|-------------------------------|-------------------------------------------------------|-----------------------------------------------------| -| **HSL**
`HslColorPicker` | ![HSL independent](docs/images/hsl-independent.png) | ![HSL contextual](docs/images/hsl-contextual.png) | -| **RGB**
`RgbColorPicker` | ![RGB independent](docs/images/rgb-independent.png) | ![RGB contextual](docs/images/rgb-contextual.png) | -| **CMYK**
`CmykColorPicker` | ![CMYK independent](docs/images/cmyk-independent.png) | ![CMYK contextual](docs/images/cmyk-contextual.png) | -| **LAB**
`LabColorPicker` | ![LAB independent](docs/images/lab-independent.png) | ![LAB contextual](docs/images/lab-contextual.png) | +| Model | Independent | Contextual | +|---------------------------------|---------------------------------------------------------|-------------------------------------------------------| +| **HSL**
`HslColorPicker` | ![HSL independent](docs/images/hsl-independent.png) | ![HSL contextual](docs/images/hsl-contextual.png) | +| **RGB**
`RgbColorPicker` | ![RGB independent](docs/images/rgb-independent.png) | ![RGB contextual](docs/images/rgb-contextual.png) | +| **CMYK**
`CmykColorPicker` | ![CMYK independent](docs/images/cmyk-independent.png) | ![CMYK contextual](docs/images/cmyk-contextual.png) | +| **LAB**
`LabColorPicker` | ![LAB independent](docs/images/lab-independent.png) | ![LAB contextual](docs/images/lab-contextual.png) | +| **Okhsl**
`OkhslColorPicker` | ![Okhsl independent](docs/images/okhsl-independent.png) | ![Okhsl contextual](docs/images/okhsl-contextual.png) | +| **Okhsv**
`OkhsvColorPicker` | ![Okhsv independent](docs/images/okhsv-independent.png) | ![Okhsv contextual](docs/images/okhsv-contextual.png) | `ColorSwatch` draws the color over a transparency checkerboard, so alpha reads correctly: @@ -129,6 +133,73 @@ val color = LabColor(l = 53.23f, a = 80.11f, b = 67.22f) LabColor.fromInt(l = 53, a = 80, b = 67) ``` +### Okhsl + +```kotlin +val color = OkhslColor(hue = 29.2f, saturation = 1f, lightness = 0.57f) +// hue: [0, 360), saturation: [0, 1], lightness: [0, 1], alpha: [0, 1] + +OkhslColor.fromInt(hue = 29, saturation = 100, lightness = 57) +``` + +Björn Ottosson's perceptual replacement for HSL, and the one to reach for if you are +choosing between the two. `lightness` is perceived lightness, so a blue and a yellow at +`0.5` look equally light; in HSL they differ by more than half the scale. `saturation` is +measured against the sRGB gamut, so `1` is as colorful as the display can go at that hue +and lightness — every coordinate is a real color and no part of a slider is dead travel. + +### Okhsv + +```kotlin +val color = OkhsvColor(hue = 29.2f, saturation = 1f, value = 1f) +// hue: [0, 360), saturation: [0, 1], value: [0, 1], alpha: [0, 1] + +OkhsvColor.fromInt(hue = 29, saturation = 100, value = 100) +``` + +Okhsl's perceptual hue and gamut-relative saturation in the HSV arrangement artists +expect: full saturation at full value is the most vivid form of a hue, and pulling value +down darkens toward black. Prefer Okhsl when the middle of the lightness track should be a +mid tone. + +### Oklab + +```kotlin +val color = OklabColor(l = 0.63f, a = 0.22f, b = 0.13f) +// l: [0, 1], a: [-0.4, 0.4], b: [-0.4, 0.4], alpha: [0, 1] +``` + +The perceptual space the two above are built on, and the one to interpolate, compare or +blend in — equal numeric steps are close to equal perceived steps, and moving `l` does not +drag the perceived hue with it. Note `l` runs `0..1`, not CIELAB's `0..100`, and the `a` +and `b` bounds are the reference range CSS Color 4 gives `oklab()`. + +Oklab is not a space to put sliders on: `a` and `b` are not bounded by the display gamut, +so most of their range is unreachable, exactly as with LAB. Use Okhsl or Okhsv for that. + +### OkLCh + +```kotlin +val color = OklchColor(l = 0.63f, chroma = 0.26f, hue = 29.2f) +// l: [0, 1], chroma: [0, 0.4], hue: [0, 360), alpha: [0, 1] +``` + +Oklab in cylindrical form, and the space CSS exposes as `oklch()` — use it to move values +in and out of stylesheets, or to change one of lightness, chroma and hue while holding the +others. + +### Gamut mapping + +Oklab and OkLCh can describe colors sRGB cannot show. Converting one to RGB does not clamp +each channel independently, which would shift lightness and hue as a side effect. It runs +the [CSS Color 4 algorithm](https://www.w3.org/TR/css-color-4/#gamut-mapping): binary +search down the chroma axis, comparing each candidate against its clipped form, and stop +once the two are within a just-noticeable difference. Lightness and hue survive, chroma +pays, and the result matches what a browser would render. + +Okhsl and Okhsv never need this — their coordinates are normalized against the gamut, so +they are inside it by construction. + ## 🔄 Conversions Conversions are extension functions. They operate on floats end to end — nothing is quantized to integers until you explicitly ask for an ARGB `Int` or a hex string. Like any color space conversion, a cross-space round trip is not guaranteed to be bit-exact; the zero-drift guarantee comes from `ColorPickerState`'s origin tracking (see [Architecture](#architecture-zero-drift-color-conversions)). @@ -140,12 +211,19 @@ val cmyk = rgb.toCmyk() val lab = rgb.toLab() val argb = rgb.toArgbInt() +// Perceptual spaces +val oklab = rgb.toOklab() +val oklch = rgb.toOklch() +val okhsl = rgb.toOkhsl() +val okhsv = rgb.toOkhsv() + // Compose interop, both ways val composeColor: Color = hsl.toComposeColor() val backToHsl: HslColor = composeColor.toHslColor() val backToRgb: RgbColor = composeColor.toRgbColor() val backToCmyk: CmykColor = composeColor.toCmykColor() val backToLab: LabColor = composeColor.toLabColor() +val backToOkhsl: OkhslColor = composeColor.toOkhslColor() ``` ### Hex strings @@ -183,6 +261,8 @@ HslColorPicker( RgbColorPicker(state = state, showAlpha = true) CmykColorPicker(state = state, showAlpha = true) LabColorPicker(state = state, showAlpha = true) +OkhslColorPicker(state = state, showAlpha = true) +OkhsvColorPicker(state = state, showAlpha = true) ``` `ColoringMode` controls the slider gradients: `Independent` shows each channel's full range regardless of the other channels, `Contextual` previews the actual resulting color at each position. @@ -213,6 +293,16 @@ LightnessLabSlider(state = state) LabASlider(state = state) LabBSlider(state = state) +// Okhsl +OkhslHueSlider(state = state) +OkhslSaturationSlider(state = state) +OkhslLightnessSlider(state = state) + +// Okhsv +OkhsvHueSlider(state = state) +OkhsvSaturationSlider(state = state) +OkhsvValueSlider(state = state) + // Alpha (works with any origin space) AlphaSlider(state = state) ``` diff --git a/colorpicker/api/colorpicker.klib.api b/colorpicker/api/colorpicker.klib.api index 6944d2a..12f1b3f 100644 --- a/colorpicker/api/colorpicker.klib.api +++ b/colorpicker/api/colorpicker.klib.api @@ -133,6 +133,146 @@ final class codes.side.colorpicker.model/LabColor : codes.side.colorpicker.model } } +final class codes.side.colorpicker.model/OkhslColor : codes.side.colorpicker.model/PickerColor { // codes.side.colorpicker.model/OkhslColor|null[0] + constructor (kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...) // codes.side.colorpicker.model/OkhslColor.|(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + + final val alpha // codes.side.colorpicker.model/OkhslColor.alpha|{}alpha[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhslColor.alpha.|(){}[0] + final val hue // codes.side.colorpicker.model/OkhslColor.hue|{}hue[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhslColor.hue.|(){}[0] + final val intAlpha // codes.side.colorpicker.model/OkhslColor.intAlpha|{}intAlpha[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhslColor.intAlpha.|(){}[0] + final val intHue // codes.side.colorpicker.model/OkhslColor.intHue|{}intHue[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhslColor.intHue.|(){}[0] + final val intLightness // codes.side.colorpicker.model/OkhslColor.intLightness|{}intLightness[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhslColor.intLightness.|(){}[0] + final val intSaturation // codes.side.colorpicker.model/OkhslColor.intSaturation|{}intSaturation[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhslColor.intSaturation.|(){}[0] + final val lightness // codes.side.colorpicker.model/OkhslColor.lightness|{}lightness[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhslColor.lightness.|(){}[0] + final val saturation // codes.side.colorpicker.model/OkhslColor.saturation|{}saturation[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhslColor.saturation.|(){}[0] + + final fun copy(kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.model/OkhslColor.copy|copy(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // codes.side.colorpicker.model/OkhslColor.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // codes.side.colorpicker.model/OkhslColor.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // codes.side.colorpicker.model/OkhslColor.toString|toString(){}[0] + + final object Companion { // codes.side.colorpicker.model/OkhslColor.Companion|null[0] + final val Black // codes.side.colorpicker.model/OkhslColor.Companion.Black|{}Black[0] + final fun (): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.model/OkhslColor.Companion.Black.|(){}[0] + final val White // codes.side.colorpicker.model/OkhslColor.Companion.White|{}White[0] + final fun (): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.model/OkhslColor.Companion.White.|(){}[0] + + final fun fromInt(kotlin/Int, kotlin/Int, kotlin/Int, kotlin/Int = ...): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.model/OkhslColor.Companion.fromInt|fromInt(kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0] + } +} + +final class codes.side.colorpicker.model/OkhsvColor : codes.side.colorpicker.model/PickerColor { // codes.side.colorpicker.model/OkhsvColor|null[0] + constructor (kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...) // codes.side.colorpicker.model/OkhsvColor.|(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + + final val alpha // codes.side.colorpicker.model/OkhsvColor.alpha|{}alpha[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhsvColor.alpha.|(){}[0] + final val hue // codes.side.colorpicker.model/OkhsvColor.hue|{}hue[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhsvColor.hue.|(){}[0] + final val intAlpha // codes.side.colorpicker.model/OkhsvColor.intAlpha|{}intAlpha[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhsvColor.intAlpha.|(){}[0] + final val intHue // codes.side.colorpicker.model/OkhsvColor.intHue|{}intHue[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhsvColor.intHue.|(){}[0] + final val intSaturation // codes.side.colorpicker.model/OkhsvColor.intSaturation|{}intSaturation[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhsvColor.intSaturation.|(){}[0] + final val intValue // codes.side.colorpicker.model/OkhsvColor.intValue|{}intValue[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OkhsvColor.intValue.|(){}[0] + final val saturation // codes.side.colorpicker.model/OkhsvColor.saturation|{}saturation[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhsvColor.saturation.|(){}[0] + final val value // codes.side.colorpicker.model/OkhsvColor.value|{}value[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OkhsvColor.value.|(){}[0] + + final fun copy(kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.model/OkhsvColor.copy|copy(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // codes.side.colorpicker.model/OkhsvColor.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // codes.side.colorpicker.model/OkhsvColor.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // codes.side.colorpicker.model/OkhsvColor.toString|toString(){}[0] + + final object Companion { // codes.side.colorpicker.model/OkhsvColor.Companion|null[0] + final val Black // codes.side.colorpicker.model/OkhsvColor.Companion.Black|{}Black[0] + final fun (): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.model/OkhsvColor.Companion.Black.|(){}[0] + final val White // codes.side.colorpicker.model/OkhsvColor.Companion.White|{}White[0] + final fun (): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.model/OkhsvColor.Companion.White.|(){}[0] + + final fun fromInt(kotlin/Int, kotlin/Int, kotlin/Int, kotlin/Int = ...): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.model/OkhsvColor.Companion.fromInt|fromInt(kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0] + } +} + +final class codes.side.colorpicker.model/OklabColor : codes.side.colorpicker.model/PickerColor { // codes.side.colorpicker.model/OklabColor|null[0] + constructor (kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...) // codes.side.colorpicker.model/OklabColor.|(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + + final val a // codes.side.colorpicker.model/OklabColor.a|{}a[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklabColor.a.|(){}[0] + final val alpha // codes.side.colorpicker.model/OklabColor.alpha|{}alpha[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklabColor.alpha.|(){}[0] + final val b // codes.side.colorpicker.model/OklabColor.b|{}b[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklabColor.b.|(){}[0] + final val intA // codes.side.colorpicker.model/OklabColor.intA|{}intA[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklabColor.intA.|(){}[0] + final val intAlpha // codes.side.colorpicker.model/OklabColor.intAlpha|{}intAlpha[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklabColor.intAlpha.|(){}[0] + final val intB // codes.side.colorpicker.model/OklabColor.intB|{}intB[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklabColor.intB.|(){}[0] + final val intL // codes.side.colorpicker.model/OklabColor.intL|{}intL[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklabColor.intL.|(){}[0] + final val l // codes.side.colorpicker.model/OklabColor.l|{}l[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklabColor.l.|(){}[0] + + final fun copy(kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.model/OklabColor.copy|copy(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // codes.side.colorpicker.model/OklabColor.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // codes.side.colorpicker.model/OklabColor.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // codes.side.colorpicker.model/OklabColor.toString|toString(){}[0] + + final object Companion { // codes.side.colorpicker.model/OklabColor.Companion|null[0] + final val Black // codes.side.colorpicker.model/OklabColor.Companion.Black|{}Black[0] + final fun (): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.model/OklabColor.Companion.Black.|(){}[0] + final val White // codes.side.colorpicker.model/OklabColor.Companion.White|{}White[0] + final fun (): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.model/OklabColor.Companion.White.|(){}[0] + + final fun fromInt(kotlin/Int, kotlin/Int, kotlin/Int, kotlin/Int = ...): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.model/OklabColor.Companion.fromInt|fromInt(kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0] + } +} + +final class codes.side.colorpicker.model/OklchColor : codes.side.colorpicker.model/PickerColor { // codes.side.colorpicker.model/OklchColor|null[0] + constructor (kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...) // codes.side.colorpicker.model/OklchColor.|(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + + final val alpha // codes.side.colorpicker.model/OklchColor.alpha|{}alpha[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklchColor.alpha.|(){}[0] + final val chroma // codes.side.colorpicker.model/OklchColor.chroma|{}chroma[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklchColor.chroma.|(){}[0] + final val hue // codes.side.colorpicker.model/OklchColor.hue|{}hue[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklchColor.hue.|(){}[0] + final val intAlpha // codes.side.colorpicker.model/OklchColor.intAlpha|{}intAlpha[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklchColor.intAlpha.|(){}[0] + final val intChroma // codes.side.colorpicker.model/OklchColor.intChroma|{}intChroma[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklchColor.intChroma.|(){}[0] + final val intHue // codes.side.colorpicker.model/OklchColor.intHue|{}intHue[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklchColor.intHue.|(){}[0] + final val intL // codes.side.colorpicker.model/OklchColor.intL|{}intL[0] + final fun (): kotlin/Int // codes.side.colorpicker.model/OklchColor.intL.|(){}[0] + final val l // codes.side.colorpicker.model/OklchColor.l|{}l[0] + final fun (): kotlin/Float // codes.side.colorpicker.model/OklchColor.l.|(){}[0] + + final fun copy(kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.model/OklchColor.copy|copy(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // codes.side.colorpicker.model/OklchColor.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // codes.side.colorpicker.model/OklchColor.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // codes.side.colorpicker.model/OklchColor.toString|toString(){}[0] + + final object Companion { // codes.side.colorpicker.model/OklchColor.Companion|null[0] + final val Black // codes.side.colorpicker.model/OklchColor.Companion.Black|{}Black[0] + final fun (): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.model/OklchColor.Companion.Black.|(){}[0] + final val White // codes.side.colorpicker.model/OklchColor.Companion.White|{}White[0] + final fun (): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.model/OklchColor.Companion.White.|(){}[0] + + final fun fromInt(kotlin/Int, kotlin/Int, kotlin/Int, kotlin/Int = ...): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.model/OklchColor.Companion.fromInt|fromInt(kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0] + } +} + final class codes.side.colorpicker.model/RgbColor : codes.side.colorpicker.model/PickerColor { // codes.side.colorpicker.model/RgbColor|null[0] constructor (kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...) // codes.side.colorpicker.model/RgbColor.|(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0] @@ -185,6 +325,14 @@ final class codes.side.colorpicker.state/ColorPickerState { // codes.side.colorp final fun (): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.state/ColorPickerState.hslColor.|(){}[0] final val labColor // codes.side.colorpicker.state/ColorPickerState.labColor|{}labColor[0] final fun (): codes.side.colorpicker.model/LabColor // codes.side.colorpicker.state/ColorPickerState.labColor.|(){}[0] + final val okhslColor // codes.side.colorpicker.state/ColorPickerState.okhslColor|{}okhslColor[0] + final fun (): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.state/ColorPickerState.okhslColor.|(){}[0] + final val okhsvColor // codes.side.colorpicker.state/ColorPickerState.okhsvColor|{}okhsvColor[0] + final fun (): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.state/ColorPickerState.okhsvColor.|(){}[0] + final val oklabColor // codes.side.colorpicker.state/ColorPickerState.oklabColor|{}oklabColor[0] + final fun (): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.state/ColorPickerState.oklabColor.|(){}[0] + final val oklchColor // codes.side.colorpicker.state/ColorPickerState.oklchColor|{}oklchColor[0] + final fun (): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.state/ColorPickerState.oklchColor.|(){}[0] final val pickerColor // codes.side.colorpicker.state/ColorPickerState.pickerColor|{}pickerColor[0] final fun (): codes.side.colorpicker.model/PickerColor // codes.side.colorpicker.state/ColorPickerState.pickerColor.|(){}[0] final val rgbColor // codes.side.colorpicker.state/ColorPickerState.rgbColor|{}rgbColor[0] @@ -200,6 +348,10 @@ final class codes.side.colorpicker.state/ColorPickerState { // codes.side.colorp final fun updateFromCmyk(codes.side.colorpicker.model/CmykColor) // codes.side.colorpicker.state/ColorPickerState.updateFromCmyk|updateFromCmyk(codes.side.colorpicker.model.CmykColor){}[0] final fun updateFromHsl(codes.side.colorpicker.model/HslColor) // codes.side.colorpicker.state/ColorPickerState.updateFromHsl|updateFromHsl(codes.side.colorpicker.model.HslColor){}[0] final fun updateFromLab(codes.side.colorpicker.model/LabColor) // codes.side.colorpicker.state/ColorPickerState.updateFromLab|updateFromLab(codes.side.colorpicker.model.LabColor){}[0] + final fun updateFromOkhsl(codes.side.colorpicker.model/OkhslColor) // codes.side.colorpicker.state/ColorPickerState.updateFromOkhsl|updateFromOkhsl(codes.side.colorpicker.model.OkhslColor){}[0] + final fun updateFromOkhsv(codes.side.colorpicker.model/OkhsvColor) // codes.side.colorpicker.state/ColorPickerState.updateFromOkhsv|updateFromOkhsv(codes.side.colorpicker.model.OkhsvColor){}[0] + final fun updateFromOklab(codes.side.colorpicker.model/OklabColor) // codes.side.colorpicker.state/ColorPickerState.updateFromOklab|updateFromOklab(codes.side.colorpicker.model.OklabColor){}[0] + final fun updateFromOklch(codes.side.colorpicker.model/OklchColor) // codes.side.colorpicker.state/ColorPickerState.updateFromOklch|updateFromOklch(codes.side.colorpicker.model.OklchColor){}[0] final fun updateFromRgb(codes.side.colorpicker.model/RgbColor) // codes.side.colorpicker.state/ColorPickerState.updateFromRgb|updateFromRgb(codes.side.colorpicker.model.RgbColor){}[0] final fun updateGreen(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateGreen|updateGreen(kotlin.Float){}[0] final fun updateHue(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateHue|updateHue(kotlin.Float){}[0] @@ -209,6 +361,18 @@ final class codes.side.colorpicker.state/ColorPickerState { // codes.side.colorp final fun updateLabLightness(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateLabLightness|updateLabLightness(kotlin.Float){}[0] final fun updateLightness(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateLightness|updateLightness(kotlin.Float){}[0] final fun updateMagenta(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateMagenta|updateMagenta(kotlin.Float){}[0] + final fun updateOkhslHue(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOkhslHue|updateOkhslHue(kotlin.Float){}[0] + final fun updateOkhslLightness(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOkhslLightness|updateOkhslLightness(kotlin.Float){}[0] + final fun updateOkhslSaturation(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOkhslSaturation|updateOkhslSaturation(kotlin.Float){}[0] + final fun updateOkhsvHue(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOkhsvHue|updateOkhsvHue(kotlin.Float){}[0] + final fun updateOkhsvSaturation(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOkhsvSaturation|updateOkhsvSaturation(kotlin.Float){}[0] + final fun updateOkhsvValue(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOkhsvValue|updateOkhsvValue(kotlin.Float){}[0] + final fun updateOklabA(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOklabA|updateOklabA(kotlin.Float){}[0] + final fun updateOklabB(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOklabB|updateOklabB(kotlin.Float){}[0] + final fun updateOklabLightness(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOklabLightness|updateOklabLightness(kotlin.Float){}[0] + final fun updateOklchChroma(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOklchChroma|updateOklchChroma(kotlin.Float){}[0] + final fun updateOklchHue(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOklchHue|updateOklchHue(kotlin.Float){}[0] + final fun updateOklchLightness(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateOklchLightness|updateOklchLightness(kotlin.Float){}[0] final fun updateRed(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateRed|updateRed(kotlin.Float){}[0] final fun updateSaturation(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateSaturation|updateSaturation(kotlin.Float){}[0] final fun updateYellow(kotlin/Float) // codes.side.colorpicker.state/ColorPickerState.updateYellow|updateYellow(kotlin.Float){}[0] @@ -263,6 +427,10 @@ final object codes.side.colorpicker.theme/ColorPickerDefaults { // codes.side.co final val codes.side.colorpicker.model/codes_side_colorpicker_model_CmykColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_CmykColor$stableprop|#static{}codes_side_colorpicker_model_CmykColor$stableprop[0] final val codes.side.colorpicker.model/codes_side_colorpicker_model_HslColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_HslColor$stableprop|#static{}codes_side_colorpicker_model_HslColor$stableprop[0] final val codes.side.colorpicker.model/codes_side_colorpicker_model_LabColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_LabColor$stableprop|#static{}codes_side_colorpicker_model_LabColor$stableprop[0] +final val codes.side.colorpicker.model/codes_side_colorpicker_model_OkhslColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_OkhslColor$stableprop|#static{}codes_side_colorpicker_model_OkhslColor$stableprop[0] +final val codes.side.colorpicker.model/codes_side_colorpicker_model_OkhsvColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_OkhsvColor$stableprop|#static{}codes_side_colorpicker_model_OkhsvColor$stableprop[0] +final val codes.side.colorpicker.model/codes_side_colorpicker_model_OklabColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_OklabColor$stableprop|#static{}codes_side_colorpicker_model_OklabColor$stableprop[0] +final val codes.side.colorpicker.model/codes_side_colorpicker_model_OklchColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_OklchColor$stableprop|#static{}codes_side_colorpicker_model_OklchColor$stableprop[0] final val codes.side.colorpicker.model/codes_side_colorpicker_model_RgbColor$stableprop // codes.side.colorpicker.model/codes_side_colorpicker_model_RgbColor$stableprop|#static{}codes_side_colorpicker_model_RgbColor$stableprop[0] final val codes.side.colorpicker.state/codes_side_colorpicker_state_ColorPickerState$stableprop // codes.side.colorpicker.state/codes_side_colorpicker_state_ColorPickerState$stableprop|#static{}codes_side_colorpicker_state_ColorPickerState$stableprop[0] final val codes.side.colorpicker.theme/codes_side_colorpicker_theme_ColorPickerColors$stableprop // codes.side.colorpicker.theme/codes_side_colorpicker_theme_ColorPickerColors$stableprop|#static{}codes_side_colorpicker_theme_ColorPickerColors$stableprop[0] @@ -272,6 +440,10 @@ final val codes.side.colorpicker.theme/codes_side_colorpicker_theme_ColorPickerS final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toCmykColor(): codes.side.colorpicker.model/CmykColor // codes.side.colorpicker.conversion/toCmykColor|toCmykColor@androidx.compose.ui.graphics.Color(){}[0] final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toHslColor(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHslColor|toHslColor@androidx.compose.ui.graphics.Color(){}[0] final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toLabColor(): codes.side.colorpicker.model/LabColor // codes.side.colorpicker.conversion/toLabColor|toLabColor@androidx.compose.ui.graphics.Color(){}[0] +final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toOkhslColor(): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.conversion/toOkhslColor|toOkhslColor@androidx.compose.ui.graphics.Color(){}[0] +final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toOkhsvColor(): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.conversion/toOkhsvColor|toOkhsvColor@androidx.compose.ui.graphics.Color(){}[0] +final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toOklabColor(): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.conversion/toOklabColor|toOklabColor@androidx.compose.ui.graphics.Color(){}[0] +final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toOklchColor(): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.conversion/toOklchColor|toOklchColor@androidx.compose.ui.graphics.Color(){}[0] final fun (androidx.compose.ui.graphics/Color).codes.side.colorpicker.conversion/toRgbColor(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgbColor|toRgbColor@androidx.compose.ui.graphics.Color(){}[0] final fun (codes.side.colorpicker.model/CmykColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.CmykColor(){}[0] final fun (codes.side.colorpicker.model/CmykColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.CmykColor(){}[0] @@ -281,27 +453,61 @@ final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.convers final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toCmyk(): codes.side.colorpicker.model/CmykColor // codes.side.colorpicker.conversion/toCmyk|toCmyk@codes.side.colorpicker.model.HslColor(){}[0] final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.HslColor(){}[0] final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toLab(): codes.side.colorpicker.model/LabColor // codes.side.colorpicker.conversion/toLab|toLab@codes.side.colorpicker.model.HslColor(){}[0] +final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toOkhsl(): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.conversion/toOkhsl|toOkhsl@codes.side.colorpicker.model.HslColor(){}[0] +final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toOkhsv(): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.conversion/toOkhsv|toOkhsv@codes.side.colorpicker.model.HslColor(){}[0] +final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toOklab(): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.conversion/toOklab|toOklab@codes.side.colorpicker.model.HslColor(){}[0] +final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toOklch(): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.conversion/toOklch|toOklch@codes.side.colorpicker.model.HslColor(){}[0] final fun (codes.side.colorpicker.model/HslColor).codes.side.colorpicker.conversion/toRgb(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgb|toRgb@codes.side.colorpicker.model.HslColor(){}[0] final fun (codes.side.colorpicker.model/LabColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.LabColor(){}[0] final fun (codes.side.colorpicker.model/LabColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.LabColor(){}[0] final fun (codes.side.colorpicker.model/LabColor).codes.side.colorpicker.conversion/toHsl(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHsl|toHsl@codes.side.colorpicker.model.LabColor(){}[0] final fun (codes.side.colorpicker.model/LabColor).codes.side.colorpicker.conversion/toRgb(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgb|toRgb@codes.side.colorpicker.model.LabColor(){}[0] +final fun (codes.side.colorpicker.model/OkhslColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.OkhslColor(){}[0] +final fun (codes.side.colorpicker.model/OkhslColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.OkhslColor(){}[0] +final fun (codes.side.colorpicker.model/OkhslColor).codes.side.colorpicker.conversion/toHsl(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHsl|toHsl@codes.side.colorpicker.model.OkhslColor(){}[0] +final fun (codes.side.colorpicker.model/OkhslColor).codes.side.colorpicker.conversion/toRgb(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgb|toRgb@codes.side.colorpicker.model.OkhslColor(){}[0] +final fun (codes.side.colorpicker.model/OkhsvColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.OkhsvColor(){}[0] +final fun (codes.side.colorpicker.model/OkhsvColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.OkhsvColor(){}[0] +final fun (codes.side.colorpicker.model/OkhsvColor).codes.side.colorpicker.conversion/toHsl(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHsl|toHsl@codes.side.colorpicker.model.OkhsvColor(){}[0] +final fun (codes.side.colorpicker.model/OkhsvColor).codes.side.colorpicker.conversion/toRgb(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgb|toRgb@codes.side.colorpicker.model.OkhsvColor(){}[0] +final fun (codes.side.colorpicker.model/OklabColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.OklabColor(){}[0] +final fun (codes.side.colorpicker.model/OklabColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.OklabColor(){}[0] +final fun (codes.side.colorpicker.model/OklabColor).codes.side.colorpicker.conversion/toHsl(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHsl|toHsl@codes.side.colorpicker.model.OklabColor(){}[0] +final fun (codes.side.colorpicker.model/OklabColor).codes.side.colorpicker.conversion/toOklch(): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.conversion/toOklch|toOklch@codes.side.colorpicker.model.OklabColor(){}[0] +final fun (codes.side.colorpicker.model/OklabColor).codes.side.colorpicker.conversion/toRgb(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgb|toRgb@codes.side.colorpicker.model.OklabColor(){}[0] +final fun (codes.side.colorpicker.model/OklchColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.OklchColor(){}[0] +final fun (codes.side.colorpicker.model/OklchColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.OklchColor(){}[0] +final fun (codes.side.colorpicker.model/OklchColor).codes.side.colorpicker.conversion/toHsl(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHsl|toHsl@codes.side.colorpicker.model.OklchColor(){}[0] +final fun (codes.side.colorpicker.model/OklchColor).codes.side.colorpicker.conversion/toOklab(): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.conversion/toOklab|toOklab@codes.side.colorpicker.model.OklchColor(){}[0] +final fun (codes.side.colorpicker.model/OklchColor).codes.side.colorpicker.conversion/toRgb(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgb|toRgb@codes.side.colorpicker.model.OklchColor(){}[0] final fun (codes.side.colorpicker.model/PickerColor).codes.side.colorpicker.conversion/toHexString(kotlin/Boolean = ...): kotlin/String // codes.side.colorpicker.conversion/toHexString|toHexString@codes.side.colorpicker.model.PickerColor(kotlin.Boolean){}[0] final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toArgbInt(): kotlin/Int // codes.side.colorpicker.conversion/toArgbInt|toArgbInt@codes.side.colorpicker.model.RgbColor(){}[0] final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toCmyk(): codes.side.colorpicker.model/CmykColor // codes.side.colorpicker.conversion/toCmyk|toCmyk@codes.side.colorpicker.model.RgbColor(){}[0] final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toComposeColor(): androidx.compose.ui.graphics/Color // codes.side.colorpicker.conversion/toComposeColor|toComposeColor@codes.side.colorpicker.model.RgbColor(){}[0] final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toHsl(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHsl|toHsl@codes.side.colorpicker.model.RgbColor(){}[0] final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toLab(): codes.side.colorpicker.model/LabColor // codes.side.colorpicker.conversion/toLab|toLab@codes.side.colorpicker.model.RgbColor(){}[0] +final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toOkhsl(): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.conversion/toOkhsl|toOkhsl@codes.side.colorpicker.model.RgbColor(){}[0] +final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toOkhsv(): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.conversion/toOkhsv|toOkhsv@codes.side.colorpicker.model.RgbColor(){}[0] +final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toOklab(): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.conversion/toOklab|toOklab@codes.side.colorpicker.model.RgbColor(){}[0] +final fun (codes.side.colorpicker.model/RgbColor).codes.side.colorpicker.conversion/toOklch(): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.conversion/toOklch|toOklch@codes.side.colorpicker.model.RgbColor(){}[0] final fun (kotlin/Int).codes.side.colorpicker.conversion/toCmykColor(): codes.side.colorpicker.model/CmykColor // codes.side.colorpicker.conversion/toCmykColor|toCmykColor@kotlin.Int(){}[0] final fun (kotlin/Int).codes.side.colorpicker.conversion/toHexColorString(kotlin/Boolean = ...): kotlin/String // codes.side.colorpicker.conversion/toHexColorString|toHexColorString@kotlin.Int(kotlin.Boolean){}[0] final fun (kotlin/Int).codes.side.colorpicker.conversion/toHslColor(): codes.side.colorpicker.model/HslColor // codes.side.colorpicker.conversion/toHslColor|toHslColor@kotlin.Int(){}[0] final fun (kotlin/Int).codes.side.colorpicker.conversion/toLabColor(): codes.side.colorpicker.model/LabColor // codes.side.colorpicker.conversion/toLabColor|toLabColor@kotlin.Int(){}[0] +final fun (kotlin/Int).codes.side.colorpicker.conversion/toOkhslColor(): codes.side.colorpicker.model/OkhslColor // codes.side.colorpicker.conversion/toOkhslColor|toOkhslColor@kotlin.Int(){}[0] +final fun (kotlin/Int).codes.side.colorpicker.conversion/toOkhsvColor(): codes.side.colorpicker.model/OkhsvColor // codes.side.colorpicker.conversion/toOkhsvColor|toOkhsvColor@kotlin.Int(){}[0] +final fun (kotlin/Int).codes.side.colorpicker.conversion/toOklabColor(): codes.side.colorpicker.model/OklabColor // codes.side.colorpicker.conversion/toOklabColor|toOklabColor@kotlin.Int(){}[0] +final fun (kotlin/Int).codes.side.colorpicker.conversion/toOklchColor(): codes.side.colorpicker.model/OklchColor // codes.side.colorpicker.conversion/toOklchColor|toOklchColor@kotlin.Int(){}[0] final fun (kotlin/Int).codes.side.colorpicker.conversion/toRgbColor(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgbColor|toRgbColor@kotlin.Int(){}[0] final fun (kotlin/String).codes.side.colorpicker.conversion/toRgbColor(): codes.side.colorpicker.model/RgbColor // codes.side.colorpicker.conversion/toRgbColor|toRgbColor@kotlin.String(){}[0] final fun (kotlin/String).codes.side.colorpicker.conversion/toRgbColorOrNull(): codes.side.colorpicker.model/RgbColor? // codes.side.colorpicker.conversion/toRgbColorOrNull|toRgbColorOrNull@kotlin.String(){}[0] final fun codes.side.colorpicker.model/codes_side_colorpicker_model_CmykColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_CmykColor$stableprop_getter|codes_side_colorpicker_model_CmykColor$stableprop_getter(){}[0] final fun codes.side.colorpicker.model/codes_side_colorpicker_model_HslColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_HslColor$stableprop_getter|codes_side_colorpicker_model_HslColor$stableprop_getter(){}[0] final fun codes.side.colorpicker.model/codes_side_colorpicker_model_LabColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_LabColor$stableprop_getter|codes_side_colorpicker_model_LabColor$stableprop_getter(){}[0] +final fun codes.side.colorpicker.model/codes_side_colorpicker_model_OkhslColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_OkhslColor$stableprop_getter|codes_side_colorpicker_model_OkhslColor$stableprop_getter(){}[0] +final fun codes.side.colorpicker.model/codes_side_colorpicker_model_OkhsvColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_OkhsvColor$stableprop_getter|codes_side_colorpicker_model_OkhsvColor$stableprop_getter(){}[0] +final fun codes.side.colorpicker.model/codes_side_colorpicker_model_OklabColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_OklabColor$stableprop_getter|codes_side_colorpicker_model_OklabColor$stableprop_getter(){}[0] +final fun codes.side.colorpicker.model/codes_side_colorpicker_model_OklchColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_OklchColor$stableprop_getter|codes_side_colorpicker_model_OklchColor$stableprop_getter(){}[0] final fun codes.side.colorpicker.model/codes_side_colorpicker_model_RgbColor$stableprop_getter(): kotlin/Int // codes.side.colorpicker.model/codes_side_colorpicker_model_RgbColor$stableprop_getter|codes_side_colorpicker_model_RgbColor$stableprop_getter(){}[0] final fun codes.side.colorpicker.state/codes_side_colorpicker_state_ColorPickerState$stableprop_getter(): kotlin/Int // codes.side.colorpicker.state/codes_side_colorpicker_state_ColorPickerState$stableprop_getter|codes_side_colorpicker_state_ColorPickerState$stableprop_getter(){}[0] final fun codes.side.colorpicker.state/rememberColorPickerState(codes.side.colorpicker.model/PickerColor?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): codes.side.colorpicker.state/ColorPickerState // codes.side.colorpicker.state/rememberColorPickerState|rememberColorPickerState(codes.side.colorpicker.model.PickerColor?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] @@ -326,6 +532,14 @@ final fun codes.side.colorpicker.ui/LabColorPicker(codes.side.colorpicker.state/ final fun codes.side.colorpicker.ui/LightnessLabSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/LightnessLabSlider|LightnessLabSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] final fun codes.side.colorpicker.ui/LightnessSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/LightnessSlider|LightnessSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] final fun codes.side.colorpicker.ui/MagentaSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/MagentaSlider|MagentaSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhslColorPicker(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, kotlin/Boolean, codes.side.colorpicker.state/ColoringMode?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhslColorPicker|OkhslColorPicker(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;kotlin.Boolean;codes.side.colorpicker.state.ColoringMode?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhslHueSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhslHueSlider|OkhslHueSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhslLightnessSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhslLightnessSlider|OkhslLightnessSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhslSaturationSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhslSaturationSlider|OkhslSaturationSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhsvColorPicker(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, kotlin/Boolean, codes.side.colorpicker.state/ColoringMode?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhsvColorPicker|OkhsvColorPicker(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;kotlin.Boolean;codes.side.colorpicker.state.ColoringMode?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhsvHueSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhsvHueSlider|OkhsvHueSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhsvSaturationSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhsvSaturationSlider|OkhsvSaturationSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] +final fun codes.side.colorpicker.ui/OkhsvValueSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/OkhsvValueSlider|OkhsvValueSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] final fun codes.side.colorpicker.ui/RedSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/RedSlider|RedSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] final fun codes.side.colorpicker.ui/RgbColorPicker(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, kotlin/Boolean, codes.side.colorpicker.state/ColoringMode?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/RgbColorPicker|RgbColorPicker(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;kotlin.Boolean;codes.side.colorpicker.state.ColoringMode?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] final fun codes.side.colorpicker.ui/SaturationSlider(codes.side.colorpicker.state/ColorPickerState, androidx.compose.ui/Modifier?, codes.side.colorpicker.state/ColoringMode?, kotlin/Function2?, kotlin/Function2?, kotlin/String?, kotlin/String?, codes.side.colorpicker.theme/ColorPickerColors?, codes.side.colorpicker.theme/ColorPickerShapes?, kotlin/Function3?, androidx.compose.ui.unit/Dp, androidx.compose.ui.unit/Dp, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int, kotlin/Int) // codes.side.colorpicker.ui/SaturationSlider|SaturationSlider(codes.side.colorpicker.state.ColorPickerState;androidx.compose.ui.Modifier?;codes.side.colorpicker.state.ColoringMode?;kotlin.Function2?;kotlin.Function2?;kotlin.String?;kotlin.String?;codes.side.colorpicker.theme.ColorPickerColors?;codes.side.colorpicker.theme.ColorPickerShapes?;kotlin.Function3?;androidx.compose.ui.unit.Dp;androidx.compose.ui.unit.Dp;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int;kotlin.Int){}[0] diff --git a/colorpicker/api/jvm/colorpicker.api b/colorpicker/api/jvm/colorpicker.api index 9dab9c8..89e2ea6 100644 --- a/colorpicker/api/jvm/colorpicker.api +++ b/colorpicker/api/jvm/colorpicker.api @@ -17,9 +17,17 @@ public final class codes/side/colorpicker/conversion/ComposeColorExtKt { public static final fun toComposeColor (Lcodes/side/colorpicker/model/CmykColor;)J public static final fun toComposeColor (Lcodes/side/colorpicker/model/HslColor;)J public static final fun toComposeColor (Lcodes/side/colorpicker/model/LabColor;)J + public static final fun toComposeColor (Lcodes/side/colorpicker/model/OkhslColor;)J + public static final fun toComposeColor (Lcodes/side/colorpicker/model/OkhsvColor;)J + public static final fun toComposeColor (Lcodes/side/colorpicker/model/OklabColor;)J + public static final fun toComposeColor (Lcodes/side/colorpicker/model/OklchColor;)J public static final fun toComposeColor (Lcodes/side/colorpicker/model/RgbColor;)J public static final fun toHslColor-8_81llA (J)Lcodes/side/colorpicker/model/HslColor; public static final fun toLabColor-8_81llA (J)Lcodes/side/colorpicker/model/LabColor; + public static final fun toOkhslColor-8_81llA (J)Lcodes/side/colorpicker/model/OkhslColor; + public static final fun toOkhsvColor-8_81llA (J)Lcodes/side/colorpicker/model/OkhsvColor; + public static final fun toOklabColor-8_81llA (J)Lcodes/side/colorpicker/model/OklabColor; + public static final fun toOklchColor-8_81llA (J)Lcodes/side/colorpicker/model/OklchColor; public static final fun toRgbColor-8_81llA (J)Lcodes/side/colorpicker/model/RgbColor; } @@ -48,6 +56,41 @@ public final class codes/side/colorpicker/conversion/LabConversionsKt { public static final fun toRgb (Lcodes/side/colorpicker/model/LabColor;)Lcodes/side/colorpicker/model/RgbColor; } +public final class codes/side/colorpicker/conversion/OkhslConversionsKt { + public static final fun toArgbInt (Lcodes/side/colorpicker/model/OkhslColor;)I + public static final fun toHsl (Lcodes/side/colorpicker/model/OkhslColor;)Lcodes/side/colorpicker/model/HslColor; + public static final fun toOkhsl (Lcodes/side/colorpicker/model/HslColor;)Lcodes/side/colorpicker/model/OkhslColor; + public static final fun toOkhsl (Lcodes/side/colorpicker/model/RgbColor;)Lcodes/side/colorpicker/model/OkhslColor; + public static final fun toOkhslColor (I)Lcodes/side/colorpicker/model/OkhslColor; + public static final fun toRgb (Lcodes/side/colorpicker/model/OkhslColor;)Lcodes/side/colorpicker/model/RgbColor; +} + +public final class codes/side/colorpicker/conversion/OkhsvConversionsKt { + public static final fun toArgbInt (Lcodes/side/colorpicker/model/OkhsvColor;)I + public static final fun toHsl (Lcodes/side/colorpicker/model/OkhsvColor;)Lcodes/side/colorpicker/model/HslColor; + public static final fun toOkhsv (Lcodes/side/colorpicker/model/HslColor;)Lcodes/side/colorpicker/model/OkhsvColor; + public static final fun toOkhsv (Lcodes/side/colorpicker/model/RgbColor;)Lcodes/side/colorpicker/model/OkhsvColor; + public static final fun toOkhsvColor (I)Lcodes/side/colorpicker/model/OkhsvColor; + public static final fun toRgb (Lcodes/side/colorpicker/model/OkhsvColor;)Lcodes/side/colorpicker/model/RgbColor; +} + +public final class codes/side/colorpicker/conversion/OklabConversionsKt { + public static final fun toArgbInt (Lcodes/side/colorpicker/model/OklabColor;)I + public static final fun toArgbInt (Lcodes/side/colorpicker/model/OklchColor;)I + public static final fun toHsl (Lcodes/side/colorpicker/model/OklabColor;)Lcodes/side/colorpicker/model/HslColor; + public static final fun toHsl (Lcodes/side/colorpicker/model/OklchColor;)Lcodes/side/colorpicker/model/HslColor; + public static final fun toOklab (Lcodes/side/colorpicker/model/HslColor;)Lcodes/side/colorpicker/model/OklabColor; + public static final fun toOklab (Lcodes/side/colorpicker/model/OklchColor;)Lcodes/side/colorpicker/model/OklabColor; + public static final fun toOklab (Lcodes/side/colorpicker/model/RgbColor;)Lcodes/side/colorpicker/model/OklabColor; + public static final fun toOklabColor (I)Lcodes/side/colorpicker/model/OklabColor; + public static final fun toOklch (Lcodes/side/colorpicker/model/HslColor;)Lcodes/side/colorpicker/model/OklchColor; + public static final fun toOklch (Lcodes/side/colorpicker/model/OklabColor;)Lcodes/side/colorpicker/model/OklchColor; + public static final fun toOklch (Lcodes/side/colorpicker/model/RgbColor;)Lcodes/side/colorpicker/model/OklchColor; + public static final fun toOklchColor (I)Lcodes/side/colorpicker/model/OklchColor; + public static final fun toRgb (Lcodes/side/colorpicker/model/OklabColor;)Lcodes/side/colorpicker/model/RgbColor; + public static final fun toRgb (Lcodes/side/colorpicker/model/OklchColor;)Lcodes/side/colorpicker/model/RgbColor; +} + public final class codes/side/colorpicker/model/CmykColor : codes/side/colorpicker/model/PickerColor { public static final field $stable I public static final field Companion Lcodes/side/colorpicker/model/CmykColor$Companion; @@ -135,6 +178,118 @@ public final class codes/side/colorpicker/model/LabColor$Companion { public final fun getWhite ()Lcodes/side/colorpicker/model/LabColor; } +public final class codes/side/colorpicker/model/OkhslColor : codes/side/colorpicker/model/PickerColor { + public static final field $stable I + public static final field Companion Lcodes/side/colorpicker/model/OkhslColor$Companion; + public fun ()V + public fun (FFFF)V + public synthetic fun (FFFFILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (FFFF)Lcodes/side/colorpicker/model/OkhslColor; + public static synthetic fun copy$default (Lcodes/side/colorpicker/model/OkhslColor;FFFFILjava/lang/Object;)Lcodes/side/colorpicker/model/OkhslColor; + public fun equals (Ljava/lang/Object;)Z + public fun getAlpha ()F + public final fun getHue ()F + public final fun getIntAlpha ()I + public final fun getIntHue ()I + public final fun getIntLightness ()I + public final fun getIntSaturation ()I + public final fun getLightness ()F + public final fun getSaturation ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class codes/side/colorpicker/model/OkhslColor$Companion { + public final fun fromInt (IIII)Lcodes/side/colorpicker/model/OkhslColor; + public static synthetic fun fromInt$default (Lcodes/side/colorpicker/model/OkhslColor$Companion;IIIIILjava/lang/Object;)Lcodes/side/colorpicker/model/OkhslColor; + public final fun getBlack ()Lcodes/side/colorpicker/model/OkhslColor; + public final fun getWhite ()Lcodes/side/colorpicker/model/OkhslColor; +} + +public final class codes/side/colorpicker/model/OkhsvColor : codes/side/colorpicker/model/PickerColor { + public static final field $stable I + public static final field Companion Lcodes/side/colorpicker/model/OkhsvColor$Companion; + public fun ()V + public fun (FFFF)V + public synthetic fun (FFFFILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (FFFF)Lcodes/side/colorpicker/model/OkhsvColor; + public static synthetic fun copy$default (Lcodes/side/colorpicker/model/OkhsvColor;FFFFILjava/lang/Object;)Lcodes/side/colorpicker/model/OkhsvColor; + public fun equals (Ljava/lang/Object;)Z + public fun getAlpha ()F + public final fun getHue ()F + public final fun getIntAlpha ()I + public final fun getIntHue ()I + public final fun getIntSaturation ()I + public final fun getIntValue ()I + public final fun getSaturation ()F + public final fun getValue ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class codes/side/colorpicker/model/OkhsvColor$Companion { + public final fun fromInt (IIII)Lcodes/side/colorpicker/model/OkhsvColor; + public static synthetic fun fromInt$default (Lcodes/side/colorpicker/model/OkhsvColor$Companion;IIIIILjava/lang/Object;)Lcodes/side/colorpicker/model/OkhsvColor; + public final fun getBlack ()Lcodes/side/colorpicker/model/OkhsvColor; + public final fun getWhite ()Lcodes/side/colorpicker/model/OkhsvColor; +} + +public final class codes/side/colorpicker/model/OklabColor : codes/side/colorpicker/model/PickerColor { + public static final field $stable I + public static final field Companion Lcodes/side/colorpicker/model/OklabColor$Companion; + public fun ()V + public fun (FFFF)V + public synthetic fun (FFFFILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (FFFF)Lcodes/side/colorpicker/model/OklabColor; + public static synthetic fun copy$default (Lcodes/side/colorpicker/model/OklabColor;FFFFILjava/lang/Object;)Lcodes/side/colorpicker/model/OklabColor; + public fun equals (Ljava/lang/Object;)Z + public final fun getA ()F + public fun getAlpha ()F + public final fun getB ()F + public final fun getIntA ()I + public final fun getIntAlpha ()I + public final fun getIntB ()I + public final fun getIntL ()I + public final fun getL ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class codes/side/colorpicker/model/OklabColor$Companion { + public final fun fromInt (IIII)Lcodes/side/colorpicker/model/OklabColor; + public static synthetic fun fromInt$default (Lcodes/side/colorpicker/model/OklabColor$Companion;IIIIILjava/lang/Object;)Lcodes/side/colorpicker/model/OklabColor; + public final fun getBlack ()Lcodes/side/colorpicker/model/OklabColor; + public final fun getWhite ()Lcodes/side/colorpicker/model/OklabColor; +} + +public final class codes/side/colorpicker/model/OklchColor : codes/side/colorpicker/model/PickerColor { + public static final field $stable I + public static final field Companion Lcodes/side/colorpicker/model/OklchColor$Companion; + public fun ()V + public fun (FFFF)V + public synthetic fun (FFFFILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (FFFF)Lcodes/side/colorpicker/model/OklchColor; + public static synthetic fun copy$default (Lcodes/side/colorpicker/model/OklchColor;FFFFILjava/lang/Object;)Lcodes/side/colorpicker/model/OklchColor; + public fun equals (Ljava/lang/Object;)Z + public fun getAlpha ()F + public final fun getChroma ()F + public final fun getHue ()F + public final fun getIntAlpha ()I + public final fun getIntChroma ()I + public final fun getIntHue ()I + public final fun getIntL ()I + public final fun getL ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class codes/side/colorpicker/model/OklchColor$Companion { + public final fun fromInt (IIII)Lcodes/side/colorpicker/model/OklchColor; + public static synthetic fun fromInt$default (Lcodes/side/colorpicker/model/OklchColor$Companion;IIIIILjava/lang/Object;)Lcodes/side/colorpicker/model/OklchColor; + public final fun getBlack ()Lcodes/side/colorpicker/model/OklchColor; + public final fun getWhite ()Lcodes/side/colorpicker/model/OklchColor; +} + public abstract interface class codes/side/colorpicker/model/PickerColor { public abstract fun getAlpha ()F } @@ -179,6 +334,10 @@ public final class codes/side/colorpicker/state/ColorPickerState { public final fun getCmykColor ()Lcodes/side/colorpicker/model/CmykColor; public final fun getHslColor ()Lcodes/side/colorpicker/model/HslColor; public final fun getLabColor ()Lcodes/side/colorpicker/model/LabColor; + public final fun getOkhslColor ()Lcodes/side/colorpicker/model/OkhslColor; + public final fun getOkhsvColor ()Lcodes/side/colorpicker/model/OkhsvColor; + public final fun getOklabColor ()Lcodes/side/colorpicker/model/OklabColor; + public final fun getOklchColor ()Lcodes/side/colorpicker/model/OklchColor; public final fun getPickerColor ()Lcodes/side/colorpicker/model/PickerColor; public final fun getRgbColor ()Lcodes/side/colorpicker/model/RgbColor; public final fun isInteracting ()Z @@ -189,6 +348,10 @@ public final class codes/side/colorpicker/state/ColorPickerState { public final fun updateFromCmyk (Lcodes/side/colorpicker/model/CmykColor;)V public final fun updateFromHsl (Lcodes/side/colorpicker/model/HslColor;)V public final fun updateFromLab (Lcodes/side/colorpicker/model/LabColor;)V + public final fun updateFromOkhsl (Lcodes/side/colorpicker/model/OkhslColor;)V + public final fun updateFromOkhsv (Lcodes/side/colorpicker/model/OkhsvColor;)V + public final fun updateFromOklab (Lcodes/side/colorpicker/model/OklabColor;)V + public final fun updateFromOklch (Lcodes/side/colorpicker/model/OklchColor;)V public final fun updateFromRgb (Lcodes/side/colorpicker/model/RgbColor;)V public final fun updateGreen (F)V public final fun updateHue (F)V @@ -198,6 +361,18 @@ public final class codes/side/colorpicker/state/ColorPickerState { public final fun updateLabLightness (F)V public final fun updateLightness (F)V public final fun updateMagenta (F)V + public final fun updateOkhslHue (F)V + public final fun updateOkhslLightness (F)V + public final fun updateOkhslSaturation (F)V + public final fun updateOkhsvHue (F)V + public final fun updateOkhsvSaturation (F)V + public final fun updateOkhsvValue (F)V + public final fun updateOklabA (F)V + public final fun updateOklabB (F)V + public final fun updateOklabLightness (F)V + public final fun updateOklchChroma (F)V + public final fun updateOklchHue (F)V + public final fun updateOklchLightness (F)V public final fun updateRed (F)V public final fun updateSaturation (F)V public final fun updateYellow (F)V @@ -316,6 +491,22 @@ public final class codes/side/colorpicker/ui/ComposableSingletons$LabSlidersKt { public final fun getLambda$1980484084$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; } +public final class codes/side/colorpicker/ui/ComposableSingletons$OkhslSlidersKt { + public static final field INSTANCE Lcodes/side/colorpicker/ui/ComposableSingletons$OkhslSlidersKt; + public fun ()V + public final fun getLambda$1151294969$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$501007118$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$879958294$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; +} + +public final class codes/side/colorpicker/ui/ComposableSingletons$OkhsvSlidersKt { + public static final field INSTANCE Lcodes/side/colorpicker/ui/ComposableSingletons$OkhsvSlidersKt; + public fun ()V + public final fun getLambda$-2089135351$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$-378521514$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$-702366814$codes_side_colorpicker ()Lkotlin/jvm/functions/Function2; +} + public final class codes/side/colorpicker/ui/ComposableSingletons$RgbSlidersKt { public static final field INSTANCE Lcodes/side/colorpicker/ui/ComposableSingletons$RgbSlidersKt; public fun ()V @@ -344,6 +535,26 @@ public final class codes/side/colorpicker/ui/LabSlidersKt { public static final fun LightnessLabSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V } +public final class codes/side/colorpicker/ui/OkhslColorPickerKt { + public static final fun OkhslColorPicker (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;ZLcodes/side/colorpicker/state/ColoringMode;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Landroidx/compose/runtime/Composer;II)V +} + +public final class codes/side/colorpicker/ui/OkhslSlidersKt { + public static final fun OkhslHueSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V + public static final fun OkhslLightnessSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V + public static final fun OkhslSaturationSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V +} + +public final class codes/side/colorpicker/ui/OkhsvColorPickerKt { + public static final fun OkhsvColorPicker (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;ZLcodes/side/colorpicker/state/ColoringMode;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Landroidx/compose/runtime/Composer;II)V +} + +public final class codes/side/colorpicker/ui/OkhsvSlidersKt { + public static final fun OkhsvHueSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V + public static final fun OkhsvSaturationSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V + public static final fun OkhsvValueSlider-7LhMbNw (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;Lcodes/side/colorpicker/state/ColoringMode;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Ljava/lang/String;Ljava/lang/String;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Lkotlin/jvm/functions/Function3;FFLandroidx/compose/runtime/Composer;III)V +} + public final class codes/side/colorpicker/ui/RgbColorPickerKt { public static final fun RgbColorPicker (Lcodes/side/colorpicker/state/ColorPickerState;Landroidx/compose/ui/Modifier;ZLcodes/side/colorpicker/state/ColoringMode;Lcodes/side/colorpicker/theme/ColorPickerColors;Lcodes/side/colorpicker/theme/ColorPickerShapes;Landroidx/compose/runtime/Composer;II)V } diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/ComposeColorExt.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/ComposeColorExt.kt index 156699b..92c8164 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/ComposeColorExt.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/ComposeColorExt.kt @@ -5,6 +5,10 @@ import androidx.compose.ui.graphics.colorspace.ColorSpaces import codes.side.colorpicker.model.CmykColor import codes.side.colorpicker.model.HslColor import codes.side.colorpicker.model.LabColor +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor import codes.side.colorpicker.model.RgbColor /** Converts this color to a Compose [Color] in the sRGB color space, preserving alpha. */ @@ -20,6 +24,24 @@ public fun CmykColor.toComposeColor(): Color = toRgb().toComposeColor() /** Converts this color to a Compose [Color] in the sRGB color space, preserving alpha. */ public fun LabColor.toComposeColor(): Color = toRgb().toComposeColor() +/** + * Converts this color to a Compose [Color] in the sRGB color space, preserving alpha. + * Colors outside the display gamut are mapped, not clipped; see [OklabColor.toRgb]. + */ +public fun OklabColor.toComposeColor(): Color = toRgb().toComposeColor() + +/** + * Converts this color to a Compose [Color] in the sRGB color space, preserving alpha. + * Colors outside the display gamut are mapped, not clipped; see [OklchColor.toRgb]. + */ +public fun OklchColor.toComposeColor(): Color = toRgb().toComposeColor() + +/** Converts this color to a Compose [Color] in the sRGB color space, preserving alpha. */ +public fun OkhslColor.toComposeColor(): Color = toRgb().toComposeColor() + +/** Converts this color to a Compose [Color] in the sRGB color space, preserving alpha. */ +public fun OkhsvColor.toComposeColor(): Color = toRgb().toComposeColor() + /** * Converts this Compose [Color] to an [RgbColor], converting to the sRGB color space * first if needed (clamping any out-of-gamut channels to `0..1`). @@ -45,3 +67,15 @@ public fun Color.toCmykColor(): CmykColor = toRgbColor().toCmyk() /** Converts this Compose [Color] to a [LabColor]; see [Color.toRgbColor] for sRGB handling. */ public fun Color.toLabColor(): LabColor = toRgbColor().toLab() + +/** Converts this Compose [Color] to an [OklabColor]; see [Color.toRgbColor] for sRGB handling. */ +public fun Color.toOklabColor(): OklabColor = toRgbColor().toOklab() + +/** Converts this Compose [Color] to an [OklchColor]; see [Color.toRgbColor] for sRGB handling. */ +public fun Color.toOklchColor(): OklchColor = toRgbColor().toOklch() + +/** Converts this Compose [Color] to an [OkhslColor]; see [Color.toRgbColor] for sRGB handling. */ +public fun Color.toOkhslColor(): OkhslColor = toRgbColor().toOkhsl() + +/** Converts this Compose [Color] to an [OkhsvColor]; see [Color.toRgbColor] for sRGB handling. */ +public fun Color.toOkhsvColor(): OkhsvColor = toRgbColor().toOkhsv() diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt new file mode 100644 index 0000000..b71c3e3 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt @@ -0,0 +1,75 @@ +package codes.side.colorpicker.conversion + +import kotlin.math.hypot + +/** + * The CSS Color 4 gamut mapping algorithm: binary search on chroma with local-MINDE + * clipping. See https://www.w3.org/TR/css-color-4/#binsearch. + * + * Two simpler approaches are wrong in opposite directions, which is why this one is + * neither. Clipping each RGB channel on its own shifts lightness and hue as a side + * effect — push only a* out of range and all three coordinates come back changed. + * Reducing chroma until the color fits, holding lightness and hue, fixes that but + * over-corrects badly on yellows, where the gamut surface curves away from the search + * line and the color arrives visibly washed out. + * + * So chroma is searched down, and at each step the candidate is compared against its own + * clipped version. Once those two are within a just-noticeable difference, clipping has + * become perceptually free and the clipped color wins — which keeps most of the chroma + * that pure reduction would have thrown away. + */ + +// Just-noticeable difference in ΔE-OK, and the search's stopping width. Both from the +// spec; JND is what makes the clipped and searched colors interchangeable. +private const val JND = 0.02 +private const val EPSILON = 0.0001 + +/** + * Maps [origin] to the closest color sRGB can display, in linear light. Colors already + * inside the gamut pass through untouched. + */ +internal fun gamutMapToSrgb(origin: OkLab): LinearRgb { + if (origin.l >= 1.0) return LinearRgb(1.0, 1.0, 1.0) + if (origin.l <= 0.0) return LinearRgb(0.0, 0.0, 0.0) + + val direct = oklabToLinearSrgb(origin) + if (direct.isInGamut()) return direct.clipToUnit() + + val originChroma = hypot(origin.a, origin.b) + val aUnit = origin.a / originChroma + val bUnit = origin.b / originChroma + + var clipped = direct.clipToUnit() + if (deltaEOk(linearSrgbToOklab(clipped), origin) < JND) return clipped + + var min = 0.0 + var max = originChroma + var minInGamut = true + + while (max - min > EPSILON) { + val chroma = (min + max) / 2.0 + val current = OkLab(origin.l, aUnit * chroma, bUnit * chroma) + val currentRgb = oklabToLinearSrgb(current) + + if (minInGamut && currentRgb.isInGamut()) { + min = chroma + continue + } + + clipped = currentRgb.clipToUnit() + val error = deltaEOk(linearSrgbToOklab(clipped), current) + + if (error >= JND) { + max = chroma + } else if (JND - error < EPSILON) { + return clipped + } else { + // Close enough that clipping is nearly free, but there is still chroma to + // recover; keep searching upward with clipping now allowed. + minInGamut = false + min = chroma + } + } + + return clipped +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/HexConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/HexConversions.kt index 2e34406..b2b8c7d 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/HexConversions.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/HexConversions.kt @@ -1,8 +1,5 @@ package codes.side.colorpicker.conversion -import codes.side.colorpicker.model.CmykColor -import codes.side.colorpicker.model.HslColor -import codes.side.colorpicker.model.LabColor import codes.side.colorpicker.model.PickerColor import codes.side.colorpicker.model.RgbColor @@ -13,12 +10,8 @@ import codes.side.colorpicker.model.RgbColor * alpha channel comes first: the result is `#AARRGGBB` when [includeAlpha] is `true` * (the default) and `#RRGGBB` otherwise. */ -public fun PickerColor.toHexString(includeAlpha: Boolean = true): String = when (this) { - is RgbColor -> toArgbInt() - is HslColor -> toArgbInt() - is CmykColor -> toArgbInt() - is LabColor -> toArgbInt() -}.toHexColorString(includeAlpha = includeAlpha) +public fun PickerColor.toHexString(includeAlpha: Boolean = true): String = + toRgbColor().toArgbInt().toHexColorString(includeAlpha = includeAlpha) /** * Formats this packed ARGB [Int] as an uppercase hex string with a leading `#`. diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/LabConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/LabConversions.kt index 8ee0ce6..70178cf 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/LabConversions.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/LabConversions.kt @@ -83,7 +83,7 @@ private fun labF(t: Double): Double = internal fun linearize(c: Double): Double = if (c <= 0.04045) c / 12.92 else ((c + 0.055) / 1.055).pow(2.4) -private fun delinearize(c: Double): Double = +internal fun delinearize(c: Double): Double = if (c <= 0.0031308) c * 12.92 else 1.055 * c.pow(1.0 / 2.4) - 0.055 /** Converts this CIELAB color to HSL by way of RGB. Alpha is carried over unchanged. */ diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt new file mode 100644 index 0000000..b234c20 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt @@ -0,0 +1,303 @@ +package codes.side.colorpicker.conversion + +import kotlin.math.cbrt +import kotlin.math.max +import kotlin.math.min +import kotlin.math.sqrt + +/** + * The Oklab machinery shared by the Ok* color spaces: the Oklab transform itself, and + * the sRGB gamut boundary that Okhsl, Okhsv and gamut mapping are all defined against. + * + * Transcribed from Björn Ottosson's reference implementation (`ok_color.h`, MIT), with + * the arithmetic widened to [Double]. The polynomial coefficients below were produced by + * an optimization process against the sRGB gamut and are not derivable by hand — treat + * them as data, not as expressions to simplify. + * + * See https://bottosson.github.io/posts/oklab/ and + * https://bottosson.github.io/posts/gamutclipping/. + */ + +/** A color in Oklab, in the space's own `0..1` lightness scale. */ +internal data class OkLab(val l: Double, val a: Double, val b: Double) + +/** A color in linear-light sRGB, unclamped so out-of-gamut values survive. */ +internal data class LinearRgb(val r: Double, val g: Double, val b: Double) + +/** The lightness and chroma of a hue's cusp — its most colorful point in sRGB. */ +internal data class Cusp(val l: Double, val c: Double) + +/** The cusp expressed as saturation and "tint" gradients, per Ottosson's `to_ST`. */ +internal data class SaturationTint(val s: Double, val t: Double) + +/** The three chroma anchors Okhsl interpolates between at a given lightness. */ +internal data class ChromaAnchors(val c0: Double, val cMid: Double, val cMax: Double) + +internal fun linearSrgbToOklab(c: LinearRgb): OkLab { + val l = 0.4122214708 * c.r + 0.5363325363 * c.g + 0.0514459929 * c.b + val m = 0.2119034982 * c.r + 0.6806995451 * c.g + 0.1073969566 * c.b + val s = 0.0883024619 * c.r + 0.2817188376 * c.g + 0.6299787005 * c.b + + val lRoot = cbrt(l) + val mRoot = cbrt(m) + val sRoot = cbrt(s) + + return OkLab( + l = 0.2104542553 * lRoot + 0.7936177850 * mRoot - 0.0040720468 * sRoot, + a = 1.9779984951 * lRoot - 2.4285922050 * mRoot + 0.4505937099 * sRoot, + b = 0.0259040371 * lRoot + 0.7827717662 * mRoot - 0.8086757660 * sRoot, + ) +} + +internal fun oklabToLinearSrgb(c: OkLab): LinearRgb { + val lRoot = c.l + 0.3963377774 * c.a + 0.2158037573 * c.b + val mRoot = c.l - 0.1055613458 * c.a - 0.0638541728 * c.b + val sRoot = c.l - 0.0894841775 * c.a - 1.2914855480 * c.b + + val l = lRoot * lRoot * lRoot + val m = mRoot * mRoot * mRoot + val s = sRoot * sRoot * sRoot + + return LinearRgb( + r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s, + g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s, + b = -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s, + ) +} + +// Okhsl's lightness is Oklab's L passed through this curve, which stretches the dark end +// so that mid-gray lands near 0.5 the way HSL users expect. +private const val TOE_K1 = 0.206 +private const val TOE_K2 = 0.03 +private const val TOE_K3 = (1.0 + TOE_K1) / (1.0 + TOE_K2) + +internal fun toe(x: Double): Double { + val inner = TOE_K3 * x - TOE_K1 + return 0.5 * (inner + sqrt(inner * inner + 4.0 * TOE_K2 * TOE_K3 * x)) +} + +internal fun toeInv(x: Double): Double = (x * x + TOE_K1 * x) / (TOE_K3 * (x + TOE_K2)) + +/** + * The saturation at which the hue `(aNorm, bNorm)` leaves the sRGB gamut, for the + * channel that goes out first. A polynomial approximation refined by one Halley step, + * which lands within a rounding error of the true boundary. + */ +internal fun computeMaxSaturation(aNorm: Double, bNorm: Double): Double { + val k0: Double + val k1: Double + val k2: Double + val k3: Double + val k4: Double + val wl: Double + val wm: Double + val ws: Double + + if (-1.88170328 * aNorm - 0.80936493 * bNorm > 1.0) { + // Red channel leaves the gamut first. + k0 = 1.19086277; k1 = 1.76576728; k2 = 0.59662641; k3 = 0.75515197; k4 = 0.56771245 + wl = 4.0767416621; wm = -3.3077115913; ws = 0.2309699292 + } else if (1.81444104 * aNorm - 1.19445276 * bNorm > 1.0) { + // Green channel leaves the gamut first. + k0 = 0.73956515; k1 = -0.45954404; k2 = 0.08285427; k3 = 0.12541070; k4 = 0.14503204 + wl = -1.2684380046; wm = 2.6097574011; ws = -0.3413193965 + } else { + // Blue channel leaves the gamut first. + k0 = 1.35733652; k1 = -0.00915799; k2 = -1.15130210; k3 = -0.50559606; k4 = 0.00692167 + wl = -0.0041960863; wm = -0.7034186147; ws = 1.7076147010 + } + + val approx = k0 + k1 * aNorm + k2 * bNorm + k3 * aNorm * aNorm + k4 * aNorm * bNorm + + val kL = 0.3963377774 * aNorm + 0.2158037573 * bNorm + val kM = -0.1055613458 * aNorm - 0.0638541728 * bNorm + val kS = -0.0894841775 * aNorm - 1.2914855480 * bNorm + + val lRoot = 1.0 + approx * kL + val mRoot = 1.0 + approx * kM + val sRoot = 1.0 + approx * kS + + val l = lRoot * lRoot * lRoot + val m = mRoot * mRoot * mRoot + val s = sRoot * sRoot * sRoot + + val lds = 3.0 * kL * lRoot * lRoot + val mds = 3.0 * kM * mRoot * mRoot + val sds = 3.0 * kS * sRoot * sRoot + + val lds2 = 6.0 * kL * kL * lRoot + val mds2 = 6.0 * kM * kM * mRoot + val sds2 = 6.0 * kS * kS * sRoot + + val f = wl * l + wm * m + ws * s + val f1 = wl * lds + wm * mds + ws * sds + val f2 = wl * lds2 + wm * mds2 + ws * sds2 + + return approx - f * f1 / (f1 * f1 - 0.5 * f * f2) +} + +/** The most colorful point of a hue in sRGB, where two channels are at their limit. */ +internal fun findCusp(aNorm: Double, bNorm: Double): Cusp { + val sCusp = computeMaxSaturation(aNorm, bNorm) + val rgbAtMax = oklabToLinearSrgb(OkLab(1.0, sCusp * aNorm, sCusp * bNorm)) + val lCusp = cbrt(1.0 / max(max(rgbAtMax.r, rgbAtMax.g), rgbAtMax.b)) + return Cusp(l = lCusp, c = lCusp * sCusp) +} + +internal fun Cusp.toSaturationTint(): SaturationTint = SaturationTint(s = c / l, t = c / (1.0 - l)) + +/** + * How far along the segment from `(l0, 0)` to `(l1, c1)` the sRGB gamut boundary lies, + * as a fraction in `0..1`. Below the cusp the boundary is a straight line and the answer + * is exact; above it the surface curves, so the linear guess is refined by one Halley + * step per channel and the nearest crossing wins. + */ +internal fun findGamutIntersection( + aNorm: Double, + bNorm: Double, + l1: Double, + c1: Double, + l0: Double, + cusp: Cusp, +): Double { + if ((l1 - l0) * cusp.c - (cusp.l - l0) * c1 <= 0.0) { + return cusp.c * l0 / (c1 * cusp.l + cusp.c * (l0 - l1)) + } + + var t = cusp.c * (l0 - 1.0) / (c1 * (cusp.l - 1.0) + cusp.c * (l0 - l1)) + + val dL = l1 - l0 + val dC = c1 + val kL = 0.3963377774 * aNorm + 0.2158037573 * bNorm + val kM = -0.1055613458 * aNorm - 0.0638541728 * bNorm + val kS = -0.0894841775 * aNorm - 1.2914855480 * bNorm + + val lDt = dL + dC * kL + val mDt = dL + dC * kM + val sDt = dL + dC * kS + + val l = l0 * (1.0 - t) + t * l1 + val c = t * c1 + + val lRoot = l + c * kL + val mRoot = l + c * kM + val sRoot = l + c * kS + + val lCubed = lRoot * lRoot * lRoot + val mCubed = mRoot * mRoot * mRoot + val sCubed = sRoot * sRoot * sRoot + + val ldt = 3.0 * lDt * lRoot * lRoot + val mdt = 3.0 * mDt * mRoot * mRoot + val sdt = 3.0 * sDt * sRoot * sRoot + + val ldt2 = 6.0 * lDt * lDt * lRoot + val mdt2 = 6.0 * mDt * mDt * mRoot + val sdt2 = 6.0 * sDt * sDt * sRoot + + val r = 4.0767416621 * lCubed - 3.3077115913 * mCubed + 0.2309699292 * sCubed - 1.0 + val r1 = 4.0767416621 * ldt - 3.3077115913 * mdt + 0.2309699292 * sdt + val r2 = 4.0767416621 * ldt2 - 3.3077115913 * mdt2 + 0.2309699292 * sdt2 + val uR = r1 / (r1 * r1 - 0.5 * r * r2) + val tR = if (uR >= 0.0) -r * uR else Double.MAX_VALUE + + val g = -1.2684380046 * lCubed + 2.6097574011 * mCubed - 0.3413193965 * sCubed - 1.0 + val g1 = -1.2684380046 * ldt + 2.6097574011 * mdt - 0.3413193965 * sdt + val g2 = -1.2684380046 * ldt2 + 2.6097574011 * mdt2 - 0.3413193965 * sdt2 + val uG = g1 / (g1 * g1 - 0.5 * g * g2) + val tG = if (uG >= 0.0) -g * uG else Double.MAX_VALUE + + val b = -0.0041960863 * lCubed - 0.7034186147 * mCubed + 1.7076147010 * sCubed - 1.0 + val b1 = -0.0041960863 * ldt - 0.7034186147 * mdt + 1.7076147010 * sdt + val b2 = -0.0041960863 * ldt2 - 0.7034186147 * mdt2 + 1.7076147010 * sdt2 + val uB = b1 / (b1 * b1 - 0.5 * b * b2) + val tB = if (uB >= 0.0) -b * uB else Double.MAX_VALUE + + t += min(tR, min(tG, tB)) + return t +} + +/** + * A smooth approximation of the cusp's location. Deliberately biased low — `S_mid` stays + * under `S_max` and `T_mid` under `T_max` — so Okhsl's interpolation never overshoots the + * gamut. + */ +internal fun getSaturationTintMid(aNorm: Double, bNorm: Double): SaturationTint { + val s = 0.11516993 + 1.0 / ( + 7.44778970 + 4.15901240 * bNorm + + aNorm * ( + -2.19557347 + 1.75198401 * bNorm + + aNorm * ( + -2.13704948 - 10.02301043 * bNorm + + aNorm * (-4.24894561 + 5.38770819 * bNorm + 4.69891013 * aNorm) + ) + ) + ) + + val t = 0.11239642 + 1.0 / ( + 1.61320320 - 0.68124379 * bNorm + + aNorm * ( + 0.40370612 + 0.90148123 * bNorm + + aNorm * ( + -0.27087943 + 0.61223990 * bNorm + + aNorm * (0.00299215 - 0.45399568 * bNorm - 0.14661872 * aNorm) + ) + ) + ) + + return SaturationTint(s = s, t = t) +} + +/** + * The chroma at three reference saturations for a given lightness and hue: neutral-ish + * `c0`, the smooth midpoint `cMid`, and the gamut boundary `cMax`. Okhsl's saturation is + * a two-piece interpolation between them. + */ +internal fun getChromaAnchors(l: Double, aNorm: Double, bNorm: Double): ChromaAnchors { + val cusp = findCusp(aNorm, bNorm) + val cMax = findGamutIntersection(aNorm, bNorm, l, 1.0, l, cusp) + val stMax = cusp.toSaturationTint() + + // Compensates for the curvature of the gamut surface, which the triangle below ignores. + val k = cMax / min(l * stMax.s, (1.0 - l) * stMax.t) + + val stMid = getSaturationTintMid(aNorm, bNorm) + val midA = l * stMid.s + val midB = (1.0 - l) * stMid.t + // A soft minimum rather than a sharp triangle corner, so chroma varies smoothly. + val cMid = 0.9 * k * sqrt(sqrt(1.0 / (1.0 / (midA * midA * midA * midA) + 1.0 / (midB * midB * midB * midB)))) + + // The c0 shape is hue-independent, so these stand in for the average S and T. + val zeroA = l * 0.4 + val zeroB = (1.0 - l) * 0.8 + val c0 = sqrt(1.0 / (1.0 / (zeroA * zeroA) + 1.0 / (zeroB * zeroB))) + + return ChromaAnchors(c0 = c0, cMid = cMid, cMax = cMax) +} + +/** + * Below this chroma a color is a gray for every purpose that matters: it is five orders + * of magnitude under a just-noticeable difference, and it is where the Okhsl and Okhsv + * constructions divide by quantities that have gone to zero. + */ +internal const val ACHROMATIC_CHROMA = 1e-6 + +/** True when every channel of [rgb] is within `0..1`, allowing for float slop. */ +internal fun LinearRgb.isInGamut(epsilon: Double = 1e-6): Boolean = + r >= -epsilon && r <= 1.0 + epsilon && + g >= -epsilon && g <= 1.0 + epsilon && + b >= -epsilon && b <= 1.0 + epsilon + +/** Perceptual distance between two Oklab colors, the ΔE the CSS gamut mapping uses. */ +internal fun deltaEOk(first: OkLab, second: OkLab): Double { + val dL = first.l - second.l + val dA = first.a - second.a + val dB = first.b - second.b + return sqrt(dL * dL + dA * dA + dB * dB) +} + +internal fun LinearRgb.clipToUnit(): LinearRgb = LinearRgb( + r = r.coerceIn(0.0, 1.0), + g = g.coerceIn(0.0, 1.0), + b = b.coerceIn(0.0, 1.0), +) diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt new file mode 100644 index 0000000..bcf791f --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt @@ -0,0 +1,128 @@ +package codes.side.colorpicker.conversion + +import codes.side.colorpicker.model.HslColor +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.RgbColor +import kotlin.math.atan2 +import kotlin.math.cos +import kotlin.math.hypot +import kotlin.math.sin + +// Okhsl's saturation is piecewise: below this it interpolates between the neutral and +// mid chroma anchors, above it between mid and the gamut boundary. 0.8 is Ottosson's +// split, chosen so the two pieces meet with matching slope. +private const val SATURATION_SPLIT = 0.8 +private const val SATURATION_SPLIT_INV = 1.25 + +private const val DEGREES_PER_RADIAN = 180.0 / kotlin.math.PI + +/** + * Converts this Okhsl color to sRGB. Every Okhsl coordinate is inside the gamut by + * construction, so nothing is clipped or mapped. Alpha is carried over unchanged. + */ +public fun OkhslColor.toRgb(): RgbColor { + if (lightness >= 1f) return RgbColor(1f, 1f, 1f, alpha) + if (lightness <= 0f) return RgbColor(0f, 0f, 0f, alpha) + + val radians = hue.toDouble() / DEGREES_PER_RADIAN + val aUnit = cos(radians) + val bUnit = sin(radians) + val okLightness = toeInv(lightness.toDouble()) + + val anchors = getChromaAnchors(okLightness, aUnit, bUnit) + val chroma = chromaForSaturation(saturation.toDouble(), anchors) + + val linear = oklabToLinearSrgb(OkLab(okLightness, chroma * aUnit, chroma * bUnit)) + + return RgbColor( + red = delinearize(linear.r).toFloat().coerceIn(0f, 1f), + green = delinearize(linear.g).toFloat().coerceIn(0f, 1f), + blue = delinearize(linear.b).toFloat().coerceIn(0f, 1f), + alpha = alpha, + ) +} + +/** + * Converts this sRGB color to Okhsl. Grays have no hue to report and come back at hue + * `0` with zero saturation. Alpha is carried over unchanged. + */ +public fun RgbColor.toOkhsl(): OkhslColor { + val lab = linearSrgbToOklab( + LinearRgb( + r = linearize(red.toDouble()), + g = linearize(green.toDouble()), + b = linearize(blue.toDouble()), + ), + ) + + val chroma = hypot(lab.a, lab.b) + val lightness = toe(lab.l).toFloat().coerceIn(0f, 1f) + + // At the black and white poles the chroma anchors below collapse to zero and the + // interpolation divides by them, so grays are answered before that can happen. + if (chroma < ACHROMATIC_CHROMA || lab.l <= 0.0 || lab.l >= 1.0) { + return OkhslColor(hue = 0f, saturation = 0f, lightness = lightness, alpha = alpha) + } + + val aUnit = lab.a / chroma + val bUnit = lab.b / chroma + val degrees = atan2(lab.b, lab.a) * DEGREES_PER_RADIAN + + val anchors = getChromaAnchors(lab.l, aUnit, bUnit) + val saturation = saturationForChroma(chroma, anchors) + + if (!saturation.isFinite()) { + return OkhslColor(hue = 0f, saturation = 0f, lightness = lightness, alpha = alpha) + } + + return OkhslColor( + hue = ((degrees % 360.0 + 360.0) % 360.0).toFloat().coerceIn(0f, 360f), + saturation = saturation.toFloat().coerceIn(0f, 1f), + lightness = lightness, + alpha = alpha, + ) +} + +private fun chromaForSaturation(saturation: Double, anchors: ChromaAnchors): Double { + if (saturation < SATURATION_SPLIT) { + val t = SATURATION_SPLIT_INV * saturation + val k1 = SATURATION_SPLIT * anchors.c0 + val k2 = 1.0 - k1 / anchors.cMid + return t * k1 / (1.0 - k2 * t) + } + + val t = (saturation - SATURATION_SPLIT) / (1.0 - SATURATION_SPLIT) + val k0 = anchors.cMid + val k1 = (1.0 - SATURATION_SPLIT) * anchors.cMid * anchors.cMid * + SATURATION_SPLIT_INV * SATURATION_SPLIT_INV / anchors.c0 + val k2 = 1.0 - k1 / (anchors.cMax - anchors.cMid) + return k0 + t * k1 / (1.0 - k2 * t) +} + +private fun saturationForChroma(chroma: Double, anchors: ChromaAnchors): Double { + if (chroma < anchors.cMid) { + val k1 = SATURATION_SPLIT * anchors.c0 + val k2 = 1.0 - k1 / anchors.cMid + val t = chroma / (k1 + k2 * chroma) + return t * SATURATION_SPLIT + } + + val k0 = anchors.cMid + val k1 = (1.0 - SATURATION_SPLIT) * anchors.cMid * anchors.cMid * + SATURATION_SPLIT_INV * SATURATION_SPLIT_INV / anchors.c0 + val k2 = 1.0 - k1 / (anchors.cMax - anchors.cMid) + val t = (chroma - k0) / (k1 + k2 * (chroma - k0)) + return SATURATION_SPLIT + (1.0 - SATURATION_SPLIT) * t +} + +/** Converts this Okhsl color to HSL by way of RGB. Alpha is carried over unchanged. */ +public fun OkhslColor.toHsl(): HslColor = toRgb().toHsl() + +/** Converts this HSL color to Okhsl by way of RGB. Alpha is carried over unchanged. */ +public fun HslColor.toOkhsl(): OkhslColor = toRgb().toOkhsl() + +/** Packs this Okhsl color into an ARGB [Int] (`0xAARRGGBB`); see [RgbColor.toArgbInt]. */ +public fun OkhslColor.toArgbInt(): Int = toRgb().toArgbInt() + +/** Unpacks this ARGB [Int] (`0xAARRGGBB`) into an [OkhslColor]; see [Int.toRgbColor]. */ +public fun Int.toOkhslColor(): OkhslColor = toRgbColor().toOkhsl() diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt new file mode 100644 index 0000000..4f1f05d --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt @@ -0,0 +1,139 @@ +package codes.side.colorpicker.conversion + +import codes.side.colorpicker.model.HslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.RgbColor +import kotlin.math.atan2 +import kotlin.math.cbrt +import kotlin.math.cos +import kotlin.math.hypot +import kotlin.math.max +import kotlin.math.sin + +// The saturation the cusp is normalized against. Okhsv treats the gamut as a triangle +// anchored at this value and then corrects for the real surface's curvature. +private const val S0 = 0.5 + +private const val DEGREES_PER_RADIAN = 180.0 / kotlin.math.PI + +/** + * Converts this Okhsv color to sRGB. Every Okhsv coordinate is inside the gamut by + * construction, so nothing is clipped or mapped. Alpha is carried over unchanged. + */ +public fun OkhsvColor.toRgb(): RgbColor { + if (value <= 0f) return RgbColor(0f, 0f, 0f, alpha) + + val radians = hue.toDouble() / DEGREES_PER_RADIAN + val aUnit = cos(radians) + val bUnit = sin(radians) + + val st = findCusp(aUnit, bUnit).toSaturationTint() + val k = 1.0 - S0 / st.s + val s = saturation.toDouble() + val v = value.toDouble() + + // Lightness and chroma at full value, treating the gamut as a triangle. + val denominator = S0 + st.t - st.t * k * s + val lAtFullValue = 1.0 - s * S0 / denominator + val chromaAtFullValue = s * st.t * S0 / denominator + + var lightness = v * lAtFullValue + var chroma = v * chromaAtFullValue + + // Undo the toe, then rescale so the triangle meets the gamut's actual curved top. + val lToed = toeInv(lAtFullValue) + val chromaToed = chromaAtFullValue * lToed / lAtFullValue + + val lightnessToed = toeInv(lightness) + chroma *= lightnessToed / lightness + lightness = lightnessToed + + val scaleRgb = oklabToLinearSrgb(OkLab(lToed, aUnit * chromaToed, bUnit * chromaToed)) + val scale = cbrt(1.0 / max(max(scaleRgb.r, scaleRgb.g), max(scaleRgb.b, 0.0))) + + lightness *= scale + chroma *= scale + + val linear = oklabToLinearSrgb(OkLab(lightness, chroma * aUnit, chroma * bUnit)) + + return RgbColor( + red = delinearize(linear.r).toFloat().coerceIn(0f, 1f), + green = delinearize(linear.g).toFloat().coerceIn(0f, 1f), + blue = delinearize(linear.b).toFloat().coerceIn(0f, 1f), + alpha = alpha, + ) +} + +/** + * Converts this sRGB color to Okhsv. Grays have no hue to report and come back at hue + * `0` with zero saturation. Alpha is carried over unchanged. + */ +public fun RgbColor.toOkhsv(): OkhsvColor { + val lab = linearSrgbToOklab( + LinearRgb( + r = linearize(red.toDouble()), + g = linearize(green.toDouble()), + b = linearize(blue.toDouble()), + ), + ) + + val chroma = hypot(lab.a, lab.b) + + // At the black and white poles the construction below divides by quantities that + // have gone to zero, so grays are answered before that can happen. + if (chroma < ACHROMATIC_CHROMA || lab.l <= 0.0 || lab.l >= 1.0) { + val gray = toe(lab.l).toFloat().coerceIn(0f, 1f) + return OkhsvColor(hue = 0f, saturation = 0f, value = gray, alpha = alpha) + } + + val aUnit = lab.a / chroma + val bUnit = lab.b / chroma + val degrees = atan2(lab.b, lab.a) * DEGREES_PER_RADIAN + + val st = findCusp(aUnit, bUnit).toSaturationTint() + val k = 1.0 - S0 / st.s + + val t = st.t / (chroma + lab.l * st.t) + val lAtFullValue = t * lab.l + val chromaAtFullValue = t * chroma + + val lToed = toeInv(lAtFullValue) + val chromaToed = chromaAtFullValue * lToed / lAtFullValue + + val scaleRgb = oklabToLinearSrgb(OkLab(lToed, aUnit * chromaToed, bUnit * chromaToed)) + val scale = cbrt(1.0 / max(max(scaleRgb.r, scaleRgb.g), max(scaleRgb.b, 0.0))) + + val lightness = lab.l / scale + val value = toe(lightness) / lAtFullValue + // Saturation is read off the full-value chroma, not the rescaled one: the scaling + // above exists to place the color on the gamut's curved top, and folding it in here + // would count that correction twice. + val saturation = (S0 + st.t) * chromaAtFullValue / + (st.t * S0 + st.t * k * chromaAtFullValue) + + // The construction collapses at the black pole, where neither saturation nor value + // has a value to take; the arithmetic goes non-finite rather than wrong. + if (!saturation.isFinite() || !value.isFinite()) { + val gray = toe(lab.l).toFloat().coerceIn(0f, 1f) + return OkhsvColor(hue = 0f, saturation = 0f, value = gray, alpha = alpha) + } + + return OkhsvColor( + hue = ((degrees % 360.0 + 360.0) % 360.0).toFloat().coerceIn(0f, 360f), + saturation = saturation.toFloat().coerceIn(0f, 1f), + value = value.toFloat().coerceIn(0f, 1f), + alpha = alpha, + ) +} + +/** Converts this Okhsv color to HSL by way of RGB. Alpha is carried over unchanged. */ +public fun OkhsvColor.toHsl(): HslColor = toRgb().toHsl() + +/** Converts this HSL color to Okhsv by way of RGB. Alpha is carried over unchanged. */ +public fun HslColor.toOkhsv(): OkhsvColor = toRgb().toOkhsv() + +/** Packs this Okhsv color into an ARGB [Int] (`0xAARRGGBB`); see [RgbColor.toArgbInt]. */ +public fun OkhsvColor.toArgbInt(): Int = toRgb().toArgbInt() + +/** Unpacks this ARGB [Int] (`0xAARRGGBB`) into an [OkhsvColor]; see [Int.toRgbColor]. */ +public fun Int.toOkhsvColor(): OkhsvColor = toRgbColor().toOkhsv() diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OklabConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OklabConversions.kt new file mode 100644 index 0000000..526bc74 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OklabConversions.kt @@ -0,0 +1,109 @@ +package codes.side.colorpicker.conversion + +import codes.side.colorpicker.model.HslColor +import codes.side.colorpicker.model.OKLAB_AB_RANGE +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor +import codes.side.colorpicker.model.RgbColor +import kotlin.math.atan2 +import kotlin.math.cos +import kotlin.math.hypot +import kotlin.math.sin + +private const val DEGREES_PER_RADIAN = 180.0 / kotlin.math.PI + +/** Converts this sRGB color to Oklab. Alpha is carried over unchanged. */ +public fun RgbColor.toOklab(): OklabColor { + val lab = linearSrgbToOklab( + LinearRgb( + r = linearize(red.toDouble()), + g = linearize(green.toDouble()), + b = linearize(blue.toDouble()), + ), + ) + + return OklabColor( + l = lab.l.toFloat().coerceIn(0f, 1f), + a = lab.a.toFloat().coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE), + b = lab.b.toFloat().coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE), + alpha = alpha, + ) +} + +/** + * Converts this Oklab color to sRGB. Colors outside the display gamut are mapped by the + * CSS Color 4 algorithm, which holds lightness and hue and gives up chroma — see + * [gamutMapToSrgb]. Alpha is carried over unchanged. + */ +public fun OklabColor.toRgb(): RgbColor { + val linear = gamutMapToSrgb(OkLab(l.toDouble(), a.toDouble(), b.toDouble())) + + return RgbColor( + red = delinearize(linear.r).toFloat().coerceIn(0f, 1f), + green = delinearize(linear.g).toFloat().coerceIn(0f, 1f), + blue = delinearize(linear.b).toFloat().coerceIn(0f, 1f), + alpha = alpha, + ) +} + +/** + * Converts this Oklab color to its cylindrical form. A neutral color has no meaningful + * hue angle and reports `0`. Alpha is carried over unchanged. + */ +public fun OklabColor.toOklch(): OklchColor { + val chroma = hypot(a.toDouble(), b.toDouble()) + val degrees = atan2(b.toDouble(), a.toDouble()) * DEGREES_PER_RADIAN + + return OklchColor( + l = l, + chroma = chroma.toFloat().coerceIn(0f, OKLAB_AB_RANGE), + hue = ((degrees % 360.0 + 360.0) % 360.0).toFloat().coerceIn(0f, 360f), + alpha = alpha, + ) +} + +/** Converts this OkLCh color to its rectangular form. Alpha is carried over unchanged. */ +public fun OklchColor.toOklab(): OklabColor { + val radians = hue.toDouble() / DEGREES_PER_RADIAN + val chroma = this.chroma.toDouble() + + return OklabColor( + l = l, + a = (chroma * cos(radians)).toFloat().coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE), + b = (chroma * sin(radians)).toFloat().coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE), + alpha = alpha, + ) +} + +/** Converts this sRGB color to OkLCh. Alpha is carried over unchanged. */ +public fun RgbColor.toOklch(): OklchColor = toOklab().toOklch() + +/** + * Converts this OkLCh color to sRGB, gamut-mapping colors the display cannot show. Alpha + * is carried over unchanged. + */ +public fun OklchColor.toRgb(): RgbColor = toOklab().toRgb() + +/** Converts this Oklab color to HSL by way of RGB. Alpha is carried over unchanged. */ +public fun OklabColor.toHsl(): HslColor = toRgb().toHsl() + +/** Converts this HSL color to Oklab by way of RGB. Alpha is carried over unchanged. */ +public fun HslColor.toOklab(): OklabColor = toRgb().toOklab() + +/** Converts this OkLCh color to HSL by way of RGB. Alpha is carried over unchanged. */ +public fun OklchColor.toHsl(): HslColor = toRgb().toHsl() + +/** Converts this HSL color to OkLCh by way of RGB. Alpha is carried over unchanged. */ +public fun HslColor.toOklch(): OklchColor = toRgb().toOklch() + +/** Packs this Oklab color into an ARGB [Int] (`0xAARRGGBB`); see [RgbColor.toArgbInt]. */ +public fun OklabColor.toArgbInt(): Int = toRgb().toArgbInt() + +/** Unpacks this ARGB [Int] (`0xAARRGGBB`) into an [OklabColor]; see [Int.toRgbColor]. */ +public fun Int.toOklabColor(): OklabColor = toRgbColor().toOklab() + +/** Packs this OkLCh color into an ARGB [Int] (`0xAARRGGBB`); see [RgbColor.toArgbInt]. */ +public fun OklchColor.toArgbInt(): Int = toRgb().toArgbInt() + +/** Unpacks this ARGB [Int] (`0xAARRGGBB`) into an [OklchColor]; see [Int.toRgbColor]. */ +public fun Int.toOklchColor(): OklchColor = toRgbColor().toOklch() diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/PickerColorConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/PickerColorConversions.kt new file mode 100644 index 0000000..9e87d79 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/PickerColorConversions.kt @@ -0,0 +1,41 @@ +package codes.side.colorpicker.conversion + +import codes.side.colorpicker.model.CmykColor +import codes.side.colorpicker.model.HslColor +import codes.side.colorpicker.model.LabColor +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor +import codes.side.colorpicker.model.PickerColor +import codes.side.colorpicker.model.RgbColor + +/** + * Converts any [PickerColor] to sRGB, the hub every other space converts through. + * + * With eight spaces, writing each pair out would mean sixty-four branches to keep in + * step. Routing through RGB costs one extra conversion when neither end is RGB, which is + * what the pairwise code did anyway. + */ +internal fun PickerColor.toRgbColor(): RgbColor = when (this) { + is RgbColor -> this + is HslColor -> toRgb() + is CmykColor -> toRgb() + is LabColor -> toRgb() + is OklabColor -> toRgb() + is OklchColor -> toRgb() + is OkhslColor -> toRgb() + is OkhsvColor -> toRgb() +} + +/** Returns a copy of this color with [alpha] replaced, keeping its space. */ +internal fun PickerColor.withAlpha(alpha: Float): PickerColor = when (this) { + is RgbColor -> copy(alpha = alpha) + is HslColor -> copy(alpha = alpha) + is CmykColor -> copy(alpha = alpha) + is LabColor -> copy(alpha = alpha) + is OklabColor -> copy(alpha = alpha) + is OklchColor -> copy(alpha = alpha) + is OkhslColor -> copy(alpha = alpha) + is OkhsvColor -> copy(alpha = alpha) +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhslColor.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhslColor.kt new file mode 100644 index 0000000..64ab299 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhslColor.kt @@ -0,0 +1,125 @@ +package codes.side.colorpicker.model + +import androidx.compose.runtime.Immutable +import kotlin.math.roundToInt + +/** + * An immutable color in the Okhsl color space — Björn Ottosson's perceptual + * replacement for [HslColor], built on [OklabColor]. + * + * [hue] is in degrees; the constructor accepts `0..360` but `360` is normalized to `0`, + * so the stored value is always in `0..360` (exclusive). [saturation], [lightness] and + * [alpha] are in `0..1`. The constructor throws [IllegalArgumentException] for + * out-of-range or NaN values; use [fromInt] for a clamping alternative. + * + * Two properties distinguish it from [HslColor]. [lightness] tracks perceived + * lightness, so a blue and a yellow at the same value look equally light, which is not + * true of HSL. And [saturation] is normalized against the sRGB gamut: `1` means as + * colorful as this hue and lightness can be on the display, so every coordinate in the + * cube maps to a color that actually exists. Nothing here needs gamut mapping, and no + * part of a slider's travel is unreachable. + * + * The normalization follows Ottosson's reference implementation, which approximates the + * gamut below the cusp with a straight line to black. About 4% of sRGB — the most + * saturated blues and violets — sits marginally outside that line, and converting such a + * color in and back out again loses up to 4 steps of 255. Reproducing the reference + * exactly is the deliberate trade: these coordinates mean the same thing here as they do + * anywhere else that implements the space. + * + * The no-argument constructor `OkhslColor()` is opaque red (hue 0, full saturation, mid + * lightness), matching `HslColor()`. Note that each model's default is intentionally its + * space's most natural origin, so defaults differ per model: `RgbColor()` = black, + * `HslColor()` = red, `CmykColor()` = white, `LabColor()` = mid-gray. + */ +@Immutable +public class OkhslColor( + hue: Float = 0f, + saturation: Float = 1f, + lightness: Float = 0.5f, + alpha: Float = 1f, +) : PickerColor { + + init { + require(hue in 0f..360f) { "Hue must be in 0..360, was $hue" } + require(saturation in 0f..1f) { "Saturation must be in 0..1, was $saturation" } + require(lightness in 0f..1f) { "Lightness must be in 0..1, was $lightness" } + require(alpha in 0f..1f) { "Alpha must be in 0..1, was $alpha" } + } + + // 360f is accepted for compatibility but stored as the equivalent 0f; + // "+ 0f" normalizes -0.0f to 0.0f so equality can't split on signed zero. + /** Hue in degrees, in `0..360` (exclusive) after normalization. */ + public val hue: Float = if (hue == 360f) 0f else hue + 0f + + /** Saturation in `0..1`, where `1` is the most colorful this hue and lightness can be in sRGB. */ + public val saturation: Float = saturation + 0f + + /** Perceived lightness in `0..1`. */ + public val lightness: Float = lightness + 0f + override val alpha: Float = alpha + 0f + + /** [hue] in degrees, rounded to the nearest integer. */ + public val intHue: Int get() = hue.roundToInt() + + /** [saturation] scaled to `0..100` percent and rounded to the nearest integer. */ + public val intSaturation: Int get() = (saturation * 100f).roundToInt() + + /** [lightness] scaled to `0..100` percent and rounded to the nearest integer. */ + public val intLightness: Int get() = (lightness * 100f).roundToInt() + + /** [alpha] scaled to `0..255` and rounded to the nearest integer. */ + public val intAlpha: Int get() = (alpha * 255f).roundToInt() + + /** Returns a copy of this color, replacing only the channels passed explicitly. */ + public fun copy( + hue: Float = this.hue, + saturation: Float = this.saturation, + lightness: Float = this.lightness, + alpha: Float = this.alpha, + ): OkhslColor = OkhslColor(hue = hue, saturation = saturation, lightness = lightness, alpha = alpha) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is OkhslColor) return false + return hue == other.hue && + saturation == other.saturation && + lightness == other.lightness && + alpha == other.alpha + } + + override fun hashCode(): Int { + var result = hue.hashCode() + result = 31 * result + saturation.hashCode() + result = 31 * result + lightness.hashCode() + result = 31 * result + alpha.hashCode() + return result + } + + override fun toString(): String = + "OkhslColor(hue=$hue, saturation=$saturation, lightness=$lightness, alpha=$alpha)" + + public companion object { + /** Opaque black. */ + public val Black: OkhslColor = OkhslColor(hue = 0f, saturation = 0f, lightness = 0f) + + /** Opaque white. */ + public val White: OkhslColor = OkhslColor(hue = 0f, saturation = 0f, lightness = 1f) + + /** + * Creates an [OkhslColor] from integer channels: [hue] in degrees, [saturation] + * and [lightness] in `0..100` percent, [alpha] in `0..255`. Unlike the + * constructor, out-of-range values are clamped instead of throwing. + */ + public fun fromInt( + hue: Int, + saturation: Int, + lightness: Int, + alpha: Int = 255, + ): OkhslColor = OkhslColor( + hue = hue.toFloat().coerceIn(0f, 360f), + saturation = (saturation / 100f).coerceIn(0f, 1f), + lightness = (lightness / 100f).coerceIn(0f, 1f), + alpha = (alpha / 255f).coerceIn(0f, 1f), + ) + } +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhsvColor.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhsvColor.kt new file mode 100644 index 0000000..7aff512 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OkhsvColor.kt @@ -0,0 +1,124 @@ +package codes.side.colorpicker.model + +import androidx.compose.runtime.Immutable +import kotlin.math.roundToInt + +/** + * An immutable color in the Okhsv color space — Björn Ottosson's perceptual HSV, built + * on [OklabColor]. + * + * [hue] is in degrees; the constructor accepts `0..360` but `360` is normalized to `0`, + * so the stored value is always in `0..360` (exclusive). [saturation], [value] and + * [alpha] are in `0..1`. The constructor throws [IllegalArgumentException] for + * out-of-range or NaN values; use [fromInt] for a clamping alternative. + * + * Like [OkhslColor], the coordinates are normalized against the sRGB gamut, so every + * point in the cube is a color the display can show and nothing needs gamut mapping. + * Okhsv keeps the HSV arrangement artists expect — [value] `1` with [saturation] `1` is + * the most vivid form of the hue, and dropping [value] darkens toward black — whereas + * [OkhslColor] centres lightness so that `0.5` is a mid tone. + * + * The normalization follows Ottosson's reference implementation, which approximates the + * gamut below the cusp with a straight line to black. About 4% of sRGB — the most + * saturated blues and violets — sits marginally outside that line, and converting such a + * color in and back out again loses up to 4 steps of 255. Reproducing the reference + * exactly is the deliberate trade: these coordinates mean the same thing here as they do + * anywhere else that implements the space. + * + * The no-argument constructor `OkhsvColor()` is opaque red (hue 0, full saturation, full + * value). Note that each model's default is intentionally its space's most natural + * origin, so defaults differ per model: `RgbColor()` = black, `HslColor()` = red, + * `CmykColor()` = white, `LabColor()` = mid-gray. + */ +@Immutable +public class OkhsvColor( + hue: Float = 0f, + saturation: Float = 1f, + value: Float = 1f, + alpha: Float = 1f, +) : PickerColor { + + init { + require(hue in 0f..360f) { "Hue must be in 0..360, was $hue" } + require(saturation in 0f..1f) { "Saturation must be in 0..1, was $saturation" } + require(value in 0f..1f) { "Value must be in 0..1, was $value" } + require(alpha in 0f..1f) { "Alpha must be in 0..1, was $alpha" } + } + + // 360f is accepted for compatibility but stored as the equivalent 0f; + // "+ 0f" normalizes -0.0f to 0.0f so equality can't split on signed zero. + /** Hue in degrees, in `0..360` (exclusive) after normalization. */ + public val hue: Float = if (hue == 360f) 0f else hue + 0f + + /** Saturation in `0..1`, where `1` is the most colorful this hue and value can be in sRGB. */ + public val saturation: Float = saturation + 0f + + /** Value in `0..1`, where `0` is black. */ + public val value: Float = value + 0f + override val alpha: Float = alpha + 0f + + /** [hue] in degrees, rounded to the nearest integer. */ + public val intHue: Int get() = hue.roundToInt() + + /** [saturation] scaled to `0..100` percent and rounded to the nearest integer. */ + public val intSaturation: Int get() = (saturation * 100f).roundToInt() + + /** [value] scaled to `0..100` percent and rounded to the nearest integer. */ + public val intValue: Int get() = (value * 100f).roundToInt() + + /** [alpha] scaled to `0..255` and rounded to the nearest integer. */ + public val intAlpha: Int get() = (alpha * 255f).roundToInt() + + /** Returns a copy of this color, replacing only the channels passed explicitly. */ + public fun copy( + hue: Float = this.hue, + saturation: Float = this.saturation, + value: Float = this.value, + alpha: Float = this.alpha, + ): OkhsvColor = OkhsvColor(hue = hue, saturation = saturation, value = value, alpha = alpha) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is OkhsvColor) return false + return hue == other.hue && + saturation == other.saturation && + value == other.value && + alpha == other.alpha + } + + override fun hashCode(): Int { + var result = hue.hashCode() + result = 31 * result + saturation.hashCode() + result = 31 * result + value.hashCode() + result = 31 * result + alpha.hashCode() + return result + } + + override fun toString(): String = + "OkhsvColor(hue=$hue, saturation=$saturation, value=$value, alpha=$alpha)" + + public companion object { + /** Opaque black. */ + public val Black: OkhsvColor = OkhsvColor(hue = 0f, saturation = 0f, value = 0f) + + /** Opaque white. */ + public val White: OkhsvColor = OkhsvColor(hue = 0f, saturation = 0f, value = 1f) + + /** + * Creates an [OkhsvColor] from integer channels: [hue] in degrees, [saturation] + * and [value] in `0..100` percent, [alpha] in `0..255`. Unlike the constructor, + * out-of-range values are clamped instead of throwing. + */ + public fun fromInt( + hue: Int, + saturation: Int, + value: Int, + alpha: Int = 255, + ): OkhsvColor = OkhsvColor( + hue = hue.toFloat().coerceIn(0f, 360f), + saturation = (saturation / 100f).coerceIn(0f, 1f), + value = (value / 100f).coerceIn(0f, 1f), + alpha = (alpha / 255f).coerceIn(0f, 1f), + ) + } +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklabColor.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklabColor.kt new file mode 100644 index 0000000..501df6e --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklabColor.kt @@ -0,0 +1,120 @@ +package codes.side.colorpicker.model + +import androidx.compose.runtime.Immutable +import kotlin.math.roundToInt + +/** + * The reference range of the [OklabColor.a] and [OklabColor.b] axes, matching the + * `100%` value CSS Color 4 assigns them in `oklab()`. It comfortably contains the + * sRGB gamut, which reaches about `0.28` on a and `0.20` on b. + */ +internal const val OKLAB_AB_RANGE: Float = 0.4f + +/** + * An immutable color in the Oklab perceptual color space. + * + * [l] (lightness) is in `0..1` — Oklab's own scale, not CIELAB's `0..100`. [a] + * (green-red axis) and [b] (blue-yellow axis) are in `-0.4..0.4`, the reference range + * CSS Color 4 uses for `oklab()`. [alpha] is in `0..1`. The constructor throws + * [IllegalArgumentException] for out-of-range or NaN values; use [fromInt] for a + * clamping alternative. + * + * Oklab is perceptually uniform in a way [LabColor] is not: equal numeric steps + * correspond to more nearly equal perceived differences, and changing [l] does not + * drag the perceived hue along with it. That makes it the space to interpolate, + * compare and gamut-map in. It is not a space to put sliders on — [a] and [b] are + * unbounded by the display gamut, so most of their range is unreachable. Use + * [OkhslColor] or [OkhsvColor] for that. + * + * The no-argument constructor `OklabColor()` is opaque mid-gray (L = 0.5 on the + * neutral axis). Note that each model's default is intentionally its space's most + * natural origin, so defaults differ per model: `RgbColor()` = black, + * `HslColor()` = red, `CmykColor()` = white, `LabColor()` = mid-gray. + */ +@Immutable +public class OklabColor( + l: Float = 0.5f, + a: Float = 0f, + b: Float = 0f, + alpha: Float = 1f, +) : PickerColor { + + init { + require(l in 0f..1f) { "L must be in 0..1, was $l" } + require(a in -OKLAB_AB_RANGE..OKLAB_AB_RANGE) { "A must be in -0.4..0.4, was $a" } + require(b in -OKLAB_AB_RANGE..OKLAB_AB_RANGE) { "B must be in -0.4..0.4, was $b" } + require(alpha in 0f..1f) { "Alpha must be in 0..1, was $alpha" } + } + + // "+ 0f" normalizes -0.0f to 0.0f so equality can't split on signed zero. + /** Lightness in `0..1`. */ + public val l: Float = l + 0f + + /** Green-red axis in `-0.4..0.4`; negative is green, positive is red. */ + public val a: Float = a + 0f + + /** Blue-yellow axis in `-0.4..0.4`; negative is blue, positive is yellow. */ + public val b: Float = b + 0f + override val alpha: Float = alpha + 0f + + /** [l] scaled to `0..100` percent and rounded to the nearest integer. */ + public val intL: Int get() = (l * 100f).roundToInt() + + /** [a] as a percentage of its reference range, in `-100..100`, per CSS `oklab()`. */ + public val intA: Int get() = (a / OKLAB_AB_RANGE * 100f).roundToInt() + + /** [b] as a percentage of its reference range, in `-100..100`, per CSS `oklab()`. */ + public val intB: Int get() = (b / OKLAB_AB_RANGE * 100f).roundToInt() + + /** [alpha] scaled to `0..255` and rounded to the nearest integer. */ + public val intAlpha: Int get() = (alpha * 255f).roundToInt() + + /** Returns a copy of this color, replacing only the channels passed explicitly. */ + public fun copy( + l: Float = this.l, + a: Float = this.a, + b: Float = this.b, + alpha: Float = this.alpha, + ): OklabColor = OklabColor(l = l, a = a, b = b, alpha = alpha) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is OklabColor) return false + return l == other.l && + a == other.a && + b == other.b && + alpha == other.alpha + } + + override fun hashCode(): Int { + var result = l.hashCode() + result = 31 * result + a.hashCode() + result = 31 * result + b.hashCode() + result = 31 * result + alpha.hashCode() + return result + } + + override fun toString(): String = + "OklabColor(l=$l, a=$a, b=$b, alpha=$alpha)" + + public companion object { + /** Opaque black. */ + public val Black: OklabColor = OklabColor(l = 0f, a = 0f, b = 0f) + + /** Opaque white. */ + public val White: OklabColor = OklabColor(l = 1f, a = 0f, b = 0f) + + /** + * Creates an [OklabColor] from integer channels: [l] in `0..100` percent, [a] + * and [b] in `-100..100` percent of the `-0.4..0.4` reference range, [alpha] in + * `0..255`. Unlike the constructor, out-of-range values are clamped instead of + * throwing. + */ + public fun fromInt(l: Int, a: Int, b: Int, alpha: Int = 255): OklabColor = OklabColor( + l = (l / 100f).coerceIn(0f, 1f), + a = (a / 100f * OKLAB_AB_RANGE).coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE), + b = (b / 100f * OKLAB_AB_RANGE).coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE), + alpha = (alpha / 255f).coerceIn(0f, 1f), + ) + } +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklchColor.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklchColor.kt new file mode 100644 index 0000000..039d1b8 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/OklchColor.kt @@ -0,0 +1,114 @@ +package codes.side.colorpicker.model + +import androidx.compose.runtime.Immutable +import kotlin.math.roundToInt + +/** + * An immutable color in the OkLCh color space — the cylindrical form of [OklabColor], + * and the space CSS exposes as `oklch()`. + * + * [l] (lightness) is in `0..1`. [chroma] is in `0..0.4`, the reference range CSS Color 4 + * assigns `100%` in `oklch()`. [hue] is in degrees; the constructor accepts `0..360` but + * `360` is normalized to `0`, so the stored value is always in `0..360` (exclusive). + * [alpha] is in `0..1`. The constructor throws [IllegalArgumentException] for + * out-of-range or NaN values; use [fromInt] for a clamping alternative. + * + * Chroma is not bounded by the display gamut: how much of the `0..0.4` range is + * reachable depends on [l] and [hue], and the rest converts to the nearest displayable + * color. That makes OkLCh a poor space to put a raw chroma slider on — use + * [OkhslColor] or [OkhsvColor], whose saturation is normalized against the gamut, and + * keep OkLCh for interchange with CSS and for hue-preserving manipulation. + * + * The no-argument constructor `OklchColor()` is opaque mid-gray (L = 0.5, no chroma). + * Note that each model's default is intentionally its space's most natural origin, so + * defaults differ per model: `RgbColor()` = black, `HslColor()` = red, + * `CmykColor()` = white, `LabColor()` = mid-gray. + */ +@Immutable +public class OklchColor( + l: Float = 0.5f, + chroma: Float = 0f, + hue: Float = 0f, + alpha: Float = 1f, +) : PickerColor { + + init { + require(l in 0f..1f) { "L must be in 0..1, was $l" } + require(chroma in 0f..OKLAB_AB_RANGE) { "Chroma must be in 0..0.4, was $chroma" } + require(hue in 0f..360f) { "Hue must be in 0..360, was $hue" } + require(alpha in 0f..1f) { "Alpha must be in 0..1, was $alpha" } + } + + // "+ 0f" normalizes -0.0f to 0.0f so equality can't split on signed zero. + /** Lightness in `0..1`. */ + public val l: Float = l + 0f + + /** Chroma in `0..0.4`; `0` is neutral gray. */ + public val chroma: Float = chroma + 0f + + // 360f is accepted for compatibility but stored as the equivalent 0f. + /** Hue in degrees, in `0..360` (exclusive) after normalization. */ + public val hue: Float = if (hue == 360f) 0f else hue + 0f + override val alpha: Float = alpha + 0f + + /** [l] scaled to `0..100` percent and rounded to the nearest integer. */ + public val intL: Int get() = (l * 100f).roundToInt() + + /** [chroma] as a percentage of its reference range, in `0..100`, per CSS `oklch()`. */ + public val intChroma: Int get() = (chroma / OKLAB_AB_RANGE * 100f).roundToInt() + + /** [hue] in degrees, rounded to the nearest integer. */ + public val intHue: Int get() = hue.roundToInt() + + /** [alpha] scaled to `0..255` and rounded to the nearest integer. */ + public val intAlpha: Int get() = (alpha * 255f).roundToInt() + + /** Returns a copy of this color, replacing only the channels passed explicitly. */ + public fun copy( + l: Float = this.l, + chroma: Float = this.chroma, + hue: Float = this.hue, + alpha: Float = this.alpha, + ): OklchColor = OklchColor(l = l, chroma = chroma, hue = hue, alpha = alpha) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is OklchColor) return false + return l == other.l && + chroma == other.chroma && + hue == other.hue && + alpha == other.alpha + } + + override fun hashCode(): Int { + var result = l.hashCode() + result = 31 * result + chroma.hashCode() + result = 31 * result + hue.hashCode() + result = 31 * result + alpha.hashCode() + return result + } + + override fun toString(): String = + "OklchColor(l=$l, chroma=$chroma, hue=$hue, alpha=$alpha)" + + public companion object { + /** Opaque black. */ + public val Black: OklchColor = OklchColor(l = 0f, chroma = 0f, hue = 0f) + + /** Opaque white. */ + public val White: OklchColor = OklchColor(l = 1f, chroma = 0f, hue = 0f) + + /** + * Creates an [OklchColor] from integer channels: [l] in `0..100` percent, + * [chroma] in `0..100` percent of the `0..0.4` reference range, [hue] in degrees, + * [alpha] in `0..255`. Unlike the constructor, out-of-range values are clamped + * instead of throwing. + */ + public fun fromInt(l: Int, chroma: Int, hue: Int, alpha: Int = 255): OklchColor = OklchColor( + l = (l / 100f).coerceIn(0f, 1f), + chroma = (chroma / 100f * OKLAB_AB_RANGE).coerceIn(0f, OKLAB_AB_RANGE), + hue = hue.toFloat().coerceIn(0f, 360f), + alpha = (alpha / 255f).coerceIn(0f, 1f), + ) + } +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/PickerColor.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/PickerColor.kt index f4859a3..e98d2c9 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/PickerColor.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/model/PickerColor.kt @@ -4,7 +4,7 @@ import androidx.compose.runtime.Immutable /** * An immutable color in one of the supported color spaces: [RgbColor], [HslColor], - * [CmykColor], or [LabColor]. + * [CmykColor], [LabColor], [OklabColor], [OklchColor], [OkhslColor], or [OkhsvColor]. * * All implementations validate their channels on construction (the constructor throws * [IllegalArgumentException] for out-of-range or NaN values) and share an [alpha] channel. diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt index 1ffe90d..ae90904 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt @@ -9,11 +9,20 @@ import codes.side.colorpicker.conversion.toArgbInt import codes.side.colorpicker.conversion.toCmyk import codes.side.colorpicker.conversion.toHsl import codes.side.colorpicker.conversion.toLab -import codes.side.colorpicker.conversion.toRgb +import codes.side.colorpicker.conversion.toOkhsl +import codes.side.colorpicker.conversion.toOkhsv +import codes.side.colorpicker.conversion.toOklab +import codes.side.colorpicker.conversion.toOklch import codes.side.colorpicker.conversion.toRgbColor +import codes.side.colorpicker.conversion.withAlpha import codes.side.colorpicker.model.CmykColor import codes.side.colorpicker.model.HslColor import codes.side.colorpicker.model.LabColor +import codes.side.colorpicker.model.OKLAB_AB_RANGE +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor import codes.side.colorpicker.model.PickerColor import codes.side.colorpicker.model.RgbColor @@ -57,41 +66,45 @@ public class ColorPickerState(initialColor: PickerColor = HslColor()) { internal set // ---- Derived spaces (pure computation, no writes on read) ---- + // + // Each space is itself when authoritative and a conversion otherwise. The + // conversions route through RGB; see PickerColor.toRgbColor. private val hslDerived = derivedStateOf { - when (val c = authoritative) { - is HslColor -> c - is RgbColor -> c.toHsl().copy(alpha = c.alpha) - is CmykColor -> c.toRgb().toHsl().copy(alpha = c.alpha) - is LabColor -> c.toRgb().toHsl().copy(alpha = c.alpha) - } + val c = authoritative + if (c is HslColor) c else c.toRgbColor().toHsl() } - private val rgbDerived = derivedStateOf { - when (val c = authoritative) { - is HslColor -> c.toRgb() - is RgbColor -> c - is CmykColor -> c.toRgb() - is LabColor -> c.toRgb() - } - } + private val rgbDerived = derivedStateOf { authoritative.toRgbColor() } private val cmykDerived = derivedStateOf { - when (val c = authoritative) { - is HslColor -> c.toRgb().toCmyk() - is RgbColor -> c.toCmyk() - is CmykColor -> c - is LabColor -> c.toRgb().toCmyk() - } + val c = authoritative + if (c is CmykColor) c else c.toRgbColor().toCmyk() } private val labDerived = derivedStateOf { - when (val c = authoritative) { - is HslColor -> c.toRgb().toLab() - is RgbColor -> c.toLab() - is CmykColor -> c.toRgb().toLab() - is LabColor -> c - } + val c = authoritative + if (c is LabColor) c else c.toRgbColor().toLab() + } + + private val oklabDerived = derivedStateOf { + val c = authoritative + if (c is OklabColor) c else c.toRgbColor().toOklab() + } + + private val oklchDerived = derivedStateOf { + val c = authoritative + if (c is OklchColor) c else c.toRgbColor().toOklch() + } + + private val okhslDerived = derivedStateOf { + val c = authoritative + if (c is OkhslColor) c else c.toRgbColor().toOkhsl() + } + + private val okhsvDerived = derivedStateOf { + val c = authoritative + if (c is OkhsvColor) c else c.toRgbColor().toOkhsv() } // ---- Public read access ---- @@ -108,6 +121,18 @@ public class ColorPickerState(initialColor: PickerColor = HslColor()) { /** The current color as CIELAB; a derived conversion unless LAB is the origin space. */ public val labColor: LabColor get() = labDerived.value + /** The current color as Oklab; a derived conversion unless Oklab is the origin space. */ + public val oklabColor: OklabColor get() = oklabDerived.value + + /** The current color as OkLCh; a derived conversion unless OkLCh is the origin space. */ + public val oklchColor: OklchColor get() = oklchDerived.value + + /** The current color as Okhsl; a derived conversion unless Okhsl is the origin space. */ + public val okhslColor: OkhslColor get() = okhslDerived.value + + /** The current color as Okhsv; a derived conversion unless Okhsv is the origin space. */ + public val okhsvColor: OkhsvColor get() = okhsvDerived.value + /** The current color as a packed ARGB [Int] (`0xAARRGGBB`). */ public val argbInt: Int get() = rgbColor.toArgbInt() @@ -224,18 +249,124 @@ public class ColorPickerState(initialColor: PickerColor = HslColor()) { authoritative = lab } + // ---- Oklab updates ---- + + /** Updates the lightness channel. NaN is ignored; values are clamped to 0..1. */ + public fun updateOklabLightness(l: Float) { + if (l.isNaN()) return + authoritative = oklabColor.copy(l = l.coerceIn(0f, 1f)) + } + + /** Updates the a axis. NaN is ignored; values are clamped to -0.4..0.4. */ + public fun updateOklabA(a: Float) { + if (a.isNaN()) return + authoritative = oklabColor.copy(a = a.coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE)) + } + + /** Updates the b axis. NaN is ignored; values are clamped to -0.4..0.4. */ + public fun updateOklabB(b: Float) { + if (b.isNaN()) return + authoritative = oklabColor.copy(b = b.coerceIn(-OKLAB_AB_RANGE, OKLAB_AB_RANGE)) + } + + /** Sets [oklab] as the authoritative color; Oklab becomes the origin space. */ + public fun updateFromOklab(oklab: OklabColor) { + authoritative = oklab + } + + // ---- OkLCh updates ---- + + /** Updates the lightness channel. NaN is ignored; values are clamped to 0..1. */ + public fun updateOklchLightness(l: Float) { + if (l.isNaN()) return + authoritative = oklchColor.copy(l = l.coerceIn(0f, 1f)) + } + + /** Updates the chroma channel. NaN is ignored; values are clamped to 0..0.4. */ + public fun updateOklchChroma(chroma: Float) { + if (chroma.isNaN()) return + authoritative = oklchColor.copy(chroma = chroma.coerceIn(0f, OKLAB_AB_RANGE)) + } + + /** + * Updates the hue channel. NaN is ignored; values are clamped to 0..360, and 360 is + * stored as the equivalent 0 (see [OklchColor]), so the observable range is 0..360 + * (exclusive). + */ + public fun updateOklchHue(hue: Float) { + if (hue.isNaN()) return + authoritative = oklchColor.copy(hue = hue.coerceIn(0f, 360f)) + } + + /** Sets [oklch] as the authoritative color; OkLCh becomes the origin space. */ + public fun updateFromOklch(oklch: OklchColor) { + authoritative = oklch + } + + // ---- Okhsl updates ---- + + /** + * Updates the hue channel. NaN is ignored; values are clamped to 0..360, and 360 is + * stored as the equivalent 0 (see [OkhslColor]), so the observable range is 0..360 + * (exclusive). + */ + public fun updateOkhslHue(hue: Float) { + if (hue.isNaN()) return + authoritative = okhslColor.copy(hue = hue.coerceIn(0f, 360f)) + } + + /** Updates the saturation channel. NaN is ignored; values are clamped to 0..1. */ + public fun updateOkhslSaturation(saturation: Float) { + if (saturation.isNaN()) return + authoritative = okhslColor.copy(saturation = saturation.coerceIn(0f, 1f)) + } + + /** Updates the lightness channel. NaN is ignored; values are clamped to 0..1. */ + public fun updateOkhslLightness(lightness: Float) { + if (lightness.isNaN()) return + authoritative = okhslColor.copy(lightness = lightness.coerceIn(0f, 1f)) + } + + /** Sets [okhsl] as the authoritative color; Okhsl becomes the origin space. */ + public fun updateFromOkhsl(okhsl: OkhslColor) { + authoritative = okhsl + } + + // ---- Okhsv updates ---- + + /** + * Updates the hue channel. NaN is ignored; values are clamped to 0..360, and 360 is + * stored as the equivalent 0 (see [OkhsvColor]), so the observable range is 0..360 + * (exclusive). + */ + public fun updateOkhsvHue(hue: Float) { + if (hue.isNaN()) return + authoritative = okhsvColor.copy(hue = hue.coerceIn(0f, 360f)) + } + + /** Updates the saturation channel. NaN is ignored; values are clamped to 0..1. */ + public fun updateOkhsvSaturation(saturation: Float) { + if (saturation.isNaN()) return + authoritative = okhsvColor.copy(saturation = saturation.coerceIn(0f, 1f)) + } + + /** Updates the value channel. NaN is ignored; values are clamped to 0..1. */ + public fun updateOkhsvValue(value: Float) { + if (value.isNaN()) return + authoritative = okhsvColor.copy(value = value.coerceIn(0f, 1f)) + } + + /** Sets [okhsv] as the authoritative color; Okhsv becomes the origin space. */ + public fun updateFromOkhsv(okhsv: OkhsvColor) { + authoritative = okhsv + } + // ---- Alpha update (origin space unchanged) ---- /** Updates the alpha channel of the authoritative color. NaN is ignored; values are clamped to 0..1. */ public fun updateAlpha(alpha: Float) { if (alpha.isNaN()) return - val clamped = alpha.coerceIn(0f, 1f) - authoritative = when (val c = authoritative) { - is HslColor -> c.copy(alpha = clamped) - is RgbColor -> c.copy(alpha = clamped) - is CmykColor -> c.copy(alpha = clamped) - is LabColor -> c.copy(alpha = clamped) - } + authoritative = authoritative.withAlpha(alpha.coerceIn(0f, 1f)) } // ---- ARGB Int update ---- diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/SaveableColorPickerState.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/SaveableColorPickerState.kt index d52c1da..b6e3113 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/SaveableColorPickerState.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/SaveableColorPickerState.kt @@ -6,6 +6,10 @@ import androidx.compose.runtime.saveable.rememberSaveable import codes.side.colorpicker.model.CmykColor import codes.side.colorpicker.model.HslColor import codes.side.colorpicker.model.LabColor +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor import codes.side.colorpicker.model.PickerColor import codes.side.colorpicker.model.RgbColor @@ -15,6 +19,10 @@ private const val SPACE_KEY_HSL = 0f private const val SPACE_KEY_RGB = 1f private const val SPACE_KEY_CMYK = 2f private const val SPACE_KEY_LAB = 3f +private const val SPACE_KEY_OKLAB = 4f +private const val SPACE_KEY_OKLCH = 5f +private const val SPACE_KEY_OKHSL = 6f +private const val SPACE_KEY_OKHSV = 7f private const val SAVED_ARRAY_SIZE = 6 @@ -22,11 +30,16 @@ private const val SAVED_ARRAY_SIZE = 6 * Encodes the authoritative space and its native components in a single FloatArray. * * Layout: `[spaceKey, c0, c1, c2, c3, c4]` - * - `spaceKey` = stable space key (0=HSL, 1=RGB, 2=CMYK, 3=LAB) - * - HSL: c0=hue, c1=saturation, c2=lightness, c3=alpha, c4 unused - * - RGB: c0=red, c1=green, c2=blue, c3=alpha, c4 unused - * - CMYK: c0=cyan, c1=magenta, c2=yellow, c3=key, c4=alpha - * - LAB: c0=l, c1=a, c2=b, c3=alpha, c4 unused + * - `spaceKey` = stable space key (0=HSL, 1=RGB, 2=CMYK, 3=LAB, 4=Oklab, 5=OkLCh, + * 6=Okhsl, 7=Okhsv) + * - HSL: c0=hue, c1=saturation, c2=lightness, c3=alpha, c4 unused + * - RGB: c0=red, c1=green, c2=blue, c3=alpha, c4 unused + * - CMYK: c0=cyan, c1=magenta, c2=yellow, c3=key, c4=alpha + * - LAB: c0=l, c1=a, c2=b, c3=alpha, c4 unused + * - Oklab: c0=l, c1=a, c2=b, c3=alpha, c4 unused + * - OkLCh: c0=l, c1=chroma, c2=hue, c3=alpha, c4 unused + * - Okhsl: c0=hue, c1=saturation, c2=lightness, c3=alpha, c4 unused + * - Okhsv: c0=hue, c1=saturation, c2=value, c3=alpha, c4 unused * * This preserves the authoritative space across process death so the user's * "origin" choice survives rotation, not just the visible color. @@ -56,6 +69,26 @@ internal val ColorPickerStateSaver = Saver( SPACE_KEY_LAB, color.l, color.a, color.b, color.alpha, 0f, ) + + is OklabColor -> floatArrayOf( + SPACE_KEY_OKLAB, + color.l, color.a, color.b, color.alpha, 0f, + ) + + is OklchColor -> floatArrayOf( + SPACE_KEY_OKLCH, + color.l, color.chroma, color.hue, color.alpha, 0f, + ) + + is OkhslColor -> floatArrayOf( + SPACE_KEY_OKHSL, + color.hue, color.saturation, color.lightness, color.alpha, 0f, + ) + + is OkhsvColor -> floatArrayOf( + SPACE_KEY_OKHSV, + color.hue, color.saturation, color.value, color.alpha, 0f, + ) } }, restore = { array -> @@ -93,6 +126,34 @@ internal val ColorPickerStateSaver = Saver( alpha = array[4], ) + SPACE_KEY_OKLAB -> OklabColor( + l = array[1], + a = array[2], + b = array[3], + alpha = array[4], + ) + + SPACE_KEY_OKLCH -> OklchColor( + l = array[1], + chroma = array[2], + hue = array[3], + alpha = array[4], + ) + + SPACE_KEY_OKHSL -> OkhslColor( + hue = array[1], + saturation = array[2], + lightness = array[3], + alpha = array[4], + ) + + SPACE_KEY_OKHSV -> OkhsvColor( + hue = array[1], + saturation = array[2], + value = array[3], + alpha = array[4], + ) + else -> null } } catch (_: IllegalArgumentException) { diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslColorPicker.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslColorPicker.kt new file mode 100644 index 0000000..c919675 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslColorPicker.kt @@ -0,0 +1,60 @@ +package codes.side.colorpicker.ui + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import codes.side.colorpicker.state.ColorPickerState +import codes.side.colorpicker.state.ColoringMode +import codes.side.colorpicker.theme.ColorPickerColors +import codes.side.colorpicker.theme.ColorPickerDefaults +import codes.side.colorpicker.theme.ColorPickerShapes + +/** + * Complete Okhsl picker: hue, saturation, and lightness sliders, plus an optional alpha + * slider. + * + * The perceptual counterpart to [HslColorPicker]. Lightness here means perceived + * lightness, so the middle of the track looks equally light at every hue, and saturation + * is measured against the display gamut, so `100%` is reachable at every hue and + * lightness rather than running off the end of what the screen can show. + * + * @param showAlpha whether to include the [AlphaSlider]. + * @param coloringMode defaults to [ColoringMode.Independent], for the same reason as + * [HslColorPicker]: a contextual hue track collapses into a near-uniform strip at low + * saturation or extreme lightness, and stops being navigable. + * @param colors checkerboard colors; see [ColorPickerDefaults.colors]. + * @param shapes track shape; see [ColorPickerDefaults.shapes]. + */ +@Composable +public fun OkhslColorPicker( + state: ColorPickerState, + modifier: Modifier = Modifier, + showAlpha: Boolean = true, + coloringMode: ColoringMode = ColoringMode.Independent, + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + OkhslHueSlider(state = state, coloringMode = coloringMode, colors = colors, shapes = shapes) + OkhslSaturationSlider( + state = state, + coloringMode = coloringMode, + colors = colors, + shapes = shapes, + ) + OkhslLightnessSlider( + state = state, + coloringMode = coloringMode, + colors = colors, + shapes = shapes, + ) + if (showAlpha) { + AlphaSlider(state = state, colors = colors, shapes = shapes) + } + } +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt new file mode 100644 index 0000000..7647b15 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt @@ -0,0 +1,267 @@ +package codes.side.colorpicker.ui + +import androidx.compose.foundation.interaction.InteractionSource +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import codes.side.colorpicker.conversion.toComposeColor +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.state.ColorPickerState +import codes.side.colorpicker.state.ColoringMode +import codes.side.colorpicker.theme.ColorPickerColors +import codes.side.colorpicker.theme.ColorPickerDefaults +import codes.side.colorpicker.theme.ColorPickerShapes +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toImmutableList + +/** + * Saturation the Independent hue track is drawn at, rather than the 1.0 the HSL picker + * uses. + * + * At saturation 1 an Okhsl hue sweep runs along the sRGB gamut surface, which turns a + * corner wherever the sweep crosses an edge of the RGB cube — around hue 142, red falls + * to zero as blue starts to rise. A gradient interpolates straight through such a corner, + * and no practical number of stops fixes it: the error stalls near 9 of 255 even at 256 + * stops. Backing off the boundary makes the sweep smooth, and 0.85 is the most colorful + * setting that stays under one perceptible step at [OK_HUE_STOPS]. + */ +private const val HUE_TRACK_SATURATION = 0.85f + +// Stops for the hue track. Okhsl hue is not piecewise linear in sRGB the way HSL's is, +// so there are no breakpoints to land on; 32 measures 1.9 of 255 against the true sweep, +// and doubling it buys nothing. +private const val OK_HUE_STOPS = 32 + +// The saturation, lightness and value tracks are smooth, and 16 holds them under half a +// step of 255. +private const val OK_CHANNEL_STOPS = 16 + +internal inline fun buildOkGradient(stops: Int, color: (Float) -> Color): ImmutableList = + (0..stops).map { color(it.toFloat() / stops) }.toImmutableList() + +/** + * Slider for the Okhsl hue channel of [state], in degrees `0..360`. + * + * @param coloringMode with [ColoringMode.Independent] (the default) the track shows the + * full spectrum at a fixed saturation and lightness; with [ColoringMode.Contextual] it is + * rendered at the current saturation and lightness. + * @param semanticLabel accessibility description of the slider; pass a localized string + * to replace the English default, or `null` to omit. + * @param semanticValueText accessibility announcement of the current value in degrees. + */ +@Composable +public fun OkhslHueSlider( + state: ColorPickerState, + modifier: Modifier = Modifier, + coloringMode: ColoringMode = ColoringMode.Independent, + label: (@Composable () -> Unit)? = { SliderLabel("Hue") }, + valueLabel: (@Composable () -> Unit)? = { SliderValueLabel("${state.okhslColor.intHue}°") }, + semanticLabel: String? = "Hue", + semanticValueText: String? = "${state.okhslColor.intHue}°", + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), + thumb: (@Composable (InteractionSource) -> Unit)? = null, + thumbWidth: Dp = ColorPickerDefaults.ThumbWidth, + thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, +) { + val okhsl = state.okhslColor + val gradientColors = remember(okhsl.saturation, okhsl.lightness, coloringMode) { + when (coloringMode) { + ColoringMode.Independent -> buildOkGradient(OK_HUE_STOPS) { fraction -> + OkhslColor( + hue = hueFromFraction(fraction), + saturation = HUE_TRACK_SATURATION, + lightness = 0.5f, + ).toComposeColor() + } + + ColoringMode.Contextual -> buildOkGradient(OK_HUE_STOPS) { fraction -> + OkhslColor( + hue = hueFromFraction(fraction), + saturation = okhsl.saturation, + lightness = okhsl.lightness, + ).toComposeColor() + } + } + } + val thumbColor = remember(okhsl, coloringMode) { + when (coloringMode) { + // Matches the track so the thumb never disagrees with the strip under it. + ColoringMode.Independent -> OkhslColor( + hue = okhsl.hue, + saturation = HUE_TRACK_SATURATION, + lightness = 0.5f, + ).toComposeColor() + + ColoringMode.Contextual -> okhsl.toComposeColor() + } + } + + val interaction = remember(state) { SliderInteractionGuard(state) } + ColorSlider( + value = okhsl.hue / 360f, + onValueChange = { + interaction.begin() + state.updateOkhslHue(hueFromFraction(it)) + }, + gradientColors = gradientColors, + thumbColor = thumbColor, + label = label, + valueLabel = valueLabel, + semanticLabel = semanticLabel, + semanticValueText = semanticValueText, + colors = colors, + shapes = shapes, + modifier = modifier, + onValueChangeFinished = { interaction.end() }, + thumb = thumb, + thumbWidth = thumbWidth, + thumbTrackGap = thumbTrackGap, + ) +} + +/** + * Slider for the Okhsl saturation channel of [state], in `0..1`, from gray to the most + * colorful the hue and lightness allow on the display. + * + * @param coloringMode with [ColoringMode.Independent] (the default) the track is drawn at + * mid lightness; with [ColoringMode.Contextual] it is drawn at the current lightness. + * @param semanticLabel accessibility description of the slider; pass a localized string + * to replace the English default, or `null` to omit. + * @param semanticValueText accessibility announcement of the current value in percent. + */ +@Composable +public fun OkhslSaturationSlider( + state: ColorPickerState, + modifier: Modifier = Modifier, + coloringMode: ColoringMode = ColoringMode.Independent, + label: (@Composable () -> Unit)? = { SliderLabel("Saturation") }, + valueLabel: (@Composable () -> Unit)? = { SliderValueLabel("${state.okhslColor.intSaturation}%") }, + semanticLabel: String? = "Saturation", + semanticValueText: String? = "${state.okhslColor.intSaturation}%", + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), + thumb: (@Composable (InteractionSource) -> Unit)? = null, + thumbWidth: Dp = ColorPickerDefaults.ThumbWidth, + thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, +) { + val okhsl = state.okhslColor + val trackLightness = when (coloringMode) { + ColoringMode.Independent -> 0.5f + ColoringMode.Contextual -> okhsl.lightness + } + val gradientColors = remember(okhsl.hue, trackLightness) { + buildOkGradient(OK_CHANNEL_STOPS) { fraction -> + OkhslColor( + hue = okhsl.hue, + saturation = fraction, + lightness = trackLightness, + ).toComposeColor() + } + } + val thumbColor = remember(okhsl, trackLightness) { + OkhslColor( + hue = okhsl.hue, + saturation = okhsl.saturation, + lightness = trackLightness, + ).toComposeColor() + } + + val interaction = remember(state) { SliderInteractionGuard(state) } + ColorSlider( + value = okhsl.saturation, + onValueChange = { + interaction.begin() + state.updateOkhslSaturation(it) + }, + gradientColors = gradientColors, + thumbColor = thumbColor, + label = label, + valueLabel = valueLabel, + semanticLabel = semanticLabel, + semanticValueText = semanticValueText, + colors = colors, + shapes = shapes, + modifier = modifier, + onValueChangeFinished = { interaction.end() }, + thumb = thumb, + thumbWidth = thumbWidth, + thumbTrackGap = thumbTrackGap, + ) +} + +/** + * Slider for the Okhsl lightness channel of [state], in `0..1`, from black through the + * hue to white. + * + * Unlike [LightnessSlider], the value here is perceived lightness: the midpoint of this + * track looks equally light at every hue, which is the whole reason to prefer Okhsl over + * HSL. + * + * @param coloringMode with [ColoringMode.Independent] (the default) the track is drawn at + * full saturation; with [ColoringMode.Contextual] it is drawn at the current saturation. + * @param semanticLabel accessibility description of the slider; pass a localized string + * to replace the English default, or `null` to omit. + * @param semanticValueText accessibility announcement of the current value in percent. + */ +@Composable +public fun OkhslLightnessSlider( + state: ColorPickerState, + modifier: Modifier = Modifier, + coloringMode: ColoringMode = ColoringMode.Independent, + label: (@Composable () -> Unit)? = { SliderLabel("Lightness") }, + valueLabel: (@Composable () -> Unit)? = { SliderValueLabel("${state.okhslColor.intLightness}%") }, + semanticLabel: String? = "Lightness", + semanticValueText: String? = "${state.okhslColor.intLightness}%", + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), + thumb: (@Composable (InteractionSource) -> Unit)? = null, + thumbWidth: Dp = ColorPickerDefaults.ThumbWidth, + thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, +) { + val okhsl = state.okhslColor + val trackSaturation = when (coloringMode) { + ColoringMode.Independent -> HUE_TRACK_SATURATION + ColoringMode.Contextual -> okhsl.saturation + } + val gradientColors = remember(okhsl.hue, trackSaturation) { + buildOkGradient(OK_CHANNEL_STOPS) { fraction -> + OkhslColor( + hue = okhsl.hue, + saturation = trackSaturation, + lightness = fraction, + ).toComposeColor() + } + } + val thumbColor = remember(okhsl, trackSaturation) { + OkhslColor( + hue = okhsl.hue, + saturation = trackSaturation, + lightness = okhsl.lightness, + ).toComposeColor() + } + + val interaction = remember(state) { SliderInteractionGuard(state) } + ColorSlider( + value = okhsl.lightness, + onValueChange = { + interaction.begin() + state.updateOkhslLightness(it) + }, + gradientColors = gradientColors, + thumbColor = thumbColor, + label = label, + valueLabel = valueLabel, + semanticLabel = semanticLabel, + semanticValueText = semanticValueText, + colors = colors, + shapes = shapes, + modifier = modifier, + onValueChangeFinished = { interaction.end() }, + thumb = thumb, + thumbWidth = thumbWidth, + thumbTrackGap = thumbTrackGap, + ) +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvColorPicker.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvColorPicker.kt new file mode 100644 index 0000000..ee07213 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvColorPicker.kt @@ -0,0 +1,61 @@ +package codes.side.colorpicker.ui + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import codes.side.colorpicker.state.ColorPickerState +import codes.side.colorpicker.state.ColoringMode +import codes.side.colorpicker.theme.ColorPickerColors +import codes.side.colorpicker.theme.ColorPickerDefaults +import codes.side.colorpicker.theme.ColorPickerShapes + +/** + * Complete Okhsv picker: hue, saturation, and value sliders, plus an optional alpha + * slider. + * + * Shares Okhsl's perceptual hue and gamut-relative saturation, but keeps the HSV + * arrangement: full saturation at full value is the most vivid form of a hue, and pulling + * value down darkens toward black. Pick this over [OkhslColorPicker] when users expect + * the shape of a paint-program picker; pick Okhsl when the midpoint of the lightness + * track should be a mid tone. + * + * @param showAlpha whether to include the [AlphaSlider]. + * @param coloringMode defaults to [ColoringMode.Independent], for the same reason as + * [HslColorPicker]: a contextual hue track collapses into a near-uniform strip at low + * saturation or value, and stops being navigable. + * @param colors checkerboard colors; see [ColorPickerDefaults.colors]. + * @param shapes track shape; see [ColorPickerDefaults.shapes]. + */ +@Composable +public fun OkhsvColorPicker( + state: ColorPickerState, + modifier: Modifier = Modifier, + showAlpha: Boolean = true, + coloringMode: ColoringMode = ColoringMode.Independent, + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + OkhsvHueSlider(state = state, coloringMode = coloringMode, colors = colors, shapes = shapes) + OkhsvSaturationSlider( + state = state, + coloringMode = coloringMode, + colors = colors, + shapes = shapes, + ) + OkhsvValueSlider( + state = state, + coloringMode = coloringMode, + colors = colors, + shapes = shapes, + ) + if (showAlpha) { + AlphaSlider(state = state, colors = colors, shapes = shapes) + } + } +} diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt new file mode 100644 index 0000000..12eeab4 --- /dev/null +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt @@ -0,0 +1,237 @@ +package codes.side.colorpicker.ui + +import androidx.compose.foundation.interaction.InteractionSource +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.Dp +import codes.side.colorpicker.conversion.toComposeColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.state.ColorPickerState +import codes.side.colorpicker.state.ColoringMode +import codes.side.colorpicker.theme.ColorPickerColors +import codes.side.colorpicker.theme.ColorPickerDefaults +import codes.side.colorpicker.theme.ColorPickerShapes + +// Okhsv's hue track meets the same gamut corners as Okhsl's, so it is drawn just off the +// boundary for the same reason; see HUE_TRACK_SATURATION in OkhslSliders.kt. +private const val HUE_TRACK_SATURATION = 0.85f + +private const val OK_HUE_STOPS = 32 +private const val OK_CHANNEL_STOPS = 16 + +/** + * Slider for the Okhsv hue channel of [state], in degrees `0..360`. + * + * @param coloringMode with [ColoringMode.Independent] (the default) the track shows the + * full spectrum at a fixed saturation and value; with [ColoringMode.Contextual] it is + * rendered at the current saturation and value. + * @param semanticLabel accessibility description of the slider; pass a localized string + * to replace the English default, or `null` to omit. + * @param semanticValueText accessibility announcement of the current value in degrees. + */ +@Composable +public fun OkhsvHueSlider( + state: ColorPickerState, + modifier: Modifier = Modifier, + coloringMode: ColoringMode = ColoringMode.Independent, + label: (@Composable () -> Unit)? = { SliderLabel("Hue") }, + valueLabel: (@Composable () -> Unit)? = { SliderValueLabel("${state.okhsvColor.intHue}°") }, + semanticLabel: String? = "Hue", + semanticValueText: String? = "${state.okhsvColor.intHue}°", + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), + thumb: (@Composable (InteractionSource) -> Unit)? = null, + thumbWidth: Dp = ColorPickerDefaults.ThumbWidth, + thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, +) { + val okhsv = state.okhsvColor + val gradientColors = remember(okhsv.saturation, okhsv.value, coloringMode) { + when (coloringMode) { + ColoringMode.Independent -> buildOkGradient(OK_HUE_STOPS) { fraction -> + OkhsvColor( + hue = hueFromFraction(fraction), + saturation = HUE_TRACK_SATURATION, + value = 1f, + ).toComposeColor() + } + + ColoringMode.Contextual -> buildOkGradient(OK_HUE_STOPS) { fraction -> + OkhsvColor( + hue = hueFromFraction(fraction), + saturation = okhsv.saturation, + value = okhsv.value, + ).toComposeColor() + } + } + } + val thumbColor = remember(okhsv, coloringMode) { + when (coloringMode) { + ColoringMode.Independent -> OkhsvColor( + hue = okhsv.hue, + saturation = HUE_TRACK_SATURATION, + value = 1f, + ).toComposeColor() + + ColoringMode.Contextual -> okhsv.toComposeColor() + } + } + + val interaction = remember(state) { SliderInteractionGuard(state) } + ColorSlider( + value = okhsv.hue / 360f, + onValueChange = { + interaction.begin() + state.updateOkhsvHue(hueFromFraction(it)) + }, + gradientColors = gradientColors, + thumbColor = thumbColor, + label = label, + valueLabel = valueLabel, + semanticLabel = semanticLabel, + semanticValueText = semanticValueText, + colors = colors, + shapes = shapes, + modifier = modifier, + onValueChangeFinished = { interaction.end() }, + thumb = thumb, + thumbWidth = thumbWidth, + thumbTrackGap = thumbTrackGap, + ) +} + +/** + * Slider for the Okhsv saturation channel of [state], in `0..1`, from gray to the most + * colorful the hue and value allow on the display. + * + * @param coloringMode with [ColoringMode.Independent] (the default) the track is drawn at + * full value; with [ColoringMode.Contextual] it is drawn at the current value. + * @param semanticLabel accessibility description of the slider; pass a localized string + * to replace the English default, or `null` to omit. + * @param semanticValueText accessibility announcement of the current value in percent. + */ +@Composable +public fun OkhsvSaturationSlider( + state: ColorPickerState, + modifier: Modifier = Modifier, + coloringMode: ColoringMode = ColoringMode.Independent, + label: (@Composable () -> Unit)? = { SliderLabel("Saturation") }, + valueLabel: (@Composable () -> Unit)? = { SliderValueLabel("${state.okhsvColor.intSaturation}%") }, + semanticLabel: String? = "Saturation", + semanticValueText: String? = "${state.okhsvColor.intSaturation}%", + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), + thumb: (@Composable (InteractionSource) -> Unit)? = null, + thumbWidth: Dp = ColorPickerDefaults.ThumbWidth, + thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, +) { + val okhsv = state.okhsvColor + val trackValue = when (coloringMode) { + ColoringMode.Independent -> 1f + ColoringMode.Contextual -> okhsv.value + } + val gradientColors = remember(okhsv.hue, trackValue) { + buildOkGradient(OK_CHANNEL_STOPS) { fraction -> + OkhsvColor(hue = okhsv.hue, saturation = fraction, value = trackValue).toComposeColor() + } + } + val thumbColor = remember(okhsv, trackValue) { + OkhsvColor( + hue = okhsv.hue, + saturation = okhsv.saturation, + value = trackValue, + ).toComposeColor() + } + + val interaction = remember(state) { SliderInteractionGuard(state) } + ColorSlider( + value = okhsv.saturation, + onValueChange = { + interaction.begin() + state.updateOkhsvSaturation(it) + }, + gradientColors = gradientColors, + thumbColor = thumbColor, + label = label, + valueLabel = valueLabel, + semanticLabel = semanticLabel, + semanticValueText = semanticValueText, + colors = colors, + shapes = shapes, + modifier = modifier, + onValueChangeFinished = { interaction.end() }, + thumb = thumb, + thumbWidth = thumbWidth, + thumbTrackGap = thumbTrackGap, + ) +} + +/** + * Slider for the Okhsv value channel of [state], in `0..1`, from black to the full + * brightness of the current hue. + * + * @param coloringMode with [ColoringMode.Independent] (the default) the track is drawn at + * full saturation; with [ColoringMode.Contextual] it is drawn at the current saturation. + * @param semanticLabel accessibility description of the slider; pass a localized string + * to replace the English default, or `null` to omit. + * @param semanticValueText accessibility announcement of the current value in percent. + */ +@Composable +public fun OkhsvValueSlider( + state: ColorPickerState, + modifier: Modifier = Modifier, + coloringMode: ColoringMode = ColoringMode.Independent, + label: (@Composable () -> Unit)? = { SliderLabel("Value") }, + valueLabel: (@Composable () -> Unit)? = { SliderValueLabel("${state.okhsvColor.intValue}%") }, + semanticLabel: String? = "Value", + semanticValueText: String? = "${state.okhsvColor.intValue}%", + colors: ColorPickerColors = ColorPickerDefaults.colors(), + shapes: ColorPickerShapes = ColorPickerDefaults.shapes(), + thumb: (@Composable (InteractionSource) -> Unit)? = null, + thumbWidth: Dp = ColorPickerDefaults.ThumbWidth, + thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, +) { + val okhsv = state.okhsvColor + val trackSaturation = when (coloringMode) { + ColoringMode.Independent -> HUE_TRACK_SATURATION + ColoringMode.Contextual -> okhsv.saturation + } + val gradientColors = remember(okhsv.hue, trackSaturation) { + buildOkGradient(OK_CHANNEL_STOPS) { fraction -> + OkhsvColor( + hue = okhsv.hue, + saturation = trackSaturation, + value = fraction, + ).toComposeColor() + } + } + val thumbColor = remember(okhsv, trackSaturation) { + OkhsvColor( + hue = okhsv.hue, + saturation = trackSaturation, + value = okhsv.value, + ).toComposeColor() + } + + val interaction = remember(state) { SliderInteractionGuard(state) } + ColorSlider( + value = okhsv.value, + onValueChange = { + interaction.begin() + state.updateOkhsvValue(it) + }, + gradientColors = gradientColors, + thumbColor = thumbColor, + label = label, + valueLabel = valueLabel, + semanticLabel = semanticLabel, + semanticValueText = semanticValueText, + colors = colors, + shapes = shapes, + modifier = modifier, + onValueChangeFinished = { interaction.end() }, + thumb = thumb, + thumbWidth = thumbWidth, + thumbTrackGap = thumbTrackGap, + ) +} diff --git a/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt b/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt new file mode 100644 index 0000000..5d2b56a --- /dev/null +++ b/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt @@ -0,0 +1,366 @@ +package codes.side.colorpicker.conversion + +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor +import codes.side.colorpicker.model.RgbColor +import kotlin.math.abs +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class OkConversionsTest { + + private fun assertNear(expected: Float, actual: Float, tolerance: Float, msg: String = "") { + assertTrue( + abs(expected - actual) <= tolerance, + "$msg expected=$expected actual=$actual diff=${abs(expected - actual)}", + ) + } + + // =========================================================== + // Oklab against Björn Ottosson's published values + // =========================================================== + + @Test + fun oklabWhite() { + val lab = RgbColor(1f, 1f, 1f).toOklab() + assertNear(1f, lab.l, 1e-4f, "L") + assertNear(0f, lab.a, 1e-4f, "a") + assertNear(0f, lab.b, 1e-4f, "b") + } + + @Test + fun oklabBlack() { + val lab = RgbColor(0f, 0f, 0f).toOklab() + assertNear(0f, lab.l, 1e-4f, "L") + assertNear(0f, lab.a, 1e-4f, "a") + assertNear(0f, lab.b, 1e-4f, "b") + } + + @Test + fun oklabRed() { + val lab = RgbColor(1f, 0f, 0f).toOklab() + assertNear(0.6279f, lab.l, 1e-3f, "L") + assertNear(0.2249f, lab.a, 1e-3f, "a") + assertNear(0.1258f, lab.b, 1e-3f, "b") + } + + @Test + fun oklabGreen() { + val lab = RgbColor(0f, 1f, 0f).toOklab() + assertNear(0.8664f, lab.l, 1e-3f, "L") + assertNear(-0.2339f, lab.a, 1e-3f, "a") + assertNear(0.1795f, lab.b, 1e-3f, "b") + } + + @Test + fun oklabBlue() { + val lab = RgbColor(0f, 0f, 1f).toOklab() + assertNear(0.4520f, lab.l, 1e-3f, "L") + assertNear(-0.0324f, lab.a, 1e-3f, "a") + assertNear(-0.3115f, lab.b, 1e-3f, "b") + } + + @Test + fun oklabGrayHasNoChroma() { + val lab = RgbColor(0.5f, 0.5f, 0.5f).toOklab() + assertNear(0f, lab.a, 1e-5f, "a") + assertNear(0f, lab.b, 1e-5f, "b") + } + + // =========================================================== + // Round trips through sRGB + // =========================================================== + + private val sweep: List = buildList { + for (r in 0..255 step 17) { + for (g in 0..255 step 17) { + for (b in 0..255 step 17) { + add(RgbColor(r / 255f, g / 255f, b / 255f)) + } + } + } + } + + private fun assertSurvivesRoundTrip( + tolerance: Float, + label: String, + convert: (RgbColor) -> RgbColor, + ) { + var worst = 0f + var worstColor = "" + for (rgb in sweep) { + val back = convert(rgb) + val delta = maxOf( + abs(back.red - rgb.red), + abs(back.green - rgb.green), + abs(back.blue - rgb.blue), + ) + if (delta > worst) { + worst = delta + worstColor = "$rgb -> $back" + } + } + assertTrue(worst <= tolerance, "$label worst delta $worst exceeds $tolerance at $worstColor") + } + + @Test + fun oklabRoundTrip() { + assertSurvivesRoundTrip(1e-4f, "Oklab") { it.toOklab().toRgb() } + } + + @Test + fun oklchRoundTrip() { + assertSurvivesRoundTrip(1e-4f, "OkLCh") { it.toOklch().toRgb() } + } + + // Okhsl and Okhsv are looser than Oklab on purpose. Below the cusp the reference + // implementation approximates the gamut with a straight line to black, and about 4% + // of sRGB — the most saturated blues and violets — lies just outside it, by at most + // 2.6% of the boundary chroma. Ottosson lets saturation exceed 1 there; a 0..1 + // channel cannot, so those colours come back with slightly less chroma. Measured + // worst case over the full cube is 4 steps of 255. Matching the reference matters + // more than closing that gap: an Okhsl value has to mean the same here as it does + // in colorjs or a browser. + + @Test + fun okhslRoundTrip() { + assertSurvivesRoundTrip(0.02f, "Okhsl") { it.toOkhsl().toRgb() } + } + + @Test + fun okhsvRoundTrip() { + assertSurvivesRoundTrip(0.02f, "Okhsv") { it.toOkhsv().toRgb() } + } + + @Test + fun okhslRoundTripIsExactAwayFromTheGamutBoundary() { + // Away from the boundary the triangle approximation does not bind, so the round + // trip has to be tight. This is the test that would catch a real regression. + var worst = 0f + for (rgb in sweep) { + val okhsl = rgb.toOkhsl() + if (okhsl.saturation > 0.9f) continue + val back = okhsl.toRgb() + worst = maxOf( + worst, + abs(back.red - rgb.red), + abs(back.green - rgb.green), + abs(back.blue - rgb.blue), + ) + } + assertTrue(worst <= 1e-3f, "Okhsl round trip below saturation 0.9 drifted by $worst") + } + + // =========================================================== + // Okhsl / Okhsv structure + // =========================================================== + + @Test + fun okhslFullSaturationStaysInGamut() { + // s = 1 means the gamut boundary, so the conversion must not need clamping: + // going out and back has to return the same coordinates. + var hue = 0f + while (hue < 360f) { + var lightness = 0.1f + while (lightness <= 0.9f) { + val original = OkhslColor(hue = hue, saturation = 1f, lightness = lightness) + val back = original.toRgb().toOkhsl() + assertNear(1f, back.saturation, 2e-2f, "saturation at hue=$hue l=$lightness") + lightness += 0.1f + } + hue += 15f + } + } + + @Test + fun okhslZeroSaturationIsGray() { + val rgb = OkhslColor(hue = 200f, saturation = 0f, lightness = 0.5f).toRgb() + assertNear(rgb.red, rgb.green, 1e-4f, "red vs green") + assertNear(rgb.green, rgb.blue, 1e-4f, "green vs blue") + } + + @Test + fun okhslLightnessIsPerceptual() { + // The complaint about HSL: blue and yellow at the same lightness look nothing + // alike. In Okhsl the same lightness has to mean the same perceived lightness, + // so their Oklab L must agree even though their hues do not. + val blue = OkhslColor(hue = 264f, saturation = 1f, lightness = 0.5f).toRgb().toOklab() + val yellow = OkhslColor(hue = 110f, saturation = 1f, lightness = 0.5f).toRgb().toOklab() + assertNear(blue.l, yellow.l, 1e-2f, "perceived lightness") + } + + @Test + fun hslLightnessIsNotPerceptual() { + // The contrast case for the test above, pinning why Okhsl is worth having. + val blue = codes.side.colorpicker.model.HslColor(240f, 1f, 0.5f).toRgb().toOklab() + val yellow = codes.side.colorpicker.model.HslColor(60f, 1f, 0.5f).toRgb().toOklab() + assertTrue( + abs(blue.l - yellow.l) > 0.3f, + "HSL blue and yellow should differ widely in perceived lightness, got ${blue.l} and ${yellow.l}", + ) + } + + @Test + fun okhsvFullValueFullSaturationSitsOnTheGamutBoundary() { + // Okhsv hue is Oklab's hue angle, so hue 0 is not sRGB red. What s=1, v=1 does + // promise at every hue is the most vivid color the display can reach, which + // means one channel pinned at its maximum. + var hue = 0f + while (hue < 360f) { + val rgb = OkhsvColor(hue = hue, saturation = 1f, value = 1f).toRgb() + val brightest = maxOf(rgb.red, rgb.green, rgb.blue) + assertNear(1f, brightest, 1e-2f, "brightest channel at hue=$hue") + hue += 15f + } + } + + @Test + fun okhsvZeroValueIsBlack() { + val rgb = OkhsvColor(hue = 123f, saturation = 0.7f, value = 0f).toRgb() + assertEquals(0f, rgb.red) + assertEquals(0f, rgb.green) + assertEquals(0f, rgb.blue) + } + + // =========================================================== + // Alpha and degenerate inputs + // =========================================================== + + @Test + fun alphaSurvivesEverySpace() { + val rgb = RgbColor(0.2f, 0.6f, 0.9f, alpha = 0.37f) + assertEquals(0.37f, rgb.toOklab().alpha, "oklab") + assertEquals(0.37f, rgb.toOklch().alpha, "oklch") + assertEquals(0.37f, rgb.toOkhsl().alpha, "okhsl") + assertEquals(0.37f, rgb.toOkhsv().alpha, "okhsv") + assertEquals(0.37f, rgb.toOklab().toRgb().alpha, "oklab back") + assertEquals(0.37f, rgb.toOkhsl().toRgb().alpha, "okhsl back") + assertEquals(0.37f, rgb.toOkhsv().toRgb().alpha, "okhsv back") + } + + @Test + fun grayHasNoHueAndNoSaturation() { + for (level in listOf(0f, 0.25f, 0.5f, 0.75f, 1f)) { + val gray = RgbColor(level, level, level) + val okhsl = gray.toOkhsl() + val okhsv = gray.toOkhsv() + assertNear(0f, okhsl.saturation, 1e-5f, "okhsl saturation at $level") + assertNear(0f, okhsv.saturation, 1e-5f, "okhsv saturation at $level") + } + } + + @Test + fun everyOkhslCoordinateProducesAFiniteColor() { + var hue = 0f + while (hue < 360f) { + var s = 0f + while (s <= 1f) { + var l = 0f + while (l <= 1f) { + val rgb = OkhslColor(hue, s, l).toRgb() + assertTrue(rgb.red.isFinite(), "red at ($hue, $s, $l)") + assertTrue(rgb.green.isFinite(), "green at ($hue, $s, $l)") + assertTrue(rgb.blue.isFinite(), "blue at ($hue, $s, $l)") + l += 0.125f + } + s += 0.125f + } + hue += 30f + } + } + + @Test + fun everyOkhsvCoordinateProducesAFiniteColor() { + var hue = 0f + while (hue < 360f) { + var s = 0f + while (s <= 1f) { + var v = 0f + while (v <= 1f) { + val rgb = OkhsvColor(hue, s, v).toRgb() + assertTrue(rgb.red.isFinite(), "red at ($hue, $s, $v)") + assertTrue(rgb.green.isFinite(), "green at ($hue, $s, $v)") + assertTrue(rgb.blue.isFinite(), "blue at ($hue, $s, $v)") + v += 0.125f + } + s += 0.125f + } + hue += 30f + } + } + + // =========================================================== + // Gamut mapping + // =========================================================== + + @Test + fun inGamutColorsPassThroughUntouched() { + for (rgb in sweep) { + val lab = rgb.toOklab() + val back = lab.toRgb() + assertNear(rgb.red, back.red, 1e-4f, "red for $rgb") + assertNear(rgb.green, back.green, 1e-4f, "green for $rgb") + assertNear(rgb.blue, back.blue, 1e-4f, "blue for $rgb") + } + } + + @Test + fun gamutMappingGivesUpChromaFirst() { + // An Oklab chroma this high is outside sRGB at every hue. What must survive is + // lightness and hue; chroma is the channel that pays. + var hue = 0f + while (hue < 360f) { + val original = OklchColor(l = 0.5f, chroma = 0.4f, hue = hue) + val mapped = original.toRgb().toOklch() + assertNear(0.5f, mapped.l, 3e-2f, "lightness at hue=$hue") + assertTrue( + mapped.chroma < original.chroma, + "chroma should have been reduced at hue=$hue", + ) + hue += 15f + } + } + + @Test + fun gamutMappingBeatsPerChannelClamp() { + // The comparison the CSS algorithm exists to win. Local-MINDE finishes on a clip, + // so it does not hold lightness and hue exactly — but it has to hold them far + // better than clamping each channel independently, which is what the LAB path + // does and what CSS Color 4 rejects. + var mappingWins = 0 + var total = 0 + var hue = 0f + while (hue < 360f) { + val original = OklchColor(l = 0.5f, chroma = 0.4f, hue = hue) + val lab = original.toOklab() + + val mapped = original.toRgb().toOklch() + + val clampedLinear = oklabToLinearSrgb( + OkLab(lab.l.toDouble(), lab.a.toDouble(), lab.b.toDouble()), + ).clipToUnit() + val clamped = RgbColor( + red = delinearize(clampedLinear.r).toFloat().coerceIn(0f, 1f), + green = delinearize(clampedLinear.g).toFloat().coerceIn(0f, 1f), + blue = delinearize(clampedLinear.b).toFloat().coerceIn(0f, 1f), + ).toOklch() + + fun drift(candidate: OklchColor): Float { + val dL = abs(candidate.l - original.l) + val dHue = abs(candidate.hue - original.hue).let { minOf(it, 360f - it) } / 360f + return dL + dHue + } + + total++ + if (drift(mapped) <= drift(clamped)) mappingWins++ + hue += 15f + } + assertTrue( + mappingWins * 4 >= total * 3, + "gamut mapping should beat per-channel clamping on most hues, won $mappingWins of $total", + ) + } +} diff --git a/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/state/OkColorPickerStateTest.kt b/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/state/OkColorPickerStateTest.kt new file mode 100644 index 0000000..13d480c --- /dev/null +++ b/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/state/OkColorPickerStateTest.kt @@ -0,0 +1,219 @@ +package codes.side.colorpicker.state + +import androidx.compose.runtime.saveable.SaverScope +import codes.side.colorpicker.model.HslColor +import codes.side.colorpicker.model.LabColor +import codes.side.colorpicker.model.OkhslColor +import codes.side.colorpicker.model.OkhsvColor +import codes.side.colorpicker.model.OklabColor +import codes.side.colorpicker.model.OklchColor +import codes.side.colorpicker.model.RgbColor +import kotlin.math.abs +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertIs +import kotlin.test.assertSame +import kotlin.test.assertTrue + +// The Saver contract asks whether a value can be persisted; nothing here is rejected. +private val AlwaysSaveable = SaverScope { true } + +class OkColorPickerStateTest { + + private fun assertNear(expected: Float, actual: Float, tolerance: Float, msg: String = "") { + assertTrue( + abs(expected - actual) <= tolerance, + "$msg expected=$expected actual=$actual diff=${abs(expected - actual)}", + ) + } + + // ---- Origin space ---- + + @Test + fun pickerColorTracksEveryNewSpace() { + val state = ColorPickerState() + assertIs(state.pickerColor) + state.updateOklabLightness(0.6f) + assertIs(state.pickerColor) + state.updateOklchChroma(0.1f) + assertIs(state.pickerColor) + state.updateOkhslSaturation(0.7f) + assertIs(state.pickerColor) + state.updateOkhsvValue(0.8f) + assertIs(state.pickerColor) + state.updateRed(0.1f) + assertIs(state.pickerColor) + } + + @Test + fun updateAlphaPreservesEveryNewOriginSpace() { + for (color in listOf( + OklabColor(0.5f, 0.1f, 0.1f), + OklchColor(0.5f, 0.1f, 120f), + OkhslColor(120f, 0.5f, 0.5f), + OkhsvColor(120f, 0.5f, 0.5f), + )) { + val state = ColorPickerState(color) + state.updateAlpha(0.25f) + assertEquals(color::class, state.pickerColor::class, "origin space for $color") + assertEquals(0.25f, state.pickerColor.alpha, "alpha for $color") + } + } + + // ---- Zero drift within each new space ---- + + @Test + fun updateFromReadsBackTheExactInstance() { + val oklab = OklabColor(0.42f, -0.13f, 0.07f, alpha = 0.6f) + ColorPickerState().let { + it.updateFromOklab(oklab) + assertSame(oklab, it.pickerColor) + assertSame(oklab, it.oklabColor) + } + + val oklch = OklchColor(0.42f, 0.13f, 217f, alpha = 0.6f) + ColorPickerState().let { + it.updateFromOklch(oklch) + assertSame(oklch, it.pickerColor) + assertSame(oklch, it.oklchColor) + } + + val okhsl = OkhslColor(217f, 0.63f, 0.42f, alpha = 0.6f) + ColorPickerState().let { + it.updateFromOkhsl(okhsl) + assertSame(okhsl, it.pickerColor) + assertSame(okhsl, it.okhslColor) + } + + val okhsv = OkhsvColor(217f, 0.63f, 0.42f, alpha = 0.6f) + ColorPickerState().let { + it.updateFromOkhsv(okhsv) + assertSame(okhsv, it.pickerColor) + assertSame(okhsv, it.okhsvColor) + } + } + + @Test + fun editingOneOkhslChannelLeavesTheOthersUntouched() { + val state = ColorPickerState(OkhslColor(hue = 200f, saturation = 0.8f, lightness = 0.4f)) + state.updateOkhslHue(275f) + assertEquals(275f, state.okhslColor.hue) + assertEquals(0.8f, state.okhslColor.saturation) + assertEquals(0.4f, state.okhslColor.lightness) + } + + @Test + fun editingOneOklchChannelLeavesTheOthersUntouched() { + val state = ColorPickerState(OklchColor(l = 0.4f, chroma = 0.12f, hue = 200f)) + state.updateOklchHue(275f) + assertEquals(275f, state.oklchColor.hue) + assertEquals(0.4f, state.oklchColor.l) + assertEquals(0.12f, state.oklchColor.chroma) + } + + // ---- Clamping ---- + + @Test + fun channelsClampRatherThanThrow() { + val state = ColorPickerState() + state.updateOklabA(5f) + assertEquals(0.4f, state.oklabColor.a) + state.updateOklabB(-5f) + assertEquals(-0.4f, state.oklabColor.b) + state.updateOklchChroma(5f) + assertEquals(0.4f, state.oklchColor.chroma) + state.updateOkhslSaturation(5f) + assertEquals(1f, state.okhslColor.saturation) + state.updateOkhsvValue(-5f) + assertEquals(0f, state.okhsvColor.value) + } + + @Test + fun nanIsIgnoredOnEveryNewChannel() { + val state = ColorPickerState(OkhslColor(hue = 200f, saturation = 0.8f, lightness = 0.4f)) + val before = state.pickerColor + state.updateOkhslHue(Float.NaN) + state.updateOkhslSaturation(Float.NaN) + state.updateOkhslLightness(Float.NaN) + state.updateOkhsvHue(Float.NaN) + state.updateOkhsvSaturation(Float.NaN) + state.updateOkhsvValue(Float.NaN) + state.updateOklabLightness(Float.NaN) + state.updateOklabA(Float.NaN) + state.updateOklabB(Float.NaN) + state.updateOklchLightness(Float.NaN) + state.updateOklchChroma(Float.NaN) + state.updateOklchHue(Float.NaN) + assertSame(before, state.pickerColor) + } + + // ---- Derived views agree with each other ---- + + @Test + fun everySpaceDescribesTheSameColor() { + val state = ColorPickerState(RgbColor(0.2f, 0.6f, 0.85f)) + val argb = state.argbInt + + for (color in listOf( + state.oklabColor, + state.oklchColor, + state.okhslColor, + state.okhsvColor, + )) { + val roundTripped = ColorPickerState(color).argbInt + assertEquals(argb, roundTripped, "argb via $color") + } + } + + @Test + fun switchingOriginSpaceKeepsTheColorStable() { + val state = ColorPickerState(OkhslColor(hue = 217f, saturation = 0.7f, lightness = 0.45f)) + val before = state.rgbColor + + // Touch each space in turn without changing the color it represents. + state.updateFromOklab(state.oklabColor) + state.updateFromOklch(state.oklchColor) + state.updateFromOkhsv(state.okhsvColor) + state.updateFromLab(state.labColor) + + val after = state.rgbColor + assertNear(before.red, after.red, 2e-2f, "red") + assertNear(before.green, after.green, 2e-2f, "green") + assertNear(before.blue, after.blue, 2e-2f, "blue") + } + + // ---- Saved state ---- + + @Test + fun everyNewSpaceSurvivesSaveAndRestore() { + for (color in listOf( + OklabColor(0.42f, -0.13f, 0.07f, alpha = 0.6f), + OklchColor(0.42f, 0.13f, 217f, alpha = 0.6f), + OkhslColor(217f, 0.63f, 0.42f, alpha = 0.6f), + OkhsvColor(217f, 0.63f, 0.42f, alpha = 0.6f), + )) { + val saved = with(ColorPickerStateSaver) { + AlwaysSaveable.save(ColorPickerState(color)) + } + val restored = ColorPickerStateSaver.restore(saved!!) + assertEquals(color, restored?.pickerColor, "restored $color") + } + } + + @Test + fun theSpaceKeysOfTheExistingSpacesAreUnchanged() { + // The saved format is persisted across process death, so these keys are a + // compatibility surface: a state saved by 1.x has to restore under 2.x. + val cases = listOf( + 0f to HslColor(200f, 0.5f, 0.5f), + 1f to RgbColor(0.1f, 0.2f, 0.3f), + 3f to LabColor(50f, 10f, -10f), + ) + for ((key, color) in cases) { + val saved = with(ColorPickerStateSaver) { + AlwaysSaveable.save(ColorPickerState(color)) + } + assertEquals(key, saved!![0], "space key for $color") + } + } +} diff --git a/docs/images/okhsl-contextual.png b/docs/images/okhsl-contextual.png new file mode 100644 index 0000000000000000000000000000000000000000..08a8972c28f75e4539c62cbd870989c505872959 GIT binary patch literal 116878 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�=L3m+Oy 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

!lRw~smMj*6W` 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 z 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 literal 0 HcmV?d00001 diff --git a/screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhsvIndependentPreview_Okhsv independent_b9c3f979_0.png b/screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhsvIndependentPreview_Okhsv independent_b9c3f979_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3696fddb4d98e113d85e4c1b12f0ebf113ccf7a5 GIT binary patch literal 113359 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 &*Oxv9WVi6IYv+x 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 Date: Wed, 2 Sep 2026 15:42:44 -0400 Subject: [PATCH 2/4] Fold the Ok* branches into expressions computeMaxSaturation declared eight uninitialized vals and filled them from a three-way if chain, which is how the C++ reference has to do it and not how Kotlin does. The coefficients are now three named constants picked by a when, so the branch says which channel clips first instead of assigning to eight names. The two grays in each of toOkhsl and toOkhsv were built twice from the same arguments, once per guard. Hoisting the construction turns both guards into single lines. The hue sliders built a whole gradient per coloring mode when the modes differ only in the saturation and lightness the strip is drawn at. Choosing that pair first also tightens the remember keys: Independent no longer rebuilds the track when the color's own saturation changes. --- .../colorpicker/conversion/GamutMapping.kt | 18 ++--- .../side/colorpicker/conversion/OkGamut.kt | 65 ++++++++++++------- .../conversion/OkhslConversions.kt | 9 +-- .../conversion/OkhsvConversions.kt | 16 ++--- .../codes/side/colorpicker/ui/OkhslSliders.kt | 50 +++++++------- .../codes/side/colorpicker/ui/OkhsvSliders.kt | 49 +++++++------- 6 files changed, 106 insertions(+), 101 deletions(-) diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt index b71c3e3..f53f618 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/GamutMapping.kt @@ -59,15 +59,15 @@ internal fun gamutMapToSrgb(origin: OkLab): LinearRgb { clipped = currentRgb.clipToUnit() val error = deltaEOk(linearSrgbToOklab(clipped), current) - if (error >= JND) { - max = chroma - } else if (JND - error < EPSILON) { - return clipped - } else { - // Close enough that clipping is nearly free, but there is still chroma to - // recover; keep searching upward with clipping now allowed. - minInGamut = false - min = chroma + when { + error >= JND -> max = chroma + JND - error < EPSILON -> return clipped + else -> { + // Close enough that clipping is nearly free, but there is still chroma to + // recover; keep searching upward with clipping now allowed. + minInGamut = false + min = chroma + } } } diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt index b234c20..2e4d816 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkGamut.kt @@ -83,31 +83,46 @@ internal fun toeInv(x: Double): Double = (x * x + TOE_K1 * x) / (TOE_K3 * (x + T * channel that goes out first. A polynomial approximation refined by one Halley step, * which lands within a rounding error of the true boundary. */ +/** + * Per-channel coefficients for [computeMaxSaturation]: `k0`..`k4` fit the saturation at + * which that channel clips, and `wl`/`wm`/`ws` are its row of the Oklab-to-linear matrix. + */ +private class MaxSaturationFit( + val k0: Double, + val k1: Double, + val k2: Double, + val k3: Double, + val k4: Double, + val wl: Double, + val wm: Double, + val ws: Double, +) + +private val RedClipsFirst = MaxSaturationFit( + k0 = 1.19086277, k1 = 1.76576728, k2 = 0.59662641, k3 = 0.75515197, k4 = 0.56771245, + wl = 4.0767416621, wm = -3.3077115913, ws = 0.2309699292, +) + +private val GreenClipsFirst = MaxSaturationFit( + k0 = 0.73956515, k1 = -0.45954404, k2 = 0.08285427, k3 = 0.12541070, k4 = 0.14503204, + wl = -1.2684380046, wm = 2.6097574011, ws = -0.3413193965, +) + +private val BlueClipsFirst = MaxSaturationFit( + k0 = 1.35733652, k1 = -0.00915799, k2 = -1.15130210, k3 = -0.50559606, k4 = 0.00692167, + wl = -0.0041960863, wm = -0.7034186147, ws = 1.7076147010, +) + internal fun computeMaxSaturation(aNorm: Double, bNorm: Double): Double { - val k0: Double - val k1: Double - val k2: Double - val k3: Double - val k4: Double - val wl: Double - val wm: Double - val ws: Double - - if (-1.88170328 * aNorm - 0.80936493 * bNorm > 1.0) { - // Red channel leaves the gamut first. - k0 = 1.19086277; k1 = 1.76576728; k2 = 0.59662641; k3 = 0.75515197; k4 = 0.56771245 - wl = 4.0767416621; wm = -3.3077115913; ws = 0.2309699292 - } else if (1.81444104 * aNorm - 1.19445276 * bNorm > 1.0) { - // Green channel leaves the gamut first. - k0 = 0.73956515; k1 = -0.45954404; k2 = 0.08285427; k3 = 0.12541070; k4 = 0.14503204 - wl = -1.2684380046; wm = 2.6097574011; ws = -0.3413193965 - } else { - // Blue channel leaves the gamut first. - k0 = 1.35733652; k1 = -0.00915799; k2 = -1.15130210; k3 = -0.50559606; k4 = 0.00692167 - wl = -0.0041960863; wm = -0.7034186147; ws = 1.7076147010 + val fit = when { + -1.88170328 * aNorm - 0.80936493 * bNorm > 1.0 -> RedClipsFirst + 1.81444104 * aNorm - 1.19445276 * bNorm > 1.0 -> GreenClipsFirst + else -> BlueClipsFirst } - val approx = k0 + k1 * aNorm + k2 * bNorm + k3 * aNorm * aNorm + k4 * aNorm * bNorm + val approx = with(fit) { + k0 + k1 * aNorm + k2 * bNorm + k3 * aNorm * aNorm + k4 * aNorm * bNorm + } val kL = 0.3963377774 * aNorm + 0.2158037573 * bNorm val kM = -0.1055613458 * aNorm - 0.0638541728 * bNorm @@ -129,9 +144,9 @@ internal fun computeMaxSaturation(aNorm: Double, bNorm: Double): Double { val mds2 = 6.0 * kM * kM * mRoot val sds2 = 6.0 * kS * kS * sRoot - val f = wl * l + wm * m + ws * s - val f1 = wl * lds + wm * mds + ws * sds - val f2 = wl * lds2 + wm * mds2 + ws * sds2 + val f = fit.wl * l + fit.wm * m + fit.ws * s + val f1 = fit.wl * lds + fit.wm * mds + fit.ws * sds + val f2 = fit.wl * lds2 + fit.wm * mds2 + fit.ws * sds2 return approx - f * f1 / (f1 * f1 - 0.5 * f * f2) } diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt index bcf791f..cee9bf4 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhslConversions.kt @@ -57,12 +57,11 @@ public fun RgbColor.toOkhsl(): OkhslColor { val chroma = hypot(lab.a, lab.b) val lightness = toe(lab.l).toFloat().coerceIn(0f, 1f) + val gray = OkhslColor(hue = 0f, saturation = 0f, lightness = lightness, alpha = alpha) // At the black and white poles the chroma anchors below collapse to zero and the // interpolation divides by them, so grays are answered before that can happen. - if (chroma < ACHROMATIC_CHROMA || lab.l <= 0.0 || lab.l >= 1.0) { - return OkhslColor(hue = 0f, saturation = 0f, lightness = lightness, alpha = alpha) - } + if (chroma < ACHROMATIC_CHROMA || lab.l <= 0.0 || lab.l >= 1.0) return gray val aUnit = lab.a / chroma val bUnit = lab.b / chroma @@ -71,9 +70,7 @@ public fun RgbColor.toOkhsl(): OkhslColor { val anchors = getChromaAnchors(lab.l, aUnit, bUnit) val saturation = saturationForChroma(chroma, anchors) - if (!saturation.isFinite()) { - return OkhslColor(hue = 0f, saturation = 0f, lightness = lightness, alpha = alpha) - } + if (!saturation.isFinite()) return gray return OkhslColor( hue = ((degrees % 360.0 + 360.0) % 360.0).toFloat().coerceIn(0f, 360f), diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt index 4f1f05d..72df68a 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/conversion/OkhsvConversions.kt @@ -78,13 +78,16 @@ public fun RgbColor.toOkhsv(): OkhsvColor { ) val chroma = hypot(lab.a, lab.b) + val gray = OkhsvColor( + hue = 0f, + saturation = 0f, + value = toe(lab.l).toFloat().coerceIn(0f, 1f), + alpha = alpha, + ) // At the black and white poles the construction below divides by quantities that // have gone to zero, so grays are answered before that can happen. - if (chroma < ACHROMATIC_CHROMA || lab.l <= 0.0 || lab.l >= 1.0) { - val gray = toe(lab.l).toFloat().coerceIn(0f, 1f) - return OkhsvColor(hue = 0f, saturation = 0f, value = gray, alpha = alpha) - } + if (chroma < ACHROMATIC_CHROMA || lab.l <= 0.0 || lab.l >= 1.0) return gray val aUnit = lab.a / chroma val bUnit = lab.b / chroma @@ -113,10 +116,7 @@ public fun RgbColor.toOkhsv(): OkhsvColor { // The construction collapses at the black pole, where neither saturation nor value // has a value to take; the arithmetic goes non-finite rather than wrong. - if (!saturation.isFinite() || !value.isFinite()) { - val gray = toe(lab.l).toFloat().coerceIn(0f, 1f) - return OkhsvColor(hue = 0f, saturation = 0f, value = gray, alpha = alpha) - } + if (!saturation.isFinite() || !value.isFinite()) return gray return OkhsvColor( hue = ((degrees % 360.0 + 360.0) % 360.0).toFloat().coerceIn(0f, 360f), diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt index 7647b15..f5fa3ae 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhslSliders.kt @@ -67,37 +67,33 @@ public fun OkhslHueSlider( thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, ) { val okhsl = state.okhslColor - val gradientColors = remember(okhsl.saturation, okhsl.lightness, coloringMode) { - when (coloringMode) { - ColoringMode.Independent -> buildOkGradient(OK_HUE_STOPS) { fraction -> - OkhslColor( - hue = hueFromFraction(fraction), - saturation = HUE_TRACK_SATURATION, - lightness = 0.5f, - ).toComposeColor() - } - - ColoringMode.Contextual -> buildOkGradient(OK_HUE_STOPS) { fraction -> - OkhslColor( - hue = hueFromFraction(fraction), - saturation = okhsl.saturation, - lightness = okhsl.lightness, - ).toComposeColor() - } - } + // The two coloring modes differ only in which saturation and lightness the strip is + // drawn at, so they pick the pair rather than each building a gradient of its own. + val trackSaturation = when (coloringMode) { + ColoringMode.Independent -> HUE_TRACK_SATURATION + ColoringMode.Contextual -> okhsl.saturation } - val thumbColor = remember(okhsl, coloringMode) { - when (coloringMode) { - // Matches the track so the thumb never disagrees with the strip under it. - ColoringMode.Independent -> OkhslColor( - hue = okhsl.hue, - saturation = HUE_TRACK_SATURATION, - lightness = 0.5f, + val trackLightness = when (coloringMode) { + ColoringMode.Independent -> 0.5f + ColoringMode.Contextual -> okhsl.lightness + } + val gradientColors = remember(trackSaturation, trackLightness) { + buildOkGradient(OK_HUE_STOPS) { fraction -> + OkhslColor( + hue = hueFromFraction(fraction), + saturation = trackSaturation, + lightness = trackLightness, ).toComposeColor() - - ColoringMode.Contextual -> okhsl.toComposeColor() } } + // Matches the track so the thumb never disagrees with the strip under it. + val thumbColor = remember(okhsl.hue, trackSaturation, trackLightness) { + OkhslColor( + hue = okhsl.hue, + saturation = trackSaturation, + lightness = trackLightness, + ).toComposeColor() + } val interaction = remember(state) { SliderInteractionGuard(state) } ColorSlider( diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt index 12eeab4..636bf5c 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/ui/OkhsvSliders.kt @@ -46,36 +46,33 @@ public fun OkhsvHueSlider( thumbTrackGap: Dp = ColorPickerDefaults.ThumbTrackGap, ) { val okhsv = state.okhsvColor - val gradientColors = remember(okhsv.saturation, okhsv.value, coloringMode) { - when (coloringMode) { - ColoringMode.Independent -> buildOkGradient(OK_HUE_STOPS) { fraction -> - OkhsvColor( - hue = hueFromFraction(fraction), - saturation = HUE_TRACK_SATURATION, - value = 1f, - ).toComposeColor() - } - - ColoringMode.Contextual -> buildOkGradient(OK_HUE_STOPS) { fraction -> - OkhsvColor( - hue = hueFromFraction(fraction), - saturation = okhsv.saturation, - value = okhsv.value, - ).toComposeColor() - } - } + // The two coloring modes differ only in which saturation and value the strip is drawn + // at, so they pick the pair rather than each building a gradient of its own. + val trackSaturation = when (coloringMode) { + ColoringMode.Independent -> HUE_TRACK_SATURATION + ColoringMode.Contextual -> okhsv.saturation } - val thumbColor = remember(okhsv, coloringMode) { - when (coloringMode) { - ColoringMode.Independent -> OkhsvColor( - hue = okhsv.hue, - saturation = HUE_TRACK_SATURATION, - value = 1f, + val trackValue = when (coloringMode) { + ColoringMode.Independent -> 1f + ColoringMode.Contextual -> okhsv.value + } + val gradientColors = remember(trackSaturation, trackValue) { + buildOkGradient(OK_HUE_STOPS) { fraction -> + OkhsvColor( + hue = hueFromFraction(fraction), + saturation = trackSaturation, + value = trackValue, ).toComposeColor() - - ColoringMode.Contextual -> okhsv.toComposeColor() } } + // Matches the track so the thumb never disagrees with the strip under it. + val thumbColor = remember(okhsv.hue, trackSaturation, trackValue) { + OkhsvColor( + hue = okhsv.hue, + saturation = trackSaturation, + value = trackValue, + ).toComposeColor() + } val interaction = remember(state) { SliderInteractionGuard(state) } ColorSlider( From 86dccd8c2275a9e78ef08e21d592f83e51b6d673 Mon Sep 17 00:00:00 2001 From: Illia Achour Date: Wed, 2 Sep 2026 15:45:52 -0400 Subject: [PATCH 3/4] Fold the derived spaces into one reified helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The eight derived views were the same four lines eight times over, differing only in the target type and the conversion — which is exactly `as? T ?: convert(...)` behind a reified parameter. Naming that collapses the block to one line per space, and the branch now reads as the type test it always was rather than an if. The helper is private and inlined, so nothing moves in either API dump. --- .../colorpicker/state/ColorPickerState.kt | 54 +++++++------------ 1 file changed, 18 insertions(+), 36 deletions(-) diff --git a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt index ae90904..c90afb0 100644 --- a/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt +++ b/colorpicker/src/commonMain/kotlin/codes/side/colorpicker/state/ColorPickerState.kt @@ -1,6 +1,7 @@ package codes.side.colorpicker.state import androidx.compose.runtime.Stable +import androidx.compose.runtime.State import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -66,46 +67,27 @@ public class ColorPickerState(initialColor: PickerColor = HslColor()) { internal set // ---- Derived spaces (pure computation, no writes on read) ---- - // - // Each space is itself when authoritative and a conversion otherwise. The - // conversions route through RGB; see PickerColor.toRgbColor. - private val hslDerived = derivedStateOf { - val c = authoritative - if (c is HslColor) c else c.toRgbColor().toHsl() + /** + * A view of the authoritative color in one space: itself when that space is the + * origin, and [convert] applied to its RGB form otherwise. Routing every pair through + * RGB is what keeps this from being sixty-four hand-written conversions. + */ + private inline fun derivedSpace( + crossinline convert: (RgbColor) -> T, + ): State = derivedStateOf { + val color = authoritative + color as? T ?: convert(color.toRgbColor()) } + private val hslDerived = derivedSpace { it.toHsl() } private val rgbDerived = derivedStateOf { authoritative.toRgbColor() } - - private val cmykDerived = derivedStateOf { - val c = authoritative - if (c is CmykColor) c else c.toRgbColor().toCmyk() - } - - private val labDerived = derivedStateOf { - val c = authoritative - if (c is LabColor) c else c.toRgbColor().toLab() - } - - private val oklabDerived = derivedStateOf { - val c = authoritative - if (c is OklabColor) c else c.toRgbColor().toOklab() - } - - private val oklchDerived = derivedStateOf { - val c = authoritative - if (c is OklchColor) c else c.toRgbColor().toOklch() - } - - private val okhslDerived = derivedStateOf { - val c = authoritative - if (c is OkhslColor) c else c.toRgbColor().toOkhsl() - } - - private val okhsvDerived = derivedStateOf { - val c = authoritative - if (c is OkhsvColor) c else c.toRgbColor().toOkhsv() - } + private val cmykDerived = derivedSpace { it.toCmyk() } + private val labDerived = derivedSpace { it.toLab() } + private val oklabDerived = derivedSpace { it.toOklab() } + private val oklchDerived = derivedSpace { it.toOklch() } + private val okhslDerived = derivedSpace { it.toOkhsl() } + private val okhsvDerived = derivedSpace { it.toOkhsv() } // ---- Public read access ---- From 96095f25f9643a39f01aa11e35c842d94063a7e4 Mon Sep 17 00:00:00 2001 From: Illia Achour Date: Wed, 2 Sep 2026 15:45:57 -0400 Subject: [PATCH 4/4] Drop imports nothing references MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ExperimentalKotlinGradlePluginApi is no longer required to opt into the Android target's compilerOptions block, and OkConversionsTest names OklabColor nowhere — it only reaches the type through toOklab(). --- colorpicker/build.gradle.kts | 2 -- .../codes/side/colorpicker/conversion/OkConversionsTest.kt | 1 - 2 files changed, 3 deletions(-) diff --git a/colorpicker/build.gradle.kts b/colorpicker/build.gradle.kts index 892bfd0..6f5f104 100644 --- a/colorpicker/build.gradle.kts +++ b/colorpicker/build.gradle.kts @@ -1,6 +1,5 @@ import com.vanniktech.maven.publish.JavadocJar import com.vanniktech.maven.publish.KotlinMultiplatform -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget @@ -40,7 +39,6 @@ kotlin { withHostTest {} - @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { jvmTarget.set(JvmTarget.JVM_17) } diff --git a/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt b/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt index 5d2b56a..6ef52e0 100644 --- a/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt +++ b/colorpicker/src/commonTest/kotlin/codes/side/colorpicker/conversion/OkConversionsTest.kt @@ -2,7 +2,6 @@ package codes.side.colorpicker.conversion import codes.side.colorpicker.model.OkhslColor import codes.side.colorpicker.model.OkhsvColor -import codes.side.colorpicker.model.OklabColor import codes.side.colorpicker.model.OklchColor import codes.side.colorpicker.model.RgbColor import kotlin.math.abs

!lRw~smMj*6W` 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/images/okhsv-independent.png b/docs/images/okhsv-independent.png new file mode 100644 index 0000000000000000000000000000000000000000..3696fddb4d98e113d85e4c1b12f0ebf113ccf7a5 GIT binary patch literal 113359 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 &*Oxv9WVi6IYv+x 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 | ![HSL independent](images/hsl-independent.png) | ![HSL contextual](images/hsl-contextual.png) | -| **RGB**
`RgbColorPicker` | ![RGB independent](images/rgb-independent.png) | ![RGB contextual](images/rgb-contextual.png) | -| **CMYK**
`CmykColorPicker` | ![CMYK independent](images/cmyk-independent.png) | ![CMYK contextual](images/cmyk-contextual.png) | -| **LAB**
`LabColorPicker` | ![LAB independent](images/lab-independent.png) | ![LAB contextual](images/lab-contextual.png) | +| Model | Independent | Contextual | +|---------------------------------|----------------------------------------------------|--------------------------------------------------| +| **HSL**
`HslColorPicker` | ![HSL independent](images/hsl-independent.png) | ![HSL contextual](images/hsl-contextual.png) | +| **RGB**
`RgbColorPicker` | ![RGB independent](images/rgb-independent.png) | ![RGB contextual](images/rgb-contextual.png) | +| **CMYK**
`CmykColorPicker` | ![CMYK independent](images/cmyk-independent.png) | ![CMYK contextual](images/cmyk-contextual.png) | +| **LAB**
`LabColorPicker` | ![LAB independent](images/lab-independent.png) | ![LAB contextual](images/lab-contextual.png) | +| **Okhsl**
`OkhslColorPicker` | ![Okhsl independent](images/okhsl-independent.png) | ![Okhsl contextual](images/okhsl-contextual.png) | +| **Okhsv**
`OkhsvColorPicker` | ![Okhsv independent](images/okhsv-independent.png) | ![Okhsv contextual](images/okhsv-contextual.png) | `ColorSwatch` draws the color over a transparency checkerboard, so alpha reads correctly: @@ -129,6 +133,73 @@ val color = LabColor(l = 53.23f, a = 80.11f, b = 67.22f) LabColor.fromInt(l = 53, a = 80, b = 67) ``` +### Okhsl + +```kotlin +val color = OkhslColor(hue = 29.2f, saturation = 1f, lightness = 0.57f) +// hue: [0, 360), saturation: [0, 1], lightness: [0, 1], alpha: [0, 1] + +OkhslColor.fromInt(hue = 29, saturation = 100, lightness = 57) +``` + +Björn Ottosson's perceptual replacement for HSL, and the one to reach for if you are +choosing between the two. `lightness` is perceived lightness, so a blue and a yellow at +`0.5` look equally light; in HSL they differ by more than half the scale. `saturation` is +measured against the sRGB gamut, so `1` is as colorful as the display can go at that hue +and lightness — every coordinate is a real color and no part of a slider is dead travel. + +### Okhsv + +```kotlin +val color = OkhsvColor(hue = 29.2f, saturation = 1f, value = 1f) +// hue: [0, 360), saturation: [0, 1], value: [0, 1], alpha: [0, 1] + +OkhsvColor.fromInt(hue = 29, saturation = 100, value = 100) +``` + +Okhsl's perceptual hue and gamut-relative saturation in the HSV arrangement artists +expect: full saturation at full value is the most vivid form of a hue, and pulling value +down darkens toward black. Prefer Okhsl when the middle of the lightness track should be a +mid tone. + +### Oklab + +```kotlin +val color = OklabColor(l = 0.63f, a = 0.22f, b = 0.13f) +// l: [0, 1], a: [-0.4, 0.4], b: [-0.4, 0.4], alpha: [0, 1] +``` + +The perceptual space the two above are built on, and the one to interpolate, compare or +blend in — equal numeric steps are close to equal perceived steps, and moving `l` does not +drag the perceived hue with it. Note `l` runs `0..1`, not CIELAB's `0..100`, and the `a` +and `b` bounds are the reference range CSS Color 4 gives `oklab()`. + +Oklab is not a space to put sliders on: `a` and `b` are not bounded by the display gamut, +so most of their range is unreachable, exactly as with LAB. Use Okhsl or Okhsv for that. + +### OkLCh + +```kotlin +val color = OklchColor(l = 0.63f, chroma = 0.26f, hue = 29.2f) +// l: [0, 1], chroma: [0, 0.4], hue: [0, 360), alpha: [0, 1] +``` + +Oklab in cylindrical form, and the space CSS exposes as `oklch()` — use it to move values +in and out of stylesheets, or to change one of lightness, chroma and hue while holding the +others. + +### Gamut mapping + +Oklab and OkLCh can describe colors sRGB cannot show. Converting one to RGB does not clamp +each channel independently, which would shift lightness and hue as a side effect. It runs +the [CSS Color 4 algorithm](https://www.w3.org/TR/css-color-4/#gamut-mapping): binary +search down the chroma axis, comparing each candidate against its clipped form, and stop +once the two are within a just-noticeable difference. Lightness and hue survive, chroma +pays, and the result matches what a browser would render. + +Okhsl and Okhsv never need this — their coordinates are normalized against the gamut, so +they are inside it by construction. + ## 🔄 Conversions Conversions are extension functions. They operate on floats end to end — nothing is quantized to integers until you explicitly ask for an ARGB `Int` or a hex string. Like any color space conversion, a cross-space round trip is not guaranteed to be bit-exact; the zero-drift guarantee comes from `ColorPickerState`'s origin tracking (see [Architecture](#architecture-zero-drift-color-conversions)). @@ -140,12 +211,19 @@ val cmyk = rgb.toCmyk() val lab = rgb.toLab() val argb = rgb.toArgbInt() +// Perceptual spaces +val oklab = rgb.toOklab() +val oklch = rgb.toOklch() +val okhsl = rgb.toOkhsl() +val okhsv = rgb.toOkhsv() + // Compose interop, both ways val composeColor: Color = hsl.toComposeColor() val backToHsl: HslColor = composeColor.toHslColor() val backToRgb: RgbColor = composeColor.toRgbColor() val backToCmyk: CmykColor = composeColor.toCmykColor() val backToLab: LabColor = composeColor.toLabColor() +val backToOkhsl: OkhslColor = composeColor.toOkhslColor() ``` ### Hex strings @@ -183,6 +261,8 @@ HslColorPicker( RgbColorPicker(state = state, showAlpha = true) CmykColorPicker(state = state, showAlpha = true) LabColorPicker(state = state, showAlpha = true) +OkhslColorPicker(state = state, showAlpha = true) +OkhsvColorPicker(state = state, showAlpha = true) ``` `ColoringMode` controls the slider gradients: `Independent` shows each channel's full range regardless of the other channels, `Contextual` previews the actual resulting color at each position. @@ -213,6 +293,16 @@ LightnessLabSlider(state = state) LabASlider(state = state) LabBSlider(state = state) +// Okhsl +OkhslHueSlider(state = state) +OkhslSaturationSlider(state = state) +OkhslLightnessSlider(state = state) + +// Okhsv +OkhsvHueSlider(state = state) +OkhsvSaturationSlider(state = state) +OkhsvValueSlider(state = state) + // Alpha (works with any origin space) AlphaSlider(state = state) ``` diff --git a/sample/shared/src/commonMain/kotlin/codes/side/colorpicker/sample/SampleApp.kt b/sample/shared/src/commonMain/kotlin/codes/side/colorpicker/sample/SampleApp.kt index 6d29e05..feaefae 100644 --- a/sample/shared/src/commonMain/kotlin/codes/side/colorpicker/sample/SampleApp.kt +++ b/sample/shared/src/commonMain/kotlin/codes/side/colorpicker/sample/SampleApp.kt @@ -60,6 +60,12 @@ import codes.side.colorpicker.ui.LabBSlider import codes.side.colorpicker.ui.LightnessLabSlider import codes.side.colorpicker.ui.LightnessSlider import codes.side.colorpicker.ui.MagentaSlider +import codes.side.colorpicker.ui.OkhslHueSlider +import codes.side.colorpicker.ui.OkhslLightnessSlider +import codes.side.colorpicker.ui.OkhslSaturationSlider +import codes.side.colorpicker.ui.OkhsvHueSlider +import codes.side.colorpicker.ui.OkhsvSaturationSlider +import codes.side.colorpicker.ui.OkhsvValueSlider import codes.side.colorpicker.ui.RedSlider import codes.side.colorpicker.ui.SaturationSlider import codes.side.colorpicker.ui.YellowSlider @@ -166,10 +172,22 @@ fun SampleApp() { val ll = lab.intL.pad(3) val la = lab.intA.pad(3) val lb = lab.intB.pad(3) - Readout("HSL H:$h S:$s L:$l A:$ha") - Readout("RGB R:$r G:$g B:$b A:$ra") - Readout("CMYK C:$c M:$m Y:$y K:$k") - Readout("LAB L:$ll a:$la b:$lb") + val okhsl = state.okhslColor + val okhsv = state.okhsvColor + val oklch = state.oklchColor + Readout("HSL H:$h S:$s L:$l A:$ha") + Readout("RGB R:$r G:$g B:$b A:$ra") + Readout("CMYK C:$c M:$m Y:$y K:$k") + Readout("LAB L:$ll a:$la b:$lb") + Readout( + "OKHSL H:${okhsl.intHue.pad(3)} S:${okhsl.intSaturation.pad(3)} L:${okhsl.intLightness.pad(3)}", + ) + Readout( + "OKHSV H:${okhsv.intHue.pad(3)} S:${okhsv.intSaturation.pad(3)} V:${okhsv.intValue.pad(3)}", + ) + Readout( + "OKLCH L:${oklch.intL.pad(3)} C:${oklch.intChroma.pad(3)} H:${oklch.intHue.pad(3)}", + ) } // HSL section @@ -205,6 +223,23 @@ fun SampleApp() { item { HorizontalDivider() } + // Okhsl section. Drag the lightness slider here and then the HSL one + // above at the same hue: only this one holds its apparent brightness. + item { SectionHeader("Okhsl") } + item { OkhslHueSlider(state = state, coloringMode = coloringMode) } + item { OkhslSaturationSlider(state = state, coloringMode = coloringMode) } + item { OkhslLightnessSlider(state = state, coloringMode = coloringMode) } + + item { HorizontalDivider() } + + // Okhsv section + item { SectionHeader("Okhsv") } + item { OkhsvHueSlider(state = state, coloringMode = coloringMode) } + item { OkhsvSaturationSlider(state = state, coloringMode = coloringMode) } + item { OkhsvValueSlider(state = state, coloringMode = coloringMode) } + + item { HorizontalDivider() } + // Alpha section item { SectionHeader("Alpha") } item { AlphaSlider(state = state) } diff --git a/screenshot-tests/build.gradle.kts b/screenshot-tests/build.gradle.kts index eaf83f1..4a97321 100644 --- a/screenshot-tests/build.gradle.kts +++ b/screenshot-tests/build.gradle.kts @@ -49,6 +49,10 @@ val readmeGoldens = mapOf( "CmykContextualPreview" to "cmyk-contextual", "LabIndependentPreview" to "lab-independent", "LabContextualPreview" to "lab-contextual", + "OkhslIndependentPreview" to "okhsl-independent", + "OkhslContextualPreview" to "okhsl-contextual", + "OkhsvIndependentPreview" to "okhsv-independent", + "OkhsvContextualPreview" to "okhsv-contextual", "CustomThumbPreview" to "custom-thumb", "SwatchPreview" to "color-swatch", ) diff --git a/screenshot-tests/src/screenshotTest/kotlin/codes/side/colorpicker/screenshot/ColorPickerPreviews.kt b/screenshot-tests/src/screenshotTest/kotlin/codes/side/colorpicker/screenshot/ColorPickerPreviews.kt index 5be57ae..e662af1 100644 --- a/screenshot-tests/src/screenshotTest/kotlin/codes/side/colorpicker/screenshot/ColorPickerPreviews.kt +++ b/screenshot-tests/src/screenshotTest/kotlin/codes/side/colorpicker/screenshot/ColorPickerPreviews.kt @@ -36,6 +36,8 @@ import codes.side.colorpicker.ui.ColorSwatch import codes.side.colorpicker.ui.HslColorPicker import codes.side.colorpicker.ui.HueSlider import codes.side.colorpicker.ui.LabColorPicker +import codes.side.colorpicker.ui.OkhslColorPicker +import codes.side.colorpicker.ui.OkhsvColorPicker import codes.side.colorpicker.ui.RgbColorPicker import com.android.tools.screenshot.PreviewTest @@ -129,6 +131,34 @@ fun LabContextualPreview() = Frame { LabColorPicker(state = state(), coloringMode = ColoringMode.Contextual) } +@PreviewTest +@Preview(name = "Okhsl independent", widthDp = 440, heightDp = PICKER_HEIGHT_DP) +@Composable +fun OkhslIndependentPreview() = Frame { + OkhslColorPicker(state = state(), coloringMode = ColoringMode.Independent) +} + +@PreviewTest +@Preview(name = "Okhsl contextual", widthDp = 440, heightDp = PICKER_HEIGHT_DP) +@Composable +fun OkhslContextualPreview() = Frame { + OkhslColorPicker(state = state(), coloringMode = ColoringMode.Contextual) +} + +@PreviewTest +@Preview(name = "Okhsv independent", widthDp = 440, heightDp = PICKER_HEIGHT_DP) +@Composable +fun OkhsvIndependentPreview() = Frame { + OkhsvColorPicker(state = state(), coloringMode = ColoringMode.Independent) +} + +@PreviewTest +@Preview(name = "Okhsv contextual", widthDp = 440, heightDp = PICKER_HEIGHT_DP) +@Composable +fun OkhsvContextualPreview() = Frame { + OkhsvColorPicker(state = state(), coloringMode = ColoringMode.Contextual) +} + // Kept character-for-character identical to SquareThumb in the sample app, so the image // in the README is the thing the sample actually runs. @Composable diff --git a/screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhslContextualPreview_Okhsl contextual_f9158ec4_0.png b/screenshot-tests/src/screenshotTestDebug/reference/codes/side/colorpicker/screenshot/ColorPickerPreviewsKt/OkhslContextualPreview_Okhsl contextual_f9158ec4_0.png new file mode 100644 index 0000000000000000000000000000000000000000..08a8972c28f75e4539c62cbd870989c505872959 GIT binary patch literal 116878 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
>Xs#K`pzOC}}+I}*^G)nFuaqhC%x*@misMuSQZ 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�=L3m+Oy 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