Skip to content

Доступность (WCAG)

bestGradientTextColor

Возвращает '#000000' или '#ffffff' — в зависимости от того, что даёт лучший минимальный контраст по всем точкам градиента.

ts
import { bestGradientTextColor } from 'css-magic-gradient'

// Двухцветный градиент (обратная совместимость)
bestGradientTextColor('#1a1a2e', '#e94560')
// → '#ffffff'

// Многоточечный градиент
bestGradientTextColor(['#1a1a2e', '#c0357a', '#e94560'])
// → '#ffffff'

// Детальный результат с оценками по каждому цвету
const detail = bestGradientTextColor(['#1a1a2e', '#e94560'], { detailed: true })
// → { recommended: '#ffffff', black: { contrast: 1.8, wcag: 'fail' }, white: { contrast: 9.3, wcag: 'AAA' } }

gradientContrastRatio

Возвращает минимальный коэффициент контрастности WCAG цвета текста относительно градиента. Выбирает 11 равномерно распределённых точек вдоль градиента.

ts
import { gradientContrastRatio } from 'css-magic-gradient'

// Два цвета (обратная совместимость)
gradientContrastRatio('#ffffff', '#1a1a2e', '#e94560')
// → минимальный коэффициент по всем выбранным точкам

// Массив точек
gradientContrastRatio('#ffffff', ['#1a1a2e', '#c0357a', '#e94560'])

gradientWcagLevel

Возвращает подробный GradientWcagReport с наихудшим уровнем WCAG, минимальным контрастом и позициями, не проходящими порог AA.

ts
import { gradientWcagLevel } from 'css-magic-gradient'

const report = gradientWcagLevel('#ffffff', '#1a1a2e', '#e94560')
// → {
//     level: 'AAA',
//     minContrast: 8.4,
//     problematicStops: []   // позиции (0–1), где контраст < 4.5
//   }

// Градиент со слабой средней точкой:
const report2 = gradientWcagLevel('#ffffff', ['#ffffff', '#aaaaaa', '#3498db'])
// → { level: 'fail', minContrast: 1.07, problematicStops: [0, 0.09, 0.18, …] }

GradientWcagReport

ПолеТипОписание
levelWcagLevelНаихудший уровень WCAG среди всех выбранных точек
minContrastnumberМинимальный коэффициент контрастности вдоль градиента
problematicStopsnumber[]Дробные позиции (0–1), где контраст < 4.5

createAccessibleGradient

Автоматически подстраивает точки градиента, пока textColor не достигнет целевого уровня WCAG.

ts
import { createAccessibleGradient } from 'css-magic-gradient'

// По умолчанию: подстраивает светлоту шагами по 5%, пока не достигнут AA
createAccessibleGradient('#3498db', '#ffffff', {
  targetLevel: 'AA',
})

// Подстраивать насыщенность вместо этого
createAccessibleGradient('#3498db', '#ffffff', {
  targetLevel: 'AAA',
  adjustmentStrategy: 'saturation',
})

// Подстраивать и светлоту, и насыщенность
createAccessibleGradient('#c0357a', '#000000', {
  adjustmentStrategy: 'both',
  direction: 'to right',
})

AccessibleGradientOptions

ОпцияТипПо умолчаниюОписание
directionstring'to bottom'Ключевое слово CSS-направления
anglenumberУгол в градусах
targetLevel'AAA' | 'AA' | 'AA-large''AA'Минимальный уровень контраста WCAG
adjustmentStrategy'lightness' | 'saturation' | 'both''lightness'Как подстраиваются точки цвета
interpolationColorInterpolationИнтерполяция CSS Color Level 4
repeatingbooleanfalseИспользовать repeating-linear-gradient