@exadel/esl
Version:
Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components
88 lines (75 loc) • 1.59 kB
text/less
:root {
--esl-slide-initial-size: 100%;
--esl-carousel-side-space: 5px;
--esl-carousel-step-duration: 250ms;
}
// CORE styles
esl-carousel {
position: relative;
display: block;
max-width: 100%;
// Important to ignore padding/margin hack
box-sizing: content-box;
margin: calc(var(--esl-carousel-side-space, 0) * -1);
padding: var(--esl-carousel-side-space, 0);
/* stylelint-disable */
overflow: hidden; // Fallback
overflow: clip;
/* stylelint-enable */
&:not(.esl-carousel) [esl-carousel-slide] {
max-width: 100%;
max-height: 100%;
}
&.esl-carousel-vertical {
[esl-carousel-slides] {
flex-direction: column;
}
touch-action: pan-x;
}
&.esl-carousel-horizontal {
[esl-carousel-slides] {
flex-direction: row;
}
touch-action: pan-y;
}
&[dragging] {
cursor: grabbing;
}
&[animating] {
padding-inline: 0;
margin-inline: 0;
}
&[dragging] [esl-carousel-slides],
&[animating] [esl-carousel-slides] {
user-select: none;
pointer-events: none;
}
&[empty] {
--esl-carousel-side-space: 0;
[esl-carousel-slides] {
display: none;
}
}
}
/* Default carousel area styles */
[esl-carousel-slides] {
position: relative;
width: 100%;
margin: 0;
display: flex;
gap: 20px;
z-index: 0;
transform: translate3d(0px, 0px, 0px);
}
/* Default carousel slide styles */
[esl-carousel-slide] {
flex: 0 0 auto;
margin: 0;
padding: 0;
position: relative;
z-index: 1;
list-style: none;
}
.esl-carousel-no-extra-space {
--esl-carousel-side-space: 0;
}