Simplest way to add Slider in React
Tags: webdev, beginners, tutorial, react
Published: 2024-03-09 18:14:38

If you're a beginner in the world of React and want to spice up your web application with a sleek image slider, you're in the right place. In this guide, we'll walk through the process of adding a slider to your React project using the Swiper package, and we'll style it effortlessly with Tailwind CSS. To make things even smoother, we'll be working with Vite, a fast and opinionated build tool.

### What is Swiper?
Swiper is a powerful and easy-to-use touch slider library for web and mobile applications. It provides a range of customization options and supports touch gestures, making it an ideal choice for creating responsive and interactive sliders.

### Prerequisites

Before we dive in, make sure you have Node.js installed on your machine. You can download it [here](https://nodejs.org/).

### Setting up Vite

Let's start by creating a new React project using Vite. Open your terminal and run the following commands:

```bash
npx create-vite my-slider-app --template react
cd my-slider-app
```

Now, let's install the required dependencies:

```bash
npm install swiper
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
```

### Configuring Tailwind CSS

Vite makes it simple to configure Tailwind CSS. Create a `tailwind.config.js` file in the project root with the following content:

```javascript
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}
```

Next, In the `src` folder and in `index.css` add the following code for tailwind css

```css
/* src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Your custom styles go here */
```

### Setting up Swiper

Let's create a simple React component to showcase the Swiper slider. Create a component directory and make a new file `Slider.jsx` and add following content:

```jsx
// src/components/Slider.jsx
import React from 'react';
import { Autoplay, A11y} from 'swiper/modules';
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';
import 'swiper/css/autoplay';
import 'swiper/css/controller';

const Slider = () => {

    const images = ['https://images.pexels.com/photos/16770561/pexels-photo-16770561/free-photo-of-scenic-view-of-green-hills-and-mountains.jpeg', 'https://images.pexels.com/photos/20041507/pexels-photo-20041507/free-photo-of-close-up-of-sleeping-cat.jpeg', 'https://images.pexels.com/photos/12187128/pexels-photo-12187128.jpeg', 'https://images.pexels.com/photos/11785594/pexels-photo-11785594.jpeg']

    return (
        <section className='bg-white mt-10 mx-4 sm:mx-8 md:mx-20 lg:mx-36 z-10'>
            <div className='text-center font-extrabold text-2xl my-8'>Your own Slider</div>
            <Swiper
                modules={[Autoplay, A11y]}
                spaceBetween={30} // Adjust the spacing as needed
                slidesPerView={1} // Show only one slide by default
                autoplay
            >
                {images.map((img, index) => (
                    <SwiperSlide key={index}>
                        <a href='/#'>
                            <img
                                src={img}
                                alt={`slide-${index + 1}`}
                                className='w-fit h-[500px] mx-auto select-none'
                            />
                        </a>
                    </SwiperSlide>
                ))}
            </Swiper>
        </section>
    );
};

export default Slider;
```

Now, integrate the Slider component into your `App.jsx`:

```jsx
import React from 'react'
import Slider from './components/Slider'

const App = () => {
  return (
    <>
      <div>
        <Slider />
      </div>
    </>
  )
}

export default App
```

Here, we are using the Swiper component and SwiperSlide component from the Swiper package to create a basic slider. Feel free to replace the image URLs with your own content.

### Running your Slider App

Now that everything is set up, run your development server:

```bash
npm run dev
```

Visit `http://localhost:5173` in your browser, and voila! You should see a beautiful slider in action.

### Preview
This image shows the final product we made in this blog

![Preview](https://github.com/rohitnirban/assets/blob/main/2024-03-09-23-29-43.gif?raw=true)

Congratulations! You've successfully added a slider to your React project using the Swiper package and styled it with Tailwind CSS. This combination of powerful tools allows you to create dynamic and visually appealing sliders effortlessly.

Feel free to check out the [Swiper documentation](https://swiperjs.com/get-started) for more ways to customize your slider and add cool features. You can change how the slider works, add more pictures, and let your imagination run wild to make your website more interesting for users. If you want to see some examples of different sliders in action, take a look at the [demos](https://swiperjs.com/demos) on the Swiper website. They'll give you a great idea of what you can do with your slider!

Now that you've mastered the art of integrating a slider in React with Tailwind CSS using Vite, you're well on your way to building more dynamic and responsive web applications. Happy coding!