@import '../../style/themes/index'; @import '../../style/mixins/index'; @import './card-style'; @tab-prefix-cls: ~'@{ant-prefix}-tabs'; // Hidden content .tabs-hidden-content() { height: 0; padding: 0 !important; overflow: hidden; opacity: 0; pointer-events: none; input { visibility: hidden; } } .@{tab-prefix-cls} { .reset-component; position: relative; overflow: hidden; .clearfix; &-ink-bar { position: absolute; bottom: 1px; left: 0; z-index: 1; box-sizing: border-box; height: 2px; background-color: @tabs-ink-bar-color; transform-origin: 0 0; } &-bar { margin: @tabs-bar-margin; border-bottom: @border-width-base @border-style-base @border-color-split; outline: none; transition: padding 0.3s @ease-in-out; } &-nav-container { position: relative; box-sizing: border-box; margin-bottom: -1px; overflow: hidden; font-size: @tabs-title-font-size; line-height: @line-height-base; white-space: nowrap; transition: padding 0.3s @ease-in-out; .clearfix; &-scrolling { padding-right: @tabs-scrolling-size; padding-left: @tabs-scrolling-size; } } // https://github.com/ant-design/ant-design/issues/9104 &-bottom &-bottom-bar { margin-top: 16px; margin-bottom: 0; border-top: @border-width-base @border-style-base @border-color-split; border-bottom: none; } &-bottom &-bottom-bar &-ink-bar { top: 1px; bottom: auto; } &-bottom &-bottom-bar &-nav-container { margin-top: -1px; margin-bottom: 0; } &-tab-prev, &-tab-next { position: absolute; z-index: 2; width: 0; height: 100%; color: @text-color-secondary; text-align: center; background-color: transparent; border: 0; cursor: pointer; opacity: 0; transition: width 0.3s @ease-in-out, opacity 0.3s @ease-in-out, color 0.3s @ease-in-out; user-select: none; pointer-events: none; &.@{tab-prefix-cls}-tab-arrow-show { width: @tabs-scrolling-size; height: 100%; opacity: 1; pointer-events: auto; } &:hover { color: @text-color; } &-icon { position: absolute; top: 50%; left: 50%; font-weight: bold; font-style: normal; font-variant: normal; line-height: inherit; text-align: center; text-transform: none; transform: translate(-50%, -50%); &-target { display: block; .iconfont-size-under-12px(10px); } } } &-tab-btn-disabled { cursor: not-allowed; &, &:hover { color: @disabled-color; } } &-tab-next { right: 2px; } &-tab-prev { left: 0; :root & { filter: none; } } &-nav-wrap { margin-bottom: -1px; overflow: hidden; } &-nav-scroll { overflow: hidden; white-space: nowrap; } &-nav { position: relative; display: inline-block; box-sizing: border-box; margin: 0; padding-left: 0; list-style: none; transition: transform 0.3s @ease-in-out; &::before, &::after { display: table; content: ' '; } &::after { clear: both; } .@{tab-prefix-cls}-tab { position: relative; display: inline-block; box-sizing: border-box; height: 100%; margin: @tabs-horizontal-margin; padding: @tabs-horizontal-padding; text-decoration: none; cursor: pointer; transition: color 0.3s @ease-in-out; &::before { position: absolute; top: -1px; left: 0; width: 100%; border-top: 2px solid transparent; border-radius: @border-radius-base @border-radius-base 0 0; transition: all 0.3s; content: ''; pointer-events: none; } &:last-child { margin-right: 0; } &:hover { color: @tabs-hover-color; } &:active { color: @tabs-active-color; } .@{iconfont-css-prefix} { margin-right: 8px; } &-active { color: @tabs-highlight-color; font-weight: 500; } &-disabled { &, &:hover { color: @disabled-color; cursor: not-allowed; } } } } .@{tab-prefix-cls}-large-bar { .@{tab-prefix-cls}-nav-container { font-size: @tabs-title-font-size-lg; } .@{tab-prefix-cls}-tab { padding: @tabs-horizontal-padding-lg; } } .@{tab-prefix-cls}-small-bar { .@{tab-prefix-cls}-nav-container { font-size: @tabs-title-font-size-sm; } .@{tab-prefix-cls}-tab { padding: @tabs-horizontal-padding-sm; } } // Create an empty element to avoid margin collapsing // https://github.com/ant-design/ant-design/issues/18103 &-content::before { display: block; overflow: hidden; content: ''; } // Horizontal Content .@{tab-prefix-cls}-top-content, .@{tab-prefix-cls}-bottom-content { width: 100%; > .@{tab-prefix-cls}-tabpane { flex-shrink: 0; width: 100%; opacity: 1; transition: opacity 0.45s; } > .@{tab-prefix-cls}-tabpane-inactive { .tabs-hidden-content(); } &.@{tab-prefix-cls}-content-animated { display: flex; flex-direction: row; transition: margin-left 0.3s @ease-in-out; will-change: margin-left; } } // Vertical Bar .@{tab-prefix-cls}-left-bar, .@{tab-prefix-cls}-right-bar { height: 100%; border-bottom: 0; .@{tab-prefix-cls}-tab-arrow-show, .@{tab-prefix-cls}-tab-arrow-show { width: 100%; height: @tabs-scrolling-size; } .@{tab-prefix-cls}-tab { display: block; float: none; margin: @tabs-vertical-margin; padding: @tabs-vertical-padding; &:last-child { margin-bottom: 0; } } .@{tab-prefix-cls}-extra-content { text-align: center; } .@{tab-prefix-cls}-nav-scroll { width: auto; } .@{tab-prefix-cls}-nav-container, .@{tab-prefix-cls}-nav-wrap { height: 100%; } .@{tab-prefix-cls}-nav-container { margin-bottom: 0; &.@{tab-prefix-cls}-nav-container-scrolling { padding: @tabs-scrolling-size 0; } } .@{tab-prefix-cls}-nav-wrap { margin-bottom: 0; } .@{tab-prefix-cls}-nav { width: 100%; } .@{tab-prefix-cls}-ink-bar { top: 0; bottom: auto; left: auto; width: 2px; height: auto; } .@{tab-prefix-cls}-tab-next { right: 0; bottom: 0; width: 100%; height: @tabs-scrolling-size; } .@{tab-prefix-cls}-tab-prev { top: 0; width: 100%; height: @tabs-scrolling-size; } } // Vertical Content .@{tab-prefix-cls}-left-content, .@{tab-prefix-cls}-right-content { width: auto; margin-top: 0 !important; overflow: hidden; } // Vertical - Left .@{tab-prefix-cls}-left-bar { float: left; margin-right: -1px; margin-bottom: 0; border-right: @border-width-base @border-style-base @border-color-split; .@{tab-prefix-cls}-tab { text-align: right; } .@{tab-prefix-cls}-nav-container { margin-right: -1px; } .@{tab-prefix-cls}-nav-wrap { margin-right: -1px; } .@{tab-prefix-cls}-ink-bar { right: 1px; } } .@{tab-prefix-cls}-left-content { padding-left: 24px; border-left: @border-width-base @border-style-base @border-color-split; } // Vertical - Right .@{tab-prefix-cls}-right-bar { float: right; margin-bottom: 0; margin-left: -1px; border-left: @border-width-base @border-style-base @border-color-split; .@{tab-prefix-cls}-nav-container { margin-left: -1px; } .@{tab-prefix-cls}-nav-wrap { margin-left: -1px; } .@{tab-prefix-cls}-ink-bar { left: 1px; } } .@{tab-prefix-cls}-right-content { padding-right: 24px; border-right: @border-width-base @border-style-base @border-color-split; } } .@{tab-prefix-cls}-top .@{tab-prefix-cls}-ink-bar-animated, .@{tab-prefix-cls}-bottom .@{tab-prefix-cls}-ink-bar-animated { transition: transform 0.3s @ease-in-out, width 0.3s @ease-in-out, left 0.3s @ease-in-out; } .@{tab-prefix-cls}-left .@{tab-prefix-cls}-ink-bar-animated, .@{tab-prefix-cls}-right .@{tab-prefix-cls}-ink-bar-animated { transition: transform 0.3s @ease-in-out, height 0.3s @ease-in-out, top 0.3s @ease-in-out; } // No animation .tabs-no-animation() { > .@{tab-prefix-cls}-content-animated { margin-left: 0 !important; transform: none !important; } > .@{tab-prefix-cls}-tabpane-inactive { .tabs-hidden-content(); } } .no-flex, .@{tab-prefix-cls}-no-animation { > .@{tab-prefix-cls}-content { .tabs-no-animation(); } } .@{tab-prefix-cls}-left-content, .@{tab-prefix-cls}-right-content { .tabs-no-animation(); }