shade-generator
Version:
Generate tints and shades easily.
40 lines (39 loc) • 1.18 kB
TypeScript
export declare type Rgba = {
r: number;
g: number;
b: number;
a?: number | null;
};
export declare type Hsv = {
h: number;
s: number;
v: number;
};
export declare type Shade = "10" | "20" | "30" | "40" | "50" | "60" | "70" | "80" | "90" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "1000";
export declare type ShadeOption = {
multiplier: number;
value: Rgba;
};
export declare type Shades = Record<Shade, ShadeOption>;
export declare type ColorFormat = "rgba" | "hsl" | "hex";
export interface IShadeGenerator {
baseColor: Rgba;
shades: Shades;
currentShade: Shade;
currentShadeValue(): Rgba;
config(shades: Record<Shade, number>): IShadeGenerator;
/**
*
* @param color : Can be both hex or rgba;
*/
hue(color?: string): IShadeGenerator;
shade(shade: Shade): IShadeGenerator;
shadesMap(colorFormat: ColorFormat): Record<Shade, string>;
generateShade(shade: Shade): Rgba;
generateShades(): void;
opacity(amount: number): IShadeGenerator;
hsv(): Hsv;
rgba(color?: Rgba): string;
hsl(color?: Rgba): string;
hex(color?: Rgba): string;
}