Material Design на русском. Часть 18 — Темная тема
Привет. Меня зовут Руслан. Я UX/UI дизайнер в Siemens. У меня есть ютуб-канал, на котором записано несколько плейлистов по основам UX/UI дизайна. В этой серии постов однако я просто делюсь вольным переводом Material Design на русский язык. Оригинальный источник: здесь.
Темная тема
Темная тема — это интерфейс, в котором используются в основном темные поверхности.
Использование темной темы
Темная тема использует темные поверхности в интерфейсе. Она спроектирована как дополнительный режим к стандартной (светлой) теме.
Темные темы понижают яркость, излучаемую экранами устройств, при этом сохраняя минимальный коэффициент контраста. Они помогают улучшить визуальную эргономику, уменьшая нагрузку на глаза, регулируя яркость в соответствии с текущими условиями освещения и облегчая использование экрана в темных условиях — при этом все это сохраняет заряд батареи. Устройства с OLED-экранами в этом смысле выигравают, поскольку у них есть возможность отключить черные пиксели в любое время суток.
Принципы
Темно-серый
Используй темно-серый, а не чисто чёрный цвет, чтобы показать высоту и пространство для указания глубины у элементов.
Цвета с акцентами
Ограниченно используй цветовые акценты в темной теме, потому что в темных темах больше внимания отводится темным поверхностям.
Экономия заряда батареи
Экономь заряд батареи в продуктах, которые могут зависеть от яркости экрана (устройства с OLED-экранами) — для этого сокращай использование светлых цветов.
Лучшая доступность
Соблюдай стандарты контраста по доступности, чтобы приспособить темную тему для пользователей с плохим зрением как пример.
Характеристики темной темы
Темные темы Material Design определяются следующими характеристиками:
- Контрастность: Темные поверхности и 100% белый наборный текст имеют уровень контрастности не менее 15.8:1.
- Глубина: Если компоненты находятся на большом уровне высоты, то они должны показывать глубину, за счет использования более светлых цветов поверхностей, для этого используется наложение белого цвета с прозрачностью на темную поверхность.
- Отсутсвие насыщенности: основной цвет в темных темах не имет насыщенности и именно поэтому он проходит по требованиям стандарта доступности веб-контента (WCAG) уровняяАА, что значит в конкретных значения — не менее 4.5:1 (при использовании наборного текста) на всех уровнях высоты.
- Ограниченное использование цвета: Большие поверхности используют темный цвет, с ограниченными количеством акцентов.
Анатомия
UI с темной темой использует преимущественно темные поверхности с редкими цветовыми акцентами. При этом юзабилити не должно страдать.
- Фон — высота равна 0dp, т.е. background
- Поверхность — высота равна 1dp, т.е. surface
- Основной цвет, т.е. primary
- Второстепенный цвет, т.е. secondary
- Цвет типа «On» — на фоне, т.е. on background
- Цвет типа «On» — на поверхности, т.е. on surface
- Цвет типа «On» — поверх основного цвета, т.е. on primary
- Цвет типа «On» — поверх второстепенного цвета, т.е. on secondary
Поведение
Темную тему можно включить (или выключить) с помощью какого-нибудь элемента управления:
- Можно разместить переключение темы на видном месте, используя иконку, чтобы включить или выключить тему.
- Можно разместить переключение темы внутри какого-то меню или на отдельном экране настроек.
Характеристики
Темная тема использует темно-серый, а не чисто черный цвет в качестве основного цвета поверхности для компонентов. Темно-серые поверхности дают более широкий диапазон цвета, высоты и глубины, потому что на сером легче увидеть тени (а на черном этого не видно).
Темно-серые поверхности также уменьшают нагрузку на глаза, так как светлый текст на темно-серой поверхности имеет меньший контраст, чем светлый текст на черной поверхности.
Про высоту в темной теме
Чем выше поверхность (то есть чем она ближе к источнику света), тем светлее становится эта поверхность. Представь, что на поверхность с цветом #121212 нанесли белый слой и постепенно меняется прозрачность этого белого слоя, чтобы показать высоту.
Поверхность у темной темы создается путем размещения полупрозрачного слоя поверх.
С помощью наложения белого слоя с прозрачностью на поверхность, также проще отличать высоту между компонентами и видно тени. Разные значения для наложений добавлюет ещё и контраст между поверхностями и их тенями, делая заметнее края каждой поверхности.
Значения ниже предназначены для того, чтобы различать высоту.
Наложения показывают разницу по высоте между компонентами.
Слои с наложением не используются, если поверхность окрашена в первичные или вторичные цвета.
В темной теме тени остаются черными, чтобы точно отображать тень.
Доступность и контраст
Поверхности в темной теме должны быть достаточно темными, чтобы разместить на них белый цвет. В общем контраст между текстом и фоном должен быть не менее 15.8:1. Это гарантирует, что наборный текст соответствует уровню AA в стандрте WCAG, где значение по контрасту должно иметь не менее 4.5:1.
Если цвет фона недостаточно темный, чтобы соответствовать уровню контраста между белым текстом и поверхностью (это 15.8:1), текст на любой высоте уже не будет соответствовать стандарту 4.5:1.
В интерфейсах, которые требуют максимально эффективную работу батареи, можно использовать чисто чёрный цвет. В этих случаях некоторые устройства (например, носимые устройства с OLED-экранами типа часов) могут отключить все черные пиксели (черный цвет), чтобы сэкономить заряд батареи.
UI и темная тема
Цвета в темной теме
Все цвета в темной теме должны быть с достаточным контрастом, чтобы соответствовать стандарту AA WCAG не менее 4.5:1 для основного текста на любой высоте.
Используй ненасыщенные цвета для соответствия стандарту доступности
Темная тема должна избегать использования насыщенных цветов, так как они не соответствуют стандарту доступности WCAG, который должен быть не менее 4.5:1 для основного текста на темных поверхностях. Насыщенные цвета также вызывают оптические колебания на темном фоне, что может вызвать напряжение глаз.
Вместо этого в качестве более читабельной альтернативы можно использовать ненасыщенные цвета.
Основной цвет
Основной цвет — это цвет, который чаще всего отображается на экранах и компонентах приложения. Основной цвет из цветов в темной теме по умолчанию Material Design использует 200 вариант основного цвета (этот вариант проходит стандарт AA WCAG не менее 4.5:1 для обычного текста на всех поверхностях и любой высоте).
Варианты основного цвета
Компоненты со светлыми поверхностями могут содержать разные варианты основного цвета.
Второстепенный цвет
Вторичный цвет можно использовать для акцентирования отдельных частей в интерфейсе. В темной теме вторичному цвету также как и основному можно уменьшить насыщенность, чтобы соответствовать уровню контрастности 4.5:1.
Акцентный цвет
Ты уже понял, что в темной теме темные поверхности занимают большую часть интерфейса. Акцентные цвета обычно бывают светлыми (ненасыщенные пастельные оттенки) или яркими (насыщенные, яркие цвета), чтобы создать акцент на каком-то элементе используя тот или иной цвет, следует использовать цвета экономно, чтобы подчеркнуть только ключевые элементы, такие как текст или кнопки.
В поисках акцентного цвета
Генератор цветовой палитры можно использовать для создания (или просто просмотра) цветовой темы. Он также генерирует палитры со шкалой светлых и темных вариантов оттенка цвета. Шкала генерируется автоматически после ввода значения цвета для основного или вторичного цвета темы. После ты можешь выбрать любой цвет для темной темы.
Цвета бренда
Чтобы сохранить фирменный стиль, цвета вашего бренда можно использовать не изменяя насыщенность в темной теме, хотя применение брендированных цветов должно быть ограничено одним или максимум двумя элементами. Например логотип или кнопка в приложении. Используй фирменные цвета экономно, чтобы элементы интерфейса оставались заметными на макете.
Ненасыщенные цвета все равно должны использоваться в остальной части интерфейса темной темы.
Цветовая тема по умолчанию для темной темы
Базовая тема Material Design включает в себя определенные цвета.
Цвета темной темы должны использоваться по всему интерфейсу:
- Цвет (основной, вторичный и варианты основного цвета)
- Поверхности (фон и компоненты)
- Состояния (например, состояния ошибок)
- Контент (типографика и иконки)
Цвета ошибок и темная тема
Цвета ошибок используются для обозначения состояния ошибки. Цвет ошибки в темной теме по умолчанию — #CF6679.
Цвета для типографики и иконок
Цвета типа «On»
Цвета типа «On» в основном применяются к тексту, иконкам и обводкам, которые иногда помещаются как бы “поверх” ключевых поверхностей, которые используют первичный цвет, вторичный цвет, цвет поверхности, цвет фона или цвет ошибки.
По умолчанию цвета темной темы типа «On» — белый и черный.
Светлый текст на темном фоне
Когда светлый текст размещается на темном фоне (ниже показано), он должен использовать следующие уровни непрозрачности:
- Текст с высоким акцентом имеет прозрачность 87%
- Текст со средним акцентом и текст подсказок имеют прозрачность 60%
- Заблокированный текст имеет прозрачность 38%
Кастомизация приложения
В некоторых ситуациях темная тема выигрышнее светлой.
Большие поверхности
Компоненты, которые заполняют большую часть экрана, например панель приложения или фон, не должны использовать забирать на себя всё внимание. Используй один из вариантов наложения цвета.
Совмещение светлой и темной темы интерфейса
Бывает так, что в темной теме требуется какая-то светлая поверхность, поэтому, чтобы соблюдать иерархию компонентов, можно использовать светлые цвета.
Например, в темной теме snackbar (снэкбар) может быть светлым, чтобы помочь компоненты выделиться.
Состояния
Состояния визуально передают текущее состояние компонента или говорят о его интерактивности за счет наложения цвета. В темной теме, состояния должны иметь те же значения наложения цвета что и в стандартной (светлой) теме. Это конечно же настраивается, потому что надо соответствовать стандартам АА уровня для доступности.
Контейнеры поверхности
К контейнерам, которые используют цвет Поверхности (Surface color) следует применять наложение.
Поверхности окрашенные основным цветом
Недоступные и заблокированные состояния
Все заблокированные/недоступные компоненты имеют поверх обводки и заливки контейнера белый слой с 12% прозрачности, а у контент (иконки и подписи) заливаются 38% слоем белого цвета.
Ресурсы
Figma
По данной ссылке доступны элементы темной темы (панель состояния приложения, панель приложения, нижняя панель приложения, карточки, выпадающие меню, боковая панель навигация, модальные диалоги, плавающая кнопка и другие компоненты)
Sketch
То же самое доступно по другой ссылке для редактора Sketch.
Реализация
Поддержка темной темы доступна на данный момент только для Android. Все остальные платформы (iOS, Web и Flutter) находятся в стадии планирования.
Как следить за обновлениями гайдлайна и переводом?
- Структуированный документ в Notion
- Официальные обновления Google на странице what’s new