Driver.js позволяет создавать пошаговые интерактивные подсказки для веб-приложений. Для интеграции в дизайн-систему важно обеспечить единообразие визуальных элементов, соблюдение типографики и корректную работу с компонентами, уже существующими в UI.
1. Настройка стилей подсказок
Driver.js предоставляет возможность полностью кастомизировать внешний
вид подсказок через объект options. Основные параметры,
влияющие на стиль:
const driver = new Driver({
opacity: 0.7, // прозрачность оверлея
padding: 10, // внутренний отступ вокруг элемента
stageBackground: '#fff', // фон подсказки
nextBtnText: 'Далее',
prevBtnText: 'Назад',
doneBtnText: 'Готово',
className: 'custom-driver' // дополнительный CSS класс
});
2. Интеграция с компонентами дизайн-системы
Каждый элемент интерфейса в дизайн-системе имеет собственные размеры, отступы и состояние (hover, focus). Для корректного позиционирования подсказок:
padding и stageBackground для
соответствия визуальным стандартам компонентов.allowClose: false и вручную контролировать закрытие, чтобы
подсказка не терялась при ререндере.driver.defineSteps([
{
element: '#buttonSave',
popover: {
title: 'Сохранение изменений',
description: 'Нажмите для сохранения данных в системе',
position: 'bottom'
}
}
]);
3. Адаптация типографики и цветов
Дизайн-системы задают единую типографику и палитру. В Driver.js это настраивается через CSS:
.custom-driver .driver-popover {
font-family: 'Inter', sans-serif;
font-size: 14px;
color: #333333;
background-color: var(--color-surface);
border-radius: 8px;
box-shadow: var(--shadow-level-2);
}
4. Поддержка адаптивного дизайна
Подсказки должны корректно отображаться на разных разрешениях:
top, bottom,
left, right и проверять их на мобильных
устройствах.highlight().window.addEventListener('resize', () => {
driver.refresh();
});
5. Управление поведением подсказок
Дизайн-системы часто имеют интерактивные компоненты (табы, аккордеоны, выпадающие меню). Для корректной работы:
driver.highlight() после рендера.const step = {
element: () => document.querySelector('#dynamicTab'),
popover: {
title: 'Вкладка',
description: 'Здесь можно переключать разделы'
}
};
driver.defineSteps([step]);
6. Расширение возможностей через кастомные классы
Driver.js позволяет внедрять произвольные элементы управления в подсказку, что упрощает интеграцию с компонентами дизайн-системы:
const customPopover = document.createElement('div');
customPopover.className = 'custom-driver-popover';
customPopover.innerHTML = `
<h3>Заголовок</h3>
<p>Описание шага</p>
<button class="ds-btn ds-btn-primary">Дальше</button>
`;
driver.on('next', () => {
console.log('Шаг пройден');
});
7. Рекомендации по совместимости
className, чтобы избежать конфликтов с другими
компонентами.Эта методология позволяет создать подсказки, которые органично вписываются в визуальный язык приложения, обеспечивают корректное взаимодействие с компонентами и поддерживают адаптивность интерфейса.