UNPKG

toolset.io

Version:

前端开发常用工具集。

471 lines (470 loc) 14.8 kB
interface RGB extends Record<any, any> { r: number; g: number; b: number; a?: number; } export interface RGBColor extends RGB { a?: 1; format?: 'name' | 'rgb'; } export interface RGBAColor extends RGB { a: number; format?: 'name' | 'rgba'; } export interface HEX3Color extends RGB { a?: 1; format?: 'name' | 'hex3'; } export interface HEX4Color extends RGB { a: number; format?: 'name' | 'hex4'; } export interface HEX6Color extends RGB { a?: 1; format?: 'name' | 'hex6'; } export interface HEX8Color extends RGB { a: number; format?: 'name' | 'hex8'; } interface HSL extends Record<any, any> { h: number; s: number; l: number; a?: number; } export interface HSLColor extends HSL { a?: 1; format?: 'name' | 'hsl'; } export interface HSLAColor extends HSL { a: number; format?: 'name' | 'hsla'; } interface HSV extends Record<any, any> { h: number; s: number; v: number; a?: number; } export interface HSVColor extends HSV { a?: 1; format?: 'name' | 'hsv'; } export interface HSVAColor extends HSV { a: number; format?: 'name' | 'hsva'; } export type Color = string | RGBColor | RGBAColor | HSLColor | HSLAColor | HSVColor | HSVAColor | HEX3Color | HEX4Color | HEX6Color | HEX8Color; export type ObjectColor = Exclude<Color, string>; export interface ColorMeta { rgb: RGBColor; hsl: HSLColor; hsv: HSVColor; hex: string; alpha: number; rgba: RGBAColor; hsla: HSLAColor; hsva: HSVAColor; hex8: string; gray: number; origin: Color; } export type ColorType = 'hex' | 'rgb' | 'hsv' | 'hsl'; export declare const RGB_REG: RegExp; export declare const RGBA_REG: RegExp; export declare const HSL_REG: RegExp; export declare const HSLA_REG: RegExp; export declare const HSV_REG: RegExp; export declare const HSVA_REG: RegExp; export declare const HEX_REG_3: RegExp; export declare const HEX_REG_4: RegExp; export declare const HEX_REG_6: RegExp; export declare const HEX_REG_8: RegExp; export declare const NAMED_COLORS: Readonly<{ aliceblue: "f0f8ff"; antiquewhite: "faebd7"; aqua: "0ff"; aquamarine: "7fffd4"; azure: "f0ffff"; beige: "f5f5dc"; bisque: "ffe4c4"; black: "000"; blanchedalmond: "ffebcd"; blue: "00f"; blueviolet: "8a2be2"; brown: "a52a2a"; burlywood: "deb887"; burntsienna: "ea7e5d"; cadetblue: "5f9ea0"; chartreuse: "7fff00"; chocolate: "d2691e"; coral: "ff7f50"; cornflowerblue: "6495ed"; cornsilk: "fff8dc"; crimson: "dc143c"; cyan: "0ff"; darkblue: "00008b"; darkcyan: "008b8b"; darkgoldenrod: "b8860b"; darkgray: "a9a9a9"; darkgreen: "006400"; darkgrey: "a9a9a9"; darkkhaki: "bdb76b"; darkmagenta: "8b008b"; darkolivegreen: "556b2f"; darkorange: "ff8c00"; darkorchid: "9932cc"; darkred: "8b0000"; darksalmon: "e9967a"; darkseagreen: "8fbc8f"; darkslateblue: "483d8b"; darkslategray: "2f4f4f"; darkslategrey: "2f4f4f"; darkturquoise: "00ced1"; darkviolet: "9400d3"; deeppink: "ff1493"; deepskyblue: "00bfff"; dimgray: "696969"; dimgrey: "696969"; dodgerblue: "1e90ff"; firebrick: "b22222"; floralwhite: "fffaf0"; forestgreen: "228b22"; fuchsia: "f0f"; gainsboro: "dcdcdc"; ghostwhite: "f8f8ff"; gold: "ffd700"; goldenrod: "daa520"; gray: "808080"; green: "008000"; greenyellow: "adff2f"; grey: "808080"; honeydew: "f0fff0"; hotpink: "ff69b4"; indianred: "cd5c5c"; indigo: "4b0082"; ivory: "fffff0"; khaki: "f0e68c"; lavender: "e6e6fa"; lavenderblush: "fff0f5"; lawngreen: "7cfc00"; lemonchiffon: "fffacd"; lightblue: "add8e6"; lightcoral: "f08080"; lightcyan: "e0ffff"; lightgoldenrodyellow: "fafad2"; lightgray: "d3d3d3"; lightgreen: "90ee90"; lightgrey: "d3d3d3"; lightpink: "ffb6c1"; lightsalmon: "ffa07a"; lightseagreen: "20b2aa"; lightskyblue: "87cefa"; lightslategray: "789"; lightslategrey: "789"; lightsteelblue: "b0c4de"; lightyellow: "ffffe0"; lime: "0f0"; limegreen: "32cd32"; linen: "faf0e6"; magenta: "f0f"; maroon: "800000"; mediumaquamarine: "66cdaa"; mediumblue: "0000cd"; mediumorchid: "ba55d3"; mediumpurple: "9370db"; mediumseagreen: "3cb371"; mediumslateblue: "7b68ee"; mediumspringgreen: "00fa9a"; mediumturquoise: "48d1cc"; mediumvioletred: "c71585"; midnightblue: "191970"; mintcream: "f5fffa"; mistyrose: "ffe4e1"; moccasin: "ffe4b5"; navajowhite: "ffdead"; navy: "000080"; oldlace: "fdf5e6"; olive: "808000"; olivedrab: "6b8e23"; orange: "ffa500"; orangered: "ff4500"; orchid: "da70d6"; palegoldenrod: "eee8aa"; palegreen: "98fb98"; paleturquoise: "afeeee"; palevioletred: "db7093"; papayawhip: "ffefd5"; peachpuff: "ffdab9"; peru: "cd853f"; pink: "ffc0cb"; plum: "dda0dd"; powderblue: "b0e0e6"; purple: "800080"; rebeccapurple: "663399"; red: "f00"; rosybrown: "bc8f8f"; royalblue: "4169e1"; saddlebrown: "8b4513"; salmon: "fa8072"; sandybrown: "f4a460"; seagreen: "2e8b57"; seashell: "fff5ee"; sienna: "a0522d"; silver: "c0c0c0"; skyblue: "87ceeb"; slateblue: "6a5acd"; slategray: "708090"; slategrey: "708090"; snow: "fffafa"; springgreen: "00ff7f"; steelblue: "4682b4"; tan: "d2b48c"; teal: "008080"; thistle: "d8bfd8"; tomato: "ff6347"; turquoise: "40e0d0"; violet: "ee82ee"; wheat: "f5deb3"; white: "fff"; whitesmoke: "f5f5f5"; yellow: "ff0"; yellowgreen: "9acd32"; }>; export type ColorName = keyof typeof NAMED_COLORS; export declare const COLOR_NAMES: Readonly<Set<"aliceblue" | "antiquewhite" | "aqua" | "aquamarine" | "azure" | "beige" | "bisque" | "black" | "blanchedalmond" | "blue" | "blueviolet" | "brown" | "burlywood" | "burntsienna" | "cadetblue" | "chartreuse" | "chocolate" | "coral" | "cornflowerblue" | "cornsilk" | "crimson" | "cyan" | "darkblue" | "darkcyan" | "darkgoldenrod" | "darkgray" | "darkgreen" | "darkgrey" | "darkkhaki" | "darkmagenta" | "darkolivegreen" | "darkorange" | "darkorchid" | "darkred" | "darksalmon" | "darkseagreen" | "darkslateblue" | "darkslategray" | "darkslategrey" | "darkturquoise" | "darkviolet" | "deeppink" | "deepskyblue" | "dimgray" | "dimgrey" | "dodgerblue" | "firebrick" | "floralwhite" | "forestgreen" | "fuchsia" | "gainsboro" | "ghostwhite" | "gold" | "goldenrod" | "gray" | "green" | "greenyellow" | "grey" | "honeydew" | "hotpink" | "indianred" | "indigo" | "ivory" | "khaki" | "lavender" | "lavenderblush" | "lawngreen" | "lemonchiffon" | "lightblue" | "lightcoral" | "lightcyan" | "lightgoldenrodyellow" | "lightgray" | "lightgreen" | "lightgrey" | "lightpink" | "lightsalmon" | "lightseagreen" | "lightskyblue" | "lightslategray" | "lightslategrey" | "lightsteelblue" | "lightyellow" | "lime" | "limegreen" | "linen" | "magenta" | "maroon" | "mediumaquamarine" | "mediumblue" | "mediumorchid" | "mediumpurple" | "mediumseagreen" | "mediumslateblue" | "mediumspringgreen" | "mediumturquoise" | "mediumvioletred" | "midnightblue" | "mintcream" | "mistyrose" | "moccasin" | "navajowhite" | "navy" | "oldlace" | "olive" | "olivedrab" | "orange" | "orangered" | "orchid" | "palegoldenrod" | "palegreen" | "paleturquoise" | "palevioletred" | "papayawhip" | "peachpuff" | "peru" | "pink" | "plum" | "powderblue" | "purple" | "rebeccapurple" | "red" | "rosybrown" | "royalblue" | "saddlebrown" | "salmon" | "sandybrown" | "seagreen" | "seashell" | "sienna" | "silver" | "skyblue" | "slateblue" | "slategray" | "slategrey" | "snow" | "springgreen" | "steelblue" | "tan" | "teal" | "thistle" | "tomato" | "turquoise" | "violet" | "wheat" | "white" | "whitesmoke" | "yellow" | "yellowgreen">>; export declare function isHex(color: any): boolean; export declare function isRgb(color: any): boolean; export declare function isRgba(color: any): boolean; /** * 判断给定的字符串是否为一个合法颜色值 * * @param value 原始字符串 * * @returns 是否为合法颜色 */ export declare function isColor(value: string): boolean; /** * 将给定的字符串转化为 {@link ObjectColor},无法转换时返回 null * * @param color 原始颜色字符串 * * @returns 解析后的颜色对象 */ export declare function parseStringColor(color: string): ObjectColor | null; /** * 将给定的 {@link Color} 解析为 {@link ColorMeta} * * @param color 原始颜色值 * * @returns 解析后的颜色元数据 */ export declare function parseColor(color: Color): ColorMeta; /** * 将给定的 {@link Color} 解析为 {@link RGBAColor} * * @param originColor 原始颜色值 * * @returns 解析后的 RGB 颜色对象 */ export declare function parseColorToRgba(originColor: Color): RGBAColor; /** * 将原始的 h、s、l 值标准化为 0 ~ 1 的值 * * @param h 0 ~ 360 * @param s 0 ~ 1,0% ~ 100% * @param l 0 ~ 1,0% ~ 100% * * @returns 标准化后的 HSL 对象 */ export declare function normalizeHsl(h: number | string, s: number | string, l: number | string): { h: number; s: number; l: number; }; /** * 将原始的 r、g、b 值标准化为 0 ~ 1 的值 * * @param r 0 ~ 255 * @param g 0 ~ 255 * @param b 0 ~ 255 * * @returns 标准化后 RGB 对象 */ export declare function normalizeRgb(r: number | string, g: number | string, b: number | string): { r: number; g: number; b: number; }; /** * 将原始的 h、s、v 值标准化为 0 ~ 1 的值 * * @param h 0 ~ 360 * @param s 0 ~ 1,0% ~ 100% * @param v 0 ~ 1,0% ~ 100% * * @returns 标准化的 HSV 对象 */ export declare function normalizeHsv(h: number | string, s: number | string, v: number | string): { h: number; s: number; v: number; }; /** * 将原始透明度值标准化为 0 ~ 1 的值 * * @param a 0 ~ 1,0% ~ 100% * * @returns 标准化后的透明度 */ export declare function normalizeAlpha(a: number | string): number; /** * 将 HSL 颜色转换为 RGB 颜色 * * @param h 0 ~ 360 * @param s 0 ~ 1,0% ~ 100% * @param l 0 ~ 1,0% ~ 100% * * @returns 转换后的 RGB 颜色 */ export declare function hslToRgb(h: number | string, s: number | string, l: number | string): RGBColor; /** * 将 RGB 颜色转换为 HSL 颜色 * * @param r 0 ~ 255 * @param g 0 ~ 255 * @param b 0 ~ 255 * * @returns 转换后的 HSL 颜色 */ export declare function rgbToHsl(r: number | string, g: number | string, b: number | string): HSLColor; /** * 将 HSL 颜色转换为 HSV 颜色 * * @param h 0 ~ 360 * @param s 0 ~ 1,0% ~ 100% * @param l 0 ~ 1,0% ~ 100% * * @returns 转换后的 HSV 颜色 */ export declare function hslToHsv(h: number | string, s: number | string, l: number | string): HSVColor; /** * 将 HSV 颜色转换为 HSL 颜色 * * @param h 0 ~ 360 * @param s 0 ~ 1,0% ~ 100% * @param v 0 ~ 1,0% ~ 100% * * @returns 转换后的 HSL 颜色 */ export declare function hsvToHsl(h: number | string, s: number | string, v: number | string): HSLColor; /** * 将 HSV 颜色转换为 RGB 颜色 * * @param h 0 ~ 360 * @param s 0 ~ 1,0% ~ 100% * @param v 0 ~ 1,0% ~ 100% * * @returns 转换后的 RGB 颜色 */ export declare function hsvToRgb(h: number | string, s: number | string, v: number | string): RGBColor; /** * 将 RGB 颜色转换为 HSV 颜色 * * @param r 0 ~ 255 * @param g 0 ~ 255 * @param b 0 ~ 255 * * @returns 转换后的 HSV 颜色 */ export declare function rgbToHsv(r: number | string, g: number | string, b: number | string): HSVColor; /** * 将 RGB 颜色转换为 HEX 颜色 * * @param r 0 ~ 255 * @param g 0 ~ 255 * @param b 0 ~ 255 * @param allow3Char 是否允许 3 位的 HEX 值 * * @returns 转换后的 HEX 颜色 */ export declare function rgbToHex(r: number | string, g: number | string, b: number | string, allow3Char?: boolean): string; /** * 将 RGBA 颜色转换为 HEX 颜色 * * @param r 0 ~ 255 * @param g 0 ~ 255 * @param b 0 ~ 255 * @param a 0 ~ 1,0% ~ 100% * @param allow4Char 是否允许 4 位的 HEX 值 * * @returns 转换后的 HEX 颜色 */ export declare function rgbaToHex(r: number | string, g: number | string, b: number | string, a: number | string, allow4Char?: boolean): string; /** * 将两种颜色按照一定的比例混合 * * @param color1 第一种颜色 * @param color2 第二种颜色 * @param weight 混合比例 0 ~ 1,越小则第一种颜色越少 * * @returns 混合后的颜色 */ export declare function mixColor(color1: Color, color2: Color, weight?: number): RGBAColor; /** * 调整给定颜色值的透明度 * * @param color 需要调整的颜色 * @param alpha 调整后的透明度 0 ~ 1,0% ~ 100% * * @returns 调整后的颜色 */ export declare function adjustAlpha(color: Color, alpha: number | string): RGBAColor; /** * 随机生成一个颜色值 * * @param withAlpha 是否具有透明度 * @param type 颜色的类型 * * @returns 生成的颜色字面值 */ export declare function randomColor(withAlpha?: boolean, type?: ColorType): string; /** * 随机生成一个特定色调(冷暖色)的颜色值 * * @param prefer 色调 * @param withAlpha 是否具有透明度 * @param type 颜色的类型 * * @returns 生成的颜色字面值 */ export declare function randomPreferColor(prefer: 'hard' | 'soft', withAlpha?: boolean, type?: ColorType): string; /** * 随机生成一个冷色调的颜色值 * * @param withAlpha 是否具有透明度 * @param type 颜色的类型 * * @returns 生成的颜色字面值 */ export declare function randomHardColor(withAlpha?: boolean, type?: ColorType): string; /** * 随机生成一个暖色调的颜色值 * * @param withAlpha 是否具有透明度 * @param type 颜色的类型 * * @returns 生成的颜色字面值 */ export declare function randomSoftColor(withAlpha?: boolean, type?: ColorType): string; /** * 获取给定颜色的灰度 * * @param color 颜色字面值 * * @returns 颜色的灰度 */ export declare function toGrayScale(color: string): number; export {};