@mixin arrow-control { width: 10%; min-width: $Carousel-arrowControl-width; height: 100%; cursor: pointer; position: absolute; transition-duration: $Carousel-transitionDuration; svg { position: absolute; top: 50%; left: 50%; right: 50%; transform: translate(-50%, -50%); width: $Carousel-svg-width; height: $Carousel-svg-height; } } .#{$ns}Carousel { min-width: $Carousel-minWidth; height: $Carousel-height; position: relative; display: block; background: $Carousel-bg; &.#{$ns}Carousel--light { .#{$ns}Carousel-dot { background-color: $Carousel--light-control; } svg { fill: $Carousel--light-control; } .#{$ns}Carousel-item { .title, .description { color: $Carousel--light-control; } } } &.#{$ns}Carousel--dark { .#{$ns}Carousel-dot { background-color: $Carousel--dark-control; } svg { fill: $Carousel--dark-control; } .#{$ns}Carousel-item { .title, .description { color: $Carousel--dark-control; } } } &-container { width: 100%; height: 100%; position: relative; overflow: hidden; .#{$ns}Carousel-item { width: 100%; height: 100%; position: absolute; transition: ease-out all $Carousel-transitionDuration; &.fade { opacity: 0; } &.fade.in { opacity: 1; } &.slide { transform: translateX(100%); } &.slide.in { transform: translateX(0); } &.slide.out { transform: translateX(-100%); } &.slideRight { transform: translateX(-100%); } &.slideRight.in { transform: translateX(0); } &.slideRight.out { transform: translateX(100%); } .title { position: absolute; bottom: $Carousel-imageTitle-bottom; text-align: center; width: 100%; opacity: 0.8; } .description { position: absolute; bottom: $Carousel-imageDescription-bottom; text-align: center; width: 100%; opacity: 0.8; } .image { width: 100%; height: 100%; background-size: cover; } } } &-dotsControl { position: absolute; bottom: 0px; width: 100%; z-index: 100; text-align: center; .#{$ns}Carousel-dot { display: inline-block; height: $Carousel-dot-width; width: $Carousel-dot-height; border-radius: $Carousel-dot-borderRadius; margin: $Carousel-dot-margin; transition-duration: $Carousel-transitionDuration; opacity: 0.3; &.is-active { opacity: 1; } } } &-arrowsControl { position: absolute; width: 100%; height: inherit; z-index: 100; text-align: center; .#{$ns}Carousel-leftArrow { @include arrow-control; left: 0; } .#{$ns}Carousel-rightArrow { @include arrow-control; right: 0; } } }