Skip to content
Free, no signup, nothing saved

Extract a colour palette from any image, in your browser

Drop a photo and get its 3 to 12 most representative colours as hex, RGB, HSL, CSS custom properties, Tailwind theme colours, SCSS variables, JSON, or a 600 x 100 px PNG strip. Each swatch is annotated with its WCAG contrast tier against white and black. Image bytes never leave your browser.

  • Processed 100% in your browser
  • No account required
  • Nothing uploaded
A rustic pasta photograph alone, then the same photograph with a six-colour palette row drawn beneath it.A rustic pasta photograph alone, then the same photograph with a six-colour palette row drawn beneath it.

Drag to compare, before / after

Overview

Every photo carries a colour story: a dominant tone, two or three supporting accents, and a long tail of edge-case pixels. Designers use that palette to build mood boards, brand systems, and accessible UI themes; developers reach for it when they want CSS variables that match a hero image without eyeballing the swatch.

The classic way to extract a palette is server-side: upload the image, the server crunches the colours, and a list of hex codes comes back. That round-trip is wasteful for what is, fundamentally, a few hundred milliseconds of in-memory math. It also means handing your image to a third party. Neither of those trade-offs is necessary.

BouseMutton runs the palette extractor in your browser. Drop an image; the browser shrinks it to 256 pixels on the longest edge (plenty of detail for palette work), groups the colours into the number of swatches you asked for, and renders them with WCAG contrast badges. The image never leaves the page. Five export formats are one click away: CSS custom properties, Tailwind theme.extend.colors, SCSS variables, JSON, and a 600 x 100 px PNG strip.

At a glance

Quick facts

The numbers and trade-offs you need before you commit.

  • Where it runs

    Processed 100% in your browser. Nothing is uploaded.

  • Palette size

    Adjustable from 3 to 12 swatches via a UInputNumber. The dominant colour and 4 accents are tagged when size is 5 or more.

  • Export formats

    CSS custom properties, Tailwind theme.extend.colors, SCSS variables, JSON, and a 600 x 100 px PNG swatch strip.

  • WCAG contrast

    Each swatch is annotated AAA, AA, AA-Large, or Fail against pure white and pure black backgrounds.

Workflow

How it works

Three steps, usually done inside five seconds.

  1. 1

    Drop an image

    PNG, JPG, WebP, AVIF, or GIF up to 25 MB. Single image at a time. No sign-up, no credit card.

  2. 2

    Pick the palette size

    Choose how many colours you want: anywhere from 3 (just the brand essentials) to 12 (a full design-system palette).

  3. 3

    Your browser does the work

    Your browser shrinks the image to a thumbnail, groups the pixels into the number of colour groups you asked for, and returns one swatch per group. The whole pass takes a few hundred milliseconds for typical photos.

  4. 4

    Export to your stack

    Copy any swatch to your clipboard as hex, or download the full palette as CSS custom properties, a Tailwind theme.extend.colors block, SCSS variables, JSON (with WCAG contrast ratios baked in), or a 600 x 100 px PNG strip.

Samples

See it in action

Drag each slider to pixel-peep the before and after.

A Provence lavender field gives a warm purple and golden-wheat palette in six swatches with hex codes.A Provence lavender field gives a warm purple and golden-wheat palette in six swatches with hex codes.
A Provence lavender field gives a warm purple and golden-wheat palette in six swatches with hex codes.
A dawn mountain lake pulls cool slate, pine green, and pale peak pink into a print-ready palette.A dawn mountain lake pulls cool slate, pine green, and pale peak pink into a print-ready palette.
A dawn mountain lake pulls cool slate, pine green, and pale peak pink into a print-ready palette.
A Lisbon plaza scene returns pastel pink, butter yellow, and mint pulled straight from the building facades.A Lisbon plaza scene returns pastel pink, butter yellow, and mint pulled straight from the building facades.
A Lisbon plaza scene returns pastel pink, butter yellow, and mint pulled straight from the building facades.
Privacy

Your image, gone when you're done

Runs in your browser

Palette extraction runs entirely in your browser. The image bytes never reach our servers, never touch disk, and are not used to train any model. The only network traffic is a single Plausible analytics beacon (consent-gated) carrying nothing but the page name and the resulting palette size. This is the strictest privacy tier we offer.

  • Processed in seconds
  • Nothing saved
  • No account linked
Try it now

Upload an image

One click. No signup. We'll do the rest.

Extract a colour palette

Drop your image here or click to upload
Drop an image (PNG, JPG, WebP, AVIF, GIF up to 25 MB).
Processed 100% in your browser
The median-cut quantizer runs entirely in your browser via local processing. Nothing is uploaded, nothing is saved.
Glossary

Palette glossary

Plain-English definitions for the jargon above.

FAQ

Frequently asked questions

Answers to the things most people ask before trying a new tool.

Citing or sharing?

Copy a concise Markdown summary (title, description, FAQ, canonical URL, and citation) ready to paste into an LLM or a doc.

Please cite as

BouseMutton (2026). Colour palette extractor [Web application]. https://bousemutton.com/color-palette

Last updated: 2026-04-28