UNPKG

@nutui/nutui-react-taro

Version:

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

243 lines (232 loc) 9.02 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-indicator { display: flex; width: auto; flex-direction: row; flex-wrap: nowrap; align-items: center; } .nut-indicator-fixed-width { width: var(--nutui-indicator-track-width, calc(24px * var(--nut-scale-f, 1))); } .nut-indicator-dot, .nut-indicator-line { display: inline-block; vertical-align: middle; width: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); border-radius: 50%; background-color: var(--nutui-indicator-dot-inactive-color, var(--nutui-color-background-component, #f0f2f7)); border: var(--nutui-indicator-dot-border, calc(0.33px * var(--nut-scale-f, 1)) solid var(--nutui-color-border, rgba(0, 0, 0, 0.06))); box-sizing: border-box; margin-left: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xxs, calc(4px * var(--nut-scale-f, 1)))); } .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, calc(8px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, calc(2px * var(--nut-scale-f, 1)))); background: var(--nutui-indicator-color, var(--nutui-color-primary, #ff0f23)); border: var(--nutui-indicator-dot-border, calc(0.33px * var(--nut-scale-f, 1)) solid var(--nutui-color-border, rgba(0, 0, 0, 0.06))); } .nut-indicator-fixed-width .nut-indicator-dot { width: var(--nutui-indicator-dual-screen-inactive-width, calc(16px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, calc(2px * var(--nut-scale-f, 1)))); } .nut-indicator-fixed-width .nut-indicator-dot-active { width: var(--nutui-indicator-dot-active-size, calc(8px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); } .nut-indicator-vertical.nut-indicator-fixed-width { justify-content: flex-start; height: var(--nutui-indicator-track-width, calc(24px * var(--nut-scale-f, 1))); width: auto; } .nut-indicator-vertical.nut-indicator-fixed-width .nut-indicator-dot { width: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dual-screen-inactive-width, calc(16px * var(--nut-scale-f, 1))); border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, calc(2px * var(--nut-scale-f, 1)))); } .nut-indicator-vertical.nut-indicator-fixed-width .nut-indicator-dot-active { width: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dot-active-size, calc(8px * var(--nut-scale-f, 1))); } .nut-indicator-line { width: var(--nutui-indicator-slider-width, calc(8px * var(--nut-scale-f, 1))); margin: 0; border-radius: var(--nutui-indicator-border-radius, var(--nutui-radius-xxs, calc(2px * var(--nut-scale-f, 1)))); background-color: transparent; border: none; } .nut-indicator-line-active { position: relative; z-index: 1; transition: transform 0.3s ease-in-out; background: var(--nutui-indicator-color, var(--nutui-color-primary, #ff0f23)); border: var(--nutui-indicator-dot-border, calc(0.33px * var(--nut-scale-f, 1)) solid var(--nutui-color-border, rgba(0, 0, 0, 0.06))); transform: translateX(calc(var(--nutui-indicator-current, 0) / (var(--nutui-indicator-total, 2) - 1) * (var(--nutui-indicator-track-width, calc(24px * var(--nut-scale-f, 1))) - var(--nutui-indicator-slider-width, calc(8px * var(--nut-scale-f, 1)))))); } .nut-indicator-outside { margin-top: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); margin-bottom: var(--nutui-indicator-placement-safe-gap, calc(12px * var(--nut-scale-f, 1))); justify-content: center; } .nut-indicator-inside-top-right { position: absolute; top: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); right: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); } .nut-indicator-inside-bottom-center { position: absolute; bottom: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); left: 50%; transform: translateX(-50%); } .nut-indicator-inside-bottom-left { position: absolute; bottom: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); left: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); } .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, calc(2px * var(--nut-scale-f, 1)))); background-color: var(--nutui-indicator-dot-inactive-color, var(--nutui-color-background-component, #f0f2f7)); border: var(--nutui-indicator-dot-border, calc(0.33px * var(--nut-scale-f, 1)) solid var(--nutui-color-border, rgba(0, 0, 0, 0.06))); } .nut-indicator-white .nut-indicator-dot, .nut-indicator-white .nut-indicator-line { position: relative; background: var(--nutui-color-primary-text, #ffffff); opacity: 0.4; } .nut-indicator-white .nut-indicator-line { opacity: 0; } .nut-indicator-white .nut-indicator-line-active { opacity: 1; background: var(--nutui-color-primary-text, #ffffff); } .nut-indicator-white .nut-indicator-dot-active { background: var(--nutui-color-primary-text, #ffffff); opacity: 1; } .nut-indicator-track.nut-indicator-white:after { background: var(--nutui-color-primary-text, #ffffff); opacity: 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, calc(4px * var(--nut-scale-f, 1)))); } .nut-indicator-vertical .nut-indicator-dot-0 { margin-top: 0px; } .nut-indicator-vertical .nut-indicator-dot-active { width: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-dot-active-size, calc(8px * var(--nut-scale-f, 1))); } .nut-indicator-vertical.nut-indicator-track .nut-indicator-line { width: var(--nutui-indicator-dot-size, calc(4px * var(--nut-scale-f, 1))); height: var(--nutui-indicator-slider-width, calc(8px * var(--nut-scale-f, 1))); } .nut-indicator-vertical.nut-indicator-track .nut-indicator-line-active { transform: translateY(calc(var(--nutui-indicator-current, 0) / (var(--nutui-indicator-total, 2) - 1) * (var(--nutui-indicator-track-width, calc(24px * var(--nut-scale-f, 1))) - var(--nutui-indicator-slider-width, calc(8px * var(--nut-scale-f, 1)))))); } [dir=rtl] .nut-indicator-dot-0, .nut-rtl .nut-indicator-dot-0 { margin-right: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xxs, calc(4px * var(--nut-scale-f, 1)))); margin-left: 0px; } [dir=rtl] .nut-indicator-inside-top-right, .nut-rtl .nut-indicator-inside-top-right { right: auto; left: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); } [dir=rtl] .nut-indicator-inside-bottom-left, .nut-rtl .nut-indicator-inside-bottom-left { left: auto; right: var(--nutui-indicator-placement-gap, calc(8px * var(--nut-scale-f, 1))); } .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: calc(4px * var(--nut-scale-f, 1)); width: 100%; top: 89.33%; z-index: 10; } .nut-swiper-indicator-vertical { width: calc(8px * var(--nut-scale-f, 1)); height: 100%; top: 0; left: calc(12px * var(--nut-scale-f, 1)); 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: calc(12px * var(--nut-scale-f, 1)); }