🛠️ The Most Useful Site in the World ← Back to the tools
Design · Definitive guide

How to pick a colour palette that doesn't look like a 2003 Geocities page

A good colour palette has two anchor colours (a primary and a neutral), one accent colour for emphasis, and a small set of semantic colours for state (success, warning, error). This guide covers colour theory without the art-school waffle, the WCAG contrast numbers you actually need, and the free tools on this site that will pick the palette for you and check whether the contrast between any two of your colours is readable.

⚡ TL;DR

Two anchors, one accent, a small set of semantic colours. The art-school waffle removed.

The shape of a good palette

Two anchors. One accent. Four to six semantic colours. That is the entire shape. The anchors are the colours the user sees most of the time — usually a background neutral and a brand colour. The accent is the colour the user sees when something matters — a button, a callout, a current selection. The semantic colours are for state: success (green), warning (yellow/amber), error (red), info (blue). A palette of more than 10 colours is almost always the result of "let me add one more just in case" — and the case never comes.

Choosing the anchors

Pick the brand colour first. It should be the colour the user associates with the product, which is usually the colour of the logo and the primary CTA. Then pick the neutral. A neutral is a desaturated colour, usually a grey or off-white, that the body text and most of the surface area sits on. The two together should have a contrast ratio of at least 4.5:1 (WCAG AA for body text) — the contrast checker on this site will tell you in one click.

Choosing the accent

The accent should be complementary to the brand colour — opposite on the colour wheel — so it stands out. If the brand is blue, the accent is orange. If the brand is red, the accent is teal. The accent should be used sparingly: one button per screen, one highlight per paragraph. If the accent appears more than 5% of the time on a page, it is no longer an accent; it is a second brand colour.

Semantic colours

Green for success, amber for warning, red for error, blue for info. Pick the values once, document them, and use them everywhere. The palette on this site is: success `#39ff14` (a high-saturation green that is visible on dark backgrounds), warning `#ffd700` (gold), error `#ff4d4d` (a soft red, not a blood red), info `#2dd4ff` (cyan, the brand). Each is a single hex value used in a single role.

Contrast and accessibility

WCAG AA requires a contrast ratio of at least 4.5:1 for body text and 3:1 for large text (18 pt and above). WCAG AAA is 7:1 for body and 4.5:1 for large. Anything below 4.5:1 is unreadable for low-vision users. The contrast checker on this site accepts two hex values and reports the ratio with a pass/fail against each WCAG level. Use it on every colour pair you ship.

What this site gives you

A colour palette extractor that pulls the dominant colours from any image. A WCAG contrast checker that tells you whether your foreground/background pair is readable. A 4-bit and 8-bit colour picker for the retro aesthetic, because sometimes you want a Geocities page on purpose.

❓ Frequently asked questions

What is WCAG contrast?

A measure of the difference in luminance between two colours, expressed as a ratio. 4.5:1 is the minimum for AA body text, 7:1 for AAA. Higher is more readable. The contrast checker on this site reports the ratio for any pair of hex values.

How many colours should a palette have?

As few as you can. A practical palette is 5–8 colours: two anchors (primary + neutral), one accent, and 4–5 semantic colours. A palette of more than 10 colours is almost always a sign of "let me add one more just in case".

What is a complementary colour?

A colour directly opposite on the colour wheel. The complement of blue is orange; of red is teal; of yellow is purple. Complementary pairs create the strongest visual contrast and are how you pick an accent that stands out from a primary.

Should I use a colour palette generator?

Yes, but as a starting point, not a final answer. The generators on this site are useful for the first sketch; you will still want to verify the contrast between the generated colours with the WCAG checker before you ship.