Shepherd.js предоставляет встроенные возможности для создания интерактивных подсказок и туров по интерфейсу. Одним из ключевых аспектов настройки является переопределение стилей для элементов подсказок и кнопок управления. Это позволяет интегрировать тур в дизайн приложения без нарушения визуальной гармонии.
Shepherd.js использует систему классов и атрибутов, которые можно переопределять с помощью CSS. Основные элементы для стилизации:
Подсказка (.shepherd-content)
Отвечает за контейнер, в котором отображается заголовок, текст и кнопки.
Основные свойства, которые чаще всего переопределяются:
background-color — цвет фона подсказкиcolor — цвет текстаpadding — внутренние отступыborder-radius — скругление угловПример CSS-переопределения:
.shepherd-content {
background-color: #1e1e2f;
color: #ffffff;
padding: 20px;
border-radius: 10px;
}Заголовок подсказки
(.shepherd-title) Позволяет изменять шрифт, размер
и цвет заголовка:
.shepherd-title {
font-size: 18px;
font-weight: bold;
color: #ffcc00;
}Текст подсказки (.shepherd-text)
Для блока текста можно настроить межстрочный интервал, размер шрифта и
цвет:
.shepherd-text {
font-size: 14px;
line-height: 1.6;
color: #cccccc;
}Кнопки управления
(.shepherd-button) Shepherd.js позволяет добавлять
кнопки для навигации по туру. Переопределение стилей кнопок особенно
важно для соответствия стилю интерфейса:
.shepherd-button {
background-color: #ff5500;
border: none;
border-radius: 5px;
color: #ffffff;
padding: 8px 16px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.shepherd-button:hover {
background-color: #ff7700;
}Каждый шаг тура можно снабдить своим классом, что позволяет применить индивидуальные стили:
const tour = new Shepherd.Tour({
defaultStepOptions: {
classes: 'custom-shepherd-step',
scrollTo: true
}
});
tour.addStep({
id: 'example-step',
text: 'Это пример шага с кастомным стилем',
attachTo: {
element: '#target-element',
on: 'bottom'
},
classes: 'highlight-step'
});
Соответствующий CSS:
.custom-shepherd-step {
background-color: #222;
color: #eee;
}
.highlight-step {
border: 2px solid #ff0000;
}
Shepherd.js использует стрелки для указания на элементы интерфейса.
Стиль стрелок задаётся через псевдоэлементы CSS (::before,
::after) и классы .shepherd-arrow:
.shepherd-arrow {
border-color: #ffcc00;
}
.shepherd-arrow::before {
border-color: #ffcc00 transparent transparent transparent;
}
Можно задавать разные цвета для разных направлений стрелок через вложенные селекторы:
.shepherd-step.shepherd-theme-arrows .shepherd-arrow {
border-width: 10px;
}
Shepherd.js легко интегрируется с CSS-фреймворками (Bootstrap, Tailwind). Для этого можно:
classes при создании
шагаПример с Tailwind:
tour.addStep({
id: 'tailwind-step',
text: 'Тур с Tailwind стилями',
attachTo: { element: '#btn', on: 'right' },
classes: 'bg-blue-600 text-white p-4 rounded-lg shadow-lg'
});
Shepherd.js поддерживает CSS-анимации при открытии и закрытии
подсказок. Для этого достаточно добавить классы с
transition и transform:
.shepherd-content {
transition: transform 0.3s ease, opacity 0.3s ease;
}
.shepherd-content.shepherd-open {
transform: translateY(0);
opacity: 1;
}
.shepherd-content.shepherd-closed {
transform: translateY(-10px);
opacity: 0;
}
defaultStepOptions.classes,
автоматически применяются ко всем шагам, что упрощает глобальное
переопределение стилей.Эти подходы позволяют создавать полностью кастомизированные и визуально согласованные туры, интегрированные в любой интерфейс, с контролем над каждым элементом: от контейнера подсказки до кнопок и стрелок.