@oklch-picker/svelte
v1.2.0
Published
An OKLCH color picker for Svelte 5. Gamut-aware sliders, wide-gamut P3 and Rec. 2020, works with bind:value.
Maintainers
Readme
@oklch-picker/svelte
An OKLCH colour picker for Svelte 5, with gamut-aware sliders. Works with bind:value.
Every axis is a slider over a gamut cross-section. The filled silhouette is the range sRGB can actually show, so the reachable colours are visible. You do not have to discover them by dragging into a region that does nothing.
See it running, in light or dark, with every layout and part on a page of its own.
- The chroma slider is bounded by what is reachable. A fixed
0..0.37slider is up to 87% dead travel at low lightness. Here the maximum is recomputed as the other axes move. - Out-of-gamut regions are hatched, on every axis.
- Nothing out-of-gamut is ever emitted. Values are clamped by reducing chroma, keeping lightness and hue.
Install
npm install @oklch-picker/svelteUsage
<script>
import { ColourPicker } from "@oklch-picker/svelte";
import "@oklch-picker/core/styles.css";
let colour = $state("oklch(0.7 0.15 255)");
</script>
<ColourPicker bind:value={colour} />value is bindable, and an onchange callback is available for handling it explicitly. bind:value writes the new colour back for you, which the picker needs: it keeps no colour of its own, so a plain value={colour} with only onchange would leave the sliders stuck. Ships uncompiled .svelte source, so your own tooling compiles it.
The family
| Using | Install |
| --- | --- |
| No framework: HTML, HTMX, Alpine, Astro, Rails, Laravel, Django | oklch-picker |
| React / Preact | @oklch-picker/react |
| Vue | @oklch-picker/vue |
| Svelte 5 | @oklch-picker/svelte |
| Solid | @oklch-picker/solid |
| Angular 17+ | @oklch-picker/angular |
| Qwik | @oklch-picker/qwik |
| The maths and headless model alone | @oklch-picker/core |
Full documentation lives in the repository README.
Licence
MIT © Nick Bevers
