Gallery

Компонент для создания адаптивного слайдера изображений с поддержкой жестов и автоматической прокрутки.

Загружается...

Компонент поддерживает автопрокрутку слайдов. Для этого нужно использовать свойство timeout (в миллисекундах) отличное от нуля.

Загружается...

Используйте свойство looped, чтобы список слайдов прокручивался зацикленно.

Загружается...

Для кастомизации стрелок навигации используйте следующие свойства:

  • arrowSize - контролирует размер стрелки;
  • arrowAreaHeight - размер активной зоны стрелок. Определяет область вокруг стрелок, реагирующую на взаимодействие пользователя:
    • stretch - на всю высоту галереи
    • fit - фиксированная высота
  • showArrows - флаг, определяющий нужно ли показывать стрелки. Видимость стрелок также зависит от параметра адаптивности hasPointer. Например, на мобильных устройствах стрелки отображаться никогда не будут.
Загружается...

Для более удобного использования компонента можно включить индикатор прогресса с помощью свойства bullets:

  • false - значение по умолчанию, индикатор скрыт;
  • light - включает отображение в светлом варианте;
  • dark - включает отображение в светлом варианте.
Загружается...

Используйте slideIndex и onChange для ручного управления состоянием.

Загружается...

Если необходимо сделать так, чтобы у каждого слайда была своя ширина, необходимо задать свойство slideWidth="custom":

Загружается...

С помощью свойств animationDuration и animationEasing можно изменить такие параметры анимации смены слайдов, как длительность и функция анимации соответственно. Свойство animationEasing принимает одно из предопределенных значений анимации или позволяет задать пользовательское значение через массив, элементы которого соответствуют параметрам аналогичной CSS-функции cubic-bezier ↗.

Загружается...
  • По возможности не оставляйте пользователя без возможности навигации по галерее вручную. Не полагайтесь только на автоматическую прокрутку
  • Кастомизируйте подписи кнопок: Задавайте понятные метки через свойства:
    arrowPrevLabel = 'Предыдущий слайд';
    arrowNextLabel = 'Следующий слайд';

Добавьте смысловой ярлык: Используйте aria-label или aria-labelledby с конкретным описанием:

// Плохо
aria-label="Карусель" // роль указывается автоматически через `aria-roledescription="Карусель"`
 
// Хорошо
aria-label="Фотографии нового смартфона"

Уникальные метки для каждого слайда: Используйте slideLabel с функцией, генерирующей конкретные описания:

// Плохо (нет конкретного обозначения, что на слайде)
slideLabel={({ index, total }) => `Слайд ${index}`}
 
// Хорошо
slideLabel={({ index, total }) => `Техническая схема (${index + 1} из ${total})`}

Обязательно для изображений: Всегда добавляйте осмысленный alt:

// Плохо (неконкретное описание)
<img src="product.jpg" alt="Картинка" />
 
// Хорошо
<img src="product.jpg" alt="Смартфон на белом фоне с открытой коробкой" />

Кастомизация ролей: При необходимости переопределяйте стандартные описания:

aria-roledescription="Карусель" // Для галереи
slideRoleDescription="Изображение продукта" // Для слайда
СвойствоОписание
alignAlignType
По умолчанию: -
animationDurationnumber

Длительность анимации смены слайда в миллисекундах.

По умолчанию: -
animationEasingPredefinedEasingType | CubicBezierEasingType

Функция для анимации.

Принимает одно из предопределённых значений или параметры функции cubic-bezier ↗.

По умолчанию: -
arrowAreaHeight"stretch" | "fit"

Размер активной зоны стрелок (в пикселях). Определяет область вокруг стрелок, реагирующую на взаимодействие пользователя. В дизайне свойство называется arrowArea.

По умолчанию: -
arrowNextLabelstring

Текст для кнопки-стрелки вправо (вперед). Делает ее доступной для ассистивных технологий.

По умолчанию: -
arrowPrevLabelstring

Текст для кнопки-стрелки влево (назад). Делает ее доступной для ассистивных технологий.

По умолчанию: -
arrowSize"s" | "m"
По умолчанию: -
bulletsfalse | "dark" | "light"
По умолчанию: -
bulletTestId((index: number, active: boolean) => string)

Передает атрибут data-testid для bullets.

По умолчанию: -
dragDisabledboolean

Позволяет отключить реагирование на тач-события.

По умолчанию: -
getRefRef<HTMLElement>
По умолчанию: -
getRootRefRef<HTMLDivElement>
По умолчанию: -
hasPointerboolean
По умолчанию: -
initialSlideIndexnumber

Индекс слайда по умолчанию.

По умолчанию: 0
loopedboolean

Включает зацикленность слайдов.

По умолчанию: -
nextArrowTestIdstring

Передает атрибут data-testid для кнопки перехода к следующему слайду.

По умолчанию: -
onChange((current: number) => void)
По умолчанию: -
onDragEnd((e: CustomTouchEvent, targetIndex: number) => void)
По умолчанию: -
onDragStartCustomTouchEventHandler
По умолчанию: -
onNextClick((event: MouseEvent<Element, MouseEvent>) => void)

Будет вызвано при нажатии на кнопку-стрелку вправо.

По умолчанию: -
onPrevClick((event: MouseEvent<Element, MouseEvent>) => void)

Будет вызвано при нажатии на кнопку-стрелку влево.

По умолчанию: -
prevArrowTestIdstring

Передает атрибут data-testid для кнопки перехода к предыдущему слайду.

По умолчанию: -
resizeSource"window" | "element"

Тип источника для отслеживания размера:

  • window: пересчет позиции слайдов будет происходить при изменении размеров window
  • element: пересчет позиции слайдов будет происходить при изменении размеров компонента.
По умолчанию: -
showArrowsboolean
По умолчанию: -
slideIndexnumber
По умолчанию: -
slideLabelstring | ((index: number, slidesCount: number) => string)

Текст для слайда. Делает его доступным для ассистивных технологий. Может быть функцией. По умолчанию устанавливает aria-label вида ${Номер слайда} из ${Количества слайдов}.

По умолчанию: -
slideRoleDescriptionstring

Описание роли для слайда, для лучше понимания пользователей скринридеров. По умолчанию - Слайд.

По умолчанию: -
slideTestId((index: number) => string)

Передает атрибут data-testid для слайда.

По умолчанию: -
slideWidthnumber | LiteralUnion<"custom", string>

Размер слайда.

Значение "custom" используется, если ширина у слайдов разная.

По умолчанию: -
timeoutnumber

При передаче происходит автоматический переход к следующему слайду через переданное время в ms. Автоматический переход будет ставиться на паузу при:

  • начале свайпа для переключения слайда;
  • фокусе на любой элемент внутри компонента;
  • при наведении мыши на компонент.
По умолчанию: 0