VIDEMIND
UI/UX Мобильные интерфейсы

Тёмная тема в приложении: системная настройка и переключатель

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

Абстрактная графика VIDEMIND: сетка клеток: часть залита цветом, в некоторых круг или диагональ
VIDEMIND
Содержание · 9
  1. Три режима вместо двух
  2. Что ломается при переключении
  3. Брендовые цвета
  4. Переключение без мигания
  5. Тени и глубина не работают как в светлой теме
  6. Изображения и белые подложки
  7. Что происходит с текстом
  8. Тёмная тема за пределами приложения
  9. Что в итоге

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

Три режима вместо двух

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

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

РежимКогда выбирают
Как в системеПо умолчанию, большинство
Всегда светлаяРабота с цветом, чтение днём
Всегда тёмнаяЛичное предпочтение, вечернее использование

Что ломается при переключении

Основные проблемы возникают не с фонами и текстом, а с содержимым, которое не адаптируется: иллюстрации с белым фоном, скриншоты, графики, брендовые логотипы партнёров.

  • Иллюстрации — нужна вторая версия или прозрачный фон.
  • Скриншоты внутри приложения — «светлое пятно» на тёмном.
  • Графики и диаграммы — цвета теряют контраст.
  • Логотипы партнёров — часто только тёмная версия.
  • Изображения товаров на белом фоне — рамка вокруг них.
Одна иллюстрация в двух темах: без адаптации она становится светлым пятном
Одна иллюстрация в двух темах: без адаптации она становится светлым пятномVIDEMIND

Брендовые цвета

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

Решение — расширенная палитра бренда: для каждого основного цвета есть вариант для тёмной темы, осветлённый и слегка десатурированный.

Абстрактная графика VIDEMIND: условный план: помещения прямоугольниками, одно выделено цветом
VIDEMIND

Переключение без мигания

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

Мигание белым в тёмной комнате — та деталь, которую замечают все.

Тени и глубина не работают как в светлой теме

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

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

Системная настройка сообщает, чего человек хочет по умолчанию. Ручной переключатель нужен для случаев, когда он хочет иначе именно здесь.

Изображения и белые подложки

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

Отдельная категория — логотипы партнёров и иконки платёжных систем: их нельзя перекрашивать по правилам чужого бренда, и для них обычно оставляют светлую подложку с полем. Это осознанное исключение, а не недосмотр, и его стоит описать в дизайн-системе, чтобы не переделывали каждый раз.

Абстрактная графика VIDEMIND: схематичный макет экрана: тёмная шапка, строки-плашки и боковая колонка
VIDEMIND

Что происходит с текстом

Светлый текст на тёмном фоне ведёт себя не так, как тёмный на светлом. Светлые буквы визуально расплываются — свет «растекается» за границу знака, и штрих кажется толще, чем есть. Поэтому шрифт, аккуратно выглядевший в светлой теме, в тёмной выглядит жирным и слегка размытым, особенно на мелком кегле и на экранах с высокой яркостью.

Лечится это не увеличением контраста, а его снижением. Чистый белый на чистом чёрном — худшая пара из возможных: она даёт максимум расплывания и утомляет глаз быстрее всего. Практика: фон не чернее примерно #121212, основной текст не белее примерно #E6E6E6, а начертание при переключении в тёмную тему берут на ступень легче — если гарнитура позволяет. Разница в один вес незаметна как решение и заметна как результат.

Тёмная тема за пределами приложения

Приложение — не единственное место, где живёт продукт. Письмо, открытое в почтовом клиенте с тёмной темой, попадает под чужие правила: часть клиентов инвертирует цвета сама, часть уважает заданные, часть делает и то и другое в разных местах одного письма. Логотип на белой подложке превращается в белый прямоугольник посреди тёмного письма, а текст, заданный чёрным, местами остаётся чёрным на чёрном.

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

Абстрактная графика VIDEMIND: схематичный макет экрана: тёмная шапка, строки-плашки и боковая колонка — к разделу «Тёмная тема за пределами приложения»
VIDEMIND

Что в итоге

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

Обязательно уберите мигание белым при запуске: это самая заметная ошибка реализации.

Коротко

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

Уведомления в приложении

Частота, время, содержание и настройки. Разбираем, какие уведомления возвращают пользователей, а какие приводят к отключению или удалению.Дальше

Нашли ошибку или неточность в атрибуции? Напишите нам

Обсуждение

Загружаем…

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

0 / 1500