Carousel
The TkCarousel is a content slider component with various options.
- React
- Vue
- Angular
import { TkCarousel } from '@takeoff-ui/react'
import { TkCarousel } from '@takeoff-ui/vue'
import { TkCarousel } from '@takeoff-ui/angular'
Basic
A simple TkCarousel is created by giving content as children.
- React
- Vue
- Angular
<TkCarousel>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
</TkCarousel>
<TkCarousel>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
</TkCarousel>
<tk-carousel>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
</tk-carousel>
Items Per View
You can set the number of slides visible at once using the itemsPerView
property.
- React
- Vue
- Angular
<TkCarousel itemsPerView={4}>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</TkCarousel>
<TkCarousel :itemsPerView="4">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</TkCarousel>
<tk-carousel [itemsPerView]="4">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</tk-carousel>
Circular
You can enable or disable circular scrolling by setting the circular property.
By default, it is set to true.
- React
- Vue
- Angular
<TkCarousel circular={true} itemsPerView={2}>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
</TkCarousel>
<TkCarousel :circular="true" :itemsPerView="2">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
</TkCarousel>
<tk-carousel [circular]="true" [itemsPerView]="2">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
</tk-carousel>
Autoplay
You can enable autoplay functionality by setting the autoplay property to
true. Circular will be enabled automatically when autoplay is activated. Delay
between slides can be customized using the autoplayDelay property, which
defaults to 3000 milliseconds.
- React
- Vue
- Angular
<TkCarousel autoplay={true} autoplayDelay={1000} itemsPerView={3}>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</TkCarousel>
<TkCarousel :autoplay="true" :autoplayDelay="1000" :itemsPerView="3">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</TkCarousel>
<tk-carousel [autoplay]="true" [autoplayDelay]="1000" [itemsPerView]="3">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</tk-carousel>
Navigation Placement and Position
You can customize the placement and the position of the navigation arrows using
the navigationPlacement and navigationPosition properties.
Navigation Placement
Navigation Position
- React
- Vue
- Angular
Player Button
You can show or hide the play/pause button using the howPlayerToggleButton
property. By default, it is set to false.
- React
- Vue
- Angular
<TkCarousel
navigationPlacement="outside"
autoplay={true}
showPlayerToggleButton={true}
itemsPerView={3}
>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</TkCarousel>
<TkCarousel
navigationPlacement="outside"
:autoplay="true"
:showPlayerToggleButton="true"
:itemsPerView="3"
>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</TkCarousel>
<tk-carousel
navigationPlacement="outside"
[autoplay]="true"
[showPlayerToggleButton]="true"
[itemsPerView]="3"
>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
<img src="https://picsum.photos/800/400?random=6" alt="Slide 6" />
</tk-carousel>
Hide Indicator and Arrows
You can enable or disable the indicator and navigation arrows using the
showIndicator and showArrows properties. By default, both are set to true.
- React
- Vue
- Angular
<TkCarousel showIndicators={false} showArrows={false} autoplay={true} itemsPerView={3}>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
</TkCarousel>
<TkCarousel :showIndicators="false" :showArrows="false" :autoplay="true" :itemsPerView="3">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
</TkCarousel>
<tk-carousel [showIndicators]="false" [showArrows]="false" [autoplay]="true" [itemsPerView]="3">
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
</tk-carousel>
Vertical
You can set the orientation of the carousel using the orientation property. It
can be either horizontal or vertical. When set to vertical, you should also
specify the height of the carousel using the verticalViewHeight property.
- React
- Vue
- Angular
<TkCarousel orientation='vertical' verticalViewHeight='300px'>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
</TkCarousel>
<TkCarousel orientation='vertical' verticalViewHeight='300px'>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
</TkCarousel>
<tk-carousel orientation='vertical' verticalViewHeight='300px'>
<img src="https://picsum.photos/800/400?random=1" alt="Slide 1" />
<img src="https://picsum.photos/800/400?random=2" alt="Slide 2" />
<img src="https://picsum.photos/800/400?random=3" alt="Slide 3" />
<img src="https://picsum.photos/800/400?random=4" alt="Slide 4" />
<img src="https://picsum.photos/800/400?random=5" alt="Slide 5" />
</tk-carousel>
API
Props
| Name | Type | Default | Description |
|---|---|---|---|
boolean | false | Controls whether the carousel should autoplay | |
number | 3000 | Controls the interval of the autoplay in milliseconds | |
boolean | true | Controls whether it should loop back to the start after reaching the end | |
number | 1 | Number of items to show per view | |
"inside", "outside" | 'inside' | Placement of the navigation indicators | |
"bottom", "distributed", "left", "right", "top" | 'distributed' | Position of the navigation indicators | |
"horizontal", "vertical" | 'horizontal' | Orientation of the carousel | |
boolean | true | Controls whether the navigation arrows are shown | |
boolean | true | Controls whether the carousel indicators are shown | |
boolean | false | Controls whether the pause/play button is shown | |
string | '300px' | Height of the carousel when orientation is vertical |
Events
| Name | Description |
|---|---|
| tk-change | Emitted when item is changed |