1. html
Pure CSS carousels
2. css
@import url("https://fonts.googleapis.com/css?family=Roboto:900");
/**
* style variables
*/
/**
* Control & indicator mixin
*/
.carousel {
height: 300px;
width: 400px;
overflow: hidden;
text-align: center;
position: relative;
padding: 0;
list-style: none;
/**
* Where the magic happens
*/
/**
* Control element - right/left arrows
*/
/**
* Element for holding slide indicators
*/
/**
* Indicator for indicating active slide
*/
/**
* Create rules for when slides are contained within a track
*/
}
.carousel__controls,
.carousel__activator {
display: none;
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__track {
transform: translateX(0%);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__slide:nth-of-type(1) {
transition: opacity 0.5s, transform 0.5s;
top: 0;
left: 0;
right: 0;
opacity: 1;
transform: scale(1);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__controls:nth-of-type(1) {
display: block;
opacity: 1;
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(1) {
opacity: 1;
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__track {
transform: translateX(-100%);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__slide:nth-of-type(2) {
transition: opacity 0.5s, transform 0.5s;
top: 0;
left: 0;
right: 0;
opacity: 1;
transform: scale(1);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__controls:nth-of-type(2) {
display: block;
opacity: 1;
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(2) {
opacity: 1;
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__track {
transform: translateX(-200%);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__slide:nth-of-type(3) {
transition: opacity 0.5s, transform 0.5s;
top: 0;
left: 0;
right: 0;
opacity: 1;
transform: scale(1);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__controls:nth-of-type(3) {
display: block;
opacity: 1;
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(3) {
opacity: 1;
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__track {
transform: translateX(-300%);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__slide:nth-of-type(4) {
transition: opacity 0.5s, transform 0.5s;
top: 0;
left: 0;
right: 0;
opacity: 1;
transform: scale(1);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__controls:nth-of-type(4) {
display: block;
opacity: 1;
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(4) {
opacity: 1;
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__track {
transform: translateX(-400%);
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__slide:nth-of-type(5) {
transition: opacity 0.5s, transform 0.5s;
top: 0;
left: 0;
right: 0;
opacity: 1;
transform: scale(1);
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__controls:nth-of-type(5) {
display: block;
opacity: 1;
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(5) {
opacity: 1;
}
.carousel__control {
height: 30px;
width: 30px;
margin-top: -15px;
top: 50%;
position: absolute;
display: block;
cursor: pointer;
border-width: 5px 5px 0 0;
border-style: solid;
border-color: #fafafa;
opacity: 0.35;
outline: 0;
z-index: 3;
}
.carousel__control:hover {
opacity: 1;
}
.carousel__control--backward {
left: 10px;
transform: rotate(-135deg);
}
.carousel__control--forward {
right: 10px;
transform: rotate(45deg);
}
.carousel__indicators {
position: absolute;
bottom: 20px;
width: 100%;
text-align: center;
}
.carousel__indicator {
height: 15px;
width: 15px;
border-radius: 100%;
display: inline-block;
z-index: 2;
cursor: pointer;
opacity: 0.35;
margin: 0 2.5px 0 2.5px;
}
.carousel__indicator:hover {
opacity: 0.75;
}
.carousel__track {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 0;
margin: 0;
transition: transform 0.5s ease 0s;
}
.carousel__track .carousel__slide {
display: block;
top: 0;
left: 0;
right: 0;
opacity: 1;
}
.carousel__track .carousel__slide:nth-of-type(1) {
transform: translateX(0%);
}
.carousel__track .carousel__slide:nth-of-type(2) {
transform: translateX(100%);
}
.carousel__track .carousel__slide:nth-of-type(3) {
transform: translateX(200%);
}
.carousel__track .carousel__slide:nth-of-type(4) {
transform: translateX(300%);
}
.carousel__track .carousel__slide:nth-of-type(5) {
transform: translateX(400%);
}
.carousel--scale .carousel__slide {
transform: scale(0);
}
.carousel__slide {
height: 100%;
position: absolute;
overflow-y: auto;
opacity: 0;
}
/**
* Theming
*/
* {
box-sizing: border-box;
}
html,
body {
background-color: #111;
font-family: 'Roboto', sans-serif;
text-align: center;
color: #fff;
}
.carousel-container {
display: inline-block;
}
.my-carousel {
border-radius: 5px;
margin: 30px;
}
.carousel__slide {
overflow: hidden;
}
.carousel--thumb .carousel__indicator {
height: 30px;
width: 30px;
}
h1 {
font-size: 50px;
line-height: 50px;
color: #fafafa;
position: absolute;
top: 50%;
width: 100%;
text-align: center;
margin-top: -25px;
}
h2,
h3 {
color: #fafafa;
}
h3 {
font-size: 50px;
}
.carousel__indicator {
background-color: #fafafa;
}
.carousel__slide:nth-of-type(1),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(1) {
background-image: url("https://unsplash.it/300?random");
background-size: cover;
background-position: center;
}
.carousel__slide:nth-of-type(2),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(2) {
background-image: url("https://unsplash.it/600?random");
background-size: cover;
background-position: center;
}
.carousel__slide:nth-of-type(3),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(3) {
background-image: url("https://unsplash.it/900?random");
background-size: cover;
background-position: center;
}
.carousel__slide:nth-of-type(4),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(4) {
background-image: url("https://unsplash.it/1200?random");
background-size: cover;
background-position: center;
}
.carousel__slide:nth-of-type(5),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(5) {
background-image: url("https://unsplash.it/1500?random");
background-size: cover;
background-position: center;
}