123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- @use 'sass:math';
- @use 'mixins/mixins' as *;
- @use 'mixins/var' as *;
- @use 'mixins/utils' as *;
- @use 'common/var' as *;
- @include b(carousel) {
- @include set-component-css-var('carousel', $carousel);
- position: relative;
- @include m(horizontal) {
- overflow-x: hidden;
- }
- @include m(vertical) {
- overflow-y: hidden;
- }
- @include e(container) {
- position: relative;
- height: 300px;
- }
- @include e(arrow) {
- border: none;
- outline: none;
- padding: 0;
- margin: 0;
- height: getCssVar('carousel', 'arrow-size');
- width: getCssVar('carousel', 'arrow-size');
- cursor: pointer;
- transition: getCssVar('transition', 'duration');
- border-radius: 50%;
- background-color: getCssVar('carousel', 'arrow-background');
- color: $color-white;
- position: absolute;
- top: 50%;
- z-index: 10;
- transform: translateY(-50%);
- text-align: center;
- font-size: getCssVar('carousel', 'arrow-font-size');
- @include utils-inline-flex-center;
- @include m(left) {
- left: 16px;
- }
- @include m(right) {
- right: 16px;
- }
- &:hover {
- background-color: getCssVar('carousel', 'arrow-hover-background');
- }
- & i {
- cursor: pointer;
- }
- }
- @include e(indicators) {
- position: absolute;
- list-style: none;
- margin: 0;
- padding: 0;
- z-index: calc(#{getCssVar('index-normal')} + 1);
- @include m(horizontal) {
- bottom: 0;
- left: 50%;
- transform: translateX(-50%);
- }
- @include m(vertical) {
- right: 0;
- top: 50%;
- transform: translateY(-50%);
- }
- @include m(outside) {
- bottom: calc(
- getCssVar('carousel-indicator-height') +
- getCssVar('carousel-indicator-padding-vertical') * 2
- );
- text-align: center;
- position: static;
- transform: none;
- .#{$namespace}-carousel__indicator:hover button {
- opacity: 0.64;
- }
- button {
- background-color: getCssVar('carousel', 'indicator-out-color');
- opacity: 0.24;
- }
- }
- @include m(labels) {
- left: 0;
- right: 0;
- transform: none;
- text-align: center;
- .#{$namespace}-carousel__button {
- height: auto;
- width: auto;
- padding: 2px 18px;
- font-size: 12px;
- color: $color-black;
- }
- .#{$namespace}-carousel__indicator {
- padding: 6px 4px;
- }
- }
- }
- @include e(indicator) {
- background-color: transparent;
- cursor: pointer;
- &:hover button {
- opacity: 0.72;
- }
- @include m(horizontal) {
- display: inline-block;
- padding: getCssVar('carousel-indicator-padding-vertical')
- getCssVar('carousel-indicator-padding-horizontal');
- }
- @include m(vertical) {
- padding: getCssVar('carousel-indicator-padding-horizontal')
- getCssVar('carousel-indicator-padding-vertical');
- .#{$namespace}-carousel__button {
- width: getCssVar('carousel-indicator-height');
- height: calc(#{getCssVar('carousel-indicator-width')} / 2);
- }
- }
- @include when(active) {
- button {
- opacity: 1;
- }
- }
- }
- @include e(button) {
- display: block;
- opacity: 0.48;
- width: getCssVar('carousel-indicator-width');
- height: getCssVar('carousel-indicator-height');
- background-color: $color-white;
- border: none;
- outline: none;
- padding: 0;
- margin: 0;
- cursor: pointer;
- transition: getCssVar('transition-duration');
- }
- }
- .carousel-arrow-left-enter-from,
- .carousel-arrow-left-leave-active {
- transform: translateY(-50%) translateX(-10px);
- opacity: 0;
- }
- .carousel-arrow-right-enter-from,
- .carousel-arrow-right-leave-active {
- transform: translateY(-50%) translateX(10px);
- opacity: 0;
- }
|