Mobile menuMobile menu
Статьи

Добавление тем в приложение: подходы и анализ

Nik Briuzgin
Nik Briuzgin
8 min

Недавно мы выпустили обновление с поддержкой темной темы, и сегодня мы обсудим, как темизация устроена технически. Существует два подхода к темизации: «немасштабируемый и быстрый» и «масштабируемый и долгий»

Немасштабируемый подход

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

Масштабируемый подход с использованием дизайн токенов

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

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

Преимущества использования токенов

Что это нам даёт? Назначив токены на все компоненты в светлой теме, мы можем легко менять значение темы в названии токена, начиная брать новые значения из таблицы. Таким образом, потратив 1-3 дня на назначение всех токенов или используя их с самого начала, мы можем добавлять новые темы всего за 15 минут.

Процесс осуществляется следующим образом:

  • Создается новый столбец, и в каждой строке напротив кейса использования добавляется новый цвет.
  • Новая таблица выгружается как JSON файл сразу на GitHub.
  • Разработчик добавляет новое поле для новой темы и всего лишь в пару кликов перекрашивает всё приложение.

Если всё сделано правильно, даже не потребуется перепроверять: все цвета окажутся на своих местах.

Популярность токенов в дизайне

Дизайн токены стали популярными не так давно. Ярким примером их использования является Material Design от Google. Документация доступна по ссылке: Metarial Design.

Экран настройки и смены темы

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

Одной из основных UI ценностей HOT на данный момент является следующее: если мы можем сделать что-то лучше минимально затрагивая процесс разработки и у нас есть возможность провести еще несколько итераций, мы это делаем. Такой подход позволяет повысить узнаваемость бренда и выделиться визуально среди конкурентов.

В среднем 50% пользователей за время жизни проекта меняют тему оформления. В нашем случае это миллионы людей, которые посетят эту страницу. Так почему бы не сделать её визуально креативной и запоминающейся? 👀

Страница смены темы в HOT Wallet имеет уникальную анимацию, к которой мы пришли через несколько итераций. Изначально это было просто солнце и луна. Затем мы добавили лес и оконную раму, которые отлично гармонируют с нашим интерфейсом благодаря строгим линиям и жестким теням, что создаёт цельную картину.

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