Color Palette Generator

Make a colour palette from one colour or a photo, keep the colours you like, check that text stays readable, and copy the codes for your website or design.

or press Space with the palette selected. Lock () the colours you want to keep.

  • ≈ Light cyanBlack text 17.93:1
  • ≈ Cadet blueBlack text 6.31:1
  • ≈ Dark slate grayWhite text 7.69:1
  • ≈ Indian redBlack text 4.77:1
  • ≈ MaroonWhite text 14.24:1

Harmony

Complementary: two opposite hues, for strong contrast.

HEX, rgb(), hsl() or a colour name.

5 of 10 colours
Preview as
Get a palette from a photo

Need the exact colour of one pixel? Use the colour picker from image.

Colour codes

Text contrast (WCAG)

Each pair of colours as text on background. AA needs 4.5:1 for body text and 3:1 for large text (24 px, or 19 px bold); AAA needs 7:1.

PairRatioPasses
Aa #570C1C on #D6F3F012.16:1AAA
Aa #235C54 on #D6F3F06.56:1AA
Aa #570C1C on #2A9D8F4.28:1Large text only
Aa #D1475F on #D6F3F03.75:1Large text only
Aa #570C1C on #D1475F3.23:1Large text only
Aa #2A9D8F on #D6F3F02.83:1Fail

Export

Format

Everything runs in your browser; photos and palettes aren't uploaded.

How to use the colour palette generator

  1. Type or pick a base colour, or open Get a palette from a photo.
  2. Choose a harmony and press Generate new palette (or Space) until you like it. Lock the colours to keep, edit any colour with the pencil, and add up to 10 colours.
  3. Check the contrast table and the colour-blind previews, then copy CSS variables, Tailwind, SCSS or JSON, or download a PNG or SVG swatch card.

How the harmonies work

Each harmony turns the base colour round the colour wheel by fixed angles: 180° for complementary, ±150° for split complementary, 120° and 240° for triadic, 60°, 180° and 240° for tetradic, and 90° steps for square. Analogous colours sit 30° apart. When you ask for more colours than the harmony has hues, the extra ones are lighter and darker versions of them, and every press of Generate adds small random changes to saturation and lightness, so palettes don't repeat. The base colour itself always stays exactly as you chose it.

Example

The base colour #2A9D8F is a teal (Cadet blue is the nearest CSS name) with a hue of 173°. A triadic palette adds hues 293° and 53°, giving #2A9D8F, #8F2A9D, #9D8F2A at the exact wheel positions before any random variation.

For text, white on #2A9D8F has a contrast ratio of 3.32:1 (only enough for large text), while black on #2A9D8F reaches 6.31:1 (AA). So black text is the readable choice on this teal, which is why its swatch shows black writing. Contrast is worked out as (lighter luminance + 0.05) ÷ (darker luminance + 0.05), where luminance = 0.2126 R + 0.7152 G + 0.0722 B of the linearised red, green and blue; white on black gives the maximum, 21.00:1.

Tips for a usable palette

  • Keep one or two neutral colours (very light and very dark) for backgrounds and body text, and use the strong colours for buttons, links and highlights.
  • Red and green look alike to many colour-blind people. Check the Protanopia and Deuteranopia previews, and don't use colour alone to show meaning.
  • Need a colour from an existing design? Take it with the colour picker from image, then paste its HEX code as the base colour here.

Contrast thresholds: WCAG 2.2 success criteria 1.4.3 and 1.4.6 (w3.org, checked 7 October 2026). Colour-blind previews use the Machado, Oliveira and Fernandes (2009) simulation model at full severity; they show roughly how colours may look, and aren't a vision test.

Frequently asked questions

How do I make a colour palette that looks good?

Start from one colour you already like (a brand colour, or one taken from a photo), choose a harmony such as analogous for a calm look or complementary for contrast, and press Generate until the mix feels right. Lock each colour you want to keep; the others keep changing around it.

What do complementary, analogous and triadic mean?

They are positions on the colour wheel. Complementary colours sit opposite each other (180° apart), analogous colours are neighbours (about 30° apart), triadic colours are three hues 120° apart, split complementary uses the two neighbours of the opposite hue, and tetradic and square palettes use four hues.

How do I know if text on a colour is readable?

Check the contrast ratio. WCAG 2.2 asks for at least 4.5:1 for normal text and 3:1 for large text (level AA), and 7:1 for level AAA. The contrast table lists every pair in your palette with its ratio, and each swatch shows whether black or white text reads better on it.

Can I use the palette in Tailwind CSS?

Yes. Choose Tailwind v4 to get an @theme block for your CSS file, or Tailwind v3 for the colors section of tailwind.config.js. You can then write classes such as bg-palette-1 and text-palette-2.

Can I make a palette from a photo or a logo?

Yes. Open Get a palette from a photo and choose an image: the unlocked colours become the image's most common, clearly different colours. The photo stays on your device.

Do I need an account, and can I share a palette?

No account is needed. The palette is saved in the page link, so Copy link to this palette gives you a URL that opens the same colours on any device.

More image tools

See all image tools →

Can't find the tool you need? Tell us, and the most requested tools get built first.