Skip to content

Установка ​

Требования ​

Требуется 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/manipulatelighten, 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/cachenormalizeColorCached и управление кэшем

Подпути отдают те же функции, что и корень. Они делают импорты нагляднее, но сами по себе бандл не уменьшают: tree-shaking и так удаляет неиспользуемые функции при импорте из корня.