Coming soon! Palette is in beta with a small set of users. Notify me at launch →
Palette · in beta testing

One color in.
A whole system out.

A complete, accessible palette from one brand color — even ramps, full customization, and contrast checked against WCAG & APCA. Light and dark, ready for Figma.

Start anywhere

Any color is a valid starting point.

Warm or cool, vivid or muted — the same rules produce a coherent, balanced system every time.

The hard part

A real color system is more than a few tints.

Lightening and darkening one color in your design tool gives you muddy middles, dead darks, and shades that drift off-hue. A system people can actually build on has to solve a lot at once — by hand, that's hours of fiddling and still inconsistent.

With Rhapsody
  • Even steps — shades that feel equally far apart, not clumped.
  • A full cast — primary, accent, two neutrals, four utility colors.
  • Accessible pairings — text that passes contrast on every surface.
  • Light and dark — one set of tokens that flips cleanly.
  • No hue drift — your blue stays blue from 50 to 999.
The method

How Rhapsody builds it.

Six steps, all math, fully deterministic — run it twice and you get the exact same palette.

01

We read your color the way your eyes do.

Not in RGB or HSL — those don't match human perception. Rhapsody places your color in a perceptual model with three honest axes: hue, chroma (how vivid), and tone (how light). Everything downstream works in that space, so the math lines up with what you actually see.

02

Every step is evenly spaced — to the eye.

Steps are placed at equal ΔE — equal perceptual distance — instead of equal math. So 400→500 looks like the same jump as 700→800. No clumping in the mids, no cliff into the darks.

✓ Equal perceptual distance, end to end
03

Each hue gets its own light and dark anchors.

Colors don't share a floor and ceiling. A blue can go genuinely dark before it dies; a yellow turns muddy if you push it the same way. Rhapsody anchors every ramp by its natural luminance, so each hue spans the widest honest range it has.

Blue — settles deep
Amber — stays rich
04

Then the whole system follows.

From your one color, Rhapsody derives a balanced accent, warm and cool neutrals tuned to your hue, and four custom utility colors balanced for unity — no more overpowering reds, extra-bright greens, or the same exact colors for every brand. Eight ramps that go together.

05

Accessible by construction.

Contrast isn't an afterthought. Because the tones are perceptually even and luminance-anchored, legible text/background pairings fall out automatically — checked against WCAG and APCA so you can pick with confidence.

AAA ≥7AA ≥4.5· text on background
06

Light and dark, from the same tokens.

Because every ramp runs the full range from near-white to near-black, dark mode isn't a second palette — it's the same tokens, mirrored. Design once; flip with confidence.

Smart defaults, your call

We recommend an accent. You're never locked in.

A perfectly balanced set of 24 options is one click away — or type in your own exact hex — so you can set the accent without needing to know a thing about color theory.

★ Recommended · a balanced complement
A little extra depth

13 tones, not 11.

Most systems stop at 950. Rhapsody adds 975 and 999 — two genuinely deeper tones at the dark end. That's where real dark-mode surfaces and near-black text live, so your darks have somewhere honest to go.

+2 deeper tones
Why it's different

Color theory you can trust.

Math, not AI

No models, no randomness, no "vibes." A transparent color model produces the same palette every single time — auditable and repeatable.

Perceptually even

ΔE-spaced steps mean every shade is equally far from its neighbors. No muddy middles, no dead darks — a ramp that reads as one smooth scale.

Your hue stays your hue

Many ramps quietly drift — a blue that washes toward periwinkle in the light. Rhapsody holds your hue constant from the lightest tint to the deepest shade.

The output

Export it the way you build.

Bind straight into Figma as variables — a tidy, single-mode collection, nested and named so you can alias into your own light/dark layer. Or take the same system to code, to an accessibility audit, or to your canvas.

Open in Figma →

Figma variables

A single-mode collection, nested and named — alias straight into your token layer and ship.

Developer JSON

Structured tokens — nested by role plus a flat map — ready for code, Tailwind, or Style Dictionary.

Accessibility CSV

Every color-pairing with its WCAG ratio and APCA score — sort and filter the whole matrix in any spreadsheet.

Color System Reference

A 16:9 art card — your recipe, accessible safe zones, and palette rendered as art — dropped on the canvas.

Turn your brand color into a system.

One color in, a complete accessible palette out — light and dark, ready for Figma. Free to play.