@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
746 lines (725 loc) • 18.2 kB
CSS
@charset "UTF-8";
/* #ifdef harmony */
/* #endif */
/* #ifndef harmony */
/* #endif */
.nut-overlay {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
background-color: var(--nutui-overlay-bg-color, var(--nutui-color-mask, rgba(0, 0, 0, 0.7)));
z-index: var(--nutui-overlay-zIndex, 1000);
}
.nut-overflow-hidden {
overflow: hidden ;
}
@keyframes nut-fade-in {
0% {
opacity: 0;
}
1% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes nut-fade-out {
0% {
opacity: 1;
}
1% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.nut-overlay-slide-enter-active, .nut-overlay-slide-appear-active {
animation-fill-mode: both;
animation-name: nut-fade-in;
animation-duration: var(--nutui-overlay-animation-duration, 0.3s);
}
.nut-overlay-slide-exit-active {
animation-fill-mode: both;
animation-name: nut-fade-out;
animation-duration: var(--nutui-overlay-animation-duration, 0.3s);
}
[dir=rtl] .nut-overlay,
.nut-rtl .nut-overlay {
left: auto;
right: 0;
}
.nut-popup {
position: fixed;
min-height: 26%;
max-height: 100%;
background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
-webkit-overflow-scrolling: touch;
font-size: var(--nutui-font-size-base, 14px);
}
.nut-popup-title {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
border-bottom: var(--nutui-popup-title-border-bottom, 0);
padding: var(--nutui-popup-title-padding, 16px);
position: relative;
}
.nut-popup-title-wrapper {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.nut-popup-title-title {
color: var(--nutui-color-title, #1a1a1a);
font-weight: var(--nutui-font-weight-bold, 600);
font-size: var(--nutui-popup-title-font-size, var(--nutui-font-size-l, 16px));
line-height: var(--nutui-popup-title-font-size, var(--nutui-font-size-l, 16px));
}
.nut-popup-title-description {
color: var(--nutui-color-text, #505259);
font-size: var(--nutui-popup-description-font-size, var(--nutui-font-size-base, 14px));
font-weight: var(--nutui-font-weight, 400);
}
.nut-popup-title-description-gap {
margin-top: var(--nutui-popup-description-spacing, var(--nutui-spacing-base, 8px));
}
.nut-popup-title-left {
position: absolute;
top: var(--nutui-popup-title-padding, 16px);
left: var(--nutui-popup-title-padding, 16px);
}
.nut-popup-title-right {
position: absolute;
top: var(--nutui-popup-title-padding, 16px);
right: var(--nutui-popup-title-padding, 16px);
z-index: 1;
width: var(--nutui-popup-icon-size, 20px);
height: var(--nutui-popup-icon-size, 20px);
color: var(--nutui-color-title, #1a1a1a);
cursor: pointer;
}
.nut-popup-title-right:active {
opacity: 0.7;
}
.nut-popup-title-right-top-left {
top: var(--nutui-popup-title-padding, 16px);
left: var(--nutui-popup-title-padding, 16px);
}
.nut-popup-title-right-bottom-left {
bottom: var(--nutui-popup-title-padding, 16px);
left: var(--nutui-popup-title-padding, 16px);
}
.nut-popup-title-right-bottom-right {
right: var(--nutui-popup-title-padding, 16px);
bottom: var(--nutui-popup-title-padding, 16px);
}
.nut-popup-center {
top: 50%;
left: 50%;
min-height: 10%;
max-width: 295px;
transform: translate(-50%, -50%);
}
.nut-popup-center.nut-popup-round {
border-radius: var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px));
}
.nut-popup-bottom, .nut-popup-top {
max-height: 87%;
}
.nut-popup-bottom {
bottom: 0;
left: 0;
width: 100%;
}
.nut-popup-bottom.nut-popup-round {
border-radius: var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px)) var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px)) 0 0;
}
.nut-popup-right {
top: 0;
right: 0;
width: 100px;
height: 100%;
}
.nut-popup-right.nut-popup-round {
border-radius: var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px)) 0 0 var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px));
}
.nut-popup-left {
top: 0;
left: 0;
width: 100px;
height: 100%;
}
.nut-popup-left.nut-popup-round {
border-radius: 0 var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px)) var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px)) 0;
}
.nut-popup-top {
top: 0;
left: 0;
width: 100%;
}
.nut-popup-top.nut-popup-round {
border-radius: 0 0 var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px)) var(--nutui-popup-border-radius, var(--nutui-radius-xl, 12px));
}
.nut-popup-slide {
/* 从顶部滑出 */
/* 从右侧滑出 */
/* 从底部滑出 */
/* 从左侧滑出 */
}
@keyframes popup-scale-fade-in {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes popup-scale-fade-out {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0.8);
}
}
.nut-popup-slide-none-enter-active {
animation-fill-mode: both;
animation-name: popup-scale-fade-in;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-none-exit-active {
animation-fill-mode: both;
animation-name: popup-scale-fade-out;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
@keyframes popup-fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes popup-fade-out {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.nut-popup-slide-center-enter-active {
animation-fill-mode: both;
animation-name: popup-fade-in;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-center-exit-active {
animation-fill-mode: both;
animation-name: popup-fade-out;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
@keyframes popup-slide-top-enter {
from {
transform: translate3d(0, -100%, 0);
}
to {
transform: translate3d(0, 0%, 0);
}
}
@keyframes popup-slide-top-exit {
to {
transform: translate3d(0, -100%, 0);
}
}
.nut-popup-slide-top-enter-active, .nut-popup-slide-top-appear-active {
transform: translate3d(0, 0%, 0);
animation-fill-mode: both;
animation-name: popup-slide-top-enter;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-top-exit-active {
animation-fill-mode: both;
animation-name: popup-slide-top-exit;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
@keyframes popup-slide-right-enter {
from {
transform: translate3d(100%, 0, 0);
}
to {
transform: translate3d(0%, 0, 0);
}
}
@keyframes popup-slide-right-exit {
to {
transform: translate3d(100%, 0, 0);
}
}
.nut-popup-slide-right-enter-active, .nut-popup-slide-right-appear-active {
transform: translate3d(0, 0, 0);
animation-fill-mode: both;
animation-name: popup-slide-right-enter;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-right-exit {
animation-fill-mode: both;
animation-name: popup-slide-right-exit;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
@keyframes popup-slide-bottom-enter {
from {
transform: translate3d(0, 100%, 0);
}
to {
transform: translate3d(0, 0%, 0);
}
}
@keyframes slide-bottom-exit {
to {
transform: translate3d(0, 100%, 0);
}
}
.nut-popup-slide-bottom-enter-active, .nut-popup-slide-bottom-appear-active {
transform: translate(0, 0);
animation-fill-mode: both;
animation-name: popup-slide-bottom-enter;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-bottom-exit {
animation-fill-mode: both;
animation-name: slide-bottom-exit;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
@keyframes popup-slide-left-enter {
from {
transform: translate3d(-100%, 0, 0);
}
to {
transform: translate3d(0%, 0, 0);
}
}
@keyframes popup-slide-left-exit {
to {
transform: translate3d(-100%, 0, 0);
}
}
.nut-popup-slide-left-enter-active, .nut-popup-slide-left-appear-active {
transform: translate(0, 0);
animation-fill-mode: both;
animation-name: popup-slide-left-enter;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-left-exit-active, .nut-popup-slide-left-exit-done {
animation-fill-mode: both;
animation-name: popup-slide-left-exit;
animation-duration: var(--nutui-popup-animation-duration, 0.3s);
}
.nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
display: none;
}
.nut-popup .nut-overflow-hidden {
overflow: hidden;
}
[dir=rtl] .nut-popup-title-left,
.nut-rtl .nut-popup-title-left {
left: auto;
right: var(--nutui-popup-title-padding, 16px);
}
[dir=rtl] .nut-popup-title-right,
.nut-rtl .nut-popup-title-right {
right: auto;
left: var(--nutui-popup-title-padding, 16px);
}
[dir=rtl] .nut-popup-title-right-top-left,
.nut-rtl .nut-popup-title-right-top-left {
left: auto;
right: var(--nutui-popup-title-padding, 16px);
}
[dir=rtl] .nut-popup-title-right-bottom-left,
.nut-rtl .nut-popup-title-right-bottom-left {
left: auto;
right: var(--nutui-popup-title-padding, 16px);
}
[dir=rtl] .nut-popup-title-right-bottom-right,
.nut-rtl .nut-popup-title-right-bottom-right {
right: auto;
left: var(--nutui-popup-title-padding, 16px);
}
[dir=rtl] .nut-popup-title .nut-icon-ArrowLeft,
.nut-rtl .nut-popup-title .nut-icon-ArrowLeft {
transform: rotate(180deg);
}
[dir=rtl] .nut-popup-center,
.nut-rtl .nut-popup-center {
left: auto;
right: 50%;
transform: translate(50%, -50%);
}
[dir=rtl] .nut-popup-bottom,
.nut-rtl .nut-popup-bottom {
left: auto;
right: 0;
}
[dir=rtl] .nut-popup-top,
.nut-rtl .nut-popup-top {
left: auto;
right: 0;
}
.nut-indicator {
display: flex;
width: auto;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
}
.nut-indicator-fixed-width {
width: 21px;
}
.nut-indicator-dot, .nut-indicator-line {
display: inline-block;
vertical-align: middle;
width: var(--nutui-indicator-dot-size, 3px);
height: var(--nutui-indicator-dot-size, 3px);
border-radius: 50%;
background-color: var(--nutui-color-border-disabled, #c2c4cc);
margin-left: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xxs, 4px));
opacity: 0.4;
}
.nut-indicator-dot-0, .nut-indicator-line-0 {
margin-left: 0px;
}
.nut-indicator-dot-active, .nut-indicator-line-active {
width: var(--nutui-indicator-dot-active-size, 6px);
border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, 2px));
background: var(--nutui-indicator-color, var(--nutui-color-primary, #ff0f23));
opacity: 1;
}
.nut-indicator-fixed-width .nut-indicator-dot {
width: 12px;
border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, 2px));
}
.nut-indicator-fixed-width .nut-indicator-dot-active {
width: 6px;
}
.nut-indicator-vertical.nut-indicator-fixed-width {
justify-content: flex-start;
height: 21px;
width: auto;
}
.nut-indicator-vertical.nut-indicator-fixed-width .nut-indicator-dot {
width: 3px;
height: 12px;
border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, 2px));
}
.nut-indicator-vertical.nut-indicator-fixed-width .nut-indicator-dot-active {
height: 6px;
}
.nut-indicator-vertical.nut-indicator-fixed-width.nut-indicator-fixed-width.nut-indicator-white .nut-indicator-dot-active {
height: 6px;
}
.nut-indicator-line {
width: var(--nutui-indicator-dot-active-size, 6px);
margin: 0;
border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, 2px));
background-color: transparent;
}
.nut-indicator-line-active {
transition: transform 0.3s ease-in-out;
background: var(--nutui-indicator-color, var(--nutui-color-primary, #ff0f23));
}
.nut-indicator-track {
position: relative;
}
.nut-indicator-track:after {
display: block;
content: " ";
position: absolute;
width: 100%;
height: 100%;
box-sizing: border-box;
border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, 2px));
background-color: var(--nutui-color-border-disabled, #c2c4cc);
opacity: 0.4;
}
.nut-indicator-white .nut-indicator-dot, .nut-indicator-white .nut-indicator-line {
position: relative;
box-sizing: content-box;
background: rgba(255, 255, 255, 0.4);
opacity: 1;
}
.nut-indicator-white .nut-indicator-line {
opacity: 0;
}
.nut-indicator-white .nut-indicator-line-active {
opacity: 1;
background: rgb(255, 255, 255);
}
.nut-indicator-white .nut-indicator-dot-active {
background: rgb(255, 255, 255);
}
.nut-indicator-track.nut-indicator-white:after {
border: 1px solid rgba(0, 0, 0, 0.06);
background: rgba(255, 255, 255, 0.4);
}
.nut-indicator-vertical {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.nut-indicator-vertical .nut-indicator-dot {
margin: 0px;
margin-top: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xxs, 4px));
}
.nut-indicator-vertical .nut-indicator-dot-0 {
margin-top: 0px;
}
.nut-indicator-vertical .nut-indicator-dot-active {
width: var(--nutui-indicator-dot-size, 3px);
height: var(--nutui-indicator-dot-active-size, 6px);
}
.nut-indicator-vertical.nut-indicator-track .nut-indicator-line {
width: var(--nutui-indicator-dot-size, 3px);
height: var(--nutui-indicator-dot-active-size, 6px);
}
[dir=rtl] .nut-indicator-dot-0,
.nut-rtl .nut-indicator-dot-0 {
margin-right: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xxs, 4px));
margin-left: 0px;
}
.nut-swiper {
width: 100%;
height: 100%;
overflow: hidden;
position: relative;
}
.nut-swiper-canmove-horizontal {
touch-action: pan-y;
}
.nut-swiper-canmove-vertical {
touch-action: pan-x;
}
.nut-swiper-indicator {
display: flex;
flex-direction: row;
justify-content: center;
position: absolute;
height: 4px;
width: 100%;
top: 89.33%;
z-index: 10;
}
.nut-swiper-indicator-vertical {
width: 8px;
height: 100%;
top: 0;
left: 12px;
flex-direction: column;
justify-content: center;
z-index: 1;
}
.nut-swiper-inner {
width: 100%;
height: 100%;
display: flex;
position: relative;
}
.nut-swiper-inner-vertical {
flex-direction: column;
}
.nut-swiper-slide {
width: 100%;
height: 100%;
position: relative;
flex-shrink: 0;
}
.nut-swiper-item {
width: 100%;
height: 100%;
}
[dir=rtl] .nut-swiper-indicator,
.nut-rtl .nut-swiper-indicator {
left: auto;
right: 50%;
}
[dir=rtl] .nut-swiper-indicator-vertical,
.nut-rtl .nut-swiper-indicator-vertical {
left: auto;
right: 12px;
}
.nut-video {
width: 100%;
height: 100%;
position: relative;
display: flex;
}
.nut-video-player {
width: 100%;
background: #000;
}
.nut-video-player:focus {
outline: none;
}
.nut-video video {
width: 100%;
height: 100%;
object-fit: fill;
}
.nut-image {
display: block;
position: relative;
}
.nut-image-default {
display: block;
width: 100%;
height: 100%;
}
.nut-image.nut-image-round {
border-radius: 50%;
overflow: hidden;
}
.nut-image-loading {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: var(--nutui-color-background, #f2f3f5);
background-size: 100% 100%;
}
.nut-image-error {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: var(--nutui-color-background, #f2f3f5);
background-size: 100% 100%;
}
[dir=rtl] .nut-image .nut-img-loading,
.nut-rtl .nut-image .nut-img-loading {
left: auto;
right: 0;
}
[dir=rtl] .nut-image .nut-img-error,
.nut-rtl .nut-image .nut-img-error {
left: auto;
right: 0;
}
.nut-imagepreview {
width: 100%;
height: 100%;
}
.nut-imagepreview-swiper {
height: 100%;
width: 100vw;
background-color: transparent;
}
.nut-imagepreview-index {
position: fixed;
z-index: 2002;
top: 50px;
text-align: center;
left: 0;
right: 0;
background: transparent;
color: #ffffff;
}
.nut-imagepreview-index .arrow {
position: absolute;
left: 15px;
transform: rotateZ(180deg);
}
.nut-imagepreview-close {
position: fixed;
display: flex;
align-items: center;
justify-content: center;
z-index: 2002;
background: transparent;
color: #ffffff;
}
.nut-imagepreview-close .nut-icon {
color: #ffffff;
}
.nut-imagepreview-close.top-right {
top: 50px;
right: 20px;
}
.nut-imagepreview-close.top-left {
top: 50px;
left: 20px;
}
.nut-imagepreview-close.bottom {
bottom: 50px;
left: 0;
right: 0;
text-align: center;
}
.nut-imagepreview-pop {
width: 100%;
height: 100%;
max-width: 100% ;
background: transparent ;
display: flex;
align-items: center;
}
.nut-imagepreview-swiper .nut-imagepreview-swiper-item,
.nut-imagepreview-swiper .nut-swiper-item {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.nut-imagepreview-swiper .nut-imagepreview-swiper-item .nut-image,
.nut-imagepreview-swiper .nut-imagepreview-swiper-item .nut-video,
.nut-imagepreview-swiper .nut-swiper-item .nut-image,
.nut-imagepreview-swiper .nut-swiper-item .nut-video {
display: flex;
justify-content: center;
align-items: center;
}
.nut-imagepreview-swiper .nut-imagepreview-swiper-item .nut-image-preview-box,
.nut-imagepreview-swiper .nut-swiper-item .nut-image-preview-box {
width: 100%;
}
.nut-imagepreview-swiper .nut-imagepreview-swiper-item .nut-video video,
.nut-imagepreview-swiper .nut-swiper-item .nut-video video {
object-fit: contain;
}
[dir=rtl] .nut-imagepreview-index .arrow,
.nut-rtl .nut-imagepreview-index .arrow {
left: auto;
right: 15px;
transform: rotateZ(-180deg);
}
[dir=rtl] .nut-imagepreview-close.top-right,
.nut-rtl .nut-imagepreview-close.top-right {
right: auto;
left: 20px;
}
[dir=rtl] .nut-imagepreview-close.top-left,
.nut-rtl .nut-imagepreview-close.top-left {
left: auto;
right: 20px;
}