Color palette generator

Press space to generate new combinations, lock the colors you want to keep and choose the harmony rule. Share the palette with a link.

Tip: press the space bar to generate.

    How to use the palette generator

    The generator builds 5 colors at a time. The workflow is quick:

    The harmony rules

    The rules rely on positions on the color wheel, measured by hue (the H in HSL, from 0° to 360°). Each one creates a different effect:

    RuleHow it is builtEffect
    Balanced randomVaried colors with no fixed hue relationship, chosen to form a balanced setGood for exploring with no starting idea
    AnalogousNeighboring hues about 30° apartCalm and cohesive, common in nature and photography
    ComplementaryThe base color and its opposite at 180°Maximum hue contrast, great for making an action stand out
    TriadicThree hues 120° apartVibrant yet balanced
    TetradicFour hues 90° apart, forming two complementary pairsRich, but works best when one color dominates
    Split-complementaryThe base plus the two neighbors of its complement, at 150° and 210°Strong contrast with less tension than complementary
    MonochromaticA single hue with varying lightness and saturationUnderstated and elegant, easy to apply

    Rules are a starting point, not a guarantee: two complementary colors with the same lightness, for instance, vibrate uncomfortably when placed side by side. The color harmony guide walks through each scheme with examples and shows how to balance the proportions between colors.

    How to apply a 5-color palette to a website

    A generated palette has 5 colors of similar visual weight, but a website needs hierarchy. The 60-30-10 rule is a good place to start:

    The two remaining colors can become supporting variations, such as a button's hover state or a badge color. For body text, use a very dark shade derived from the palette instead of pure black, such as charcoal gray. The guide on building a website color palette covers the role of each color, including status colors (error, warning, success).

    Check accessibility before you ship

    A beautiful palette can still be unreadable. WCAG requires a minimum contrast of 4.5:1 for normal text and 3:1 for large text and for UI components such as input borders and icons. Saturated mid-tones, exactly what a generator tends to produce, rarely pass as text colors on a white background.

    Before using the palette, test every text and background pair in the contrast checker. If a pairing fails, darken or lighten the color while keeping its hue: the palette keeps its identity and becomes readable. Also remember that part of your audience is color blind; the color blindness simulator shows whether your colors stay distinguishable.

    Export to code

    When the palette is ready, export it in one of these formats:

    Here is an example of the CSS variables in use, with roles assigned:

    :root {
      --color-1: #264653;
      --color-2: #2A9D8F;
      --color-3: #E9C46A;
      --color-4: #F4A261;
      --color-5: #E76F51;
    }
    
    body { background: #FAF9F6; color: var(--color-1); }
    .button { background: var(--color-5); color: #000000; }
    .card { border-top: 4px solid var(--color-2); }

    A good habit is to rename the variables after the role they play, such as --color-primary or --color-surface, rather than their position. That way, swapping the palette later does not mean touching every component. Note the button text in this example: white on #E76F51 reaches only about 3.1:1, below the 4.5:1 needed for normal text, so black text is used instead. Darkening the coral is the other option.

    Frequently asked questions

    How do I generate a harmonious color palette?

    Choose a harmony rule (analogous, complementary, triadic, tetradic, split-complementary or monochromatic) and generate variations from a base color. The rules follow color wheel relationships.

    Can I keep one color fixed and change the others?

    Yes. Click a color’s lock to freeze it: the next generations keep that color and recalculate only the rest.

    How do I use the palette on my website?

    Export it as CSS variables (--color-1…), a Tailwind config or JSON and paste it into your project. Also check text/background contrast before publishing.

    Can I share the palette?

    Yes. The page address is updated with the current colors; copy the link and send it to anyone.