@use 'sass:map' @use 'sass:selector' @use 'sass:math' @use '../../styles/settings' @use '../../styles/tools' @use './variables' as * // Theme .v-slider-thumb touch-action: none color: rgb(var(--v-theme-surface-variant)) .v-input--error:not(.v-input--disabled) & color: inherit .v-slider-thumb__label background: rgba(var(--v-theme-surface-variant), .7) color: rgb(var(--v-theme-on-surface-variant)) &::before color: rgba(var(--v-theme-surface-variant), .7) // Block .v-slider-thumb outline: none position: absolute transition: $slider-transition .v-slider-thumb__surface cursor: pointer width: var(--v-slider-thumb-size) height: var(--v-slider-thumb-size) border-radius: $slider-thumb-border-radius user-select: none background-color: currentColor &::before transition: 0.3s settings.$standard-easing content: '' color: inherit top: 0 left: 0 width: 100% height: 100% border-radius: $slider-thumb-border-radius background: currentColor position: absolute pointer-events: none opacity: 0 &::after content: '' width: $slider-thumb-touch-size height: $slider-thumb-touch-size position: absolute top: 50% left: 50% transform: translate(-50%, -50%) .v-slider-thumb__label-container position: absolute transition: $slider-thumb-label-transition .v-slider-thumb__label display: flex align-items: center justify-content: center font-size: $slider-thumb-label-font-size min-width: $slider-thumb-label-min-width height: $slider-thumb-label-height border-radius: $slider-thumb-label-border-radius padding: $slider-thumb-label-padding position: absolute user-select: none transition: $slider-thumb-label-transition &::before content: '' width: 0 height: 0 position: absolute .v-slider-thumb__ripple position: absolute left: calc(var(--v-slider-thumb-size) / -2) top: calc(var(--v-slider-thumb-size) / -2) width: calc(var(--v-slider-thumb-size) * 2) height: calc(var(--v-slider-thumb-size) * 2) background: inherit // Horizontal .v-slider.v-input--horizontal .v-slider-thumb top: 50% transform: translateY(-50%) inset-inline-start: calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2) .v-slider-thumb__label-container left: calc(var(--v-slider-thumb-size) / 2) top: 0 .v-slider-thumb__label bottom: $slider-thumb-label-offset +tools.ltr() transform: translateX(-50%) +tools.rtl() transform: translateX(50%) &::before border-left: $slider-thumb-label-wedge-size solid transparent border-right: $slider-thumb-label-wedge-size solid transparent border-top: $slider-thumb-label-wedge-size solid currentColor bottom: -$slider-thumb-label-wedge-size // Vertical .v-slider.v-input--vertical .v-slider-thumb top: calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2) .v-slider-thumb__label-container top: calc(var(--v-slider-thumb-size) / 2) right: 0 .v-slider-thumb__label top: math.div($slider-thumb-label-height, -2) left: $slider-thumb-label-offset &::before border-right: $slider-thumb-label-wedge-size solid currentColor border-top: $slider-thumb-label-wedge-size solid transparent border-bottom: $slider-thumb-label-wedge-size solid transparent left: -$slider-thumb-label-wedge-size // Modifiers .v-slider-thumb--focused .v-slider-thumb__surface::before transform: scale(2) opacity: $slider-thumb-focus-opacity .v-slider-thumb--pressed transition: none .v-slider-thumb__surface::before opacity: $slider-thumb-pressed-opacity @media (hover: hover) .v-slider-thumb:hover .v-slider-thumb__surface::before transform: scale(2) .v-slider-thumb:hover:not(.v-slider-thumb--focused) .v-slider-thumb__surface::before opacity: $slider-thumb-hover-opacity