Home

Browser-local color tool

Random color and palette generator

Create a compact palette, lock colors you like, compare black and white text contrast, then copy exact values or export JSON.

Palette controls

Uses Web Crypto in this browser. Locked colors stay in place. Style modes constrain HSL ranges; they do not guarantee color harmony.

Choose a size and style, then generate a palette.

Contrast ratios compare opaque sRGB colors only. They do not certify an entire interface or account for font size, weight, transparency, gradients, or images. Palette values stay in this component and are not added to URLs or storage. Regular site analytics may still load without receiving these values.

Route locale: en

How the palette is generated

Each unlocked slot is drawn in this browser from Web Crypto. Full-spectrum mode samples a 24-bit sRGB value. Pastel, vibrant, dark, and light modes sample bounded hue, saturation, and lightness ranges before converting the result to sRGB; grayscale mode uses one shared channel value.

The generator rejects duplicate colors within one palette and keeps every locked slot unchanged. It reports HEX, RGB, and HSL representations of the same opaque color, then calculates contrast against pure black and pure white from relative luminance.

Worked example: build a five-color draft

Choose five colors and Vibrant, generate once, then lock the two colors that suit the project. Regenerate the unlocked slots until the set has useful variety. Copy the CSS variables for a prototype, but test the actual foreground, font, size, states, transparency, and background combinations before treating any pair as accessible.

Useful ways to apply it

  • Draft a small visual direction before refining a design system.
  • Create distinct chart, classroom, or game tokens that can be copied exactly.
  • Compare black and white text as a first contrast check for an opaque swatch.

Limits and checks

  • Style modes constrain HSL ranges; they do not guarantee harmony, brand fit, or perceptual distance.
  • A black-or-white ratio for one opaque sRGB swatch does not certify a component or a whole interface against WCAG.
  • These random values are design inputs, not passwords, cryptographic keys, or proof of uniqueness outside the current palette.

What stays local

Palette values and locks stay in component memory and are not added to the URL or browser storage. Copy and download actions create local clipboard or file output only. Normal site analytics may load, but the palette values are not sent as analytics fields.

Random palette questions

Can I keep one color while changing the others?
Yes. Lock any current swatch, then regenerate. A locked swatch remains in the same position until it is unlocked or the tool is reset.
Why can a suggested text color still be unsuitable?
The ratio covers pure black or white against one opaque background. Real typography, gradients, opacity, images, focus states, and neighboring colors require testing in context.
Are the HSL values exact?
They are a rounded representation derived from the generated sRGB value. Use the displayed HEX or RGB value when an exact interchange value matters.
Does the tool upload my palette?
No. Generation, locking, conversion, and contrast calculation happen in the browser. A file leaves the browser only when you choose where to save or share it.

Related decisions

Reviewed for functionality and English content on 2026-08-22.