Перейти до вмісту
tatetUI

Carousel

Керована карусель зі swipe, клавіатурою, autoplay-паузою та reduced motion.

Приклад

Компоненти

Copy-first без lock-in

Код компонента живе у вашому проєкті й лишається повністю редагованим.

0 залежностей

API

Props

НазваТипТиповоОпис
items*T[]Слайди. Рендер кожного — слот `slide`.
modelValuenumber0Індекс поточного слайда. Використовуйте через `v-model`.
intervalnumber5000Пауза між автоматичними переходами, мс.
ariaLabelstring"Карусель"Доступна назва каруселі.
loopbooleanfalseЗ останнього слайда переходити на перший.
autoplaybooleanfalseАвтоматичне гортання. Вимикається саме собою при `prefers-reduced-motion` і на час наведення чи фокуса.
pauseOnHoverbooleantrueСпинати автогортання під курсором.
draggablebooleantrueПеретягування слайда пальцем або мишею. Вимикайте, коли всередині слайда є текст для виділення або поля вводу.

Події

НазваPayloadОпис
update:modelValue[value: number]Індекс активного слайда.
change[value: number]Новий індекс після переходу.

Слоти

НазваОпис
slide
previous
next

Доступно через ref

НазваТипОпис
previous() => void
next() => void
goTo(index: number) => void
pause() => void
play() => void

Коли використовувати

Для невеликої послідовності промо, onboarding або медіа, де один елемент має бути в центрі уваги. Компонент підтримує controlled index і кастомний слот слайда.

Коли НЕ використовувати

Не ховайте критичний контент чи основну навігацію в каруселі. Для списку карток краще звичайна grid, а для великих наборів — pagination.

Доступність

Region і слайди мають carousel-ролі та позицію «N з M». Стрілки, Home й End працюють із клавіатури. Autoplay зупиняється під час focus і hover, має явну кнопку Pause та не запускається при prefers-reduced-motion.

Перетягування (draggable) — піксель-в-піксель за вказівником з гумовими краями без loop; клік одразу після жесту проковтується, щоб не «натискати» те, що було під пальцем у момент відпускання. touch-pan-y лишає вертикальне гортання сторінці, тож жест не конфліктує з прокруткою.