UNPKG

vuestic-ui

Version:
139 lines 3.32 kB
:root, :host { --va-carousel-background: var(--va-background-secondary); --va-carousel-border-radius: var(--va-block-border-radius); --va-carousel-box-shadow: var(--va-box-shadow); --va-carousel-slides-transition: all 0.3s ease-in-out; --va-carousel-indicators-gap: 0.25rem; --va-carousel-min-height: 80px; /** Fake padding for absolute position elements */ --va-carousel-padding: 16px; } @keyframes va-carousel-fade-appear { 0% { opacity: 0; } 100% { opacity: 1; } } .va-carousel { display: flex; width: 100%; height: 100%; max-height: 100%; min-height: var(--va-carousel-min-height); background: var(--va-carousel-background); box-shadow: var(--va-carousel-box-shadow); border-radius: var(--va-carousel-border-radius); position: relative; overflow: hidden; } .va-carousel__content { flex: 1; width: 100%; white-space: nowrap; } .va-carousel__slides { width: 100%; height: 100%; transition: var(--va-carousel-slides-transition); } .va-carousel__slide { display: inline-flex; justify-content: center; align-items: center; width: 100%; height: 100%; overflow: hidden; } .va-carousel__indicators { width: 100%; position: absolute; bottom: var(--va-carousel-padding); display: flex; justify-content: center; z-index: 2; overflow-x: auto; left: 50%; transform: translateX(-50%); scrollbar-color: var(--va-background-element) transparent; scrollbar-width: thin; transition: scrollbar-color 0.3s ease-in-out; } .va-carousel__indicators::-webkit-scrollbar { width: 4px; height: 4px; } .va-carousel__indicators::-webkit-scrollbar-track { box-shadow: none; border-radius: 10px; } .va-carousel__indicators::-webkit-scrollbar-thumb { background: var(--va-background-element); opacity: 0.3; border-radius: 2px; -webkit-transition: background 0.3s ease-in-out; transition: background 0.3s ease-in-out; } .va-carousel__indicators > * { margin: 0 var(--va-carousel-indicators-gap); } .va-carousel__arrow { z-index: 1; width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; } .va-carousel__arrow--right { right: var(--va-carousel-padding); position: absolute; top: 50%; transform: translateY(-50%); } .va-carousel__arrow--left { left: var(--va-carousel-padding); position: absolute; top: 50%; transform: translateY(-50%); } .va-carousel--vertical .va-carousel__slide { display: flex; } .va-carousel--vertical .va-carousel__arrow { z-index: 1; } .va-carousel--vertical .va-carousel__arrow--right { bottom: var(--va-carousel-padding); top: auto; left: 50%; transform: translateX(-50%); } .va-carousel--vertical .va-carousel__arrow--left { top: var(--va-carousel-padding); left: 50%; transform: translateX(-50%); } .va-carousel--vertical .va-carousel__indicators { left: var(--va-carousel-padding); flex-direction: column; width: auto; height: 100%; top: 50%; transform: translateY(-50%); overflow-x: hidden; overflow-y: auto; } .va-carousel--vertical .va-carousel__indicators > * { margin: var(--va-carousel-indicators-gap) 0; } .va-carousel .va-image { height: 100%; width: 100%; } .va-carousel .va-button:focus-visible { outline: 2px solid var(--va-focus) !important; border-radius: "inherit"; outline-offset: -2px; }