That kicked off a two-year (sporadic) rabbit hole into color theory like Josef Albers' "Interaction of Color," perceptual color spaces (OKLCH vs sRGB), and effects like Bezold-Brücke. I learned that programmatic palette generation is genuinely hard. Nothing beats a trained eye.
But I carried on anyway and made the Color Palette Pro.
What it does: It generates 6 palette types (analogous, complementary, split complementary, triadic, tetradic, tints & shades) with 4 algorithmic variations each. The variations adjust for perceptual uniformity—things like how your eye perceives hue shifts at different lightness levels.
It's built on OKLCH color space, which is perceptually uniform unlike HSL/sRGB. Every state change updates the URL, so you can share exact configurations. There's also a UI mode that generates complete design system palettes (light + dark themes with surface/on-surface colors).
Technical bits: * Built with Color.js (the TS library by Lea Verou and Chris Lilley, who co-edit the CSS color spec) * Custom API for color naming that finds nearest matches from a compiled color name database (pizza based) * Eyedropper API support (where available) * Exports to CSS variables, images, or just copy individual values
What's different: Most palette generators either use naive HSL rotation, offer poor ergonomics, or both. This tries to balance algorithmic generation with perceptual adjustments while staying flexible. The "synthesizer" interface with knobs and variations lets you quickly explore options rather than regenerating from scratch (and it's fun!).
Not every palette it generates is great—like I said, this doesn't replace a trained eye. But it's a decent starting point.
Totally free, no ads, no pro AI features.
Try it: https://colorpalette.pro
Learn more -> https://ryanfeigenbaum.com/color-palette-pro/