react-sled
Version:
react-sled is a carousel made with react-spring.
200 lines (174 loc) • 3.59 kB
CSS
.sled {
position: relative;
overflow: hidden;
user-select: none;
}
.sled:focus,
.sled-view:focus {
outline: none;
}
/* .sled-proportion::after {
content: '';
display: block;
width: 100%;
height: 0;
} */
/* direction */
.sled-control-direction-default {
cursor: pointer;
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
background: none;
box-shadow: none;
border: none;
transition: opacity 0.5s, transform 0.5s;
opacity: 0.5;
}
.sled-control-direction-default.sled-control-direction-disabled {
pointer-events: none;
}
.sled-control-direction-default.sled-control-direction-prev {
transform-origin: right center;
}
.sled-control-direction-default.sled-control-direction-prev:before {
border-left: 3px solid black;
transform: rotate(-45deg);
}
.sled-control-direction-default.sled-control-direction-next {
transform-origin: left center;
}
.sled-control-direction-default.sled-control-direction-next:before {
border-right: 3px solid black;
transform: rotate(45deg);
}
.sled-control-direction-default:focus {
box-shadow: none;
outline: none;
}
.sled-control-direction-default:before {
content: '';
display: block;
flex-shrink: 0;
width: 15px;
height: 15px;
border-top: 3px solid black;
}
.sled-control-direction-default:focus {
opacity: 1;
}
.sled-control-direction-default:hover,
.sled-control-direction-default:active {
opacity: 1;
transform: scale(1.2);
}
.sled-control-direction-default-disabled {
opacity: 0.25;
}
/* index */
.sled-control-index-default {
cursor: pointer;
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
background: none;
box-shadow: none;
border: none;
transition: opacity 0.5s, transform 0.5s;
opacity: 0.4;
}
.sled-control-index-default.sled-control-index-disabled {
pointer-events: none;
}
.sled-control-index-default:focus {
box-shadow: none;
outline: none;
}
.sled-control-index-default:before {
content: '';
display: block;
flex-shrink: 0;
width: 10px;
height: 10px;
background: grey;
border-radius: 50%;
}
.sled-control-index-default:hover,
.sled-control-index-default:focus {
transform: scale(1.2);
}
.sled-control-index-default:hover,
.sled-control-index-default:focus,
.sled-control-index-default:active {
opacity: 0.6;
}
.sled-control-index-default:disabled {
pointer-events: none;
}
.sled-control-index-default-active {
opacity: 1;
pointer-events: none;
}.sled-progress-default {
position: relative;
width: 100%;
display: flex;
align-items: center;
overflow: hidden;
height: 20px;
}
.sled-progress-default-rail {
position: absolute;
left: 0;
width: 100%;
pointer-events: none;
background: black;
height: 4px;
}
.sled-progress-default-track {
background: red;
height: 4px;
}
.sled-progress-default-separators {
position: absolute;
z-index: 200;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
justify-content: space-between;
pointer-events: none;
}
.sled-progress-default-separator {
width: 4px;
background: white;
}
/* Mimic "justify-content: space-evenly;" */
.sled-progress-default-separators:before,
.sled-progress-default-separators:after {
content: '';
display: block;
height: 100%;
}
.sled-progress-default-controls {
position: absolute;
z-index: 100;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
}
.sled-progress-default-control {
position: absolute;
z-index: 100;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
}