Reference · §01

Overview

Swatch is a zero-dependency color library with first-class colorblind support, CSS Color 4 parsing, wide-gamut spaces, OKLCh manipulation, color scales, built-in palettes, blend modes, WCAG 2.1 and APCA contrast.

3.0 is a breaking rewrite. Storage moved to a canonical { space, coords, alpha } state, conversions route through a lazy CIE XYZ D65 hub, and the monolith has been split into focused modules. See MIGRATING.md for the v2 → v3 cookbook.

Install

npm install @luntta/swatch
import swatch from "@luntta/swatch";

A 30-second tour

const c = swatch("#3366cc");

c.srgb;                                 // { r: 0.2, g: 0.4, b: 0.8 }
c.oklch;                                // { l, c, h }
c.simulate("deutan");                   // a new swatch, deuteranope view
c.daltonize("deutan");                  // pre-corrected for deuteranopes
c.contrast("#fff");                     // 4.78
c.deltaE("#3366cd");                    // 0.18 (CIEDE2000)
c.lighten(0.1).spin(45).hex();

swatch("oklch(0.7 0.15 240)");         // CSS Color 4
swatch("color(display-p3 1 0 0)");     // wide-gamut
swatch.scale(["#00f", "#f00"]).colors(5);
swatch.try(userInput);                  // Swatch | null for live inputs

Every instance is immutable — every transformation returns a new swatch.

Not sure whether Swatch is the right level of tool for your project? Start with Who is this library for?.

Already know the concept and just need a method name or return shape? Use the API quick reference.