@import './var.less'; :root { --van-slider-active-background-color: @slider-active-background-color; --van-slider-inactive-background-color: @slider-inactive-background-color; --van-slider-disabled-opacity: @slider-disabled-opacity; --van-slider-bar-height: @slider-bar-height; --van-slider-button-width: @slider-button-width; --van-slider-button-height: @slider-button-height; --van-slider-button-border-radius: @slider-button-border-radius; --van-slider-button-background-color: @slider-button-background-color; --van-slider-button-box-shadow: @slider-button-box-shadow; } .van-slider { position: relative; width: 100%; height: var(--van-slider-bar-height); background: var(--van-slider-inactive-background-color); border-radius: var(--van-border-radius-max); cursor: pointer; // use pseudo element to expand click area &::before { position: absolute; top: calc(var(--van-padding-xs) * -1); right: 0; bottom: calc(var(--van-padding-xs) * -1); left: 0; content: ''; } &__bar { position: absolute; width: 100%; height: 100%; background: var(--van-slider-active-background-color); border-radius: inherit; transition: all var(--van-animation-duration-fast); } &__button { width: var(--van-slider-button-width); height: var(--van-slider-button-height); background: var(--van-slider-button-background-color); border-radius: var(--van-slider-button-border-radius); box-shadow: var(--van-slider-button-box-shadow); &-wrapper { position: absolute; cursor: grab; top: 50%; &--right { right: 0; transform: translate3d(50%, -50%, 0); } &--left { left: 0; transform: translate3d(-50%, -50%, 0); } } } &--disabled { cursor: not-allowed; opacity: var(--van-slider-disabled-opacity); .van-slider__button-wrapper { cursor: not-allowed; } } &--vertical { display: inline-block; width: var(--van-slider-bar-height); height: 100%; .van-slider__button-wrapper--right { top: auto; right: 50%; bottom: 0; transform: translate3d(50%, 50%, 0); } .van-slider__button-wrapper--left { top: 0; right: 50%; left: auto; transform: translate3d(50%, -50%, 0); } // use pseudo element to expand click area &::before { top: 0; right: calc(var(--van-padding-xs) * -1); bottom: 0; left: calc(var(--van-padding-xs) * -1); } } }