React Simple Carousel
- React.js >= 16.3.0 (new context API + forward ref)
npm install @arranjae/react-simple-carousel
or
yarn add @arranjae/react-simple-carousel
Create a responsive carousel with this component passing items array.
<iframe src="https://codesandbox.io/embed/nameless-brook-uessi?fontsize=14&hidenavigation=1&theme=dark&view=preview" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" title="nameless-brook-uessi" allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"></iframe>interface CarouselProps {
list: Array<ItemType>;
wrapperClasses?: string | string[] | any;
showBullets?: boolean;
customButtons?: {
next: React.ElementType;
prev: React.ElementType;
};
}
<SimpleCarousel list={[{
content: <div> Item </div>
}]}>
This prop receive a array of items typeof ItemType
interface ItemType {
content: JSX.Element;
onClickItem?: Function;
itemCustomClass?: ClassValue[] | any;
}
See in folder examples/my-carousel a example using create-react-app
// index.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
// App.jsx
import React from 'react';
import { SimpleCarousel } from '@arranjae/react-simple-carousel';
import '@arranjae/react-simple-carousel/src/styles.scss';
const App = () => {
return (
<div>
<h1>
Its works!!
<br /> We have a wonderfull carousel!
</h1>
<SimpleCarousel
list={[
{
content: (
<div className="box-item">
<h1>Box Item 1</h1>
<p>Box in my carousel</p>
</div>
),
},
{
content: (
<div className="box-item">
<h1>Box Item 2</h1>
<p>Box in my carousel</p>
</div>
),
},
{
content: (
<div className="box-item">
<h1>Box Item 3</h1>
<p>Box in my carousel</p>
</div>
),
},
{
content: (
<div className="box-item">
<h1>Box Item 4</h1>
<p>Box in my carousel</p>
</div>
),
},
]}
/>
</div>
);
};
export default App;