UNPKG

rsuite

Version:

A suite of react components

193 lines (158 loc) 3.69 kB
@import '../../styles/common'; // Carousel // ---------------------- .rs-carousel { position: relative; height: 400px; overflow: hidden; background-color: var(--rs-carousel-bg); &-content { position: relative; width: 100%; height: 100%; overflow: hidden; } &-slider { position: relative; left: 0; height: 100%; transition: transform @carousel-animation-duration ease; will-change: transform; &-item { background-color: var(--rs-carousel-bg); float: left; height: 100%; width: 100%; } } &-slider-after { position: absolute; left: 0; height: 100%; width: 100%; background-color: var(--rs-carousel-bg); top: 0; animation: moveLeftHalf @carousel-animation-duration ease forwards; &-vertical { animation: moveLeftHalf-vertical @carousel-animation-duration ease forwards; } } &-toolbar { display: flex; align-items: center; justify-content: center; position: absolute; > ul { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; } } &-label-wrapper { margin: @carousel-handler-margin; input { width: 0; height: 0; position: absolute; opacity: 0; } input:checked ~ label { background-color: var(--rs-carousel-indicator-active); } } &-label { cursor: pointer; display: block; background-color: var(--rs-carousel-indicator); transition: @carousel-handler-transition; transition-property: background, width, height; position: relative; &::after { content: ''; position: absolute; top: -1 * @carousel-handler-sense-width; right: -1 * @carousel-handler-sense-width; bottom: -1 * @carousel-handler-sense-width; left: -1 * @carousel-handler-sense-width; } &:hover { background-color: var(--rs-carousel-indicator-hover); } } // Handler Shape &-shape-dot &-label { width: @carousel-dot-side-length; height: @carousel-dot-side-length; border-radius: 50%; } &-shape-bar &-label { border-radius: (@carousel-bar-height / 2); } &-placement-top&-shape-bar &-label, &-placement-bottom&-shape-bar &-label { width: @carousel-bar-width; height: @carousel-bar-height; &-wrapper input:checked ~ label { width: @carousel-bar-active-width; } } &-placement-left&-shape-bar &-label, &-placement-right&-shape-bar &-label { width: @carousel-bar-height; height: @carousel-bar-width; &-wrapper input:checked ~ label { height: @carousel-bar-active-width; } } // Placement &-placement-top &-toolbar, &-placement-bottom &-toolbar { left: 0; width: 100%; > ul { align-items: center; justify-content: center; } } &-placement-top &-toolbar { top: @carousel-toolbar-wrapper-margin; } &-placement-bottom &-toolbar { bottom: @carousel-toolbar-wrapper-margin; } &-placement-left &-toolbar, &-placement-right &-toolbar { top: 0; width: @carousel-dot-wrapper-side-length; height: 100%; > ul { align-items: center; justify-content: center; flex-direction: column; } } &-placement-left &-toolbar { left: @carousel-toolbar-wrapper-margin; } &-placement-right &-toolbar { right: @carousel-toolbar-wrapper-margin; } @keyframes moveLeftHalf { 0% { transform: none; } 100% { transform: translateX(-50%); } } @keyframes moveLeftHalf-vertical { 0% { transform: none; } 100% { transform: translateY(-50%); } } }