← назад
Темы для дашбордов: час ручной настройки против одного действия
Enterprise B2B-платформа бизнес-аналитики и автоматизации. 100+ клиентов из топ-300 российских компаний: банки, ретейл, телеком, производство.
Результат
Брендирование дашборда — в 30 раз быстрее. Цвета элементов подстраиваются под новый фон, благодаря алгоритму адаптации.
Задача
Дать возможность брендировать дашборды под клиента — вместо ручной настройки каждого виджета.
Что было в тикете
Необходима возможность менять цвет фона виджета
Ни строчки о том, зачем. Пошёл выяснять. Цвет фона был нужен по-настоящему, но как часть брендирования, а не сам по себе: дашборды показывают клиентам и топ-менеджменту, и перед каждым показом их вручную приводили в вид под конкретного клиента — фон, шрифты, отступы и всё остальное. Требования переписали, задача сменила название на «Темы для дашбордов».
Откуда бралась рутина
Любой параметр внешнего вида — шрифты, отступы, скругления — жил на уровне виджета и задавался отдельно для каждого. Плюс контексты: тот же дашборд открывается и полноэкранной страницей, в дровере и в модальном окне.
Чтобы понять масштаб, я сел и настроил оформление типового дашборда с нуля, засекая время. Считать было что: 10−15 виджетов, в каждом 5−6 параметров оформления — от 60 до 90 настроек, около двадцати минут за проход. Дальше это умножается на контексты: со страницей и дроверами выходит час с лишним. И повторяется заново перед каждым показом клиенту.
Заодно, проходя этот сценарий, я выписал места, где результат расходится с ожиданием. На этот список ссылался, когда просил расширить скоуп, из него же выросла модель наследования.
[ВИЗУАЛ: карта расхождений поверх панели настроек. Подпись: «Места, где результат расходился с ожиданием»]
Что делать с текстом на тёмном фоне
Как только фон становится настраиваемым, встаёт вопрос про всё, что на нём лежит: заголовок, подписи осей, разделители, серии графика. Отдать это пользователю значило оставить ручную донастройку, ради избавления от которой всё и затевалось, так что пересчитывать цвета должен был продукт.
Работает перебором: система смотрит, тёмный новый фон или светлый, считает контраст элемента и, пока не дотянет до порога, осветляет или затемняет его шагами. Одной формулой все случаи не закрываются — ахроматика ведёт себя не так, как полноцветные элементы, а у полупрозрачных нужно сохранить прозрачность и пересчитать базовый цвет под ней. Правила для каждой группы подбирал руками в песочнице: собрал HTML-страницу с JS-реализацией, функции написал с помощью ИИ. Её же открывал разработчикам на промежуточных синках, и эти функции легли в основу реализации.
[ВИЗУАЛ: скриншот песочницы. Подпись: «Слева заданный цвет фона, справа пересчитанные элементы»]
Из настроек в тему
Настройки задаются на уровне дашборда и применяются ко всему, что внутри, — один набор параметров едет с дашбордом во все контексты, включая дроверы. Любой виджет можно отвязать, настроить отдельно и вернуть обратно.
Общие параметры принесли с собой новую сложность: теперь часть настроек относится ко всему дашборду, часть к конкретному виджету, и по интерфейсу должно быть заранее понятно, что на что повлияет. Переписал заголовки и подсказки, сделал логическую группировку параметров.
Делали в два этапа: сначала общие параметры дашборда, потом упаковку этих параметров в темы. Тема хранит версии, выгружается файлом и ставится в другое пространство, а её поведение зависит от источника и прав: обновления из маркетплейса, редактирование и экспорт своей темы, просмотр и дублирование.
Что получилось по шагам:
Было — 60−90 настроек по виджетам, час с лишним на дашборд со всеми контекстами.
Первый этап — те же 5−6 параметров, но один раз на весь дашборд: пара минут, и они едут во все контексты сразу.
Второй этап — применить готовую тему: одно действие.
[ВИЗУАЛ: маркетплейс тем и карточка темы в разных состояниях. Подпись: «Состояния темы: из маркетплейса, своя с правами, своя без прав»]
Спор про демо-дашборд
Для тем я спроектировал отдельный редактор с превью. Открывать его хотел на эталонном демо-дашборде, где видны все параметры сразу и новому пользователю не нужен свой готовый отчёт. Стейкхолдер пользы в демо не видел и хотел живой пример, сошлись на живом. Решение рабочее, но, на мой взгляд, костыльное: у нового пользователя подходящего дашборда может просто не быть. Сейчас я бы дожимал гибрид.
[ВИЗУАЛ: редактор тем с превью. Подпись: «Превью на выбранном дашборде»]
Как проверял
Количественных метрик нет: в компании нет культуры метрик. Признак успеха определили заранее и поведенческий — команда сможет собирать брендированные шаблоны сама. Так и вышло. По ходу работы решение разбирали на еженедельной встрече дизайнеров с разных модулей: прямой критики там обычно нет, зато есть вопросы в лоб, и часть решений после них я правил.
Чем закончилось
Реализация начиналась, когда я уже вёл другой модуль; темы поддерживал другой дизайнер, какое-то время приходивший ко мне за консультациями.
Забрал одну рабочую вещь: если решение алгоритмическое, прототип дешевле описания. Правила пересчёта цветов я не смог бы защитить рассуждениями, а песочница закрыла вопрос о реализуемости и дала разработке отправную точку.
Контакты

Электронная почта:

Made on
Tilda