Гайдлайн по iOS на русском. Часть 40 — Визуальный дизайн: Темная тема
Привет. Меня зовут Руслан. Я UX/UI дизайнер в Siemens. У меня есть ютуб-канал, на котором записано несколько плейлистов по основам UX/UI дизайна (лайк, подписка и тд). В этой серии постов я делюсь вольным переводом iOS гайдлайна на русский язык. Как и с переводом Material Design все части будут объеденены в 1 notion документ. Оригинальный источник этой части: здесь.
В iOS 13.0 и более поздних версиях люди могут выбрать темную тему. В темной теме система использует более темную цветовую палитру для всех экранов, вьюшек, меню и контролов, а также использует большую цветовую насыщенность, чтобы контент переднего плана выделялся на более темном фоне. Темная тема поддерживает все возможности по доступности в том числе.
В настройках пользователи могут выбрать Темную тему в качестве стиля интерфейса по умолчанию и запланировать автоматические изменения между светлой и темной темами. Поскольку люди делают этот выбор на системном уровне, они обычно ожидают, что все приложения будут уважать их предпочтения.
Соблюдайте выбор тем, который люди выбирают в настройках. Если вы предлагаете юзерам внутри вашего приложения какие-то настройки или отдельную тему, то вы создаете больше работы для людей, потому что им приходится настраивать более одного параметра. Хуже того, они могут подумать, что ваше приложение сломано, потому что оно не отвечает их выбору на уровне всей системы.
Проверьте свой дизайн как в светлой, так и в темной теме. Посмотрите, как выглядит ваш интерфейс в 2 вариантах, и отрегулируйте свои макеты по мере необходимости, чтобы они соответствовали каждой теме. Проекты, которые хорошо работают в одной теме, могут не работать в другом.
Убедитесь, что ваш контент остается удобочитаемым в темной теме, когда вы настраиваете параметры доступности контрастности и прозрачности. В темной теме вы должны протестировать свой контент с режимами Увеличения контрастности и уменьшения прозрачности, как по отдельности, так и вместе. Вы можете найти места, где темный текст менее читаем, когда он находится на темном фоне. Вы также можете обнаружить, что включение увеличения контрастности в темной теме может привести к снижению визуального контраста между темным текстом и темным фоном. Хотя люди с хорошим зрением все еще могут считать текст с низким контрастом, такой текст может быть неразборчив для людей с ограниченными возможностями зрения.
Цвета темной темы
Цветовая палитра в темной теме имеет более темные цвета фона и более светлые цвета для всего контента переднего плана, которые тщательно подобраны для обеспечения контрастности при сохранении единообразия между темами и приложениями.
В темной теме система использует два набора фоновых цветов — базовый и приподнятый — для улучшения восприятия глубины, когда один темный интерфейс накладывается на другой. Базовые цвета темнее, из-за чего кажется, что интерфейсы на фоне как бы снижаются или отдаляются, а приподнятый набор цвета светлее, из-за чего кажется, что интерфейсы переднего плана возвышаются или выходят на передней план.
📌 От автора: не знаю как лучше перевести elevated (приподнятый) набор цветов.
Используйте системные цвета фона. Темная тема динамическая, что означает, что цвет фона автоматически меняется с базового на приподнятый набор, когда интерфейс находится на переднем плане, например, всплывающее окно или модальный лист. Система также использует приподнятый цвет фона для передачи визуального разделения между приложениями в многозадачном оеэиме и между окнами в режиме работы с несколькими окнами. Использование кастомных цветов может затруднить восприятие людьми этих системных визуальных различий.
Используйте динамические цвета, которые адаптируются к текущей теме. Семантические цвета, такие как цвет для разделителей, автоматически адаптируются к текущей теме. Если вам нужен кастомный цвет, то добавьте его в набор в каталог ресурсов вашего приложения и укажите варианты для светлой и темной темы, чтобы он мог адаптироваться к текущим настройкам. Избегайте жесткой привязки значений цвета или цветов, которые не адаптируются к системным настройкам.
Обеспечьте достаточный цветовой контраст в темах. Использование системных цветов обеспечивает надлежащее соотношение контрастности между вашим конетнтом переднего плана и заднего. Для кастомных цветов стремитесь к соотношению контрастности 7:1, особенно для текста меньшего размера.
Смягчите цвет белого фона. Если вы почему-то обязаны использовать белый фон для контента в темной теме, то выберите оттенок темнее, чем чистый белый цвет, чтобы фон не светился на фоне окружающего темного контента.
Изображения, цвет иконок
Система использует иконки из библиотеки SF, которые автоматически отлично смотрятся в темной теме, и полноцветные изображения, оптимизированные как для светлой, так и для темной тем.
Используйте иконки SF везде, где это возможно. Иконки отлично смотрятся во всех темах, когда вы используете динамические цвета для их оттенка или когда вы добавляете эффект повышенной насыщенности (vibrancy).
При необходимости создавайте собственные иконки или варианты из библиотеки SF для светлой и темной тем. Иконка, которая выполнена с помощью обводки в светлой теме — это хорошо, но будет лучше использовать заливку и сплошную форму для темной темы.
Убедитесь, что полноцветные изображения и иконки выглядят хорошо. Используйте один и тот же ресурс, если он хорошо выглядит как в светлой, так и в темной теме. Если ассет (ресурс) хорошо выглядит только в одной, то измените его или создайте отдельные его варианты для темной и светлой тем.
Материалы
Эффект насыщенности (vibrancy) может помочь сохранить хороший контраст текста на более темном фоне.
Используйте системные цвета для лейблов с этим эффектом. У лейблов есть 4 категории, которые автоматически адаптируются к светлой и темной темам.
Используйте системные вью для текстовых полей и текстовых вьюшек. Системные вьюшки и контролы позволяют тексту вашего приложения хорошо выглядеть на любом фоне, автоматически подстраиваясь под наличие или отсутствие эффекта насыщенности. Когда это возможно, используйте системное вью для отображения текста вместо того, чтобы кастомизировать и подсраивать текст самостоятельно.