How to create a simple testimonial carousel with Splide.js
Tags: css, html, todayilearned, beginners
Published: 2021-07-18 10:41:29

## Appetizer  
  
Today we will learn how to create a testimonial carousel with Splide

Now why Splide and not others such as Swiperjs and Owl-carousel is that it's totally dependency free - hence less size. 
So let's get cracking.  


  
## Main Course  

**Step 1**: Get the latest Splide CDN 

Let's grab the CDN from JSDeliver and import the Splide package into our code. Paste the code right after where the `</body>` tag ends. Reason for placing it at the bottom like we are doing now is we don't slow down the initial render of HTML.

`<script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@2.4.21/dist/js/splide.min.js"></script>`  

**Step 2**: CDN link for styling  

Now Splide comes with its own default as well as two thematic styling which are sea-green and sky-blue. If you are one of those people who loves custom styling things then just the default one which comes with basic styling such as arrows, pagination can be a great choice.

```
<link
rel="stylesheet"  
href="https://cdn.jsdelivr.net/npm/@splidejs/splide@2.4.21/dist/css/splide.min.css"
/>
```  
**Step 3**: Fundamental structure 
	Learning the very basic structure is important if you are building a custom site for somebody or yourself and want to apply your own styling. Here go ahead and type that in.
	
```
<div class="splide">
	<div class="splide__track">
		<ul class="splide__list">
			<li class="splide__slide"></li>
			<li class="splide__slide"></li>
			<li class="splide__slide"></li>
		</ul>
	</div>
</div>
```  
**Step 4**: Adding the slide content - which in our case is the testimonial content inside **each** of the `<li class="splide__slide"></li>` tags.

```
<div class="splide__slide__container">
    <div class="slide__content">"I'm flabbergasted after using this product. No Regrets. Ever."
    </div>
</div>
```

Inside `splide__slide__container` is where we do all the adjustments such are setting the `max-width` for the content.  
Tip:  Having `splide__slide__container` is also pretty useful if you are having an image and you want to set a specific height for your image and go full blown cover mode but more on that later.

Now let us turn this plain text into something pretty.  

**Step 5**: Styling your slide

 - add padding
 - centering the text content inside the container
 
 
*General Tip 1*: When in doubt, add a `border-radius: 1px solid red` around the element to easily identify where you are actually applying your styles.
 
*General Tip 2*: Always, I mean always just have your Dev tools open at all times while you are checking where you are applying certain styling like your padding. 90% of the problems can be solved by simply inspecting the element. 
  
```
<style>
      *{
        box-sizing: border-box;
        font-family: 'Inter', sans-serif;
      }

      body{
        margin: 4rem 0;
        
      }
      .splide__slide{
        padding: 6rem;
        display: flex;
        justify-content: center;
        background: #ECF0F1 ;

      }

      .splide__slide__container{
        width: 600px;
        text-align: center;
      }

      .slide__content{
      margin: 1rem 0;
      font-size: 1.3rem;
      }

      .slide-img__wrapper{
        display: flex;
        align-items: center;

      }

      .slide-img{
        width: 60px;
        height: 60px;
        border-radius: 50%;
        max-width: 100%;
        max-height: 100%;
      }

      .slide-img__caption{
        margin-left: 1rem;
      }

      .slide-img__caption span{
        color: #2E86C1 ;
        font-weight: 500;
      }
    </style>
```

**Step 6**: Adding JavaScript  
Activate the carousel by creating a new Splide object to the HTML on page load.
```
<script>
	document.addEventListener( 'DOMContentLoaded', function () {
		new Splide( '.splide' ).mount();
	} );
</script>
```

and with this the carousel is done. Now if you want to further modify it, here's the trick. Go to the HTML page. Inspect the whole page and you can notice that there are elements like `splide__arrows` and `splide__pagination`. What do these mean ?

![Splide pagination custom styling](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20c80i5xw96kmwddz2v3.png)
	
**Step 7**: Applying custom styles to Carousel elements (arrows, pagination)  

If you are building a website which has a primary color and you would like to apply these to the arrows and the pagination at the bottom of the slide, you can just apply styles by grabbing the element class names from Dev tools and applying styles to them.



As an example,let's change the default style of the pagination circles.  

`
.splide__pagination__page.is-active {
	    transform: scale(1.5); //here I have changed the scale from 1.4 to 1.5
    background: #0b72e7; //changed from default bg-color to blue
}
`
This means that when the the current page is active, the color will be activated.  

Same method can be used for the splide__arrows as well !


## Dessert

There are sure a few more amazing way to modify your slider and for that do go check out the [Splide Docs](https://splidejs.com/getting-started/).

Find the whole code for this article on my [Codesandbox](https://codesandbox.io/s/splidejs-carousel-4hgvl?file=/index.html)

Hope you learned something new. Till then keep sliding !
 
![dessert gif](https://media.giphy.com/media/xjZtu4qi1biIo/giphy.gif)