@markgorzynski/color-utils
Version:
The only color science library with adaptive visual perception modeling and accessibility-driven optimization.
86 lines (64 loc) • 2.5 kB
Markdown
with hex color strings
- `color-spaces.js` - Converting between all supported color spaces
- `adaptive-oklab.js` - Using Adaptive Oklab for different viewing conditions
- `gamut-mapping.js` - Handling out-of-gamut colors
- `wcag-contrast.js` - Calculating and ensuring WCAG compliance
- `color-difference.js` - Measuring perceptual color differences
- `dark-mode-adaptation.js` - Adapting colors for dark/light themes
- `accessibility-optimization.js` - Maximizing vibrancy while maintaining WCAG compliance
- `wide-gamut-workflow.js` - Working with Display P3 and Rec. 2020
- `color-appearance-modeling.js` - Using CIECAM16 for accurate appearance prediction
```bash
node examples/basic-conversions.js
```
Open `examples/browser/index.html` in a modern browser.
Visit our [online playground](https://color-utils-demo.vercel.app) for interactive demos with live code editing.
```javascript
import { srgbToLab, isSrgbInGamut, gamutMapToSrgb } from 'color-utils';
function processUserColor(input) {
let color = parseColorInput(input);
// Check if in gamut
if (!isSrgbInGamut(color)) {
console.warn('Color out of gamut, mapping...');
color = gamutMapToSrgb(color);
}
// Now safe to convert
const lab = srgbToLab(color);
return lab;
}
```
```javascript
import { AdaptiveOklab } from 'color-utils';
function getThemeColor(baseColor, theme) {
const surround = theme === 'dark' ? 'dark' : 'white';
const aok = new AdaptiveOklab({ surround });
const adapted = aok.fromSrgb(baseColor);
return aok.toSrgb(adapted);
}
```
```javascript
import { calculateWcagContrast, adjustAokColorToLabL } from 'color-utils';
function ensureAccessibleColor(foreground, background, minContrast = 4.5) {
const contrast = calculateWcagContrast(foreground, background);
if (contrast >= minContrast) {
return foreground;
}
// Adjust color to meet contrast requirements
// Implementation details in accessibility-optimization.js
}
```
This directory contains practical examples demonstrating the capabilities of the Color Utils library.
- `basic-conversions.js` - Simple sRGB to Lab/Oklab conversions
- `hex-colors.js` - Working