Carousel Controls
<!-- All markup is for demo purposes to illustrate different themes -->
<div class="demo-container">
<div class="demo-container__inner">
<div class="carousel js-demo-carousel">
<div class="demo-carousel__item">1</div>
<div class="demo-carousel__item">2</div>
<div class="demo-carousel__item">3</div>
<div class="demo-carousel__item">4</div>
<div class="demo-carousel__item">5</div>
<div class="demo-carousel__item">6</div>
<div class="demo-carousel__item">7</div>
<div class="demo-carousel__item">8</div>
<div class="demo-carousel__item">9</div>
<div class="demo-carousel__item">10</div>
<div class="demo-carousel__item">11</div>
<div class="demo-carousel__item">12</div>
</div>
</div>
</div>
<!-- Dark Version -->
<div class="demo-container" style="background-color: #000a3c">
<div class="demo-container__inner">
<div class="carousel carousel--dark js-demo-carousel">
<div class="demo-carousel__item">1</div>
<div class="demo-carousel__item">2</div>
<div class="demo-carousel__item">3</div>
<div class="demo-carousel__item">4</div>
<div class="demo-carousel__item">5</div>
<div class="demo-carousel__item">6</div>
<div class="demo-carousel__item">7</div>
<div class="demo-carousel__item">8</div>
<div class="demo-carousel__item">9</div>
<div class="demo-carousel__item">10</div>
<div class="demo-carousel__item">11</div>
<div class="demo-carousel__item">12</div>
</div>
</div>
</div>
<!-- Grey Version -->
<div class="demo-container" style="background-color: #f1f1f1">
<div class="demo-container__inner">
<div class="carousel carousel--grey js-demo-carousel">
<div class="demo-carousel__item">1</div>
<div class="demo-carousel__item">2</div>
<div class="demo-carousel__item">3</div>
<div class="demo-carousel__item">4</div>
<div class="demo-carousel__item">5</div>
<div class="demo-carousel__item">6</div>
<div class="demo-carousel__item">7</div>
<div class="demo-carousel__item">8</div>
<div class="demo-carousel__item">9</div>
<div class="demo-carousel__item">10</div>
<div class="demo-carousel__item">11</div>
<div class="demo-carousel__item">12</div>
</div>
</div>
</div>
<!-- Minimal Version (No backgrounds/fades) -->
<div class="demo-container">
<div class="demo-container__inner">
<div class="carousel carousel--minimal js-demo-carousel">
<div class="demo-carousel__item">1</div>
<div class="demo-carousel__item">2</div>
<div class="demo-carousel__item">3</div>
<div class="demo-carousel__item">4</div>
<div class="demo-carousel__item">5</div>
<div class="demo-carousel__item">6</div>
<div class="demo-carousel__item">7</div>
<div class="demo-carousel__item">8</div>
<div class="demo-carousel__item">9</div>
<div class="demo-carousel__item">10</div>
<div class="demo-carousel__item">11</div>
<div class="demo-carousel__item">12</div>
</div>
</div>
</div>
<!-- Equal Height Slides -->
<div class="demo-container">
<div class="demo-container__inner">
<div class="carousel carousel--equal-height-slides js-demo-carousel">
<div class="demo-carousel__item">1</div>
<div class="demo-carousel__item">Equal Height Slides</div>
<div class="demo-carousel__item">3</div>
<div class="demo-carousel__item">4</div>
<div class="demo-carousel__item">5</div>
<div class="demo-carousel__item">6</div>
<div class="demo-carousel__item">7</div>
<div class="demo-carousel__item">8</div>
<div class="demo-carousel__item">9</div>
<div class="demo-carousel__item">10</div>
<div class="demo-carousel__item">11</div>
<div class="demo-carousel__item">12</div>
</div>
</div>
</div>
<!-- Styles for Demo - Do Not Use -->
<style>
.demo-container {
padding: 4.4rem 0;
}
.demo-container__inner {
max-width: 1140px;
margin: 0 auto;
}
.demo-carousel__item {
background: #f1f1f1;
color: #000a3c;
font-size: 3.6rem;
line-height: 3rem;
margin: 0 1.2rem;
padding: 6.4rem;
text-align: center;
}
.carousel--grey .demo-carousel__item {
background-color: #fff;
}
</style>
.carousel {
.slick-dots {
padding: 0;
margin: 0;
list-style: none;
text-align: center;
bottom: auto;
@media (min-width: $breakpoint-desktop) {
position: absolute;
top: 0;
right: 0;
transform: translateY(-150%);
width: auto;
}
li {
position: relative;
display: inline-block;
margin: 0 0.1rem;
padding: 0;
cursor: pointer;
button {
font-size: 0;
line-height: 0;
display: block;
padding: 0.2rem;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
&::before {
font-family: "FontAwesome";
font-size: 2.4rem;
line-height: 1;
content: "\f068";
text-align: center;
color: $color-blue-dark;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
opacity: 1;
}
&:hover,
&:focus {
outline: none;
}
&:hover::before,
&:focus::before {
opacity: 1;
}
}
}
li.slick-active button::before {
opacity: 1;
color: $color-blue-light;
content: "\f068";
}
}
.slick-arrow {
height: 100%;
width: 4.8rem;
position: absolute;
z-index: 1;
}
.slick-prev {
left: 0;
background: linear-gradient(
to right,
rgba($color-base-white, 1),
rgba($color-base-white, 0)
);
}
.slick-next {
right: 0;
background: linear-gradient(
to right,
rgba($color-base-white, 0),
rgba($color-base-white, 1)
);
}
.slick-arrow::before {
color: $color-base-blue;
font-family: "FontAwesome";
opacity: 1;
position: absolute;
transform: translateY(-50%);
}
.slick-prev::before {
left: -2.4rem;
content: "\f053";
}
.slick-next::before {
right: -2.4rem;
content: "\f054";
}
.slick-arrow:hover,
.slick-arrow:focus {
&::before {
color: $color-blue-medium;
}
}
.slick-disabled {
display: none !important;
}
// Carousel Dark
&.carousel--dark {
.slick-arrow::before {
color: $color-base-white;
}
.slick-arrow:hover,
.slick-arrow:focus {
&::before {
color: $color-blue-medium;
}
}
.slick-prev {
left: 0;
background: linear-gradient(
to right,
rgba($color-base-blue, 1),
rgba($color-base-blue, 0)
);
}
.slick-next {
right: 0;
background: linear-gradient(
to right,
rgba($color-base-blue, 0),
rgba($color-base-blue, 1)
);
}
}
// Carousel Grey
&.carousel--grey {
.slick-prev {
background: linear-gradient(
to right,
rgba($color-base-grey, 1),
rgba($color-base-grey, 0)
);
}
.slick-next {
background: linear-gradient(
to right,
rgba($color-base-grey, 0),
rgba($color-base-grey, 1)
);
}
}
// Carousel No Backgrounds
&.carousel--minimal {
.slick-arrow {
width: 0;
}
.slick-prev,
.slick-next {
background: none;
}
}
// Force slides to be equal heights
&.carousel--equal-height-slides {
.slick-track {
display: flex !important;
}
.slick-slide {
height: inherit !important;
display: flex;
flex-direction: column;
}
}
}
$(document).ready(function () {
$(".js-demo-carousel").slick({
arrows: false,
dots: true,
infinite: false,
mobileFirst: true,
slidesToScroll: 1,
slidesToShow: 1,
responsive: [
{
breakpoint: 767,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
},
},
{
breakpoint: 1199,
settings: {
arrows: true,
slidesToShow: 4,
slidesToScroll: 4,
},
},
],
});
});