@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
309 lines (303 loc) • 9.61 kB
CSS
/* #ifdef harmony */
/* #endif */
/* #ifndef harmony */
/* #endif */
.nut-tabs {
display: flex;
}
.nut-tabs-horizontal {
flex-direction: column;
}
.nut-tabs-titles {
display: flex;
box-sizing: border-box;
height: var(--nutui-tabs-titles-height, 32px);
user-select: none;
overflow-x: auto;
overflow-y: hidden;
background: var(--nutui-tabs-titles-background-color, #ffffff);
scrollbar-width: none;
}
.nut-tabs-titles::-webkit-scrollbar {
display: none;
width: 0;
background: transparent;
}
.nut-tabs-titles .nut-tabs-list {
width: 100%;
display: flex;
flex-shrink: 0;
}
.nut-tabs-titles-left {
justify-content: flex-start;
}
.nut-tabs-titles-left .nut-tabs-titles-item {
padding: 0 22px;
}
.nut-tabs-titles-right {
justify-content: flex-end;
}
.nut-tabs-titles-right .nut-tabs-titles-item {
padding: 0 22px;
}
.nut-tabs-titles-item {
position: relative;
display: flex;
align-items: center;
justify-content: center;
flex: 1 0 auto;
padding: 0 var(--nutui-tabs-titles-gap, 12px);
height: var(--nutui-tabs-titles-height, 32px);
line-height: var(--nutui-tabs-titles-height, 32px);
min-width: var(--nutui-tabs-titles-item-min-width, 50px);
font-size: var(--nutui-tabs-titles-font-size, var(--nutui-font-text));
color: var(--nutui-tabs-titles-item-color, var(--nutui-color-title));
text-overflow: ellipsis;
white-space: nowrap;
}
.nut-tabs-titles-item .nut-icon {
color: var(--nutui-tabs-titles-item-color, var(--nutui-color-title));
}
.nut-tabs-titles-item-left, .nut-tabs-titles-item-right {
flex: none;
}
.nut-tabs-titles-item-text {
color: var(--nutui-tabs-titles-item-color, var(--nutui-color-title));
}
.nut-tabs-titles-item-smile, .nut-tabs-titles-item-line {
position: absolute;
transition: width 0.3s ease;
width: 0;
height: 0;
content: " ";
left: 50%;
transform: translate(-50%, 0);
bottom: var(--nutui-tabs-line-bottom, 0);
border-radius: var(--nutui-tabs-line-border-radius, 3px);
opacity: var(--nutui-tabs-tab-line-opacity, 1);
overflow: hidden;
}
.nut-tabs-titles-item-smile {
bottom: var(--nutui-tabs-titles-item-smile-bottom, -10px);
}
.nut-tabs-titles-item-smile .nut-icon {
position: absolute;
font-size: 20px;
width: 100%;
height: 100%;
}
.nut-tabs-titles-item-active .nut-icon {
color: var(--nutui-tabs-titles-item-active-color, var(--nutui-color-primary));
}
.nut-tabs-titles-item-active .nut-tabs-titles-item-text {
color: var(--nutui-tabs-titles-item-active-color, var(--nutui-color-primary));
font-weight: var(--nutui-tabs-titles-item-active-font-weight, var(--nutui-font-weight-bold));
}
.nut-tabs-titles-item-active .nut-tabs-titles-item-line {
overflow: unset;
content: " ";
width: var(--nutui-tabs-tab-line-width, 24px);
height: var(--nutui-tabs-tab-line-height, 3px);
background: var(--nutui-tabs-tab-line-color, var(--nutui-color-primary));
}
.nut-tabs-titles-item-active .nut-tabs-titles-item-smile {
overflow: unset;
width: 40px;
height: 20px;
}
.nut-tabs-titles-item-active .nut-tabs-titles-item-smile .nut-icon {
color: var(--nutui-tabs-titles-item-active-color, var(--nutui-color-primary));
}
.nut-tabs-titles-item-disabled {
color: var(--nutui-color-text-disabled);
}
.nut-tabs-titles-item-disabled .nut-icon {
color: var(--nutui-color-text-disabled);
}
.nut-tabs-titles-item-disabled .nut-tabs-titles-item-text {
color: var(--nutui-color-text-disabled);
}
.nut-tabs-titles-simple .nut-tabs-titles-item-active .nut-tabs-titles-item-text,
.nut-tabs-titles-simple .nut-tabs-titles-item-active .nut-icon {
color: var(--nutui-color-title);
font-size: var(--nutui-tabs-titles-item-active-font-size, var(--nutui-font-text-large));
}
.nut-tabs-titles-card .nut-tabs-titles-item-active {
font-weight: var(--nutui-font-weight-bold);
background-color: #ffffff;
border-radius: var(--nutui-radius-base) var(--nutui-radius-base) 0 0;
}
.nut-tabs-titles-button .nut-tabs-titles-item {
padding: 0 10px;
}
.nut-tabs-titles-button .nut-tabs-titles-item .nut-tabs-titles-item-text {
flex: 1;
height: 28px;
display: flex;
align-items: center;
justify-content: center;
padding: 0 8px;
}
.nut-tabs-titles-button .nut-tabs-titles-item-active .nut-tabs-titles-item-text {
background: var(--nutui-color-default-light);
color: var(--nutui-tabs-titles-item-active-color, var(--nutui-color-primary));
border-radius: var(--nutui-tabs-button-border-radius, var(--nutui-radius-xs));
font-weight: var(--nutui-font-weight-bold);
background-color: var(--nutui-tabs-button-active-background-color, var(--nutui-color-primary-light-pressed));
border: var(--nutui-tabs-button-active-border, 1px solid var(--nutui-color-primary));
}
.nut-tabs-titles-divider {
border-bottom: 1px solid var(--nutui-color-border);
}
.nut-tabs-titles-divider .nut-tabs-titles-item {
position: relative;
}
.nut-tabs-titles-divider .nut-tabs-titles-item::after {
content: "";
position: absolute;
right: 0;
top: 50%;
height: 50%;
width: 1px;
background: var(--nutui-color-border);
transform: translateY(-50%);
}
.nut-tabs-titles-divider .nut-tabs-titles-item:last-child::after {
display: none;
}
.nut-tabs-vertical .nut-tabs-ellipsis {
white-space: break-spaces;
/* #ifdef harmony */
padding-left: 12px;
/* #endif */
/* #ifndef harmony */
padding-left: 6px;
/* #endif */
width: 90px;
line-height: var(--nutui-font-text);
}
.nut-tabs-vertical .nut-tabs-titles {
flex-direction: column;
height: 100%;
width: var(--nutui-tabs-vertical-titles-width, 100px);
flex-shrink: 0;
}
.nut-tabs-vertical .nut-tabs-titles .nut-tabs-list {
flex-direction: column;
}
.nut-tabs-vertical .nut-tabs-titles-item {
height: var(--nutui-tabs-vertical-titles-item-height, 40px);
flex: none;
}
.nut-tabs-vertical .nut-tabs-titles-item-smile {
overflow: hidden;
transition: width 0.3s ease;
}
.nut-tabs-vertical .nut-tabs-titles-item-line {
transform: translate(0, -50%);
transition: height 0.3s ease;
}
.nut-tabs-vertical .nut-tabs-titles-item-line-vertical {
top: 50%;
}
.nut-tabs-vertical .nut-tabs-titles-item-active {
background-color: var(--nutui-tabs-titles-item-active-background-color, var(--nutui-color-surface-2));
}
.nut-tabs-vertical .nut-tabs-titles-item-active .nut-tabs-titles-item-line {
left: 10px;
width: var(--nutui-tabs-vertical-tab-line-width, 3px);
height: var(--nutui-tabs-vertical-tab-line-height, 12px);
background: var(--nutui-tabs-vertical-tab-line-color, linear-gradient(180deg, var(--nutui-color-primary) 0%, var(--nutui-color-primary-light-pressed) 100%));
}
.nut-tabs-vertical .nut-tabs-titles-item-active .nut-tabs-titles-item-smile {
right: -12px;
bottom: -2%;
left: auto;
transform: rotate(320deg);
}
.nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles {
flex-direction: row;
height: var(--nutui-tabs-titles-height, 32px);
width: 100%;
padding: 0 ;
}
.nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles .nut-tabs-list {
flex-direction: row;
height: auto;
}
.nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-content {
flex-direction: row;
}
.nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active {
background-color: initial;
}
.nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active .nut-tabs-titles-item-line {
left: 50%;
transform: translate(-50%, 0);
width: var(--nutui-tabs-tab-line-width, 24px);
height: var(--nutui-tabs-tab-line-height, 3px);
background: var(--nutui-tabs-tab-line-color, var(--nutui-color-primary));
}
.nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active .nut-tabs-titles-item-smile {
left: 50%;
right: auto;
bottom: -3px;
transform: translate(-50%, 0) rotate(0deg);
}
.nut-tabs-vertical .nut-tabs-content {
flex-direction: column;
height: 100%;
}
.nut-tabs-vertical .nut-tabs-content-wrap {
flex: 1;
}
.nut-tabs-vertical .nut-tabs-content .nut-tabpane {
height: 100%;
}
.nut-tabs-content {
display: flex;
box-sizing: border-box;
}
.nut-tabs-content-wrap {
overflow: hidden;
}
[dir=rtl] .nut-tabs-titles-item-smile, [dir=rtl] .nut-tabs-titles-item-line,
.nut-rtl .nut-tabs-titles-item-smile,
.nut-rtl .nut-tabs-titles-item-line {
left: auto;
right: 50%;
transform: translate(50%, 0);
}
[dir=rtl] .nut-tabs-titles-divider .nut-tabs-titles-item::after,
.nut-rtl .nut-tabs-titles-divider .nut-tabs-titles-item::after {
right: auto;
left: 0;
}
[dir=rtl] .nut-tabs-vertical .nut-tabs-titles-line .nut-tabs-titles-item,
.nut-rtl .nut-tabs-vertical .nut-tabs-titles-line .nut-tabs-titles-item {
padding-left: 0;
padding-right: 14px;
}
[dir=rtl] .nut-tabs-vertical .nut-tabs-titles-item-active .nut-tabs-titles-item-line,
.nut-rtl .nut-tabs-vertical .nut-tabs-titles-item-active .nut-tabs-titles-item-line {
left: auto;
right: 10px;
}
[dir=rtl] .nut-tabs-vertical .nut-tabs-titles-item-active .nut-tabs-titles-item-smile,
.nut-rtl .nut-tabs-vertical .nut-tabs-titles-item-active .nut-tabs-titles-item-smile {
left: -12px;
right: auto;
transform: rotate(-320deg);
}
[dir=rtl] .nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active .nut-tabs-titles-item-line,
.nut-rtl .nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active .nut-tabs-titles-item-line {
left: auto;
right: 50%;
transform: translate(50%, 0);
}
[dir=rtl] .nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active .nut-tabs-titles-item-smile,
.nut-rtl .nut-tabs-vertical .nut-tabs-horizontal .nut-tabs-titles-item-active .nut-tabs-titles-item-smile {
right: 50%;
left: auto;
transform: translate(50%, 0) rotate(0deg);
}