UNPKG

@nutui/nutui-react

Version:

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

190 lines (187 loc) 6.04 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; } /* #ifdef harmony */ /* #endif */ /* #ifndef harmony */ /* #endif */ .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; }