Цвет

Цвет в интерфейсе — это инструмент управления вниманием. Цвет помогает фокусировать пользователя на важном и передавать смысл, заложенный в элементы интерфейса.

В основном сервисы Контура состоят из элементов в оттенках серого. Они формируют структуру интерфейса и задают иерархию.

Оттенки продуктовых цветов создают визуальные акценты, которые помогают отличать сервисы друг от друга и привлекать внимание пользователя.

А статусные цвета: красный, зелёный и желтый, дают понимание состояния сущностей в интерфейсе.

Продуктовые цвета

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

Цвета продукта помогают пользователю узнавать сервис и отличать его от других в рамках экосистемы.

Красный

Общая инфраструктура бизнеса и онлайн-образование

Оранжевый

Отчётность и бухгалтерия

Зелёный

Бизнес-безопасность, проверка контрагентов и работа с рисками

Мятный

Электронный документооборот

Голубой

Торговля, ритейл и коммуникации

Синий

Банковские услуги, торги и закупки

Фиолетовый

Информационная безопасность

Пурпурный

Сделки с недвижимостью

Построение интерфейса и поверхности

Поверхности — это крупные интерфейсные области, на которых располагается контент. Они неинтерактивны и являются фонами.

В интерфейсах Контура используются три основных уровня поверхностей: нижний, базовый и приподнятый. Они позволяют создавать различные конструкции лейаута, формируя слоистость интерфейса.

Нижний уровень — это фон приложения. Он предназначен для расположения базовых поверхностей в виде единой области или островов, но так же на нём может лежать и контент.

На базовом уровне располагается основной контент. Её цвет подобран таким образом, чтобы текст на ней был наиболее комфортным для чтения.

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

Они должны быть различимы на любом фоне. В светлой теме это достигается с помощью тени, а в тёмной ещё и более светлого цвета.

Чтобы лучше сфокусировать пользователя на контенте модального окна или сайдпейджа используется дополнительный уровень поверхности — затемняющая вуаль.

Тёмная тема

Тёмная тема — это цветовая схема, в которой фоны в сервисе становятся тёмными, а тексты и другие элементы интерфейса светлыми. Она имеет свои особенности устройства и построения интерфейса.

Читайте подробнее в гайде «Тёмная тема».

Функция цвета

Цвет может задавать разные семантики объектов и определять функцию, которую выполняют элементы интерфейса.

Семантика цвета — это смысл и роль цвета в интерфейсе, без привязки к его конкретному значению.

Нейтральные элементы

Элементы в оттенках серого — нейтральные. В них не заложен дополнительный смысл. Они используются для выстраивания иерархии элементов.

Предупреждения

Жёлтые элементы предупреждают о возможной ошибке или о предстоящей оплате.

Ошибки и негативные элементы

Красные элементы сообщают об ошибках, негативном, деструктивном или опасном характере действия.

Успешные элементы

Зёленые элементы сообщают об успешных и позитивных состояниях.

Акцентные элементы

Элементы, которые выделяются относительно других. Они выполняют роль интерфейсного акцента. Например, основные контролы на странице. Может быть одним из двух вариантов: в цвет продукта или в оттенках серого.

В цвет продукта

В оттенках серого

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

Неправильно

Фирменные элементы

Элементы, которые формируют стиль, всегда покрашены в цвета продукта вне зависимости от «опасности» цвета. Например: логотип, продуктовые баннеры, иконки, иллюстрации или бейджики.

Категоризирующие цвета

Это палитра предназначена для категоризации элементов интерфейса. Такими элементами могут быть графики, схемы, теги, папки, аватарки или подобные.

В этом случае цвет помогает отличать однородные элементы между собой.

Визуальная масса

Вниманием пользователя можно управлять с помощью визуальной массы элементов. Часто она определяется площадью элемента, но так же может и контрастностью его цвета относительно цветов окружающих элементов.

Более массивные элементы привлекают больше внимания, а более лёгкие становятся второстепенными.

Баннер на странице и счетчик уведомлений в меню имеют бóльшую визуальную массу относительно элементов вокруг.

Выстраивайте иерархию элементов на странице с помощью визуальной массы разумно. Элементы не должны спорить друг с другом.

