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
shippedWhat 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
shippedThe 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
shippedColor 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
shippedThe 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.