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
TypeScript
/**
* @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 {};