UNPKG

@nutui/nutui-react-taro

Version:

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

345 lines (337 loc) 11 kB
: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))) !important; --nut-icon-width: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) !important; --nut-icon-line-height: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) !important; } .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))); } .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-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-fixednav { position: fixed; z-index: var(--nutui-fixednav-index, 900); display: inline-block; height: calc(50px * var(--nut-scale-f, 1)); } .nut-fixednav.active .nut-fixednav-btn .nut-icon { transform: rotate(180deg); } .nut-fixednav.active .nut-fixednav-list { transform: translateX(0%) !important; } .nut-fixednav.active.nut-fixednav-left .nut-icon { transform: rotate(0deg); } .nut-fixednav-btn { box-sizing: border-box; position: absolute; z-index: var(--nutui-fixednav-index, 900); width: calc(70px * var(--nut-scale-f, 1)); height: 100%; background: var(--nutui-fixednav-button-background, var(--nutui-color-primary, #ff0f23)); box-shadow: 0 calc(2px * var(--nut-scale-f, 1)) calc(4px * var(--nut-scale-f, 1)) 0 rgba(0, 0, 0, 0.2); display: flex; align-items: center; justify-content: center; } .nut-fixednav-btn .text { width: calc(24px * var(--nut-scale-f, 1)); line-height: calc(13px * var(--nut-scale-f, 1)); font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))); color: #fff; flex-shrink: 0; } .nut-fixednav-btn .nut-icon { transition: all 0.3s; } .nut-fixednav-list { position: absolute; transition: all 0.5s; z-index: var(--nutui-fixednav-index, 900); flex-shrink: 0; height: 100%; background: var(--nutui-fixednav-background-color, #ffffff); display: flex; justify-content: space-between; box-shadow: calc(2px * var(--nut-scale-f, 1)) calc(2px * var(--nut-scale-f, 1)) calc(8px * var(--nut-scale-f, 1)) 0 rgba(0, 0, 0, 0.2); } .nut-fixednav-list-item { position: relative; flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: calc(50px * var(--nut-scale-f, 1)); flex-shrink: 0; color: var(--nutui-fixednav-color, #1a1a1a); } .nut-fixednav-list-item .nut-fixednav-list-text { font-size: var(--nutui-font-size-xxs, calc(10px * var(--nut-scale-font, var(--nut-scale-f, 1)))); } .nut-fixednav-list-image { width: calc(20px * var(--nut-scale-f, 1)); height: calc(20px * var(--nut-scale-f, 1)); margin-bottom: calc(2px * var(--nut-scale-f, 1)); } .nut-fixednav-right { right: 0; } .nut-fixednav-right .nut-fixednav-btn { right: 0; border-radius: calc(45px * var(--nut-scale-f, 1)) 0 0 calc(45px * var(--nut-scale-f, 1)); } .nut-fixednav-right .nut-fixednav-btn .nut-icon { margin-right: calc(5px * var(--nut-scale-f, 1)); transform: rotate(0deg); } .nut-fixednav-right .nut-fixednav-list { right: 0; transform: translateX(100%); border-radius: calc(25px * var(--nut-scale-f, 1)) 0 0 calc(25px * var(--nut-scale-f, 1)); padding-left: calc(20px * var(--nut-scale-f, 1)); padding-right: calc(80px * var(--nut-scale-f, 1)); } .nut-fixednav-left { left: 0; } .nut-fixednav-left .nut-fixednav-btn { flex-direction: row-reverse; left: 0; border-radius: 0 calc(45px * var(--nut-scale-f, 1)) calc(45px * var(--nut-scale-f, 1)) 0; } .nut-fixednav-left .nut-fixednav-btn .nut-icon { margin-left: calc(5px * var(--nut-scale-f, 1)); transform: rotate(180deg); } .nut-fixednav-left .nut-fixednav-list { transform: translateX(-100%); left: 0; border-radius: 0 calc(25px * var(--nut-scale-f, 1)) calc(25px * var(--nut-scale-f, 1)) 0; padding-left: calc(80px * var(--nut-scale-f, 1)); padding-right: calc(20px * var(--nut-scale-f, 1)); } [dir=rtl] .nut-fixednav-right, .nut-rtl .nut-fixednav-right { right: auto; left: 0; } [dir=rtl] .nut-fixednav.active .nut-icon, .nut-rtl .nut-fixednav.active .nut-icon { transform: rotate(0deg); } [dir=rtl] .nut-fixednav.active.nut-fixednav-left .nut-icon, .nut-rtl .nut-fixednav.active.nut-fixednav-left .nut-icon { transform: rotate(-180deg); } [dir=rtl] .nut-fixednav-btn, .nut-rtl .nut-fixednav-btn { right: auto; left: 0; border-radius: 0 calc(45px * var(--nut-scale-f, 1)) calc(45px * var(--nut-scale-f, 1)) 0; } [dir=rtl] .nut-fixednav-btn .nut-icon, .nut-rtl .nut-fixednav-btn .nut-icon { margin-right: 0; margin-left: calc(5px * var(--nut-scale-f, 1)); transform: rotate(180deg); } [dir=rtl] .nut-fixednav-list, .nut-rtl .nut-fixednav-list { right: auto; left: 0; transform: translateX(-100%); border-radius: 0 calc(25px * var(--nut-scale-f, 1)) calc(25px * var(--nut-scale-f, 1)) 0; box-shadow: calc(-2px * var(--nut-scale-f, 1)) calc(2px * var(--nut-scale-f, 1)) calc(8px * var(--nut-scale-f, 1)) 0 rgba(0, 0, 0, 0.2); padding-right: calc(20px * var(--nut-scale-f, 1)); padding-left: calc(80px * var(--nut-scale-f, 1)); } [dir=rtl] .nut-fixednav-list-item .b, .nut-rtl .nut-fixednav-list-item .b { right: auto; left: 0; } [dir=rtl] .nut-fixednav-left, .nut-rtl .nut-fixednav-left { left: auto; right: 0; } [dir=rtl] .nut-fixednav-left .nut-fixednav-btn, .nut-rtl .nut-fixednav-left .nut-fixednav-btn { left: auto; right: 0; border-radius: calc(45px * var(--nut-scale-f, 1)) 0 0 calc(45px * var(--nut-scale-f, 1)); } [dir=rtl] .nut-fixednav-left .nut-fixednav-btn .nut-icon, .nut-rtl .nut-fixednav-left .nut-fixednav-btn .nut-icon { transform: rotate(0deg); margin-right: calc(5px * var(--nut-scale-f, 1)); margin-left: 0; } [dir=rtl] .nut-fixednav-left .nut-fixednav-list, .nut-rtl .nut-fixednav-left .nut-fixednav-list { transform: translateX(100%); right: auto; left: auto; border-radius: calc(25px * var(--nut-scale-f, 1)) 0 0 calc(25px * var(--nut-scale-f, 1)); padding-right: calc(80px * var(--nut-scale-f, 1)); padding-left: calc(20px * var(--nut-scale-f, 1)); } .nut-drag .nut-fixednav { position: relative; }