* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
@import '../custom.less';
@import './vars.less';
@import '../transition/carousel-arrow.less';
@carousel-prefix-cls: ~'@{css-prefix}carousel';
@svg-prefix-cls: ~'@{css-prefix}svg';
.@{carousel-prefix-cls} {
.inject-Carousel-vars();
overflow: hidden;
position: relative;
&&--card {
.@{carousel-prefix-cls}__indicators {
display: none;
}
}
&__container {
position: relative;
height: 300px;
.@{carousel-prefix-cls}__arrow {
border: none;
outline: 0;
padding: 0;
margin: 0;
height: var(--tv-Carousel-arrow-height);
width: var(--tv-Carousel-arrow-width);
cursor: pointer;
transition: 0.3s;
border-radius: 50%;
background-color: var(--tv-Carousel-arrow-bg-color);
color: var(--tv-Carousel-indicator-active-text-color);
position: absolute;
top: 50%;
z-index: 3;
transform: translateY(-50%);
text-align: center;
font-size: var(--tv-Carousel-arrow-font-size);
display: flex;
align-items: center;
justify-content: center;
opacity: 0.5;
.@{svg-prefix-cls} {
fill: var(--tv-Carousel-indicator-active-text-color);
&:hover {
fill: var(--tv-Carousel-indicator-hover-text-color);
}
}
&.@{carousel-prefix-cls}__arrow-left {
left: 16px;
background-color: var(--tv-Carousel-arrow-left-bg-color);
svg {
fill: var(--tv-Carousel-arrow-svg-color);
}
}
&.@{carousel-prefix-cls}__arrow-right {
right: 16px;
background-color: var(--tv-Carousel-arrow-right-bg-color);
svg {
fill: var(--tv-Carousel-arrow-svg-color);
}
}
&.@{carousel-prefix-cls}__arrow-top {
top: 0;
left: 50%;
transform: translateX(-50%);
}
&.@{carousel-prefix-cls}__arrow-bottom {
bottom: 0;
left: 50%;
top: unset;
transform: translateX(-50%);
}
&.@{carousel-prefix-cls}__arrow-disabled {
background-color: var(--tv-Carousel-arrow-bg-color-disabled);
cursor: not-allowed;
.@{svg-prefix-cls} {
fill: var(--tv-Carousel-arrow-icon-color-disabled);
}
}
&:not(.@{carousel-prefix-cls}__arrow-disabled):hover {
background-color: var(--tv-Carousel-arrow-hover-bg-color);
color: var(--tv-Carousel-arrow-hover-text-color);
}
i {
cursor: pointer;
}
}
}
& &__indicators {
position: absolute;
list-style: none;
bottom: 0;
left: 50%;
transform: translateX(-50%);
margin: 0 0 16px;
padding: 0 4px;
z-index: 2;
background: none;
border-radius: var(--tv-Carousel-indicators-border-radius);
height: var(--tv-Carousel-indicators-height);
.@{carousel-prefix-cls}__indicator {
display: inline-block;
background-color: transparent;
padding: 0;
margin-right: 12px;
cursor: pointer;
&:last-child {
margin-right: 0;
}
&:hover button {
opacity: 0.8;
}
&.is-active {
width: var(--tv-Carousel-indicator-active-width);
background-color: var(--tv-Carousel-indicator-active-background-color);
border-radius: var(--tv-Carousel-indicator-active-border-radius);
transition: none;
}
&.is-active button {
transition-property: none;
transition-timing-function: cubic-bezier(0.16, 0.75, 0.5, 1);
border-radius: var(--tv-Carousel-indicator-active-border-radius);
background-color: var(--tv-Carousel-outside-button-active-bg-color);
width: var(--tv-Carousel-indicator-active-button-width);
}
.@{carousel-prefix-cls}__button {
display: block;
width: 8px;
height: 8px;
background-color: var(--tv-Carousel-indicator-button-bg-color);
border: none;
outline: 0;
padding: 0;
margin: 0;
cursor: pointer;
transition: 0.3s;
border-radius: 50%;
}
}
&.@{carousel-prefix-cls}__indicators-outside {
bottom: 26px;
text-align: center;
position: static;
transform: none;
margin-top: 16px;
background: transparent;
button {
background-color: var(--tv-Carousel-outside-button-bg-color);
}
.@{carousel-prefix-cls}__indicator {
&:hover button {
opacity: 0.6;
}
&.is-active button {
background-color: var(--tv-Carousel-outside-button-active-bg-color);
}
}
}
&.@{carousel-prefix-cls}__indicators-labels {
left: 0;
right: 0;
transform: none;
text-align: center;
.@{carousel-prefix-cls}__button {
padding: 2px 18px;
font-size: var(--tv-Carousel-labels-button-font-size);
}
.@{carousel-prefix-cls}__indicator {
padding: 6px 4px;
}
}
&.@{carousel-prefix-cls}__indicators-title {
left: auto;
right: 16px;
bottom: 0;
margin: 0 0 16px;
transform: none;
background: transparent;
}
&.@{carousel-prefix-cls}__indicators-vertical {
left: 16px;
right: 0;
bottom: 50%;
width: 16px;
height: auto;
transform: translateY(50%);
padding: 2px 0;
margin: 0;
.@{carousel-prefix-cls}__indicator {
display: block;
margin: 0 0 12px;
padding: 0;
&:first-child {
padding-left: 0;
}
&:last-child {
padding-right: 0;
}
}
}
&:not(.@{carousel-prefix-cls}__indicators-vertical) {
display: flex;
justify-content: center;
align-items: center;
}
}
}