Palette Smith · roadmap

From workbench to powerhouse

The test every idea below had to pass: does it change what you can ship from this page? Three phases, in priority order — all three now shipped, and still no server, no build step, no API. If you picked a colour on the workbench, this page is already wearing it.

On the bench

shipped

What the workbench already does — derived, never freehanded.

  • The wheel & six schemes shipped

    Monochrome, analogous, complementary, split, triadic, and a UI-ready budget — every swatch tagged with its derivation (+180°, L−32) and click-to-copy.

  • Contrast arithmetic shipped

    Labels set black or white by relative luminance, a measured WCAG ratio on every swatch, and a text-tier accent stepped until it clears 4.5:1 on paper.

  • One light source shipped

    The page's own neutrals carry your hue and re-temperature with every pick — in both themes, each derived rather than inverted.

  • The smoothness pass shipped

    Swatches that morph in place instead of rebuilding, a continuous conic ring, and softened corners — all on one shared clock, so the surface re-temperatures as a single motion.

  • Steering the ring shipped

    Drag anywhere around the wheel and the whole surface follows in real time. Two interactions want two clocks: the 350ms cross-fade that makes a single pick feel considered would make a live drag lag a third of a second behind the cursor, so it drops to zero while you steer and returns the moment you let go.

Phase 1 · Make it a tool

shipped

The workbench used to hand you one hex at a time. Now it hands you the whole system.

  • Export as CSS · Tailwind · JSON shipped

    One format switch drives the panel and every per-strip button, so there is a single place to read what you'll get. The panel shows the output verbatim — what you read is exactly what lands on the clipboard.

  • Full ramps, 50–900 shipped

    Ten fixed lightness anchors carrying your hue — a scale, not offsets from wherever your base sits. The stop nearest your colour is marked, so you can see where it actually lands in a system.

  • Shareable URLs & history shipped

    The colour lives in the URL, so any palette is a link — and a shared link beats your own saved pick, or you'd silently see the wrong palette. Plus a recent rail, capped at eight, that never grows the bench.

Phase 2 · Earn the motto

shipped

Color should be perfect — and perfect is measurable. Phase 1 shipped the ramp in HSL, which is device space and whose lightness lies. This phase made the derivations honest to human eyes.

  • OKLCH derivation mode shipped

    Derive in HSL or OKLCH; every scheme runs in whichever you pick, because the derivations are geometry and geometry doesn't care which space it runs in. Measured on a yellow ramp, OKLCH's steps come out 41% more even. Colours OKLCH can name but sRGB can't show are gamut-mapped by holding lightness and hue and easing chroma down — never by clipping, which shifts both.

  • Colorblind simulation shipped

    See the strips through protanopia, deuteranopia or tritanopia. The fills change; the hex values and ratios stay true, because that's what you'd ship and what WCAG measures. The page chrome is left alone so the tool stays usable while you look.

  • Contrast pairing matrix shipped

    Contrast belongs to a pair, not a colour. Each cell sets the column's colour as text on the row's colour as fill, so you read the ratio and see the pairing at once — and the level is spelled out, never carried by colour alone.

Phase 3 · The showstoppers

shipped

The three that no other palette tool has. Saved until the fundamentals were earning their keep — now they are.

  • The palette linter shipped

    Paste a palette and it is argued with, not admired: dead greys, two light sources, hue-budget creep, nothing-is-the-signal, colours that can never carry text, and pairs that will vibrate or turn to mud. Every finding names the order it breaks and carries a fix derived from your own colours. It stays quiet on a palette that holds — which is the only thing that makes the noise worth reading.

  • Live UI preview shipped

    Outgrew its card and became its own page, In place: a whole product wearing your colour — navigation with an active state, stat tiles, a chart, a status table, alerts, form controls, disabled states. It also derives the signal set the UI-ready five don't carry, and tells you when your accent has taken a meaning it can't have.

  • Image → palette shipped

    Drop, paste or browse an image and its hues are clustered in OKLCH on the spot — greys and extremes discarded, since they carry no hue to steal. Click one and the whole workbench re-derives from it. The pixels never leave the page.