Как стать автором
Обновить

Комментарии 6

По поводу разборчивости текста на фоне существуют рекомендации https://www.w3.org/TR/WCAG/#visual-audio-contrast, которые сводятся к одному числу contrast ratio. С ним можно поиграться здесь https://contrast-ratio.com

Я пробовал рассчитать более контрастные сочетания для ConEmu через HLS: https://github.com/Maximus5/ConEmu/issues/658#issuecomment-215960058 (1.3 -> 1.9). Возможно с HSLuv это будет эффективней.

Я вместо HSLuv предпочитаю LCH (через LAB).

LCH скоро будет поддерживаться нативно в браузере, что удобно.

Плюс LCH позволяет указать P3-цвета.

Но взамен в LCH при генерации цвета с помощью скрипта надо проверять, что он не вышел за пределы экрана/глаза, в отличии от HSLuv

Что-то я из статьи не очень понял разницу между HSL и HSLuv (теоретическую).

Формально каждый ряд представляет собой массив из результатов функции hsl(тон, насыщенность, светлота)

Это цветовое пространство позволяет использовать CIELUV с более простым трио HSL: тон(Hue), насыщенность(Saturation) и светлота (Lightness).

И? Чем они отличаются?

И ещё момент. Вы в переводе аббревиатуры случайно нигде не спутали Lightness и Luminosity?

И? Чем они отличаются?

Дело в том, что у понятий тон, насыщенность и светлота нет единого математического определения. Каждое цветовое пространство дает свое определение. По-этому одинаковые числа соответствуют разным цветам в зависимости от выбранного цветового пространства.

HSL основан на примитивном геометрическом преображении RGB:

https://en.wikipedia.org/wiki/File:Hsl-and-hsv.svg

А HSLuv основан на более сложной формуле с множеством констант (CIELUV), полученных в результате реальных экспериментов над человеческим зрением. Благодаря этому CIELUV (и HSLuv) дают лучшие результаты.

До того, как я начал работу над HSLuv, я как программист привыкший к RGB, думал, что цвет - это нечто из области чистой математики. Оказывается, что это эмпирическая проблема, так как наше восприятие цвета основано на характеристиках наших фоторецепторов, в особенности трех видах т.н. "колбочек". Их чувствительность нелинейна, ее нужно измерять экспериментальным путем.

И ещё момент. Вы в переводе аббревиатуры случайно нигде не спутали Lightness и Luminosity?

Нет, здесь речь идет именно о lightness. Я не смогу дать вам точное определение, но интутивно надо понимать, что "светлость" начинается с абсолютных физических единиц и подлежит нескольким стадиям нормализации, прежде чем превратится в цветовое понятие lightness. Белый лист бумаги имеет одинаковый lightness не зависимо от освещения, при котором вы на него смотрите. А если использовать физические понятия типа luminosity - результат будет разный. Нам нужен именно lightness.

Очень не хватает формул конвертации RGB - HSLuv - HSL

Неужели разработчикам разрешили использовать свою цветовую гамму в приложениях, а не как учил великий гугл (и MS туда же) чуть ли не всё последнее десятилетие: "всё серое на бледно-сером фоне"
{комментарий не разработчика, но пользователя}

Зарегистрируйтесь на Хабре, чтобы оставить комментарий