UNPKG

@nutui/nutui-react

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

746 lines (725 loc) 18.2 kB
@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 !important; } @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% !important; background: transparent !important; 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; }