@exadel/esl
Version:
Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components
82 lines (65 loc) • 1.56 kB
text/less
/** Nav control mixin defaults */
[esl-carousel-nav]:not([active]) {
display: none;
}
[esl-carousel-nav][disabled] {
pointer-events: none;
}
:root {
// variable to make clickable area larger
--esl-carousel-arrow-size: 40px;
--esl-carousel-arrow-padding: 0px;
--esl-carousel-arrow-bg: grey;
}
/** Arrow navigation styles */
.esl-carousel-nav-container {
position: relative;
/* stylelint-disable-next-line */
--esl-carousel-arrow-offset: calc((var(--esl-carousel-arrow-size) + var(--esl-carousel-arrow-padding) + var(--esl-carousel-side-space)) * -1);
}
.esl-carousel-arrow {
position: absolute;
z-index: 3;
top: 50%;
transform: translateY(-50%);
padding: var(--esl-carousel-arrow-padding);
display: grid;
place-content: center;
background: none;
border: none;
cursor: pointer;
appearance: none;
filter: drop-shadow(0 0 4px var(--esl-carousel-arrow-bg));
opacity: 0.75;
&:hover {
opacity: 1;
}
&[disabled] {
opacity: 0.25;
}
}
// Positioning
.esl-carousel-arrow.prev {
left: var(--esl-carousel-arrow-offset);
&.inner {
left: 0;
}
}
.esl-carousel-arrow.next {
right: var(--esl-carousel-arrow-offset);
&.inner {
right: 0;
}
}
// Arrow icon
.esl-carousel-arrow::before {
content: '';
display: block;
width: var(--esl-carousel-arrow-size);
height: var(--esl-carousel-arrow-size);
background: var(--esl-carousel-arrow-bg);
clip-path: polygon(20% 50%, 70% 0%, 80% 5%, 35% 50%, 80% 95%, 70% 100%);
}
.esl-carousel-arrow.next::before {
transform: scaleX(-1);
}