Modern lightweight Vue 3 carousel component
Vue 3 Carousel
Modern lightweight Vue 3 carousel component.
TODO
- [x] Responsive breakpoints
- [x] Mouse/touch dragging
- [x] Infinity scroll (wrapping around)
- [ ] Auto play
- [ ] RTL
- [ ] Vertical scroll
- [ ] Sync multiple carousel
- [ ] Enrich a11y
Getting started
Installation
First step is to install it using yarn
or npm
:
npm install vue3-carousel
# or use yarn
yarn add vue3-carousel
Basic Using
<template>
<carousel :items-to-show="1.5">
<slide v-for="slide in 10" :key="slide">
{{ slide }}
</slide>
<template #addons>
<navigation />
<pagination />
</template>
</carousel>
</template>
<script>
// If you are using PurgeCSS, make sure to whitelist the carousel CSS classes
import 'vue3-carousel/dist/carousel.css';
import { Carousel, Slide, Pagination, Navigation } from 'vue3-carousel';
export default {
name: 'App',
components: {
Carousel,
Slide,
Pagination,
Navigation,
},
};
</script>
Available Props
Prop | Default | Description |
---|---|---|
itemsToShow |
1 | count of items to showed per view (can be a fraction). |
initialSlide |
0 | index number of the initial slide. |
wrapAround |
false | enable infinite scrolling mode. |
snapAlign |
'center' | controls the carousel position alignment, can be 'start', 'end', or 'center' |
transition |
300 | sliding transition time in ms. |
settings |
{ } | an object to pass all settings. |
breakpoints |
null | an object to pass all the breakpoints settings. |