Связь фона и объекта

На контрастность объектов влияет то, на каком фоне они находятся. Элементы должны быть заметны и различимы, но критически важно следить за уровнем контрастности для текстов и иконок, которые должны оставаться читаемыми.

Стандарт APCA выдаёт более правильные значения по сравнению с общепринятым WCAG 2, так как вычисляет контрастность на основе восприятия человеком, а не только простой математикой.

Это позволяет создавать более эстетически приятные, но при этом доступные интерфейсы.

Сравнение APCA и WCAG 2 в WebKit

Контрастность объекта к фону мы определяем по алгоритму APCA.

Типичный фон

Большая часть интерфейса — это элементы на фоне, свойственном выбранной теме.

Контрастный фон

Элементы на мощном контрастном фоне инвертируются, чтобы оставаться читаемыми.

Стабильный фон

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

Например, текст на дополнительном продуктовом фоне.

Или элементы интерфейса поверх статичной фотографии, одинаковой в обеих темах. На ней тоже элементы не меняют свой цвет при переключении темы.

Акцентный фон

Контент на продуктовом фоне должен быть достаточно контрастным и читаемым. Чтобы добиться этого, нужно посмотреть на уровень контрастности текста к фону по стандарту APCA и выбрать более контрастный: белый или чёрный.

Lс (Lightness contrast) — это единица изменения контрастности в APCA между фоном и объектом относительно светлоты значения цвета.

Калькулятор контрастности APCA

Когда уровень контрастности белого и чёрного контента к фону близки, то белый, как правило, выглядит чище и приятнее, поэтому ему можно дать небольшой приоритет.

Например, чёрный контент на мятном фоне контрастнее, но выглядит грязнее.

Интерактивность

Интерфейсы интерактивны. Элемент должен реагировать на действие пользователя, если с ним возможно взаимодействие.

Часто интерактивность показывают через изменение цвета элемента.

Основные состояния интерактивности — это покой, наведение, нажатие и фокус.

В светлой и тёмной теме изменение цвета при интерактивности устроено по-разному. По наведению в светлой теме элемент становится темнее, а в тёмной теме — светлее. Это нужно, чтобы элемент становится более заметным.

Нажатие в обеих темах приглушает элемент, «вдавливая» его в поверхность.

Заблокированные элементы

Элемент может быть заблокирован, то есть его интерактивность отключена.

Заблокированные элемент должен быть более бледный, чтобы была заметна невозможность взаимодействия с ним и без наведения.

Негативные элементы

В состоянии покоя негативные действия — нейтральные, а по наведению выделяются, как негативные.

В качестве исключения в выпадающих списках негативное действие можно выделять и в состоянии покоя.

Тексты

Для текстов используются цвета с полупрозрачностью, так как она позволяет сохранять контрастность и читаемость на разных фонах.

На цветном фоне из-за полупрозрачности текст немного тонируется в цвет фона, что сохраняет читаемость и чистоту цвета.

Неправильно

Сплошные выглядят грязно и нечитаемо

Правильно

Читаемость сохраняется, а цвета чистые

Иконки

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

Например, крестик в модалке — это читаемый символ. У него важно сохранять уровень контрастности, как у текста.

В контролах иконки и текст покрашены одинаково, чтобы сохранять визуальную консистентность.

Иконки в статусах должны быть заметным пятном. Делайте их более яркими, а текст не красьте.

Неправильно

Правильно

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

Библиотека Kontur Colors

Библиотека цветов для покраски интерфейсов состоит из двух частей: первичных палитр и семантических токенов. Первичные палитры цветов генерируются алгоритмом автоматически с помощью цветового пространства OKLCH.

OKLCH — это цветовое пространство, разработанное с точки зрения восприятия цвета человеческим глазом, что делает работу с ним удобной.

Злые Марсиане разработали красивый пикер пространства OKLCH: oklch.com

На основе сгенерированных палитр сформирована библиотека семантических токенов, которая используется в интерфейсах Контура. Семантические токены содержат в себе светлую и тёмную тему, все цвета продуктов и два варианта интерфейсного акцента.

Документация для разработчиков

Библиотека для дизайнеров