UNPKG

@nutui/nutui-react

Version:

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

284 lines (279 loc) 8.18 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-range-container { display: flex; flex-direction: row; position: relative; width: 100%; height: var(--nutui-range-height, calc(4px * var(--nut-scale-f, 1))); align-items: center; justify-content: space-between; } .nut-range-container-native { height: auto; } .nut-range { display: block; position: relative; height: var(--nutui-range-height, calc(4px * var(--nut-scale-f, 1))); margin: 0 var(--nutui-range-margin, calc(15px * var(--nut-scale-f, 1))); background-color: var(--nutui-range-inactive-color, var(--nutui-color-primary-light-pressed, #ffebf1)); border-radius: calc(2px * var(--nut-scale-f, 1)); flex: 1; cursor: pointer; } .nut-range::before { position: absolute; inset-block: calc(-8px * var(--nut-scale-f, 1)); inset-inline: 0; content: ""; } .nut-range-min, .nut-range-max { font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))); color: var(--nutui-range-color, var(--nutui-color-title, #1a1a1a)); user-select: none; } .nut-range-bar { display: block; position: relative; width: 100%; height: 100%; max-width: 100%; max-height: 100%; background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff0f23)); border-radius: calc(2px * var(--nut-scale-f, 1)); } .nut-range-bar-animate { transition: all 0.2s; } .nut-range-button { position: absolute; display: flex; width: var(--nutui-range-button-width, calc(24px * var(--nut-scale-f, 1))); height: var(--nutui-range-button-height, calc(24px * var(--nut-scale-f, 1))); background: var(--nutui-range-button-background, #ffffff); border-radius: 50%; box-shadow: 0 calc(1px * var(--nut-scale-f, 1)) calc(2px * var(--nut-scale-f, 1)) 0 rgba(0, 0, 0, 0.15); border: var(--nutui-range-button-border, calc(1px * var(--nut-scale-f, 1)) solid var(--nutui-color-primary, #ff0f23)); outline: none; align-items: center; top: 50%; left: 50%; } .nut-range-button-wrapper, .nut-range-button-wrapper-right, .nut-range-button-wrapper-left { width: var(--nutui-range-button-width, calc(24px * var(--nut-scale-f, 1))); height: var(--nutui-range-button-height, calc(24px * var(--nut-scale-f, 1))); } .nut-range-button-wrapper, .nut-range-button-wrapper-right { touch-action: none; position: absolute; top: 50%; left: 100%; cursor: grab; outline: none; } .nut-range-button-wrapper-left { position: absolute; top: 50%; left: 0; cursor: grab; outline: none; touch-action: none; } .nut-range-button-number { position: relative; width: 200%; height: calc(24px * var(--nut-scale-f, 1)); line-height: calc(14px * var(--nut-scale-f, 1)); padding: calc(5px * var(--nut-scale-f, 1)) 0; left: 50%; display: flex; align-items: center; justify-content: center; user-select: none; font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))); color: var(--nutui-range-color, var(--nutui-color-title, #1a1a1a)); text-align: center; vertical-align: center; box-sizing: border-box; } .nut-range-disabled { cursor: not-allowed; opacity: 0.54; } .nut-range-disabled .nut-range-button-wrapper, .nut-range-disabled .nut-range-button-wrapper-left, .nut-range-disabled .nut-range-button-wrapper-right { cursor: not-allowed; } .nut-range-mark { position: absolute; width: 100%; height: calc(14px * var(--nut-scale-f, 1)); overflow: visible; top: 50%; } .nut-range-mark-text-wrapper { position: absolute; height: 100%; top: calc(14px * var(--nut-scale-f, 1)); display: inline-block; transform: translateX(calc(-10px * var(--nut-scale-f, 1))); } .nut-range-mark-text { position: absolute; line-height: calc(16px * var(--nut-scale-f, 1)); font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))); color: #999; text-align: center; word-break: keep-all; user-select: none; } .nut-range-tick { position: absolute; top: calc(-20px * var(--nut-scale-f, 1)); width: calc(11px * var(--nut-scale-f, 1)); height: calc(11px * var(--nut-scale-f, 1)); left: 0; border-radius: calc(6px * var(--nut-scale-f, 1)); background: var(--nutui-range-inactive-color, var(--nutui-color-primary-light-pressed, #ffebf1)); } .nut-range-tick-active { background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff0f23)); } .nut-range-vertical-container { height: 100%; flex-direction: column; padding: 0 calc(15px * var(--nut-scale-f, 1)); } .nut-range-vertical { width: var(--nutui-range-height, calc(4px * var(--nut-scale-f, 1))); margin: var(--nutui-range-margin, calc(15px * var(--nut-scale-f, 1))) 0; } .nut-range-vertical-button-wrapper, .nut-range-vertical-button-wrapper-right { position: absolute; /* #ifndef dynamic*/ top: initial; right: initial; /* #endif */ top: 100%; left: 50%; } .nut-range-vertical-button-wrapper-left { top: 0; left: 50%; /* #ifndef dynamic*/ right: initial; /* #endif */ } .nut-range-vertical-button-number { left: 0; top: 50%; } .nut-range-vertical-mark { position: absolute; width: calc(36px * var(--nut-scale-f, 1)); height: 100%; top: 0; right: 50%; overflow: visible; font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))); padding: 0; } .nut-range-vertical-mark-hm { left: calc(-34px * var(--nut-scale-f, 1)); } .nut-range-vertical-mark-text-wrapper { height: calc(16px * var(--nut-scale-f, 1)); position: absolute; display: inline-block; user-select: none; transform: translateY(calc(-11px * var(--nut-scale-f, 1))); } .nut-range-vertical-mark-text { height: 100%; line-height: calc(16px * var(--nut-scale-f, 1)); color: #999; text-align: center; word-break: keep-all; } .nut-range-vertical-tick { position: absolute; top: calc(2px * var(--nut-scale-f, 1)); left: calc(31px * var(--nut-scale-f, 1)); width: calc(10px * var(--nut-scale-f, 1)); height: calc(10px * var(--nut-scale-f, 1)); border-radius: calc(5px * var(--nut-scale-f, 1)); background: var(--nutui-range-inactive-color, var(--nutui-color-primary-light-pressed, #ffebf1)); } .nut-range-vertical-tick-active { background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff0f23)); } [dir=rtl] .nut-range-button-wrapper, [dir=rtl] .nut-range-button-wrapper-right, .rtl-nut-range-button-wrapper, .rtl-nut-range-button-wrapper-right { left: 0; /* #ifndef dynamic*/ right: initial; /* #endif */ } [dir=rtl] .nut-range-button-wrapper-left, .rtl-nut-range-button-wrapper-left { right: 0; /* #ifndef dynamic*/ left: initial; /* #endif */ } [dir=rtl] .nut-range-tick, .rtl-nut-range-tick { right: 0; /* #ifndef dynamic*/ left: initial; /* #endif */ } [dir=rtl] .nut-range-mark-text, .rtl-nut-range-mark-text { transform: translateX(calc(10px * var(--nut-scale-f, 1))); } [dir=rtl] .nut-range-vertical-button-wrapper, [dir=rtl] .nut-range-vertical-button-wrapper-right, .rtl-nut-range-vertical-button-wrapper, .rtl-nut-range-vertical-button-wrapper-right { right: 50%; /* #ifndef dynamic*/ left: initial; /* #endif */ } [dir=rtl] .nut-range-vertical-button-wrapper-left, .rtl-nut-range-vertical-button-wrapper-left { right: 50%; /* #ifndef dynamic*/ left: initial; /* #endif */ } [dir=rtl] .nut-range-vertical-mark, .rtl-nut-range-vertical-mark { right: auto; left: 50%; } [dir=rtl] .nut-range-vertical-tick, .rtl-nut-range-vertical-tick { left: auto; right: calc(30px * var(--nut-scale-f, 1)); margin-left: 0; margin-right: 0; } [dir=rtl] .nut-range-vertical-mark-text-wrapper, .rtl-nut-range-vertical-mark-text-wrapper { transform: translateY(calc(-11px * var(--nut-scale-f, 1))); }