/
base.ts
28 lines (26 loc) · 842 Bytes
/
base.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* The definition of the supported color models
*/
export type ModelType = 'rgb' | 'hsv' | 'hsl' | 'hwb';
export interface BaseSpace<T> {
type: ModelType;
lighten(ratio: number): BaseSpace<T>;
darken(ratio: number): BaseSpace<T>;
whiten(ratio: number): BaseSpace<T>;
blacken(ratio: number): BaseSpace<T>;
saturate(ratio: number): BaseSpace<T>;
desaturate(ratio: number): BaseSpace<T>;
rotate(degrees: number): BaseSpace<T>;
mix(color: T, weight?: number): BaseSpace<T>;
clone(): BaseSpace<T>;
grayscale(): BaseSpace<T>;
color(color: keyof T): number;
setColor(color: keyof T, value: number): BaseSpace<T>;
toArray(): Array<number>;
toObject(): T;
toHexString(removeHashtag?: boolean): string;
toString(): string;
}
export interface HueColorSpace {
hue: number;
}