ВВладимир Белов

Почему работа с цветом в дизайн-системах — это не про творчество

Привет, меня зовут Владимир Белов, продуктовый дизайнер.

Когда я начинал новый проект (личные, фриланс или найм), то чаще всего выбирал на основе каких-то определенных цветов: выбрал синенький для акцента, серый для фона, чёрный для текста и погнал. Поэтому всё, что связано со скоростью и с небольшими размерами проекта, то всё строится вокруг UI-kit. Новый проект — новый круг по цветам. Кто-то делает себе шаблоны, готовые решения.

Далее, знакомство начинается с дизайн-системой: будь то проект вырастает, подход меняется или ты уже пришёл в проект, в котором есть дизайн-система. Я сталкивался, когда нужно было проводить аудит, обновление, так и с нуля всё делать. Но в любом случае, цвет перестаёт быть просто цветом, а частью системы и обычным рандомом тут не получится. Почему? Каждый цвет, каждый оттенок имеет свою функцию, роль, а использование, в дальнейшем изменение затрагивать n-количество компонентов. И что мы получаем? Нет системного подхода — дизайн-система превращается в хаос.

Я специально разделил, когда работа начинается над проектом или размер небольшой проекта и дизайн-система. Хотя если включить системный подход, то это помогает всегда структурно, аргументировано подходить к разным задачам, тем самым не будет сильно отличаться работа.

Как обычно решают

Ничего нового, самое обычное решение — цветовые шкалы. Внутри градация одного цвета по оттенкам. Нейминг может разный: от 1 до 10, от 50 до 950. В большинстве в своём строится от самого светлого оттенка до самого оттенка. Бывает до середины (чаще всего 500 шаг) оттенки от светлого до насыщенного с мягким переходом, а после резкий переход в тёмные оттенки.

После построение одной цветовой палитры, тут начинается какую роль исполняет каждый шаг, пример:

  • Светлые оттенки (50–200) — фон, поверхности, состояния разных элементов

  • Насыщенные (300–600) — фон (в кнопках), текст, состояния

  • Тёмные оттенки (700–950) — фон для тёмной темы, текст на светлом фоне.

На каждый оттенок находится применение под определенную роль, состояние, темы.

Это стандартизация помогает сразу ответить на все вопросы:

  • Предсказуемость. Изменение одного цвета затрагивает везде, где используется

  • Контрастность. Проверка цвета: светлый текст на светлом фоне — ненадотак.

  • Удобство. Резюмируя тем, что оттенок = роль, удобно этим управлять.

Дополнительно:

Во многих цветовых палитрах, в разных дизайн-системах можно наблюдать сплошные hex-коды, но при этом дополнительно можно создавать полупрозрачные оттенки одного из шага. Помогает избавляться от «грязи» в интерфейсе. Когда на двух поверхностях используется разные оттенки: серый и красный, то получается некая грязное восприятие. Происходит, когда компонент с определённый цветом (красный, синий, желтый и т.д.) вставляется на разном фоне. Берём 500–600 шаг и строим полупрозрачные оттенки с n-шагом. Я чаще всего строю от 4% до 56%.
P.S. Это не всем и не всегда нужно

Отдай в разработку

Независимо от размера вашего проекта: будь то UI-kit или дизайн-система, вас затронет процесс передачи вашей работы в разработку. Начинается самое веселое, чуток рутины, споры и разговоры. Я передавал в ручную HEX-коды, делал документацию, сам писал в ручную файлы JSON и TypeScript, благо появлялись более менее плагины, которые способны всё это экспортировать.

Есть один минус в любом случае, даже два:

  • Время и рутина. Вы должны потратить время для того, чтобы в любом случае передать, сделать доку и прочее

  • Токены. В этой статье идёт про цветовые палитры, а не про токены. Токены часть цветовой палитры, поэтому чуть позже и об этом затрону тему.

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

Инструменты

Список разных инструментов для генерации цветовой палитры, которые по своему хорошие, выполняют свою основную функцию: Coolors, uicolors, color magic, huemint, pixilied, muzli color generator, oklch.fyi, kigen и многие другие, сайтов действительно много. Figma-плагинов также много: colorinspo, palette flow, tailwind color palettes, tone curve

Отдельно хочу отметить сайт-инструмент от Алексея АрдоваHuetone. Инструмент, который позволяет кастомно настроить каждый цвет, каждый оттенок, всё это получить в JSON-формате и закинуть в Figma.

Почему я сделал свой инструмент

Я использовал ранее инструмент, указанные выше, но многие не выполняли множество функций или просили за это n-баксов. Поэтому в моём инструменте я собрал множество функций в одной месте, бесплатно — Norn Kroma. Возможность добавить сгенерированный цвет, по которому построится шкалу, максимально просто, но при этом кастомизировать цвет, добавить полупрозрачные оттенки, выгрузить в удобный мне формат — ВСË. Но инструмент начал чуть расширяться для удобной настройки цветов, хранения, импорта, экспорта.

Список функций:

  • Генерируется цвет при добавлении и по нему строится цветовая палитра. Помогает сразу получить X-цвет для вдохновения и\или работы с ним.

  • Работать в трёх режимах: RGB, OKLCH, HSL двигать ползунками для настройки цвета

  • Изменение контраста: позволяет от -1.00 (темнее) до 1.00 (светлее) регулировать оттенки в цветовой палитре

  • Количество шагов: по умолчанию установлено 11, но вы можете выбрать от 2 до 20, как вам удобно.

  • Включать полупрозрачные оттенки: позволяет в этой же цветовой палитре включить полупрозрачные оттенки, выбрать по какому шагу, количество шагов, настроить каждый шаг процент прозрачности.

  • SVG: Каждую цветовую палитру можно как скопировать в SVG (вставить в Figma), так и скачать в SVG.

  • Экспорт: После генерации, настройки цветовой палитры, вы можете экспортировать в любой удобный формат CSS, SCSS, TS, JSON, SVG

  • Импорт: Импортировать файл с вашей цветовой палитры для удобной переработки или настройки определенной палитры, далее экспортировать в любой формат. Отмечу, что парсер универсальный, но не идеален, буду благодарен за фидбек в личку, если ошибка.

  • Готовые палитры: список дизайн-систем, в которых вы можете ознакомиться с цветовыми палитрами. Не все команды добавляют, поэтому можете заметить группы семантических токенов. Список постепенно пополняется.

  • Мои палитры: По аналогии «Добавить в избранные». Вы можете как из Генератора, так из Готовых палитр добавлять, экспортировать, работать с SVG. Чем отличается авторизованный и неавторизованный пользователь? Хранением — у неавторизованного в локалке, у авторизованного БД.

Этот инструмент создаётся как мост между дизайнерами и разработчиками (конечно в большинстве для дизов), чтобы бы вы максимально снизили рутину, работали с генерацией. Инструмент бесплатный по всем функциям.

Есть пул разных идей, функций, которые постепенно будут внедряться в инструмент. Среди которых будет Figma-плагин для быстрого перевода в переменные.

Сайт: https://kroma.thenorn.ru/

Если кому интересно про меня, то буду рад подписке на Telegram-канал или хотите посетить мой сайт, посмотреть кейсы и прочее.

Комментарии