UNPKG

@markgorzynski/color-utils

Version:

The only color science library with adaptive visual perception modeling and accessibility-driven optimization.

231 lines (214 loc) 4.72 kB
/** * @file src/index.js * @module color-utils * @description Main entry point for the color-utils library. * This file re-exports the primary public-facing functions, classes, * and constants from the various modules within the library. */ // --- Type Definitions --- // Re-export all types for TypeScript/JSDoc support // --- Utility Functions --- export { // Constants D65_WHITE_POINT_XYZ, // Angle conversions degreesToRadians, radiansToDegrees, // Math utilities multiplyMatrixVector, signPreservingPow, clamp, lerp, normalizeHue } from './utils.js'; // --- sRGB Color Space --- export { // Gamma correction srgbToLinearSrgb, linearSrgbToSrgb, // XYZ conversions linearSrgbToXyz, xyzToLinearSrgb, srgbToXyz, xyzToSrgb, // Hex utilities parseSrgbHex, formatSrgbAsHex, isSrgbInGamut, // Matrix constants (for advanced use) MATRIX_LINEAR_SRGB_TO_XYZ_D65, MATRIX_XYZ_TO_LINEAR_SRGB_D65 } from './srgb.js'; // --- CIELAB and CIELCh Color Spaces --- export { // XYZ ↔ Lab xyzToLab, labToXyz, // Lab ↔ LCh labToLch, lchToLab, // sRGB ↔ Lab srgbToLab, labToSrgb, // sRGB ↔ LCh srgbToLch, lchToSrgb } from './cielab.js'; // --- Oklab and OkLCh Color Spaces --- export { // Linear sRGB ↔ Oklab linearSrgbToOklab, oklabToLinearSrgb, // Oklab ↔ OkLCh oklabToOklch, oklchToOklab, // sRGB ↔ Oklab srgbToOklab, oklabToSrgb, // sRGB ↔ OkLCh srgbToOklch, oklchToSrgb } from './oklab.js'; // --- Adaptive Oklab --- export { AdaptiveOklab } from './aoklab.js'; // --- Adaptive Oklab Presets and Utilities --- export { AOKLAB_PRESETS, AOKLAB_SIMPLE_PRESETS, createAoklabForSurround, getRecommendedSurround, exportConfig, createFromConfig } from './aoklab-defaults.js'; // --- CIECAM16 Color Appearance Model --- export { srgbToCiecam16 } from './ciecam16.js'; // --- Color Metrics --- export { // Luminance and contrast getSrgbRelativeLuminance, calculateWcagContrast, isWcagContrastSufficient, // Color difference calculateCiede2000, calculateOklchDifference } from './color-metrics.js'; // --- Gamut Management --- export { // Validation isLabInTypicalRange, isOklabInTypicalRange, isValidSrgbObject, isValidLabObject, // Clamping and scaling clampSrgb, scaleToSrgbGamut, // Analysis getSrgbGamutInfo, getMaxChroma } from './gamut.js'; // --- Chroma Control --- export { findMaxAokChromaForLabL, adjustAokColorToLabL } from './chromaControl.js'; // --- Display P3 Color Space --- export { // Constants DISPLAY_P3_PRIMARIES, MATRIX_LINEAR_DISPLAY_P3_TO_XYZ_D65, MATRIX_XYZ_TO_LINEAR_DISPLAY_P3_D65, // Conversions displayP3ToLinearDisplayP3, linearDisplayP3ToDisplayP3, srgbToDisplayP3, displayP3ToSrgb, linearDisplayP3ToXyz, xyzToLinearDisplayP3, // Utilities isDisplayP3InSrgbGamut, benefitsFromDisplayP3, formatDisplayP3ForCSS, parseDisplayP3FromCSS } from './display-p3.js'; // --- Gamut Mapping --- export { // Gamut checking isInGamut, needsGamutMapping, getGamutVolumeRatio, // CSS Color 4 algorithm gamutMapOklch, gamutMapSrgb, // Alternative algorithms clipGamutMapping, cuspGamutMapping, adaptiveGamutMapping } from './gamut-mapping.js'; // --- Chromatic Adaptation --- export { // Illuminants ILLUMINANTS, // Main adaptation function chromaticAdaptation, // Common conversions xyzD65ToD50, xyzD50ToD65, // Utilities calculateCCT, getWhitePointFromTemperature, findClosestIlluminant, needsChromaticAdaptation } from './chromatic-adaptation.js'; // --- CSS Color Module Level 4 Parsing --- export { // Main parsing and formatting parseCSS, formatCSS } from './css-color-parser.js'; // --- Rec. 2020 Color Space --- export { // Constants REC2020_PRIMARIES, MATRIX_LINEAR_REC2020_TO_XYZ_D65, MATRIX_XYZ_TO_LINEAR_REC2020_D65, // Conversions rec2020ToLinearRec2020, linearRec2020ToRec2020, srgbToRec2020, rec2020ToSrgb, linearRec2020ToXyz, xyzToLinearRec2020, // Utilities isRec2020InSrgbGamut, benefitsFromRec2020, formatRec2020ForCSS, parseRec2020FromCSS, getRec2020GamutRatio } from './rec2020.js'; // --- CAM16-UCS Uniform Color Space --- export { // Conversions cam16ToUcs, ucsToCam16, srgbToCam16Ucs, cam16UcsToSrgb, // Polar coordinates ucsToPolar, polarToUcs, // Color difference cam16UcsColorDifference, calculateCam16UcsDifference, // Interpolation interpolateCam16Ucs, interpolateCam16UcsPolar, // Gradient generation generateCam16UcsGradient, // Color harmony findComplementaryCam16Ucs, generateAnalogousCam16Ucs, generateTriadicCam16Ucs } from './cam16-ucs.js';