Starting a brand palette from a blank color picker is harder than it sounds — every hue feels equally arbitrary until you've picked one. Starting from a photo you already respond to gives you a shortcut: someone (maybe you) already made a hundred small aesthetic decisions when that photo was taken or chosen, and a palette extracted from it inherits that judgment for free. The workflow below turns one reference photo into a usable, trimmed brand palette rather than a raw list of extracted colors.

1. Choose a reference photo deliberately

Not every photo makes a good source. Look for one where the color relationships already feel right for the brand — the mood, warmth, and contrast you want people to associate with it. A product shot, a location photo, or even a well-chosen piece of packaging all work. Avoid photos with a strong color cast from artificial lighting (see our piece on color casts and white balance) unless that cast is actually part of the mood you're going for.

2. Extract wide, then narrow

Run the extraction at a coarser grain first — more colors than you think you'll need. It's much easier to cut a twelve-color palette down to five than to notice a color was missing from an eight-color extraction. At this stage you're not choosing the final palette, you're building a shortlist to choose from.

3. Sort by role, not by how the colors look together

Every finished brand palette needs a few functional roles filled, and it's worth assigning them before you worry about how pretty the set looks as a group:

A primary. Usually the most dominant, most saturated color in the extraction — the one doing the most visual work in the source photo. This becomes your main brand color, the one on the logo and primary buttons.

An accent. A secondary color, often less common in the photo but visually distinct from the primary, used sparingly for calls to action or highlights. Look for the color that appears in a small, deliberate spot in the photo rather than covering large areas.

Neutrals. Every extraction includes a few near-gray, near-black, or near-white tones. Keep two or three of these — they'll carry most of your actual text and backgrounds, so it's worth taking the least saturated, most legible-looking ones rather than the most visually interesting.

4. Check contrast before you commit

A palette that looks balanced as a strip of swatches can still fail badly once it's applied as text on a background. Before finalizing, pair your likely text and background combinations — primary on neutral, neutral on primary, accent on white — and check the contrast ratio for each. Our guide to WCAG contrast ratios covers what AA and AAA actually require; it's much cheaper to swap a color now than after it's already in a style guide.

5. Trim to the final set

A workable brand palette is usually five to seven colors total: one primary, one or two accents, and two to four neutrals. Anything larger tends to get inconsistently applied in practice — designers default back to the two or three colors they remember, and the rest of the palette quietly stops being used. Cut down to the colors you can commit to using deliberately, not every color that happened to survive the extraction.

6. Export and lock it in

Once the set is final, export it in whatever format your team actually works in — CSS custom properties for a website, a Tailwind config block if that's your stack, or plain JSON if it's going into a design tool or documentation. Having the exact values in one place, rather than re-picking them from the photo each time, is what actually keeps a brand looking consistent across a website, a deck, and a printed sheet.