UNPKG

houser-js-utils

Version:

A comprehensive collection of TypeScript utility functions for common development tasks including array manipulation, string processing, date handling, random number generation, validation, and much more.

145 lines (144 loc) 4.03 kB
/** * @module ColorUtils * @description A collection of utility functions for color manipulation and conversion. * Supports RGB, HEX, HSL, and CMYK color formats with conversion between them. * * @example * ```typescript * import { ColorUtils } from 'houser-js-utils'; * * // Convert hex to RGB * const rgb = ColorUtils.hexToRgb('#FF0000'); * * // Adjust color brightness * const darker = ColorUtils.adjustBrightness(rgb, -20); * * // Generate random color * const randomHex = ColorUtils.randomColor('hex'); * ``` */ /** * Supported color format types */ type ColorType = "rgb" | "hex" | "hsl" | "cmyk"; /** * RGB color representation */ interface RGBColor { /** Red component (0-255) */ r: number; /** Green component (0-255) */ g: number; /** Blue component (0-255) */ b: number; } /** * HSL color representation */ interface HSLColor { /** Hue component (0-360) */ h: number; /** Saturation component (0-100) */ s: number; /** Lightness component (0-100) */ l: number; } /** * CMYK color representation */ interface CMYKColor { /** Cyan component (0-100) */ c: number; /** Magenta component (0-100) */ m: number; /** Yellow component (0-100) */ y: number; /** Key (black) component (0-100) */ k: number; } export declare const ColorUtils: { /** * Adjusts the brightness of a color * @param color - RGB color values * @param amount - Amount to adjust (-100 to 100) * @returns Adjusted RGB color values */ adjustBrightness(color: RGBColor, amount: number): RGBColor; /** * Adjusts the saturation of a color by a specified amount * @param color - RGB color values * @param amount - Amount to adjust (-100 to 100) * @returns Adjusted RGB color values */ adjustSaturation(color: RGBColor, amount: number): RGBColor; /** * Blends two colors together * @param color1 - First RGB color * @param color2 - Second RGB color * @param ratio - Blend ratio (0 to 1) * @returns Blended RGB color */ blendColors(color1: RGBColor, color2: RGBColor, ratio: number): RGBColor; /** * Converts a CMYK color to RGB * @param cmyk - CMYK color values * @returns RGB color values */ cmykToRgb(cmyk: CMYKColor): RGBColor; /** * Calculates the contrast ratio between two colors * @param color1 - First RGB color * @param color2 - Second RGB color * @returns Contrast ratio (1 to 21) */ contrastRatio(color1: RGBColor, color2: RGBColor): number; /** * Converts a hex color to RGB * @param hex - Hex color string (e.g., "#FF0000") * @returns RGB color values */ hexToRgb(hex: string): RGBColor; /** * Converts an HSL color to RGB * @param hsl - HSL color values * @returns RGB color values */ hslToRgb(hsl: HSLColor): RGBColor; /** * Inverts a color * @param color - RGB color values * @returns Inverted RGB color values */ invertColor(color: RGBColor): RGBColor; /** * Validates if a string is a valid hex color * @param hex - Hex color string to validate * @returns True if the string is a valid hex color */ isValidHexColor(hex: string): boolean; /** * Generates a random color in the specified format * @param type - Color format (rgb, hex, hsl, or cmyk) * @returns Random color string in the specified format */ randomColor(type?: ColorType): string; /** * Converts RGB color to CMYK * @param rgb - RGB color values * @returns CMYK color values */ rgbToCmyk(rgb: RGBColor): CMYKColor; /** * Converts RGB color to hex * @param rgb - RGB color values * @returns Hex color string */ rgbToHex(rgb: RGBColor): string; /** * Converts RGB color to HSL * @param rgb - RGB color values * @returns HSL color values */ rgbToHsl(rgb: RGBColor): HSLColor; }; export {};