You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

251 lines
4.7 KiB

@import '../../style/themes/default';
@import '../../style/mixins';
@tabs-prefix-cls: am-tabs;
@tabs-default-bar-prefix-cls: am-tabs-default-bar;
@badge-prefix-cls: am-badge;
@easing-in-out: cubic-bezier(0.35, 0, 0.25, 1);
@effect-duration: .3s;
@page-hide-color: rgba(255, 255, 255, 0);
@page-show-color: rgba(255, 255, 255, 1);
.common-pagination() {
pointer-events: none;
position: absolute;
top: 0;
display: block;
width: 59 * @hd;
height: 100%;
content: ' ';
z-index: @tabs-pagination-zindex;
}
.@{tabs-prefix-cls} {
box-sizing: border-box;
* {
box-sizing: border-box;
}
display: flex;
flex: 1;
position: relative;
overflow: hidden;
height: 100%;
width: 100%;
&-content-wrap {
display: flex;
flex: 1;
width: 100%;
height: 100%;
min-height: 0;
&-animated {
transition: transform @effect-duration @easing-in-out, left @effect-duration @easing-in-out, top @effect-duration @easing-in-out;
will-change: transform, left, top;
}
}
&-pane-wrap {
width: 100%;
flex-shrink: 0;
overflow-y: auto;
}
&-tab-bar-wrap {
flex-shrink: 0;
}
&-horizontal {
.@{tabs-prefix-cls} {
&-pane-wrap-active {
height: auto;
}
&-pane-wrap-inactive {
height: 0;
overflow: visible;
}
}
}
&-vertical {
.@{tabs-prefix-cls} {
&-content-wrap {
flex-direction: column;
}
&-tab-bar-wrap {
height: 100%;
}
&-pane-wrap {
height: 100%;
}
&-pane-wrap-active {
overflow: auto;
}
&-pane-wrap-inactive {
overflow: hidden;
}
}
}
&-top,
&-bottom {
flex-direction: column;
}
&-left,
&-right {
flex-direction: row;
}
}
.@{tabs-default-bar-prefix-cls} {
position: relative;
display: flex;
flex-shrink: 0;
flex-direction: row;
width: 100%;
height: 100%;
overflow: visible;
z-index: 1;
&-tab {
position: relative;
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: center;
font-size: @tabs-font-size-heading;
height: @tabs-height;
line-height: @tabs-height;
.@{badge-prefix-cls} {
.@{badge-prefix-cls}-text {
top: -13 * @hd;
transform: translateX(-5 * @hd);
}
.@{badge-prefix-cls}-dot {
top: -6 * @hd;
transform: translateX(0);
}
}
}
&-tab-active {
color: @tabs-color;
}
&-underline {
position: absolute;
border: 1px @tabs-color solid;
// force GPU acceleration
transform: translate3d(0, 0, 0);
}
&-animated &-content {
transition: transform @effect-duration @easing-in-out;
will-change: transform;
}
&-animated &-underline {
transition: top @effect-duration @easing-in-out, left @effect-duration @easing-in-out, color @effect-duration @easing-in-out, width @effect-duration @easing-in-out;
will-change: top, left, width, color;
}
&-top,
&-bottom {
flex-direction: row;
.@{tabs-default-bar-prefix-cls} {
&-content {
display: flex;
width: 100%;
flex-direction: row;
}
&-prevpage {
.common-pagination();
left: 0;
background: linear-gradient(to right, @page-show-color, @page-hide-color);
}
&-nextpage {
.common-pagination();
right: 0;
background: linear-gradient(to right, @page-hide-color, @page-show-color);
}
&-tab {
padding: 8px 0;
}
&-underline {
bottom: 0;
}
}
}
&-top {
.@{tabs-default-bar-prefix-cls} {
&-tab {
.hairline('bottom');
}
}
}
&-bottom {
.@{tabs-default-bar-prefix-cls} {
&-tab {
.hairline('top');
}
}
}
&-left,
&-right {
flex-direction: column;
.@{tabs-default-bar-prefix-cls} {
&-content {
display: flex;
height: 100%;
flex-direction: column;
}
&-tab {
padding: 0 8px;
}
}
}
&-left {
.@{tabs-default-bar-prefix-cls} {
&-underline {
right: 0;
}
&-tab {
.hairline('right');
}
}
}
&-right {
.@{tabs-default-bar-prefix-cls} {
&-underline {
left: 0;
}
&-tab {
.hairline('left');
}
}
}
}