Как стать автором
Поиск
Написать публикацию
Обновить

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

По сути статьи, для написания зависимостей цветовой схемы от одного базового цвета, HSL выглядит сильно удобнее, да. Спасибо!

Например, мы сразу понимаем, что цвет кнопки — это повёрнутый на цветовом колесе на 17 градусов и слегка осветлённый базовый цвет.
Возможно, я буду одинок в этом, но для меня намного более «человекочитаемыми» выглядят HEX-коды цветов, чем вот это непонятное HSL-отображение.
Что ещё за «цветовое колесо», например? Намного проще же держать в голове три RGB цвета и «смешивать» их (хотя бы примерно будет понятно, что за цвет).
НЛО прилетело и опубликовало эту надпись здесь
HSL частенько удобнее чем RGB
Допустим нужно на фотографиях найти цвет, близкий к телесному.
Для RGB — это довольно большой диапазон значений, а для HSL — всего лишь нужно, чтобы цвет попадал в нужный сектор H

Только дизайнер, вероятнее всего, работал не в HSL, а в HSB (если называть в терминологии Adobe; в LESS используется более стандартное обозначение HSV). Так более вероятно получить красивую систему дельт/поправок.

Но вообще лучше не гадать, а спросить у дизайнера непосредственно. И ему будет приятно иметь дело с ответственным верстальщиком, и вы никакой отсебятины не сочините. Кто может гарантировать, что между теми цветами действительно задумана логическая связь, а не это мы её из пальца высосали?
НЛО прилетело и опубликовало эту надпись здесь
Мы недавно сделали сайт-билдер как раз с автоматической генерацией палитры, там по цветовому кругу собирается палитра, складывается в пачку less-переменных вместе с шрифтами и прочим, less (по факту — сильно почиканный bootstrap) пересобирается и применяется тут же на клиенте. Так как из бутстрапа вырезаны многие неиспользуемые фишки, пересборка работает достаточно быстро.

З.Ы. Есть еще более продвинутый, но скорее исследовательский проект, чуть позже выложу его в паблик и тоже покажу.
Вот второй visigene.com/ — там темы только с colourLOVERS и голый Bootstrap, зато есть ручные настройки и более умный выбор цветов из палитры.
О! Вот это красиво. Единственно, что только для двух цветов. Как бы также придумать для колонок?
Доброго дня, (garex, и Metaller)
Низкий поклон от меня лично и от коллег! Сэкономили время многих и многих!

Однако хотелось бы обратить внимание всех заинтересованных Lessoводов на одну особенность — как оказалось в природе существуют цвето-зависимости, выходящие за рамки описания Less-переменными. Некие исключения, в рамках которых невозможно имея базовый цвет найти второй.

В качестве примера (чтобы было более понятно о чем речь) приведу 2 стандартных цвета bootstrap — brand-primary: #428bca; и brand-success: #5cb85c; Давайте возьмем первый за базовый, а второй попробуем описать при помощи Less.

Что получилось у меня в итоге (1) с использованием утилиты и (2) без нее:
  1. Утилитой — @brand-success!: spin(desaturate(lighten @brand-primary 1%), 17%), -88); В итоге утилитой мы получаем цвет, сдвинутый на 1% по тоновой шкале и на 1% темнее, чем нужно.
  2. Метод подбора с использованием фотошопа тоже не дал 100%-но нужно цвета, но уже лучше — удалось подобрать цвет ближе к оригинальному — 100% соответствие по тоновой шкале (на мой взгляд, самый критичный параметр), расхождение только в насыщенности — она больше на 1%.

image
Погрешность минимальна и вряд ли приведет к каким-то артефактам (разве что если вам необходимо будет прилепить картинку однотонную с цветом фона, например), но факт остается фактом — получаемый цвет не на 100% соответствует нужному. Подозреваю, что дело в большом Less-шаге (%) saturate/desaturate, darken/lighten. Тут, возможно, автор более подкован и прояснит ситуацию с математической точки зрения?
На здоровье, переадресую свою часть благодарности автору скрипта Ethan Muller.

