Установка
Требования
Требуется Node.js 18+. Никаких runtime- или peer-зависимостей — пакет полностью независим от фреймворков и работает в любом JS/TS-окружении (браузер, Node, edge-рантаймы).
Установка
bash
npm install color-value-toolsБыстрый старт
ts
import {
normalizeColor,
mixColors,
lighten,
darken,
saturate,
complement,
triadic,
wcagLevel,
bestTextColor,
colorDeltaE,
randomColor,
} from 'color-value-tools'
// Разобрать любой формат цвета
normalizeColor('#3498db')
// { type: 'hex', hex: '#3498db', r: 52, g: 152, b: 219, a: 1, h: 204, s: 70, l: 53, v: 86 }
// Изменить
lighten('#3498db', 15) // '#74b9e7'
darken('#3498db', 15) // '#1d6ea5'
saturate('#3498db', 20) // '#1b9df3'
// Гармонии
complement('#3498db') // '#db7633'
triadic('#3498db') // ['#3498db', '#db3398', '#98db33']
// WCAG-доступность
wcagLevel('#ffffff', '#3498db') // 'AA-large'
bestTextColor('#3498db') // '#000000'
// Перцептивное расстояние (CIEDE2000)
colorDeltaE('#ff0000', '#fe0000') // 0.2079
// Случайный цвет в диапазоне оттенка/насыщенности
randomColor({ hRange: [200, 260], sRange: [60, 80] })CommonJS:
js
const { normalizeColor, mixColors } = require('color-value-tools')Импорт по подпутям
Всё доступно из корня пакета, но можно импортировать и отдельную группу функций по смыслу. Подпути работают и в ESM, и в CommonJS, и поставляются с полными TypeScript-типами.
ts
import { hexToRgb, rgbToOklch, toOklchString } from 'color-value-tools/convert'
import { wcagLevel, simulateColorBlindness } from 'color-value-tools/a11y'| Подпуть | Содержимое |
|---|---|
color-value-tools/parse | Определение типа (isHexColor, getColorType, …), парсеры CSS-строк, normalizeColor, toNearestNamedColor |
color-value-tools/convert | Конвертации между hex, RGB, HSL, HSV, HWB, CMYK, Lab, LCH, Oklab, Oklch, Display P3; форматтеры CSS-строк |
color-value-tools/manipulate | lighten, darken, saturate, desaturate, setAlpha, invertColor, grayscale, rotateHue, mixColors |
color-value-tools/palette | Гармонии, colorShades, monochromatic, tints / shades / tones, interpolateColors, createColorScale, randomColor, генераторы |
color-value-tools/a11y | Яркость, контраст, проверки WCAG, colorDeltaE, симуляция дальтонизма |
color-value-tools/cache | normalizeColorCached и управление кэшем |
Подпути отдают те же функции, что и корень. Они делают импорты нагляднее, но сами по себе бандл не уменьшают: tree-shaking и так удаляет неиспользуемые функции при импорте из корня.