zent
Version:
一套前端设计语言和基于React的实现
413 lines (407 loc) • 13.7 kB
CSS
.zent-tabs {
font-size: 14px;
line-height: 20px;
display: flex;
flex-direction: column;
}
.zent-tabs-panel-wrapper {
margin-top: 16px;
}
.zent-tabs-nav {
position: relative;
outline: none;
display: flex;
justify-content: flex-start;
box-sizing: border-box;
}
.zent-tabs-nav-content {
flex: 1 1 auto;
overflow: hidden;
}
.zent-tabs-nav-extra-content {
display: flex;
align-items: center;
margin-left: 8px;
}
.zent-tabs-nav-tabs-content-add, .zent-tabs-nav-tabs-content-slide, .zent-tabs-nav-tabs-content-anchor {
width: 100%;
display: flex;
flex-grow: 1;
align-items: flex-end;
overflow: hidden;
white-space: nowrap;
position: relative;
height: 40px;
}
.zent-tabs-nav-tabs-content-add-main, .zent-tabs-nav-tabs-content-slide-main, .zent-tabs-nav-tabs-content-anchor-main {
display: flex;
transition: transform 200ms cubic-bezier(0.65, 0, 0.35, 1);
}
.zent-tabs-nav-tabs-content-add-main--has-add .zent-tabs-tab.zent-tabs-tab-type__card:last-child, .zent-tabs-nav-tabs-content-slide-main--has-add .zent-tabs-tab.zent-tabs-tab-type__card:last-child, .zent-tabs-nav-tabs-content-anchor-main--has-add .zent-tabs-tab.zent-tabs-tab-type__card:last-child {
border-top-right-radius: 0;
}
.zent-tabs-nav-tabs-content-add__add-btn, .zent-tabs-nav-tabs-content-slide__add-btn, .zent-tabs-nav-tabs-content-anchor__add-btn {
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
display: flex;
justify-content: center;
align-items: center;
width: 36px;
height: 100%;
font-size: 20px;
border-top-width: 1px;
border-bottom-width: 1px;
border-right-width: 1px;
border-style: solid;
border-top-right-radius: 2px;
box-sizing: border-box;
cursor: pointer;
}
.zent-tabs-nav-tabs-content-add .zent-tabs-tab, .zent-tabs-nav-tabs-content-slide .zent-tabs-tab, .zent-tabs-nav-tabs-content-anchor .zent-tabs-tab {
flex-shrink: 0;
}
.zent-tabs-nav-tabs-content-add-left::before, .zent-tabs-nav-tabs-content-slide-left::before, .zent-tabs-nav-tabs-content-anchor-left::before {
content: "";
position: absolute;
z-index: 1;
width: 5px;
height: 100%;
box-shadow: inset 5px 0 5px -5px #ccc;
box-shadow: inset 5px 0 5px -5px var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
left: 0;
}
.zent-tabs-nav-tabs-content-add-right::after, .zent-tabs-nav-tabs-content-slide-right::after, .zent-tabs-nav-tabs-content-anchor-right::after {
content: "";
position: absolute;
z-index: 1;
width: 5px;
height: 100%;
box-shadow: inset -5px 0 5px -5px #ccc;
box-shadow: inset -5px 0 5px -5px var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
right: 0;
}
.zent-tabs-nav-tabs-content-add-option, .zent-tabs-nav-tabs-content-slide-option, .zent-tabs-nav-tabs-content-anchor-option {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
height: 100%;
display: flex;
align-items: center;
}
.zent-tabs-nav-tabs-content-add-option .zenticon, .zent-tabs-nav-tabs-content-slide-option .zenticon, .zent-tabs-nav-tabs-content-anchor-option .zenticon {
color: #333;
color: var(--theme-title-color, var(--theme-stroke-1, #333));
padding: 0 6px;
font-size: 20px;
}
.zent-tabs-nav-tabs-content-add-option .zenticon-more, .zent-tabs-nav-tabs-content-slide-option .zenticon-more, .zent-tabs-nav-tabs-content-anchor-option .zenticon-more {
font-size: 24px;
padding: 7px;
}
.zent-tabs-nav-tabs-content-add-option .zenticon + .zenticon, .zent-tabs-nav-tabs-content-slide-option .zenticon + .zenticon, .zent-tabs-nav-tabs-content-anchor-option .zenticon + .zenticon {
margin-left: 4px;
}
.zent-tabs-nav-tabs-content-add-option .icon-disabled, .zent-tabs-nav-tabs-content-slide-option .icon-disabled, .zent-tabs-nav-tabs-content-anchor-option .icon-disabled {
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
cursor: not-allowed;
}
.zent-tabs-nav-tabs-content-add-option__add-btn, .zent-tabs-nav-tabs-content-slide-option__add-btn, .zent-tabs-nav-tabs-content-anchor-option__add-btn {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
border-top-width: 0;
border-right-width: 0;
cursor: pointer;
}
.zent-tabs-nav-tabs-content-add-option--right, .zent-tabs-nav-tabs-content-slide-option--right, .zent-tabs-nav-tabs-content-anchor-option--right {
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.1);
}
.zent-tabs-scroll {
white-space: nowrap;
overflow-x: auto;
display: flex;
}
.zent-tabs-tab {
color: #333;
color: var(--theme-title-color, var(--theme-stroke-1, #333));
position: relative;
cursor: pointer;
box-sizing: border-box;
text-align: center;
}
.zent-tabs-tab__actions {
color: #999;
color: var(--theme-hint-color, var(--theme-stroke-3, #999));
background-image: linear-gradient(270deg, white 0%, white 81%, transparent 100%);
position: absolute;
height: calc(100% - 2px);
top: 50%;
right: 4px;
transform: translateY(-50%);
padding-left: 4px;
font-size: 14px;
display: flex;
align-items: center;
}
.zent-tabs-tab__actions:not(.zent-tabs-tab-actions--fixed) {
display: none;
}
.zent-tabs-tab__actions > span:hover {
color: #333;
color: var(--theme-title-color, var(--theme-stroke-1, #333));
line-height: 1;
}
.zent-tabs-tab__actions__fixed {
margin-left: 4px;
}
.zent-tabs-tab-actions--fixed .zent-tabs-tab__actions__fixed > i {
transform: rotate(-45deg);
}
.zent-tabs-tab:hover {
color: #333;
color: var(--theme-title-color, var(--theme-stroke-1, #333));
}
.zent-tabs-tab:hover .zent-tabs-tab__actions {
display: flex;
}
.zent-tabs-tab__actived {
color: #333;
color: var(--theme-title-color, var(--theme-stroke-1, #333));
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
}
.zent-tabs-tab__disabled {
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-tabs-tab__disabled.zent-tabs-tab {
cursor: not-allowed;
}
.zent-tabs-tab__disabled.zent-tabs-tab:hover {
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-tabs-hidden-tabs {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.1);
box-shadow: var(--shadow-spec-modal, 0 2px 24px 0 rgba(var(--theme-rgb-shadow-bg, 0, 0, 0), 0.1));
width: 148px;
border-radius: 2px;
max-height: 256px;
overflow-y: scroll;
}
.zent-tabs-hidden-tab {
padding: 6px 12px;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.zent-tabs-hidden-tab:hover {
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
}
.zent-tabs-hidden-tab-disabled {
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-tabs-hidden-tab-disabled:hover {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
cursor: not-allowed;
}
.zent-tabs-nav-type__normal {
border-bottom-color: #e0e0e0;
border-bottom-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-bottom-width: 1px;
border-bottom-style: solid;
height: 40px;
}
.zent-tabs-nav-type__normal.zent-tabs-nav__stretch .zent-tabs-tab {
flex: 1 1 auto;
}
.zent-tabs-nav-type__normal .zent-tabs-nav-content {
margin-bottom: -1px;
}
.zent-tabs-nav-type__normal .zent-tabs-tab {
padding: 0 20px;
}
.zent-tabs-nav-type__normal .zent-tabs-tab-inner {
min-width: 56px;
line-height: 40px;
text-align: center;
height: 40px;
box-sizing: border-box;
}
.zent-tabs-nav-type__normal .zent-tabs-tab__actived {
border-bottom-color: #e0e0e0;
border-bottom-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-bottom-width: 1px;
border-bottom-style: solid;
}
.zent-tabs-nav-type__normal .zent-tabs-tab__actived .zent-tabs-tab-inner {
border-bottom-color: #155bd4;
border-bottom-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
border-bottom-width: 2px;
border-bottom-style: solid;
margin-bottom: -1px;
}
.zent-tabs-nav-type__card {
border-bottom-color: #e0e0e0;
border-bottom-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-bottom-width: 1px;
border-bottom-style: solid;
height: 40px;
}
.zent-tabs-nav-type__card.zent-tabs-nav__stretch .zent-tabs-tab {
flex: 1 1 auto;
}
.zent-tabs-nav-type__card .zent-tabs-nav-content {
margin-bottom: -1px;
}
.zent-tabs-nav-type__card .zent-tabs-tab {
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-width: 1px;
border-style: solid;
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
border-left: 0;
height: 40px;
box-sizing: border-box;
padding: 0 20px 0 19px;
}
.zent-tabs-nav-type__card .zent-tabs-tab:not(.zent-tabs-tab__actived) .zent-tabs-tab__actions {
background-image: linear-gradient(90deg, transparent 0%, #f7f7f7 19%);
}
.zent-tabs-nav-type__card .zent-tabs-tab:hover:not(.zent-tabs-tab__actived) .zent-tabs-tab__actions {
background-image: linear-gradient(90deg, transparent 0%, #f0f0f0 19%);
}
.zent-tabs-nav-type__card .zent-tabs-tab-inner {
min-width: 56px;
line-height: 38px;
text-align: center;
}
.zent-tabs-nav-type__card .zent-tabs-tab:hover {
background-color: rgba(0, 0, 0, 0.05);
}
.zent-tabs-nav-type__card .zent-tabs-tab:first-child {
border-left-color: #e0e0e0;
border-left-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-left-width: 1px;
border-left-style: solid;
border-top-left-radius: 4px;
}
.zent-tabs-nav-type__card .zent-tabs-tab:last-child {
border-top-right-radius: 4px;
}
.zent-tabs-nav-type__card .zent-tabs-tab__actived {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
border-bottom-color: transparent;
}
.zent-tabs-nav-type__card .zent-tabs-tab__actived:hover {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
}
.zent-tabs-nav-type__card .zent-tabs-tab__disabled:hover {
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
}
.zent-tabs-nav-type__button.zent-tabs-nav__stretch .zent-btn {
flex: 1 1 auto;
}
.zent-tabs-nav-type__button .zent-tabs-tab {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
color: #999;
color: var(--theme-hint-color, var(--theme-stroke-3, #999));
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-width: 1px;
border-style: solid;
min-width: 80px;
height: 32px;
}
.zent-tabs-nav-type__button .zent-tabs-tab-inner {
min-width: 14px;
line-height: 30px;
padding: 0 20px;
}
.zent-tabs-nav-type__button .zent-tabs-tab:not(:first-child) {
margin-left: -1px;
}
.zent-tabs-nav-type__button .zent-tabs-tab:first-child {
border-radius: 2px 0 0 2px;
}
.zent-tabs-nav-type__button .zent-tabs-tab:last-child {
border-radius: 0 2px 2px 0;
}
.zent-tabs-nav-type__button .zent-tabs-tab:hover:not(.zent-tabs-tab__disabled) {
color: #155bd4;
color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
}
.zent-tabs-nav-type__button .zent-tabs-tab__actived {
background-color: #e6efff;
background-color: var(--theme-default-selected-bg, var(--theme-primary-8, #e6efff));
border-color: #155bd4;
border-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
color: #155bd4;
color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
z-index: 1;
}
.zent-tabs-nav-type__button .zent-tabs-tab__disabled {
background-color: #f7f7f7;
background-color: var(--theme-body-bg, var(--theme-stroke-8, #f7f7f7));
color: #ccc;
color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-tabs-type__vertical {
flex-direction: row;
}
.zent-tabs-type__vertical .zent-tabs-panel-wrapper {
margin: 14px 16px;
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical {
border-right-color: #e0e0e0;
border-right-color: var(--theme-default-border-color, var(--theme-stroke-5, #e0e0e0));
border-right-width: 1px;
border-right-style: solid;
width: 96px;
padding: 14px 7px 14px 0;
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical .zent-tabs-scroll {
overflow-x: hidden;
overflow-y: auto;
width: 103px;
flex-direction: column;
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical .zent-tabs-divide {
border-bottom-color: #e0e0e0;
border-bottom-color: var(--theme-default-border-color, var(--theme-stroke-6, #e0e0e0));
border-bottom-width: 1px;
border-bottom-style: solid;
margin: 21.5px 0 17.5px;
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical .zent-tabs-tab {
display: block;
text-align: left;
margin-top: 4px;
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical .zent-tabs-tab:first-child {
margin-top: 0;
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical .zent-tabs-tab__actived .zent-tabs-tab-inner {
background-color: #e0e0e0;
background-color: var(--theme-default-border-color, var(--theme-stroke-6, #e0e0e0));
}
.zent-tabs-type__vertical .zent-tabs-nav-type__vertical .zent-tabs-tab-inner {
border-radius: 2px;
padding: 8px;
overflow: hidden;
width: 86px;
box-sizing: border-box;
text-overflow: ellipsis;
}