Color Palette Generator

Color Palette Generator

Generate harmonious color palettes instantly — no account, no uploads, no color-theory homework. PressSpace to roll a new set, lock the colors you like, fine-tune anything with the pipette, and export the finished palette as CSS, Tailwind, JSON, SCSS, LESS or plain CSS classes.

The whole thing runs in your browser. Your colors never touch a server, there is no sign-up, and every palette you make here is yours to use in personal or commercial work.

Export palette

5 colors · pick a format, copy or download

Format7 lines
:root {
  --color-1: #7ae64c;
  --color-2: #8283ed;
  --color-3: #d6531f;
  --color-4: #4ce6a5;
  --color-5: #df82ed;
}
palette.css

How the generator works

Every roll starts from a random base hue, then walks the color wheel in steps of the golden angle (137.5°). That spacing is what keeps colors from clashing: evenly spaced hues keep hitting the same few relationships, while golden-angle spacing lands on a wider, more natural mix of contrasts. It's the same trick used by most serious palette tools, and it means you never get a roll where two colors fight each other.

Saturation is drawn from a comfortable band (55–95%) and lightness from 35–70%, then nudged per swatch so a palette gets one darker color, one lighter, and a few in the middle. A 5-color roll therefore arrives with structure built in — you can usually split it into "text color, background color, accent colors" without changing anything.

Palettes support 3 to 8 colors, with 5 as the default. Three covers a minimal brand mark, five covers most website and app interfaces, and eight gives you enough distinct series for a chart.

How to use it — step by step

  1. Roll a palette. Press Space or hit Generate. If a roll isn't right, undo it with ← or the undo button — the full roll history stays available, so you can compare the last few palettes without losing them.
  2. Lock what works. Click the lock icon on any swatch to keep that color while the rest re-roll. Keys 1–5 toggle locks too, so you can steer a palette without touching the mouse.
  3. Set exact colors with the pipette. Hover a swatch and the actions appear: lock, pipette, copy. The pipette opens your browser's native color picker, where you can type an exact hex or drag to a specific hue — this is how you drop in a brand color or nudge a swatch lighter.
  4. Read colors in any format. The pills above the palette switch how each swatch's value is displayed. OKLCH is the default — it's the most perceptually accurate color space (colors that look equally different are equally far apart in the values), which makes it the best format for judging and tuning a palette. HEX / RGB / HSL / CMYK are there for export and compatibility. Copy any single color by clicking its hex, or copy the whole set in the current format with the "Copy" button.
  5. Export. The Export panel turns the palette into production code: CSS variables, a Tailwind config (v3 or v4 @theme), JavaScript/ESM, JSON, SCSS, LESS or CSS classes. Copy the code or download it — the filename matches the format.
  6. Share. "Copy link" puts the exact palette (including which colors were locked) into a URL. Send it to a teammate or bookmark it — the palette reloads from the link.

What to make with these palettes

Websites and apps

Roll a 5-color palette, assign one dark color to text and one light color to the background, and use the loudest remaining color for buttons and links. Export CSS variables or a Tailwind theme and you have a working interface palette in minutes.

Brands and logos

Start from your existing logo color: pipette it in, lock it, then roll supporting colors around it until the set feels stable. A brand system usually wants one primary, two or three supporting colors, and a neutral pair for text and backgrounds.

Data visualizations

Chart colors need to stay distinct when they sit side by side. A golden-angle roll gives you that spacing for free. Check pairs in the default OKLCH display — the format's perceptual uniformity makes differences (or conflicts) between neighboring colors visible at a glance.

Social and marketing graphics

Fast iteration matters more than theory. Roll, lock, adjust lightness with the pipette, and copy hex codes straight into your design tool. Most graphics use one accent color against a neutral background — you only need two or three colors from the palette to finish.

Pro tips

Frequently asked questions

Are the generated colors free to use commercially?

Yes. Colors are not intellectual property, and this tool doesn't bundle font or asset files. Every palette you generate here is yours to use in personal and commercial projects without attribution.

Do my colors get uploaded to a server?

No. The generator runs entirely in your browser — there is no backend and nothing is transmitted. That's also why there's no account: there is nothing to store you against.

How many colors should a palette have?

Three to eight, with 5 as the practical sweet spot. Three works for a minimal brand mark, five covers a typical website or app interface, and eight gives you enough distinct series for charts. More than eight gets hard to keep consistent.

What's the best export format for my project?

CSS variables if you work in plain CSS or any framework — paste the :root block and use var(--color-1). Tailwind config if you use Tailwind CSS. JSON if you maintain design tokens in a tool like Figma.

Why do some palettes look similar to each other?

Because harmony is a constraint. Golden-angle spacing keeps hues from clashing, and saturation and lightness stay in a usable band — so rolls share a consistent feel. That's the point: you iterate on a style you like instead of fighting random chaos.

Can I save a palette and come back to it later?

There's no account, so nothing is saved for you. But every palette lives in its URL: copy the link and the exact colors (and which ones were locked) reload from it. You can also download any export format as a file.

Ready to make a palette?

The fastest way to a finished palette is the same loop designers have used for years: roll, lock what works, roll again. The pipette, undo history and exports all exist to make that loop faster.