Easy to use, responsive and customizable carousel component for React
React Carousel Minimal
Easy to use, responsive and customizable carousel component for React Projects.
Installation
npm i react-carousel-minimal
Features
- Responsive
- Customizable
- Infinite loop
- Autoplay with custom duration
- Supports text caption
- Pause autoplay on hold with pause icon and customizations
- Slide number indicators
- Swipe to go to next slide on touch devices
- Custom slide background color
- Thumbnail slide indicators
Usage
import { Carousel } from 'react-carousel-minimal';
function App() {
const data = [
{
image: "https://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/GoldenGateBridge-001.jpg/1200px-GoldenGateBridge-001.jpg",
caption: "San Francisco"
},
{
image: "https://cdn.britannica.com/s:800x450,c:crop/35/204435-138-2F2B745A/Time-lapse-hyper-lapse-Isle-Skye-Scotland.jpg",
caption: "Scotland"
},
{
image: "https://static2.tripoto.com/media/filter/tst/img/735873/TripDocument/1537686560_1537686557954.jpg",
caption: "Darjeeling"
},
{
image: "https://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Palace_of_Fine_Arts_%2816794p%29.jpg/1200px-Palace_of_Fine_Arts_%2816794p%29.jpg",
caption: "San Francisco"
},
{
image: "https://i.natgeofe.com/n/f7732389-a045-402c-bf39-cb4eda39e786/scotland_travel_4x3.jpg",
caption: "Scotland"
},
{
image: "https://www.tusktravel.com/blog/wp-content/uploads/2020/07/Best-Time-to-Visit-Darjeeling-for-Honeymoon.jpg",
caption: "Darjeeling"
},
{
image: "https://www.omm.com/~/media/images/site/locations/san_francisco_780x520px.ashx",
caption: "San Francisco"
},
{
image: "https://images.ctfassets.net/bth3mlrehms2/6Ypj2Qd3m3jQk6ygmpsNAM/61d2f8cb9f939beed918971b9bc59bcd/Scotland.jpg?w=750&h=422&fl=progressive&q=50&fm=jpg",
caption: "Scotland"
},
{
image: "https://www.oyorooms.com/travel-guide/wp-content/uploads/2019/02/summer-7.jpg",
caption: "Darjeeling"
}
];
const captionStyle = {
fontSize: '2em',
fontWeight: 'bold',
}
const slideNumberStyle = {
fontSize: '20px',
fontWeight: 'bold',
}
return (
<div className="App">
<div style={{ textAlign: "center" }}>
<h2>React Carousel Minimal</h2>
<p>Easy to use, responsive and customizable carousel component for React Projects.</p>
<div style={{
padding: "0 20px"
}}>
<Carousel
data={data}
time={2000}
width="850px"
height="500px"
captionStyle={captionStyle}
radius="10px"
slideNumber={true}
slideNumberStyle={slideNumberStyle}
captionPosition="bottom"
automatic={true}
dots={true}
pauseIconColor="white"
pauseIconSize="40px"
slideBackgroundColor="darkgrey"
slideImageFit="cover"
thumbnails={true}
thumbnailWidth="100px"
style={{
textAlign: "center",
maxWidth: "850px",
maxHeight: "500px",
margin: "40px auto",
}}
/>
</div>
</div>
</div>
);
}
export default App;
Props
Name | Value | Description |
---|---|---|
data | array | Array of carousel items, containg JSON elements of the form { image: IMAGE_PATH, caption: TEXT_CAPTION } |
automatic | boolean | Enable auto play |
time | number | Interval in milliseconds after which it autmatically goes to the next slide if automatic is true ,defaults to 2000 |
width | string | Width of the Carousel, eg: 600px |
height | string | Width of the Carousel, eg: 400px |
slideNumber | boolean | Enable slide number indicators |
captionStyle | JSON | React style object for the captions |
radius | string | Border radius of the slides, eg: 10px |
slideNumberStyle | JSON | React style object for slide number indicators |
captionPosition | string | Position of the text captions, available options:top, center, bottom |
dots | boolean | Enable slide indicator dots |
pauseIconColor | string | Color of the pause icon, eg: white |
pauseIconSize | string | size of the pause icon, eg: 40px |
slideBackgroundColor | string | Sets the slides' background color, eg: darkgrey |
slideImageFit | string | Sets the object-fit of the slides' image,available options contain and cover |
thumbnails | boolean | Enables thumbnail indicators |
thumbnailWidth | string | Width of the thumbnail, defaults to 100px |