# Color Harmony & Shift Generator > Build HSL harmonies with eased shifts, locked colors and reusable palette exports. Generate 2–24 opaque colors using six HSL harmonies and hue, saturation and lightness travel. Preserve chosen positions with color locks and download HEX, CSS, GPL, JASC-PAL and SVG palettes. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://luminapalettegenerator.usefulweb.site/ (interactive tool at https://luminapalettegenerator.usefulweb.site/tool) - JSON API: POST https://luminapalettegenerator.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://luminapalettegenerator.usefulweb.site/api/v1/tool) - OpenAPI: https://luminapalettegenerator.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://luminapalettegenerator.usefulweb.site/mcp - tool `lumina_palette_generator` ## Inputs - base (text): Base HEX color - count (integer): Color count - harmony (select): HSL harmony - hue (number): Hue travel (degrees) - saturation (number): Saturation travel (percentage points) - lightness (number): Lightness travel (percentage points) - easing (select): Shift easing - locks (textarea): Locked positions (for example 1=#164E63; 3=#FFFFFF) ## Method - Convert the base sRGB color to HSL. Hue offsets repeat at 0/180 for complementary, 0/150/210 for split, 0/120/240 for triadic and 0/90/180/270 for tetradic. - For index i, shift progress is i/(count-1), transformed by linear, quadratic ease-in, quadratic ease-out or smoothstep. Add travel to the base HSL values; monochromatic ignores hue travel. - Wrap hue and clamp saturation/lightness to 0–100%; round sRGB channels to eight bits. Locked positions replace generated values exactly. HSL spacing is not perceptually uniform. - HEX, GPL, JASC-PAL, CSS and SVG exports keep order and duplicate colors. Palette Studio opens these colors as an independent group.