rampensau
Version:
Color ramp generator using curves within the HSL color model
59 lines (58 loc) • 2.41 kB
TypeScript
export declare type Vector2 = [number, number];
export declare type Vector3 = [...Vector2, number];
/**
* Converts a color from HSL to HSV.
* @param {Array} hsl - The HSL color values.
* @returns {Array} - The HSV color values.
*/
export declare function normalizeHue(h: number): number;
/**
* Get a more evenly distributed spectrum without the over abundance of green and ultramarine
* https://twitter.com/harvey_rayner/status/1748159440010809665
* @param h - The hue value to be converted 0-360
* @returns h
*/
export declare function harveyHue(h: number): number;
export declare type colorHarmony = "complementary" | "splitComplementary" | "triadic" | "tetradic" | "pentadic" | "hexadic" | "monochromatic" | "doubleComplementary" | "compound" | "analogous";
export declare type colorHarmonyFn = (h: number) => number[];
/**
* Generates a list of hues based on a color harmony.
* @param {number} h - The base hue.
* @param {colorHarmony} harmony - The color harmony.
* @returns {Array<number>} - The list of hues.
*/
export declare const colorHarmonies: {
[key in colorHarmony]: colorHarmonyFn;
};
export declare type uniqueRandomHuesArguments = {
startHue?: number;
total?: number;
minHueDiffAngle?: number;
rndFn?: () => number;
};
/**
* Generates a list of unique hues.
* @param {uniqueRandomHuesArguments} args - The arguments to generate the hues.
* @returns {Array<number>} - The list of hues.
*/
export declare function uniqueRandomHues({ startHue, total, minHueDiffAngle, rndFn, }?: {
startHue?: number | undefined;
total?: number | undefined;
minHueDiffAngle?: number | undefined;
rndFn?: (() => number) | undefined;
}): number[];
/**
* Converts a color from HSV to HSL.
* @param {Array} hsv - The HSV color values.
* @returns {Array} - The HSL color values.
*/
export declare const hsv2hsl: ([h, s, v]: [number, number, number]) => [number, number, number];
export declare type colorToCSSMode = "oklch" | "lch" | "hsl" | "hsv";
/**
* Converts color values to a CSS color function string.
*
* @param {Vector3} color - Array of three color values based on the color mode.
* @param {colorToCSSMode} mode - The color mode to use (oklch, lch, hsl, or hsv).
* @returns {string} - The CSS color function string in the appropriate format.
*/
export declare const colorToCSS: (color: [number, number, number], mode?: colorToCSSMode) => string;