react-slim-carousel
v1.0.26
Published
Minimal but feature-rich react carousel made using hooks.
Downloads
47
Maintainers
Readme
react-slim-carousel
Minimal but feature-rich react carousel made using hooks.
Install
npm install --save react-slim-carousel
Demo
Usage
import React from 'react'
import {
Carousel,
CarouselProvider,
Dots,
PreviousButton,
NextButton
} from 'react-slim-carousel'
import 'react-slim-carousel/dist/index.css'
export default function Example() {
return (
<CarouselProvider>
<Carousel>
<div>Slide 1</div>
<div>Slide 2</div>
<div>Slide 3</div>
</Carousel>
<Dots />
<PreviousButton>Previous</PreviousButton>
<NextButton>Next</NextButton>
</CarouselProvider>
)
}
Alternatively, you can use the HOC approach by wrapping your component in withCarousel()(Component)
. You should not use the <CarouselProvider>
when using the HOC approach.
import React from 'react'
import { Carousel, withCarousel, useCarousel } from 'react-slim-carousel'
import 'react-slim-carousel/dist/index.css'
function Example() {
const { currentSlide } = useCarousel()
return (
<>
<Carousel>{/* Slides here */}</Carousel>
<span>Current slide: {currentSlide}</span>
</>
)
}
export default withCarousel()(Example)
Options
| Setting | Type | Description | Default |
| -------------- | ------------- | --------------------------------------------------------------------------- | ------------------ |
| autoPlay | boolean
| Autoplay through slides | false
|
| autoSize | boolean
| Set the height (or width) to the largest slide depending on the orientation | true
|
| centerMode | boolean
| Show active slide in the center | false
|
| draggable | boolean
| Enable/disable drag to slide | true
|
| easing | string
| CSS easing | 'ease-in-out'
|
| edgeFriction | number
| Resistance when swiping edges of non-infinite carousels | 0.3
|
| gap | number
| Gap in pixels between each slide | 0
|
| infinite | boolean
| Intinite loop sliding | false
|
| initialSlide | number
| Initial slide to display | 0
|
| interval | number
| Time in ms between autoplay sliding | 3000
|
| orientation | 'horizontal' | 'vertical'
| Slider orientation | 'horizontal'
|
| playDirection | 'normal' | 'reverse'
| Autoplay direction | 'normal'
|
| slidesToScroll | number
| Number of slides to scroll | 1
|
| slideSpeed | number
| Transition speed in ms | 400
|
| threshold | number
| Drag threshold for scrolling to next slide | 0.2
|
| visibleSlides | number
| Number of slides visible | 1
|
Responsive
The Carousel component accepts an additional prop responsive
which is an object with the keys being the pixel min width, and the value being settings to override.
Example:
<Carousel
visibleSlides={2}
responsive={{
768: {
visibleSlides: 4
}
}}
>
<div>Slide 1</div>
<div>Slide 2</div>
<div>Slide 3</div>
</Carousel>
Styling
The bare minimum stylesheet should be imported from 'react-slim-carousel/dist/index.css'
. Styles for the previous/next buttons and dots are not included and should be done by your app.
Available classes:
Carousel
| Class | Description |
| ----------------------- | --------------------------------------- |
| carousel
| Base class |
| carousel--horizontal
| When orientation is set to 'horizontal' |
| carousel--vertical
| When orientation is set to 'vertical' |
| carousel--center-mode
| When centerMode is enabled |
Tray
The tray is the direct child of the carousel and contains the slides.
| Class | Description |
| ---------------- | ----------- |
| carousel__tray
| Base class |
Slide
| Class | Description |
| ------------------------- | ---------------------------------- |
| carousel__slide
| Base class |
| carousel__slide--active
| When the slide is currently active |
Previous button
| Class | Description |
| ----------------------- | ----------- |
| carousel-previous-btn
| Base class |
Next button
| Class | Description |
| ------------------- | ----------- |
| carousel-next-btn
| Base class |
Dots
| Class | Description |
| --------------- | ----------- |
| carousel-dots
| Base class |
Dot
| Class | Description |
| ---------------------- | -------------------------- |
| carousel-dot
| Base class |
| carousel-dot--active
| When current dot is active |
License
MIT © Acidic9