How to use the Palette Generator
- Pick a base color or hit randomize.
- Choose a scheme: mono, analogous, complementary, split-complementary, triadic or tetradic.
- Set the number of steps per ramp and how far hues shift at the dark and light ends.
- Tune the darkest and lightest values, end saturation and overall saturation while watching the sample sprites.
- Click a swatch to copy its hex, or export the whole palette.
What you get
- .hex (Lospec), .gpl (GIMP/Aseprite/Krita), JASC .pal, Adobe .ase, Paint.NET .txt, CSS variables
- PNG swatch strip at 1×, 8× or 32×
Tips from making games with it
- Hue shifting is what makes pixel art shading look alive. 20°–35° is a safe range. Push it higher for stylised, painterly palettes.
- Keep the lightest step below 95% if you want a separate pure highlight color.
- Lower the end saturation so the darkest and lightest steps aren't neon. Real shadows and highlights lose chroma.
- Generation happens in OKLCH, so equal lightness steps look evenly spaced, unlike HSL ramps that jump around yellow and blue.
Use cases
- Starting a new game's palette from a key color
- Making shading ramps for a character's skin, hair and clothes
- Exploring complementary accents for UI
- Creating .ase or .gpl swatches for Aseprite
FAQ
What is hue shifting?
Instead of only making a color darker or lighter, you also rotate its hue: shadows toward blue or purple, highlights toward yellow. It mimics how light and ambient color behave and avoids muddy shading.
Why OKLCH instead of HSL?
HSL lightness doesn't match how bright colors look: yellow at 50% looks far lighter than blue at 50%. OKLCH lightness is perceptual, so ramps step evenly across all hues.
Which formats can I export?
.hex, .gpl, JASC .pal, Adobe .ase, Paint.NET .txt, CSS variables and a PNG swatch. Aseprite opens .gpl, .hex, .pal and .ase directly.
What do the sample sprites show?
The slime and potion are recolored with the first two ramps by lightness rank, so you can judge the palette on real pixel art, not only swatches.
Are the colors always in gamut?
Yes. If a color would fall outside sRGB, its chroma is reduced until it fits, keeping hue and lightness.