Tour

Быстрый старт

Минимальный пример — два шага, управление через open, current и onChange:

Live Editor

Result

renderStep

renderStep — обязательный prop, отвечающий за содержимое карточки тура. Получает пять аргументов:

АргументТипОписание
currentnumberИндекс текущего шага (с нуля)
lengthnumberОбщее количество шагов
lastbooleantrue, если шаг последний
stepTourStepДанные текущего шага (title, description, …)
goToStep(index: number) => voidПереход к произвольному шагу

Шаги тура

Массив steps задаёт последовательность шагов. Каждый шаг описывается объектом TourStep:

СвойствоТипОписание
targetstring | RefObject | HTMLElementCSS-селектор, React ref или DOM-элемент для подсветки
placementPlacementПозиция карточки относительно цели (bottom по умолчанию)
highlightOffsetnumberОтступ подсветки — переопределяет общий highlightOffset
highlightBorderRadiusCSSProperties['borderRadius']Скругление подсветки — переопределяет общий highlightBorderRadius
titlestringЗаголовок карточки
descriptionstringОписание карточки

target

Свойство target принимает три формата:

Строка CSS-селектора — элемент ищется через document.querySelector:

Live Editor

Result

Оверлей

Свойство withOverlay включает затемнение фона вокруг подсвеченного элемента. Цвет регулируется через overlayColor:

Live Editor

Result

Подсветка элемента

highlightOffset задаёт отступ вокруг целевого элемента. highlightBorderRadius задаёт форму подсветки. Оба свойства можно переопределить на уровне конкретного шага:

Live Editor

Result

Стрелка

Свойство hasTail добавляет стрелку-указатель к карточке тура. Цвет стрелки задаётся через tailColor:

Live Editor

Result

Позиционирование карточки

offset задаёт отступ карточки от целевого элемента в формате [mainAxis, crossAxis]. Направление определяется свойством placement в каждом шаге:

Live Editor

Result

Контролируемый и неконтролируемый режим

Компонент поддерживает оба режима работы:

Управление состоянием вынесено наружу через open, current, onChange и onClose:

Live Editor

Result

Кастомная подсветка

Свойство renderHighlight заменяет стандартную подсветку произвольным React-элементом. При использовании вместе с withOverlay={false} позволяет создать полностью кастомный эффект без тёмного оверлея.

Функция получает объект TourHighlightProps:

СвойствоТипОписание
leftnumberКоордината X подсветки (уже учитывает highlightOffset)
topnumberКоордината Y подсветки (уже учитывает highlightOffset)
widthnumberШирина подсветки (уже учитывает highlightOffset)
heightnumberВысота подсветки (уже учитывает highlightOffset)
borderRadiusnumberСкругление блока высветления

Пример с анимированным пульсирующим бордером:

Live Editor

Result

Таблица свойств