А лично для меня арактика прошедшего года показала, что цвета в переменных лучше указывать явно, без подобной магии. При использовании формулы преобразования для двух заранее известных цветов на других цветах, не всегда дает ожидаемый и приемлемый результат.
Прошу прощения за выведенные HSB-ошибки. Спешу исправить:
@brand-primary: #428bca; // имеем базовый
@brand-success: spin(desaturate(lighten(@brand-primary, 1%), 17%), -88); // 1 вариант (автоматически)
@brand-success: spin(desaturate(lighten(@brand-primary, 1%), 17%), -88); // 2 вариант (ручной подбор)

Должен получится такой цвет:
@brand-success: #5cb85c; // HSB: 120, 50, 72

Получили и в первом и во втором случае самый близкий цвет, стремящийся к #5cb85c:
 #5ab75a;  // HSB: 120, 51, 72
255 — 255 единиц чего-то. Это просто больше чем процентов в 100%. А это получается баг — создайте на ГХ issue pls.
Приветствую, уважаемый garex!

Плавающая точка нормально интерпретируется Less для процентных значений, для сдвига по шкале, видимо, дробить нет необходимости… что, в общем, очевидно.
Положил в issue подтверждение

Всех благ!
С нетерпением ждем новой версии вашей замечательной утилиты!
Спасибо за статью. Как раз размышлял внедрить что-то подобное у себя, особенно привлекает возможность использовать базовый цвет.
> Допустим, что дизайнер скинул нам 5 цветов и скорее всего в HEX-формате: #FF0000, #E82C0C, #FF530D, #E80C7A, #FF0DFF. Что говорят нам эти буквы и цифры? Да ничего — это больше понятно монитору, нежели человеку.
Ну кому как). Первый — красный, понятно, это основы. Остальные… на глаз:
E82D0C — красный, но чуть другой оттенок
FF530D — оранжевый, как-то так. Или красный с оранжевым оттенком.
E80C7A — фиолетовый, причём красного больше чем синего.
FF0DFF — розовый.
Вы случаем не поклонник en.wikipedia.org/wiki/Brainfuck? :))

Лично я предпочитаю readable форматы для человека, а-ля HSL, а RGB да ещё и в HEX`е пусть монитор читает. Также как компутер должен понимать двоичность, а человек читать/писать на человеческом языке.
Просто вполне разбираюсь в подобных вещах, а однажды даже подбирал цвета в hex для сайта сам, в уме, т.к. фотошоп / любой colorpicker было лень открывать, а про rgba почему-то забыл :). Это был незабываемый опыт)).
А я не разбираюсь и лень даже напрягать нейроны. Что мне делать? :))
Ну если вам это не нужно, то действительно, смысл это изучать?)).

Но если вдруг интересно, могу вкратце объяснить. Это модель RGB, т.е. три компонента — красный, зелёный, синий (Red, Green, Blue).
Каждый имеет значение от 0 до 255, а в HEX — это от 00 до FF.
Соответственно:
255,255,255 = FF FF FF (белый)
0,0,0 = 00 00 00 (чёрный)

Вот как-то так. Основные цвета понятны: ff0000 — красный; 00ff00 — зелёный, 0000ff — синий, также полезно знать их смеси: ffff00 — жёлтый (отсутствие синего), ff00ff — розовый (красный + синий; отсутствие зелёного), 00ffff — ярко-голубой (зелёный + синий; отсутствие красного).
Да, собственно, это вся теория. Надеюсь, шестнадцатиричные числа объяснять не нужно :D
Остальные цвета — это их смеси.
К примеру, E8 2D 0C — много красного, почти нет зелёного, ещё меньше синего => это красный, но немного другого оттенка.

Ну и можно ещё засветлять-затемнять.
К FF0000 прибавим немножко чёрного — будет EE0000 (более тёмный красный) или, например, AA0000 (ещё более).
Немножко белого — будет FF1111, например, или FF5555.

Да вот и всё).
Вы считаете, что я совсем дебил? :)

Посмотрите, кто автор утилиты, которую я написал и какие модули она использует, которые я написал.

А ещё попробуйте понять, что такое readability. Почитайте, кто такой Макконел, например.
> Вы считаете, что я совсем дебил?
Ну мало ли )). Я с вами недостаточно знаком, чтобы делать выводы об этом). По умолчанию — нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации