Driver.js предоставляет мощный механизм для создания интерактивных пошаговых туров по интерфейсу веб-приложений. Одним из ключевых аспектов является возможность кастомизации внешнего вида подсказок, что позволяет адаптировать тур под дизайн приложения и сделать его более органичным для пользователя.
Кастомная тема в Driver.js задаётся через объект конфигурации
options при инициализации драйвера. Основной параметр —
className, который указывает на CSS-класс, применяемый к
каждому шагу тура.
const driver = new Driver({
className: 'custom-theme'
});
После этого все шаги будут использовать стили, определённые в классе
custom-theme. Это позволяет полностью контролировать
оформление: цвета, шрифты, размеры, отступы и т. д.
Основные элементы, которые можно кастомизировать:
.driver-tooltip отвечает за основное окно подсказки. Можно
менять фон, границы, тени и закругления:.custom-theme .driver-tooltip {
background-color: #2c3e50;
color: #ecf0f1;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
font-family: 'Segoe UI', sans-serif;
}
.driver-header, для текста —
.driver-description. Это позволяет отдельно стилизовать
шрифты, размеры и отступы..custom-theme .driver-header {
font-size: 18px;
font-weight: 600;
margin-bottom: 6px;
}
.custom-theme .driver-description {
font-size: 14px;
line-height: 1.6;
}
Next, Previous, Close) можно
стилизовать через классы .driver-next-btn,
.driver-prev-btn и .driver-close-btn:.custom-theme .driver-next-btn,
.custom-theme .driver-prev-btn {
background-color: #3498db;
color: #fff;
border: none;
padding: 6px 14px;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
}
.custom-theme .driver-next-btn:hover,
.custom-theme .driver-prev-btn:hover {
background-color: #2980b9;
}
Driver.js автоматически рассчитывает позицию подсказки относительно
элемента, но можно задать своё смещение через параметры
top, left, bottom,
right на каждом шаге:
driver.defineSteps([
{
element: '#profile-button',
popover: {
title: 'Профиль пользователя',
description: 'Здесь отображаются настройки профиля',
position: 'bottom',
offset: {
top: 10,
left: 0
}
}
}
]);
Свойство offset позволяет подстраивать подсказку под
дизайн интерфейса, избегая наложения на другие элементы.
Для гибкой кастомизации удобно применять CSS-переменные, которые затем можно менять динамически через Jav * aScript:
.custom-theme {
--tooltip-bg: #34495e;
--tooltip-color: #ecf0f1;
--button-bg: #e74c3c;
--button-hover-bg: #c0392b;
}
.custom-theme .driver-tooltip {
background-color: var(--tooltip-bg);
color: var(--tooltip-color);
}
.custom-theme .driver-next-btn {
background-color: var(--button-bg);
}
.custom-theme .driver-next-btn:hover {
background-color: var(--button-hover-bg);
}
Это позволяет создавать динамические темы, переключая их в зависимости от режима интерфейса или пользовательских настроек.
Помимо CSS, Driver.js поддерживает настройку событий на каждом шаге, что позволяет добавлять классы динамически или изменять содержимое подсказки:
driver.on('next', (step) => {
if(step.index === 1) {
document.querySelector('.driver-tooltip').classList.add('highlight-step-2');
}
});
Такой подход полезен, если нужно выделять конкретные шаги особым образом без изменения глобальной темы.
Driver.js позволяет использовать несколько классов одновременно, комбинируя стандартный стиль и собственные изменения:
const driver = new Driver({
className: 'default-theme custom-theme'
});
Это обеспечивает совместимость с обновлениями библиотеки, сохраняя уникальный дизайн приложения.
Кастомные темы в Driver.js дают полный контроль над визуальной частью интерактивных туров и позволяют интегрировать их в любой дизайн без нарушения стиля интерфейса.