UNPKG

@arco-design/web-react

Version:

Arco Design React UI Library.

327 lines (273 loc) 7.4 kB
@import './token.less'; @slider-prefix: ~'@{prefix}-slider'; .@{slider-prefix} { width: 100%; display: inline-block; &-wrapper { display: flex; align-items: center; } &-vertical { display: inline-block; height: auto; width: auto; min-width: @slider-size-button-width + 10; .@{slider-prefix}-wrapper { flex-direction: column; } } &-with-marks { margin-bottom: @slider-spacing-margin-bottom_with-mark; padding: 0 @slider-spacing-padding_width-mark; } &-vertical&-with-marks { margin-bottom: 0; padding: 0; } &-road { width: 100%; height: @slider-size-button-width; cursor: pointer; flex: 1; position: relative; &::before { content: ''; display: block; height: @slider-size-road-width; width: 100%; background-color: @slider-color-road-bg; border-radius: @slider-size-road-width; // 局中 position: absolute; top: 50%; transform: translateY(-50%); } &&-vertical { width: @slider-size-button-width; max-width: @slider-size-button-width; height: 100%; min-height: @slider-size-height_vertical; margin-bottom: @slider-size-button-width / 2; margin-top: @slider-size-button-width / 2; margin-right: 0; transform: translateY(0); &::before { width: @slider-size-road-width; height: 100%; // 局中 top: unset; left: 50%; transform: translateX(-50%); } } &&-disabled { &::before { background-color: @slider-color-road-bg_disabled; } .@{slider-prefix}-bar { background-color: @slider-color-bar-bg_disabled; } .@{slider-prefix}-button { cursor: not-allowed; &::after { border-color: @slider-color-button-border_disabled; } } .@{slider-prefix}-dots { .@{slider-prefix}-dot { border-color: @slider-color-road-bg_disabled; &-active { border-color: @slider-color-bar-bg_disabled; } } } .@{slider-prefix}-ticks { .@{slider-prefix}-tick { background: @slider-color-road-bg_disabled; &-active { background: @slider-color-bar-bg_disabled; } } } } } &-bar { position: absolute; height: @slider-size-road-width; background-color: @slider-color-bar-bg; border-radius: @slider-size-road-width; // 局中 top: 50%; transform: translateY(-50%); .@{slider-prefix}-road-vertical & { width: @slider-size-road-width; height: unset; // 局中 top: unset; left: 50%; transform: translateX(-50%); } } &-button { position: absolute; height: @slider-size-button-width; width: @slider-size-button-width; top: 0; left: 0; transform: translateX(-50%); &::after { content: ''; display: inline-block; width: @slider-size-button-width; height: @slider-size-button-width; background: @slider-color-button-bg; border: @slider-border-size-button solid @slider-color-button-border; border-radius: 50%; box-sizing: border-box; position: absolute; left: 0; transition: all @transition-duration-3 @transition-timing-function-overshoot; top: 0; } &&-active, &:hover { &::after { transform: scale((unit(@slider-size-button-width_active / @slider-size-button-width))); box-shadow: @slider-shadow-button_active; } } &:focus-visible::after { box-shadow: 0 0 0 2px @slider-color-box-shadow-button_focus; } .@{slider-prefix}-road-vertical & { top: unset; bottom: 0; left: 0; transform: translateY(50%); } .@{slider-prefix}-reverse & { transform: translateX(50%); left: unset; right: 0; } .@{slider-prefix}-reverse .@{slider-prefix}-road-vertical & { transform: translateY(-50%); } } &-marks { position: absolute; top: @slider-size-button-width; width: 100%; &-text { position: absolute; transform: translateX(-50%); cursor: pointer; font-size: @slider-font-size-mark; line-height: 1; color: @slider-color-mark-font; } .@{slider-prefix}-road-vertical & { height: 100%; left: @slider-size-button-width + @slider-spacing-mark-left; top: 0; &-text { transform: translateY(50%); } } .@{slider-prefix}-reverse &-text { transform: translateX(50%); } .@{slider-prefix}-reverse .@{slider-prefix}-road-vertical &-text { transform: translateY(-50%); } } &-dots { height: 100%; .@{slider-prefix}-dot-wrapper { position: absolute; top: 50%; transform: translate(-50%, -50%); font-size: @slider-font-size-dot; .@{slider-prefix}-road-vertical & { top: unset; left: 50%; transform: translate(-50%, 50%); } .@{slider-prefix}-reverse & { transform: translate(50%, -50%); } .@{slider-prefix}-reverse .@{slider-prefix}-road-vertical & { transform: translate(-50%, -50%); } .@{slider-prefix}-dot { background-color: @slider-color-dot-bg; box-sizing: border-box; border: @slider-border-size-dot solid @slider-color-road-bg; height: @slider-size-dot-width; width: @slider-size-dot-width; border-radius: 50%; &-active { border-color: @slider-color-bar-bg; } } } } &-ticks { .@{slider-prefix}-tick { position: absolute; width: @slider-size-tick-width; height: @slider-size-tick-height; background: @slider-color-road-bg; top: 50%; transform: translate(-50%, -100%); margin-top: -(@slider-size-road-width / 2); &-active { background: @slider-color-bar-bg; } .@{slider-prefix}-vertical & { width: @slider-size-tick-height; height: @slider-size-tick-width; top: unset; margin-top: unset; left: 50%; transform: translate((@slider-size-road-width / 2), 50%); } .@{slider-prefix}-reverse & { transform: translate(50%, -100%); } .@{slider-prefix}-vertical.@{slider-prefix}-reverse & { transform: translate((@slider-size-road-width / 2), -50%); } } } &-input { display: flex; margin-left: @slider-spacing-input-margin-left; .@{slider-prefix}-vertical & { margin-left: 0; } > .@{prefix}-input-number { width: @slider-size-input-width; height: @slider-size-input-height; line-height: normal; overflow: visible; input { text-align: center; } } &-range { width: @slider-size-input_range-width; line-height: @slider-size-input_range-height; height: @slider-size-input_range-height; text-align: center; &-content { display: inline-block; width: @slider-size-input_range_content-width; height: @slider-size-input_range_content-height; background: @slider-color-input_range_content-bg; transform: translate(0, -100%); } } } } @import './rtl.less';