Адаптация интерфейса под темную тему

Продвинутый
Материал предназначен для продвинутых пользователей. Если у вас есть вопросы по применению, обратитесь в Техническую поддержку BPMSoft.

Проблема

Начиная с версии 1.8 в BPMSoft доступно переключение на темную тему интерфейса. В связи с этим возможны сценарии некорректного отображения пользовательских стилей на клиентских схемах при переключении тем.

Например, в разделе «Контакты» настроены стили отображения записей реестра раздела согласно примеру в статье Настроить стили отображения записей реестра раздела:

Пример настройки стилей отображения записей реестра раздела
define("ContactSectionV2", [], function() {
	return {
		entitySchemaName: "Contact",
		methods: {
			prepareResponseCollectionItem: function(item) {
				this.callParent(arguments);
				item.customStyle = null;
				item.customStyle = {
					"border": "2px solid #000000"
				};
			}
		}
	};
});

Для каждой записи в реестре добавлены границы черного цвета.

Рисунок 1 — Стили в светлой теме

Рисунок 1 — Стили в светлой теме

При переключении на темную тему цвет границ сольется с общим фоном.

Рисунок 2 — Стили в темной теме до адаптации

Рисунок 2 — Стили в темной теме до адаптации

Аналогичные проблемы с восприятием и читаемостью могут возникать и у no-code элементов:

  • Правил цветового выделения;
  • Дашбордов (показателей, шкал, графиков);
  • Цвета панели разделов;
  • Angular-модулей и так далее.

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

Решение

Для кастомизации клиентского интерфейса на проектном слое рекомендуется использовать новую цветовую палитру, которая создана в BPMSoft версии 1.8. Она состоит из переменных, значения которых подстраиваются под выбранную тему, и не подлежит изменению. Файлы со стилями представлены в разделе Цветовые палитры.

Некоторые переменные в обеих темах в цветовой палитре имеют одинаковые значения.

Для адаптации цвета границ текущего примера выберем переменную --border-color-primary:

Адаптированный пример настройки стилей отображения записей реестра раздела
define("ContactSectionV2", [], function() {
	return {
		entitySchemaName: "Contact",
		methods: {
			prepareResponseCollectionItem: function(item) {
				this.callParent(arguments);
				item.customStyle = null;
				item.customStyle = {
					"border": "2px solid var(--border-color-primary)"
				};
			}
		}
	};
});

В светлой теме значение переменной будет равно #252525 (черный цвет), а для темной темы — #FFF (белый цвет).

Рисунок 3 — Стили в темной теме после адаптации

Рисунок 3 — Стили в темной теме после адаптации

Для no-code элементов (правила цветового выделения, дашборды, цвета панели и т. д.), механизм автоматического подстраивания системной переменной отсутствует. Поэтому при выборе цветов важно самостоятельно проверять их сочетаемость с обеими темами. Рекомендуем выбирать универсальные цвета, избегать слишком светлых или темных оттенков и проверять результат после переключения темы.

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

Дополнительные рекомендации

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

  1. Связывать элементы с цветовой гаммой, заливкой и другими характеристиками через переменную. Это обеспечит правильное отображение элементов в обеих темах.
  2. Картинки и иконки с цветным фоном (например, белым) лучше заменить на версии с прозрачным фоном в форматах .png или .svg. Это предотвратит некорректное отображение фона на одной из тем.
  3. Иконки для светлой и темной тем должны быть одинаковыми, без изменения цвета, так как нет механизма для автоматической смены иконок при переключении тем. Используйте иконки, которые гармонично смотрятся как на светлой, так и на темной теме.

Цветовые палитры

Цветовая палитра для светлой темы
Цветовая палитра для темной темы

Материал был полезен для вас?
Заявка на индивидуальный тренинг
Заявка на обучение в формате тренинга
Заявка на консультацию по обучению
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Вебинар: 25 июня в 11:00
Приглашаем вас на вебинар: BPMSoft CRM без отраслевых границ. От трейдинга до здравоохранения. Опыт и цифры
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Регистрация на мероприятие
Оставить заявку
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Предпочитаемый способ связи
Демонстрационная версия BPMSoft
Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней.
Типовое внедрение
Внедрите BPMSoft CRM в свою компанию всего за 8 рабочих дней по фиксированной цене! Заполните заявку для уточнения условий.
Предпочитаемый способ связи
Заказать презентацию
Наш менеджер свяжется с Вами в ближайшее время.
Предпочитаемый способ связи
Рассчитать стоимость
Предпочитаемый способ связи
Лучшие CRM-системы в России: выводы Фонда «Сколково»
Какие CRM выбирают крупнейшие российские компании? Скачайте исследование рынка CRM-систем 2026 от Фонда «Сколково» и TAdviser
Задать вопрос
Предпочитаемый способ связи
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Присоединяйтесь к партнерской сети BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Тип партнерства*
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Заявка на онлайн-консультации по BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Стать образовательным партнёром
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Заявка на консультацию
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Подписка
Спасибо!
Ваша заявка принята.
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Проверьте вашу почту
Проверьте вашу почту
Для завершения подписки перейдите по ссылке в письме, которое мы только что отправили. Если письма нет во «Входящих», проверьте папку «Спам».
MAX Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее