* 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 '../motion/index.less';
@tabs-prefix-cls: ~'@{css-prefix}tabs';
@tab-pane-prefix-cls: ~'@{css-prefix}tab-pane';
@dropdown-menu-prefix-cls: ~'@{css-prefix}dropdown-menu';
@popper-prefix-cls: ~'@{css-prefix}popper';
@tabs-more-dropdown-prefix-cls: ~'@{css-prefix}tabs__more-dropdown';
.@{tabs-more-dropdown-prefix-cls} {
.inject-Tabs-vars();
}
.@{tabs-prefix-cls} {
.inject-Tabs-vars();
&--left,
&--right,
&__content,
&__nav-scroll,
&__nav-wrap {
overflow: hidden;
}
&__header {
position: relative;
margin: 0;
padding: 0;
display: flex;
align-items: center;
.@{tabs-prefix-cls} {
&__active-bar {
position: absolute;
bottom: 0;
left: 0;
height: var(--tv-Tabs-item-active-border-weight);
list-style: none;
z-index: 1;
background-color: var(--tv-Tabs-item-active-border-color);
transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
&__new-tab {
margin-top: 3px;
height: 16px;
padding-left: 12px;
font-size: var(--tv-Tabs-header-separator-height);
display: inline-flex;
border-left: 1px solid var(--tv-Tabs-border-color);
justify-content: center;
align-items: center;
cursor: pointer;
transition: all 0.15s;
outline: none;
svg {
fill: var(--tv-Tabs-header-icon-color);
font-size: var(--tv-Tabs-more-icon-size);
padding: 4px;
&:hover {
fill: var(--tv-Tabs-header-icon-color-hover);
border-radius: 4px;
background-color: var(--tv-Tabs-header-icon-color-bg-hover);
}
}
}
&__nav-wrap {
display: flex;
align-items: center;
position: relative;
&.is-scrollable {
padding: 0 20px;
box-sizing: border-box;
}
}
&__nav-next,
&__nav-prev {
position: absolute;
line-height: var(--tv-Tabs-height);
font-size: var(--tv-Tabs-prev-next-btn-icon-size);
cursor: pointer;
color: var(--tv-Tabs-header-font-normal-text-color);
fill: var(--tv-Tabs-header-font-normal-text-color);
}
&__nav-next {
right: 0;
}
&__nav-prev {
left: 0;
}
&__nav:not(.is-stretch) {
.@{tabs-prefix-cls}__item__title {
display: block;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
&__nav {
float: left;
position: relative;
white-space: nowrap;
transition: transform 0.3s;
z-index: 2;
&.is-stretch {
display: flex;
min-width: 100%;
& > * {
flex-grow: 1;
text-align: center;
}
}
&.is-show-active-bar .@{tabs-prefix-cls}__item {
margin-right: var(--tv-Tabs-item-margin-right);
&.@{tabs-prefix-cls}__item-separator-space {
margin-right: 0;
}
}
}
}
}
& &__item-separator-space {
padding-left: calc(var(--tv-Tabs-header-separator-padding-horizontal) + 1px);
padding-right: var(--tv-Tabs-header-separator-padding-horizontal);
height: var(--tv-Tabs-header-separator-item-height);
&:last-child {
.@{tabs-prefix-cls}__item-separator {
display: none;
}
}
}
&__item {
position: relative;
display: inline-flex;
list-style: none;
height: var(--tv-Tabs-height);
line-height: var(--tv-Tabs-height);
box-sizing: border-box;
font-size: var(--tv-Tabs-item-font-size);
justify-content: center;
align-items: center;
color: var(--tv-Tabs-header-font-normal-text-color);
&-title {
display: inline-block;
vertical-align: bottom;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&-separator-space {
color: var(--tv-Tabs-header-separator-normal-text-color);
}
&:focus,
&:active {
outline: 0;
}
&:hover,
&.is-active {
color: var(--tv-Tabs-header-font-active-text-color);
cursor: pointer;
.@{tabs-prefix-cls}__icon-close svg {
fill: var(--tv-Tabs-icon-close-hover-text-color);
}
}
&.is-active {
font-weight: var(--tv-Tabs-header-font-weight-active);
&.is-disabled:hover {
font-weight: var(--tv-Tabs-header-font-weight-active);
}
}
&.is-disabled {
cursor: not-allowed;
color: var(--tv-Tabs-item-disabled-text-color);
&:hover {
font-weight: normal;
}
.@{tabs-prefix-cls}__icon-close {
&,
&:hover {
background-color: transparent;
svg {
fill: var(--tv-Tabs-item-disabled-text-color);
}
}
}
}
&.is-closable {
> div {
display: inline-block;
}
.@{tabs-prefix-cls}__icon-close {
display: inline-flex;
width: var(--tv-Tabs-icon-size-close);
height: var(--tv-Tabs-icon-size-close);
justify-content: center;
align-items: center;
}
}
& > div {
display: flex;
align-items: center;
}
.@{tabs-prefix-cls}__icon-close {
border-radius: 4px;
text-align: center;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
margin: var(--tv-Tabs-icon-close-margin-vertical) var(--tv-Tabs-icon-close-margin-right)
var(--tv-Tabs-icon-close-margin-vertical) var(--tv-Tabs-icon-close-margin-left);
display: inline-flex;
justify-content: center;
align-items: center;
vertical-align: middle;
background-color: var(--tv-Tabs-icon-close-default-bg-color);
svg {
font-size: var(--tv-Tabs-font-size-base);
transform: scale(0.9);
vertical-align: middle;
fill: var(--tv-Tabs-icon-close-icon-color);
}
&:hover {
svg {
fill: var(--tv-Tabs-icon-close-hover-text-color);
}
}
}
}
&__content {
position: relative;
margin: var(--tv-Tabs-content-margin-vertical) var(--tv-Tabs-content-margin-horizontal);
color: var(--tv-Tabs-header-font-normal-text-color);
}
.is-show-more {
padding: 0 48px 0 0;
}
&__more-container {
position: absolute;
right: 0;
font-size: var(--tv-Tabs-font-size-base);
color: var(--tv-Tabs-header-font-normal-text-color);
line-height: var(--tv-Tabs-height);
padding-top: 5px;
.tiny-dropdown__suffix-inner {
display: none;
}
.@{tabs-prefix-cls}__more {
padding: 0 var(--tv-Tabs-more-icon-padding-horizontal);
font-size: var(--tv-Tabs-item-font-size);
cursor: pointer;
color: var(--tv-Tabs-header-text-color);
outline: 0;
&:hover {
color: var(--tv-Tabs-more-hover-text-color);
}
&-icon {
position: relative;
display: flex;
cursor: pointer;
padding: 0 var(--tv-Tabs-more-icon-padding-horizontal);
height: var(--tv-Tabs-more-icon-height);
justify-content: center;
align-items: center;
font-size: 18px;
&::before {
content: '';
position: absolute;
left: 0;
top: 0;
display: inline-block;
width: 4px;
height: var(--tv-Tabs-more-left-box-height);
box-shadow: -3px 0px 4px 0px rgba(0, 0, 0, 0.08);
}
.tiny-svg {
font-size: var(--tv-Tabs-more-icon-size);
padding: 4px;
vertical-align: middle;
fill: var(--tv-Tabs-more-icon-color);
&:hover {
border-radius: 4px;
background-color: var(--tv-Tabs-header-icon-color-bg-hover);
}
}
}
}
}
&__more-dropdown {
&__more-item {
outline: 0;
&:hover {
font-weight: var(--tv-Tabs-dropdown-more-item-hover-font-weight);
background: var(--tv-Tabs-dropdown-more-item-hover-bg-color);
}
}
&.@{dropdown-menu-prefix-cls}.@{popper-prefix-cls} {
margin-top: var(--tv-Tabs-dropdown-more-margin-top);
overflow: auto;
&::-webkit-scrollbar {
width: 0;
}
}
}
&&--large {
.@{tabs-prefix-cls}__item {
font-size: 16px;
&.is-active {
font-size: 16px;
}
}
}
&&--small {
.@{tabs-prefix-cls}__item {
height: var(--tv-Tabs-small-height);
line-height: var(--tv-Tabs-small-height);
font-size: var(--tv-Tabs-small-item-font-size);
&.@{tabs-prefix-cls}__item-separator-space {
height: var(--tv-Tabs-small-separator-height);
line-height: var(--tv-Tabs-small-separator-height);
}
}
.@{tabs-prefix-cls}__nav-prev,
.@{tabs-prefix-cls}__nav-next {
line-height: var(--tv-Tabs-small-height);
font-size: var(--tv-Tabs-prev-next-btn-icon-size);
}
.@{tabs-prefix-cls}__nav.is-show-active-bar
.@{tabs-prefix-cls}__item:not(.@{tabs-prefix-cls}__item-separator-space) {
margin-right: var(--tv-Tabs-small-item-margin-right);
}
&.@{tabs-prefix-cls}--top .@{tabs-prefix-cls}__item-separator {
left: calc(var(--tv-Tabs-small-separator-padding-horizontal) + 1px);
}
&.@{tabs-prefix-cls}--button-card .@{tabs-prefix-cls}__item {
height: var(--tv-Tabs-small-button-card-height);
line-height: var(--tv-Tabs-small-button-card-height);
font-size: var(--tv-Tabs-small-button-card-font-size);
}
}
&:not(.@{tabs-prefix-cls}--button-card):not(.@{tabs-prefix-cls}--card) {
.@{tabs-prefix-cls}__header:has(> .@{tabs-prefix-cls}__nav-wrap-not-separator) {
&::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 1px;
z-index: 1;
background-color: var(--tv-Tabs-border-color);
}
}
}
&&--card {
&.@{tabs-prefix-cls}--left .@{tabs-prefix-cls}__nav,
&.@{tabs-prefix-cls}--right .@{tabs-prefix-cls}__nav {
width: 120px;
}
&.@{tabs-prefix-cls}--top {
& > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item {
&.is-active:first-child {
border-left: var(--tv-Tabs-item-top-right-border-weight) solid var(--tv-Tabs-border-color);
}
&.is-active {
border-top: var(--tv-Tabs-item-top-right-border-weight) solid var(--tv-Tabs-border-color);
border-left: 1px solid var(--tv-Tabs-border-color);
border-right: var(--tv-Tabs-item-top-right-border-weight) solid var(--tv-Tabs-border-color);
border-radius: 0;
&:before {
left: 0;
top: 0;
}
&.is-closable {
padding: 0 var(--tv-Tabs-item-padding-horizontal);
}
}
}
}
&.@{tabs-prefix-cls}--bottom {
& > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item {
&.is-active {
box-shadow: none;
&:before {
left: 0;
bottom: 0;
}
&.is-closable {
padding: 0 var(--tv-Tabs-item-padding-horizontal);
}
}
}
}
& > .@{tabs-prefix-cls}__header {
border-bottom: 1px solid var(--tv-Tabs-border-color);
.@{tabs-prefix-cls}__item {
border-bottom: 1px solid transparent;
border-left: 1px solid var(--tv-Tabs-item-card-border-color);
border-right: var(--tv-Tabs-item-top-right-border-weight) solid transparent;
border-top: 1px solid transparent;
transition:
color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),
padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
&:first-child {
border-left: none;
}
}
.@{tabs-prefix-cls}__nav {
border: 1px solid var(--tv-Tabs-item-card-border-color);
border-bottom: none;
top: 1px;
}
}
}
&&--border-card {
background: inherit;
border-top: 1px solid var(--tv-Tabs-border-color);
box-shadow: none;
&.@{tabs-prefix-cls}--top {
& > .@{tabs-prefix-cls}__header {
background-color: var(--tv-Tabs-header-dark-bg-color);
border: none;
margin: 0;
border-right: var(--tv-Tabs-dark-border-weight) solid var(--tv-Tabs-border-color);
border-bottom: var(--tv-Tabs-dark-border-weight) solid var(--tv-Tabs-border-color);
.@{tabs-prefix-cls}__item {
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
margin: -1px -1px 0;
color: var(--tv-Tabs-dark-text-color);
padding: 0 24px;
border: none;
height: var(--tv-Tabs-dark-item-height);
margin: var(--tv-Tabs-dark-margin-top) 4px 0 0;
line-height: var(--tv-Tabs-dark-item-height);
&:nth-child(2) {
padding: 0 12px;
}
&.is-active {
color: var(--tv-Tabs-dark-text-color-active);
background-color: var(--tv-Tabs-dark-bg-color-active);
border-top: none;
border-left: var(--tv-Tabs-dark-border-weight) solid var(--tv-Tabs-border-color);
border-right: var(--tv-Tabs-dark-border-weight) solid var(--tv-Tabs-border-color);
border-bottom-color: #fff;
border-radius: var(--tv-Tabs-dark-border-radius);
&:before {
left: 0;
top: 0;
}
&.is-closable {
padding: 0 var(--tv-Tabs-item-padding-horizontal);
}
}
&:not(.is-active) {
&:hover {
border-color: var(--tv-Tabs-border-color);
color: var(--tv-Tabs-dark-text-color-hover);
}
}
&:first-child {
margin-left: var(--tv-Tabs-dark-first-margin-left);
border-left: none;
}
}
.@{tabs-prefix-cls}__nav-prev,
.@{tabs-prefix-cls}__nav-next {
fill: #fff;
}
}
}
.@{tabs-prefix-cls}--border-card {
.@{tabs-prefix-cls}--bottom {
border-top: 0;
}
}
}
&&--button-card {
.@{tabs-prefix-cls}__header::after {
display: none;
}
.@{tabs-prefix-cls}__nav-wrap::after {
background-color: transparent;
}
.@{tabs-prefix-cls}__nav {
background-color: var(--tv-Tabs-button-card-nav-bg-color);
border-radius: var(--tv-Tabs-button-card-border-radius);
}
.@{tabs-prefix-cls}__item {
color: var(--tv-Tabs-button-card-item-text-color);
font-size: var(--tv-Tabs-button-card-item-font-size);
height: var(--tv-Tabs-button-card-item-height);
line-height: var(--tv-Tabs-button-card-item-height);
border: 1px solid transparent;
.@{tabs-prefix-cls} {
&__icon-close {
margin-left: -20px;
margin-right: 24px;
}
&__item-separator {
left: 1px;
}
}
&.is-disabled {
color: var(--tv-Tabs-item-disabled-text-color);
&:hover {
font-weight: normal;
color: var(--tv-Tabs-item-disabled-text-color);
}
}
&:hover {
color: var(--tv-Tabs-button-card-item-hover-text-color);
}
&.is-active {
background-color: var(--tv-Tabs-button-card-item-active-bg-color);
color: var(--tv-Tabs-button-card-item-active-text-color);
border: 1px solid var(--tv-Tabs-button-card-item-active-border-color);
border-radius: var(--tv-Tabs-button-card-border-radius);
font-weight: var(--tv-Tabs-button-card-font-weight);
}
&__title {
padding: 0 var(--tv-Tabs-button-card-title-padding-horizontal);
}
}
}
&&--card,
&&--border-card {
&.@{tabs-prefix-cls}--top,
&.@{tabs-prefix-cls}--bottom {
& > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item {
&.is-active:before {
position: absolute;
content: '';
width: 100%;
height: 3px;
background: var(--tv-Tabs-header-top-bar-active-bg-color);
}
.@{tabs-prefix-cls}__icon-close {
display: inline-flex;
justify-content: center;
align-items: center;
vertical-align: middle;
transform-origin: 100% 50%;
}
}
.is-scrollable {
padding: 0 24px;
}
}
& > .@{tabs-prefix-cls}__header {
.@{tabs-prefix-cls}__nav-wrap:after {
content: none;
}
}
}
&&--left {
.@{tabs-prefix-cls}__header {
float: left;
margin-right: 10px;
}
.@{tabs-prefix-cls}__nav-wrap {
margin-right: -1px;
}
.@{tabs-prefix-cls}__item {
text-align: left;
padding: 0 var(--tv-Tabs-item-vertical-padding-horizontal);
}
&.@{tabs-prefix-cls}--card {
.@{tabs-prefix-cls}__item {
border-left: 1px solid var(--tv-Tabs-border-color);
border-right: 1px solid var(--tv-Tabs-border-color);
&:first-child {
border-top: none;
}
&.is-active {
border-right-color: transparent;
border-left: var(--tv-Tabs-item-active-border-weight) var(--tv-Tabs-item-active-border-style)
var(--tv-Tabs-item-active-border-color);
border-bottom: none;
&:first-child {
border-top: none;
border-right-color: transparent;
}
}
}
.@{tabs-prefix-cls}__nav {
border-right: none;
}
.@{tabs-prefix-cls}__new-tab {
float: none;
}
}
&.@{tabs-prefix-cls}--border-card {
.@{tabs-prefix-cls}__header {
border-right: 1px solid var(--tv-Tabs-border-color);
}
.@{tabs-prefix-cls}__item {
border: 1px solid transparent;
margin: -1px -1px -1px 0;
&.is-active {
border: 1px solid var(--tv-Tabs-border-color);
border-left: none;
}
}
.@{tabs-prefix-cls}--border-card {
.@{tabs-prefix-cls}__item {
margin: -1px;
&.is-bottom {
&.is-active {
border-left: 1px solid var(--tv-Tabs-border-color);
}
}
}
}
}
.@{tabs-prefix-cls}__active-bar,
.@{tabs-prefix-cls}__nav-wrap::after {
right: auto;
left: 0;
}
}
&&--right {
.@{tabs-prefix-cls}__header {
float: right;
margin-left: 10px;
&.is-left {
margin-left: 0;
}
}
.@{tabs-prefix-cls}__nav-wrap {
margin-left: -1px;
&.is-left {
margin-left: 0;
}
&:after {
left: 0;
right: auto;
}
}
.@{tabs-prefix-cls}__nav-scroll {
height: 100%;
}
&.@{tabs-prefix-cls}--card {
.@{tabs-prefix-cls}__item {
border-bottom: none;
padding: 0 var(--tv-Tabs-item-vertical-padding-horizontal);
&.is-active {
border-left-color: transparent;
border-right: var(--tv-Tabs-item-active-border-weight) var(--tv-Tabs-item-active-border-style)
var(--tv-Tabs-item-active-border-color);
&:first-child {
border-left: none;
}
&.is-bottom {
border-top: 0;
border-right: 0;
border-left-color: var(--tv-Tabs-border-color);
&:first-child {
border-left: 1px solid var(--tv-Tabs-border-color);
}
}
}
&:first-child {
border-left: 1px solid var(--tv-Tabs-border-color);
border-top: none;
}
&.is-bottom {
&:first-child {
border-top: 1px solid var(--tv-Tabs-border-color);
}
&.is-active:first-child {
border-top: none;
}
}
&.is-top,
&.is-bottom {
background: transparent;
}
}
.@{tabs-prefix-cls}__nav {
border-bottom: 1px solid var(--tv-Tabs-border-color);
&.is-bottom {
border-top: none;
}
}
.@{tab-pane-prefix-cls} .@{tabs-prefix-cls}--top {
.@{tabs-prefix-cls}__header {
margin-left: 0;
}
.@{tabs-prefix-cls}__item {
border-top: none;
border-bottom: 1px solid var(--tv-Tabs-border-color);
&.is-active {
top: 0;
border-right: 0;
border-left-color: var(--tv-Tabs-border-color);
border-bottom: 1px solid #fff;
&:first-child {
border-left: 1px solid var(--tv-Tabs-border-color);
}
}
}
}
.@{tabs-prefix-cls}--border-card {
.@{tabs-prefix-cls}__item {
&.is-top {
margin: 0 0 -1px -1px;
&.is-active {
border-right: 1px solid var(--tv-Tabs-border-color);
}
}
&.is-bottom {
margin: -1px;
&.is-active {
border-right: 1px solid var(--tv-Tabs-border-color);
}
}
&.is-right {
margin: -1px 0 -1px 0;
&.is-active {
border-top: 1px solid var(--tv-Tabs-border-color);
border-bottom: 1px solid var(--tv-Tabs-border-color);
border-right: 3px solid var(--tv-Tabs-header-font-active-border-color);
}
}
}
.@{tabs-prefix-cls}__nav {
&.is-bottom {
border-bottom: 0;
}
}
}
}
&.@{tabs-prefix-cls}--border-card {
.@{tabs-prefix-cls}__header {
border-left: 1px solid var(--tv-Tabs-border-color);
}
.@{tabs-prefix-cls}__item {
border: 1px solid transparent;
margin: -1px -1px -1px 0;
&.is-active {
border-color: var(--tv-Tabs-border-color) transparent;
}
}
}
&:not(.@{tabs-prefix-cls}--card) {
.@{tabs-prefix-cls}__active-bar {
left: auto;
right: 0;
&.is-bottom {
left: 0;
}
&.is-left {
left: 0;
right: auto;
}
}
.@{tabs-prefix-cls}__nav-wrap {
&::after {
left: auto;
right: 0;
}
&.is-left::after {
left: 0;
right: auto;
}
}
}
.@{tab-pane-prefix-cls} {
.@{tabs-prefix-cls}__header {
&.is-bottom {
margin-left: 0;
}
}
.@{tabs-prefix-cls}--top:not(.@{tabs-prefix-cls}--card):not(.@{tabs-prefix-cls}--border-card)
.@{tabs-prefix-cls}__item {
border-bottom: 0;
background-color: transparent;
}
}
.@{tabs-prefix-cls}--bottom:not(.@{tabs-prefix-cls}--card) .@{tabs-prefix-cls}__item {
border-top: 0;
background-color: transparent;
}
.@{tabs-prefix-cls}--left.@{tabs-prefix-cls}--card .@{tabs-prefix-cls}__item {
&.is-active:first-child {
border-left: 3px solid var(--tv-Tabs-header-font-active-border-color);
border-right: 0;
}
}
.@{tabs-prefix-cls}--left,
.@{tabs-prefix-cls}--right {
&:not(.@{tabs-prefix-cls}--card) {
.@{tabs-prefix-cls}__nav {
border-bottom: 0;
}
.@{tabs-prefix-cls}__item {
border: 0;
background-color: transparent;
}
}
}
.@{tabs-prefix-cls}--left {
&.@{tabs-prefix-cls}--border-card {
.@{tabs-prefix-cls}__item.is-active {
border: 1px solid var(--tv-Tabs-border-color);
&.is-left {
border-left: 3px solid var(--tv-Tabs-header-font-active-border-color);
}
}
}
}
}
&&--left,
&&--right {
.@{tabs-prefix-cls} {
&__header,
&__nav-wrap {
height: 100%;
margin-bottom: 0;
}
}
.@{tabs-prefix-cls}__active-bar {
top: 1px;
bottom: auto;
width: 2px;
height: auto;
&.is-top {
height: 3px;
bottom: 0;
left: 0;
top: auto;
}
&.is-bottom {
top: auto;
bottom: 0;
height: 3px;
}
}
.@{tabs-prefix-cls}__nav-wrap {
margin-bottom: 0;
&.is-scrollable {
padding: 30px 0;
}
&::after {
height: 100%;
width: 2px;
bottom: auto;
top: 0;
}
&.is-top::after {
left: 0;
bottom: 0;
top: auto;
width: 100%;
height: 1px;
}
&.is-bottom:after {
left: 0;
bottom: 0;
top: auto;
width: 100%;
height: 1px;
background-color: #d9d9d9;
z-index: 1;
}
}
.@{tabs-prefix-cls}__nav {
float: none;
}
&.@{tabs-prefix-cls}--card {
.@{tabs-prefix-cls}__item {
border-top: 1px solid var(--tv-Tabs-border-color);
background-color: var(--tv-Tabs-header-bg-color);
&.is-active {
background: transparent;
&:last-child {
border-bottom: none;
}
}
}
.@{tabs-prefix-cls}__nav {
border-left: none;
}
}
.@{tabs-prefix-cls}__item {
display: block;
font-size: var(--tv-Tabs-font-size-base);
}
.@{tabs-prefix-cls}__nav-next,
.@{tabs-prefix-cls}__nav-prev {
height: 30px;
line-height: 30px;
width: 100%;
text-align: center;
cursor: pointer;
i {
-webkit-transform: rotateZ(90deg);
transform: rotateZ(90deg);
}
}
.@{tabs-prefix-cls}__nav-prev {
left: auto;
top: 0;
}
.@{tabs-prefix-cls}__nav-next {
right: auto;
bottom: 0;
}
.@{tab-pane-prefix-cls} {
.@{tabs-prefix-cls}__header,
.@{tabs-prefix-cls}__nav-wrap {
float: inherit;
margin-bottom: -1px;
&.is-top,
&.is-bottom {
float: none;
margin-right: 0;
}
&.is-left {
float: left;
margin-bottom: 0;
}
&.is-right {
float: right;
margin-bottom: 0;
margin-right: 0;
}
}
.@{tabs-prefix-cls}__item {
display: inline-block;
&.is-left,
&.is-right {
display: inherit;
}
}
.@{tabs-prefix-cls}__nav {
width: fit-content;
}
}
&.@{tabs-prefix-cls}--border-card {
border-top: 0;
.@{tabs-prefix-cls}__nav-wrap {
&.is-scrollable {
padding: 0;
}
}
.@{tabs-prefix-cls}__nav-prev,
.@{tabs-prefix-cls}__nav-next {
display: none;
}
.@{tabs-prefix-cls}__header {
border: 1px solid var(--tv-Tabs-border-color);
}
.@{tabs-prefix-cls}--border-card {
.is-top {
&.@{tabs-prefix-cls}__header {
border-top: 0;
border-left: 0;
}
&.tiny-tabs__item.is-active {
border-left: 1px solid var(--tv-Tabs-border-color);
}
}
.is-bottom {
&.@{tabs-prefix-cls}__header {
border-left: 0;
}
}
}
}
}
&&--bottom {
.@{tabs-prefix-cls}__header {
margin-bottom: 0;
margin-top: 10px;
}
&.@{tabs-prefix-cls}--border-card {
border-top: 0;
.@{tabs-prefix-cls}__header {
background: var(--tv-Tabs-header-bg-color);
border-bottom: 1px solid var(--tv-Tabs-border-color);
border-right: 1px solid var(--tv-Tabs-border-color);
border-top: 1px solid var(--tv-Tabs-border-color);
}
.@{tabs-prefix-cls}__nav-wrap {
margin-top: -1px;
margin-bottom: 0;
&.is-top {
margin-bottom: -1px;
}
}
.@{tabs-prefix-cls}__item {
border: 1px solid transparent;
margin: 0 -1px -1px;
&.is-active {
background-color: var(--tv-Tabs-dropdown-bg-color);
border-right-color: var(--tv-Tabs-border-color);
border-left-color: var(--tv-Tabs-border-color);
&:before {
left: 0;
bottom: 0;
}
}
}
.@{tabs-prefix-cls}--border-card {
border-top: 0;
}
}
.@{tabs-prefix-cls}:not(.@{tabs-prefix-cls}--border-card):not(.@{tabs-prefix-cls}--card) {
.@{tabs-prefix-cls}__header {
background: transparent;
border: 0;
&.is-left,
&.is-right {
.@{tabs-prefix-cls}__nav-prev,
.@{tabs-prefix-cls}__nav-next {
display: none;
}
.@{tabs-prefix-cls}__nav-wrap {
padding: 0;
}
}
}
.@{tabs-prefix-cls}__item.is-active {
background-color: transparent;
border: none;
}
}
}
&&--top &__item-separator {
width: 1px;
height: var(--tv-Tabs-header-separator-height);
display: inline-block;
position: relative;
left: calc(var(--tv-Tabs-header-separator-padding-horizontal) + 1px);
background-color: var(--tv-Tabs-header-separator-bg-color);
}
&&--top &--button-card &__item &__item-separator {
height: 16px;
}
&&--button-card &__item:last-child &__item-separator,
&&--button-card &__item.is-active &__item-separator {
display: none;
}
&&--top &--button-card &__item:not(.is-active) &__item-separator {
left: 1px;
}
&&--top,
&&--bottom {
.@{tabs-prefix-cls}--left > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item:nth-child(2),
.@{tabs-prefix-cls}--right > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item:nth-child(2),
&.@{tabs-prefix-cls}--border-card > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item:nth-child(2),
&.@{tabs-prefix-cls}--card > .@{tabs-prefix-cls}__header .@{tabs-prefix-cls}__item {
padding: 0 var(--tv-Tabs-item-padding-horizontal);
}
&.@{tabs-prefix-cls}--small:not(.@{tabs-prefix-cls}--card):not(.@{tabs-prefix-cls}--border-card)
.@{tabs-prefix-cls}__item {
&-separator-space {
padding-left: var(--tv-Tabs-small-separator-padding-horizontal);
padding-right: var(--tv-Tabs-small-separator-padding-horizontal);
margin-right: 1px;
}
}
&:not(.@{tabs-prefix-cls}--card):not(.@{tabs-prefix-cls}--border-card) .@{tabs-prefix-cls}__item {
&-separator-space {
padding-left: var(--tv-Tabs-header-separator-padding-horizontal);
padding-right: var(--tv-Tabs-header-separator-padding-horizontal);
margin-right: 1px;
&:nth-child(2) {
margin-left: 0px;
}
&:not(:nth-child(2)) {
margin-left: 1px;
}
}
&.is-left {
padding: 0 24px;
}
}
}
&&--header-only {
&:is(.@{tabs-prefix-cls}--left) {
width: 120px;
}
&.@{tabs-prefix-cls}--left .@{tabs-prefix-cls}__header {
float: none;
margin-right: 0;
display: block;
}
&:is(.@{tabs-prefix-cls}--right) {
width: 120px;
}
&.@{tabs-prefix-cls}--right .@{tabs-prefix-cls}__header {
float: none;
margin-left: 0;
display: block;
}
&.@{tabs-prefix-cls}--bottom .@{tabs-prefix-cls}__header {
margin-top: 0;
}
}
.slideInLeft-transition,
.slideInRight-transition {
display: inline-block;
}
.slideInRight-enter {
animation: tab-slide-right-in var(--tv-motion-tab-speed);
}
.slideInRight-leave {
position: absolute;
left: 0;
right: 0;
animation: tab-slide-right-out var(--tv-motion-tab-speed);
}
.slideInLeft-enter {
animation: tab-slide-left-in var(--tv-motion-tab-speed);
}
.slideInLeft-leave {
position: absolute;
left: 0;
right: 0;
animation: tab-slide-left-out var(--tv-motion-tab-speed);
}
@-webkit-keyframes slideInRight-enter {
0% {
opacity: 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
to {
opacity: 1;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes slideInRight-enter {
0% {
opacity: 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
to {
opacity: 1;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@-webkit-keyframes slideInRight-leave {
0% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
100% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(100%);
transform: translateX(100%);
opacity: 0;
}
}
@keyframes slideInRight-leave {
0% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
100% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(100%);
transform: translateX(100%);
opacity: 0;
}
}
@-webkit-keyframes slideInLeft-enter {
0% {
opacity: 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
to {
opacity: 1;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes slideInLeft-enter {
0% {
opacity: 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
to {
opacity: 1;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@-webkit-keyframes slideInLeft-leave {
0% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
100% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
opacity: 0;
}
}
@keyframes slideInLeft-leave {
0% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
100% {
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
opacity: 0;
}
}
}