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

Кастомный TourCard

Библиотека поставляет кастомный компонент TourCard для упрощенной настройки и визуализации.

Live Editor

Result

Тип компонента TourCard

type TourCardProps = {
/**
* Ориентация карточки
* @default 'horizontal'
*/
orientation?: 'horizontal' | 'vertical';
/**
* Название карточки
*/
title?: string;
/**
* Описание карточки
*/
description?: string;
/**
* Пропсы для изображения (src, alt, ratio, customRatio и др.)
*/
image?: ImageProps;
/**
* Показывать пагинацию (точки)
* @default true
*/
showPagination?: boolean;
/**
* Индекс текущего шага
*/
stepCurrent?: number;
/**
* Общее количество шагов
*/
stepLength?: number;
/**
* Функция перехода к шагу по индексу
*/
goToStep?: (index: number) => void;
/**
* Кнопки навигации по шагам
* Например: «Далее» / «Готово» на последнем шаге
*/
actionButtons?: ReactNode;
/**
* Кнопка пропуска
*/
skipButton?: ReactNode;
/**
* Показывать кнопку закрытия
* @default true
*/
showClose?: boolean;
/**
* Обработчик закрытия тура
*/
onClose?: () => void;

/**
* Вид карточки тура
*/
view?: string;
/**
* Размер карточки тура
*/
size?: string;
} & HTMLAttributes<HTMLDivElement>;

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