@nutui/nutui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
222 lines (218 loc) • 7.88 kB
CSS
:root,
page {
--nut-scale-f: 1;
--nut-scale-font: var(--nut-scale-f, 1);
--nut-scale-icon: var(--nut-scale-f, 1);
--nut-icon-height: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) ;
--nut-icon-width: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) ;
--nut-icon-line-height: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) ;
}
.nut-badge {
position: relative;
/* #ifdef dynamic*/
display: flex;
/* #endif */
/* #ifndef dynamic*/
display: inline-flex;
box-sizing: content-box;
/* #endif */
vertical-align: middle;
width: auto;
}
.nut-badge-icon {
display: flex;
justify-content: center;
align-items: center;
background: var(--nutui-badge-background-color, var(--nutui-color-primary, #ff0f23));
padding: var(--nutui-badge-icon-padding, calc(2px * var(--nut-scale-f, 1)));
text-align: center;
z-index: var(--nutui-badge-z-index, 1);
}
.nut-badge-icon .nut-icon {
width: var(--nutui-badge-icon-size, var(--nutui-font-size-xxs, calc(10px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
height: var(--nutui-badge-icon-size, var(--nutui-font-size-xxs, calc(10px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
font-size: var(--nutui-badge-icon-size, var(--nutui-font-size-xxs, calc(10px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
}
.nut-badge-sup, .nut-badge-icon {
border-radius: var(--nutui-badge-border-radius, var(--nutui-badge-height, calc(14px * var(--nut-scale-f, 1))));
}
.nut-badge-sup::after, .nut-badge-icon::after {
content: "";
position: absolute;
top: -50%;
bottom: -50%;
left: -50%;
right: -50%;
transform: scale(0.5);
border: var(--nutui-badge-border, calc(1px * var(--nut-scale-f, 1)) solid var(--nutui-color-primary-text, #ffffff));
border-radius: var(--nutui-badge-border-radius, var(--nutui-badge-height, calc(14px * var(--nut-scale-f, 1))));
}
.nut-badge-sup {
/* #ifdef dynamic*/
display: flex;
/* #endif */
/* #ifndef dynamic*/
display: inline-flex;
/* #endif */
text-align: center;
min-width: var(--nutui-badge-min-width, calc(6px * var(--nut-scale-f, 1)));
padding: var(--nutui-badge-padding, calc(1px * var(--nut-scale-f, 1)) calc(4px * var(--nut-scale-f, 1)));
box-sizing: border-box;
color: var(--nutui-badge-color, var(--nutui-color-primary-text, #ffffff));
font-size: var(--nutui-badge-font-size, var(--nutui-font-size-xxxs, calc(9px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
line-height: 12px;
white-space: nowrap;
font-weight: normal;
vertical-align: middle;
background: var(--nutui-badge-background-color, var(--nutui-color-primary, #ff0f23));
z-index: 1;
}
.nut-badge-disabled {
background: var(--nutui-badge-background-disabled-color, var(--nutui-color-text-disabled, #b4b8bf));
}
.nut-badge-number {
font-family: "JDZH-Regular";
}
.nut-badge-one {
height: var(--nutui-badge-height, calc(14px * var(--nut-scale-f, 1)));
width: var(--nutui-badge-height, calc(14px * var(--nut-scale-f, 1)));
}
.nut-badge-content {
position: absolute;
transform: var(--nutui-badge-content-transform, translate(50%, -50%));
}
.nut-badge-dot {
padding: 0;
border-radius: 50%;
}
.nut-badge-dot::after {
border: var(--nutui-badge-dot-border, calc(1px * var(--nut-scale-f, 1)) solid var(--nutui-color-primary-text, #ffffff));
border-radius: 50%;
}
.nut-badge-dot-normal {
min-width: var(--nutui-badge-dot-width, calc(6px * var(--nut-scale-f, 1)));
width: var(--nutui-badge-dot-width, calc(6px * var(--nut-scale-f, 1)));
height: var(--nutui-badge-dot-width, calc(6px * var(--nut-scale-f, 1)));
}
.nut-badge-dot-small {
min-width: var(--nutui-badge-dot-small-width, calc(4px * var(--nut-scale-f, 1)));
width: var(--nutui-badge-dot-small-width, calc(4px * var(--nut-scale-f, 1)));
height: var(--nutui-badge-dot-small-width, calc(4px * var(--nut-scale-f, 1)));
}
.nut-badge-dot-large {
min-width: var(--nutui-badge-dot-large-width, calc(8px * var(--nut-scale-f, 1)));
width: var(--nutui-badge-dot-large-width, calc(8px * var(--nut-scale-f, 1)));
height: var(--nutui-badge-dot-large-width, calc(8px * var(--nut-scale-f, 1)));
}
.nut-badge-outline {
background: var(--nutui-color-primary-text, #ffffff);
color: var(--nutui-badge-outline-color, var(--nutui-color-primary, #ff0f23));
}
.nut-badge-outline::after {
border: var(--nutui-badge-outline-border, calc(1px * var(--nut-scale-f, 1)) solid var(--nutui-color-primary, #ff0f23));
}
.nut-tabbar-item {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
padding: 6px 0 2px;
color: var(--nutui-tabbar-inactive-color, var(--nutui-color-title, #1a1a1a));
height: 100%;
}
.nut-tabbar-item .nut-icon {
width: 24px;
height: 24px;
font-size: var(--nutui-font-size-xxl, calc(24px * var(--nut-scale-font, var(--nut-scale-f, 1))));
/* #ifdef harmony dynamic*/
color: var(--nutui-tabbar-inactive-color, var(--nutui-color-title, #1a1a1a));
/* #endif*/
/* #ifndef harmony dynamic*/
color: inherit;
/* #endif*/
}
.nut-tabbar-item-text {
display: block;
color: var(--nutui-color-text, #505259);
font-size: var(--nutui-tabbar-text-font-size, var(--nutui-font-size-xxs, calc(10px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
line-height: var(--nutui-tabbar-text-font-size, var(--nutui-font-size-xxs, calc(10px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
margin-top: var(--nutui-tabbar-text-margin-top, calc(4px * var(--nut-scale-f, 1)));
}
.nut-tabbar-item .nut-image-default {
width: 38px;
height: 38px;
border-radius: 38px;
}
.nut-tabbar-item-large {
justify-content: center;
padding: 0;
}
.nut-tabbar-item-large .nut-tabbar-item-text {
font-size: var(--nutui-tabbar-text-large-font-size, var(--nutui-font-size-l, calc(15px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
margin-top: 0;
line-height: var(--nutui-tabbar-text-large-font-size, var(--nutui-font-size-l, calc(15px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
font-weight: var(--nutui-tabbar-text-large-font-weight, var(--nutui-font-weight, 400));
}
.nut-tabbar-item-active {
color: var(--nutui-tabbar-active-color, var(--nutui-color-primary, #ff0f23));
}
.nut-tabbar-item-active .nut-tabbar-item-text,
.nut-tabbar-item-active .nut-icon {
/* #ifdef harmony dynamic*/
color: var(--nutui-tabbar-active-color, var(--nutui-color-primary, #ff0f23));
/* #endif*/
/* #ifndef harmony dynamic*/
color: inherit;
/* #endif*/
}
.nut-tabbar {
border: 0;
box-shadow: var(--nutui-tabbar-box-shadow, none);
border-bottom: var(--nutui-tabbar-border-bottom, 0);
border-top: var(--nutui-tabbar-border-top, 0);
width: 100%;
background: var(--nutui-color-background-overlay, #ffffff);
}
.nut-tabbar-wrap {
height: var(--nutui-tabbar-height, calc(46px * var(--nut-scale-f, 1)));
display: flex;
}
.nut-tabbar-wrap-3 {
padding: 0 calc(16px * var(--nut-scale-f, 1));
}
.nut-tabbar-wrap-2 {
padding: 0 calc(32px * var(--nut-scale-f, 1));
}
.nut-tabbar-wrap-horizontal {
align-items: center;
}
.nut-tabbar-wrap-horizontal .nut-tabbar-item {
flex-direction: row;
justify-content: center;
}
.nut-tabbar-wrap-horizontal .nut-tabbar-item .nut-icon {
width: calc(20px * var(--nut-scale-f, 1));
height: calc(20px * var(--nut-scale-f, 1));
}
.nut-tabbar-wrap-horizontal .nut-tabbar-item .nut-tabbar-item-text {
margin: 0 calc(4px * var(--nut-scale-f, 1)) 0 calc(6px * var(--nut-scale-f, 1));
font-size: var(--nutui-font-size-base, calc(14px * var(--nut-scale-font, var(--nut-scale-f, 1))));
}
.nut-tabbar-wrap-horizontal .nut-tabbar-item .nut-badge-sup::after {
border: 0;
}
.nut-tabbar-fixed {
position: fixed;
bottom: 0;
left: 0;
}
[dir=rtl] .nut-tabbar:last-child,
.nut-rtl .nut-tabbar:last-child {
border-right: none;
border-left: 0;
}
[dir=rtl] .nut-tabbar-fixed,
.nut-rtl .nut-tabbar-fixed {
left: auto;
right: 0;
}