Why use this tool?
- Keep approved colors while exploring new combinations.
- Compare harmony families and edit each swatch independently.
- Export CSS variables, Tailwind v4 themes, SCSS, JSON, or an SVG swatch strip.
Generate color palettes with harmony rules, lock your favorite swatches, and edit each color. Copy CSS variables, Tailwind themes, JSON, SCSS, or SVG.
Runs locally in your browser
Press the spacebar to generate a new palette.
base
#0B1F3A
black
surface
#1D6A96
steelblue
primary
#4FB3BF
cadetblue
secondary
#A9D6C3
paleturquoise
accent
#F2E9DC
linen
Saturation 81 percent, brightness 23 percent, hue 214 degrees.
Combinations from this palette that clear WCAG AA at 4.5:1. Analogous palettes often need a near-white or near-black to find any.
Readable body text
#0B1F3A on #F2E9DC · 13.74:1
Readable body text
#F2E9DC on #0B1F3A · 13.74:1
Readable body text
#0B1F3A on #A9D6C3 · 10.30:1
Readable body text
#A9D6C3 on #0B1F3A · 10.30:1
Readable body text
#0B1F3A on #4FB3BF · 6.71:1
Readable body text
#4FB3BF on #0B1F3A · 6.71:1
Readable body text
#1D6A96 on #F2E9DC · 4.91:1
Readable body text
#F2E9DC on #1D6A96 · 4.91:1
:root {
--palette-base: #0B1F3A;
--palette-surface: #1D6A96;
--palette-primary: #4FB3BF;
--palette-secondary: #A9D6C3;
--palette-accent: #F2E9DC;
}Complete tool guide
Generate a color palette for a website, illustration, or interface using hue relationships such as analogous, complementary, and triadic harmony. Lock colors you want to keep, adjust individual swatches, and export the result as reusable values.
Your input is processed in the current browser tab and is not sent to the application server.
Choose a harmony rule, then press Generate or the spacebar to explore.
Lock any swatch you want to keep, and generate again around it.
Click a swatch to fine-tune it in the picker.
Copy the export format your project uses.
Analogous colors use neighboring hues; complementary colors use opposing hues; triadic colors spread around the hue wheel. These describe relationships, not guaranteed contrast.
Lock a swatch to preserve it when generating another palette. Generation varies the unlocked colors, so results are exploratory rather than a fixed brand specification.
Names such as base, surface, and primary are assigned by position for convenience. Review their actual role and contrast before using the exported variables.
Start with: #663399 as an approved brand color
Locked swatch: #663399
Unlocked swatches: new generated colorsThe locked value stays fixed. The other values vary, so select them by role and test their contrast.
Start with: #000000 in the first swatch
--palette-base: #000000;This declaration is part of the exported :root block. The name base reflects position, not a certified background or text role.
A palette combines colors for different roles. A scale creates light and dark steps from one base color. Use the scale generator when you need a numbered 50–950 ramp.
The readable-pairs panel lists selected combinations that meet 4.5:1 for normal text at AA. It does not test every state, external background, or non-color accessibility requirement.
CSS variables belong in a stylesheet; the Tailwind v4 output uses @theme. JSON is a plain color map that may need adaptation to your token pipeline.
No. Hue relationships do not guarantee sufficient text contrast or distinguishable chart series. Check the actual foreground/background pairs and add labels where colors convey meaning.
Choose a monochromatic harmony for exploration, or use the Color Scale Generator for an 11-step ramp with numbered tokens and contrast columns.
Copy or export its values before generating again. Locked swatches survive generation, but a random result is not saved as a permanent URL.
Keep working
Continue with another focused tool from the same collection.