@use '../../styles/mixins'; @mixin thumb-styles() { border: none; width: 1rem; height: 1rem; background: var(--color-links); border-radius: 50%; cursor: var(--custom-cursor, pointer); position: absolute; left: var(--fill-percentage); transform: scale(1) translate(-45%, -50%); transition: transform 0.3s ease-in-out; z-index: 2; -webkit-appearance: none; appearance: none; &:hover { transform: scale(1.5) translate(-30%, -30%); } } .dotWrapper { width: 90%; margin-left: 1rem; padding: 1rem 0 0; } .sliderContainer { --fill-percentage: 0%; position: relative; width: 100%; } .marksContainer { width: 100%; pointer-events: none; display: flex; justify-content: space-between; } .mark { font-size: 0.8125rem; font-weight: 600; color: var(--color-text-secondary); position: relative; display: flex; justify-content: center; width: 0.1875rem; } .active { color: var(--color-links); } .slider { position: relative; -webkit-appearance: none; width: 100%; height: 0.1875rem; outline: none; transition: opacity 0.2s; z-index: 1; background: linear-gradient( to right, var(--color-links) 0%, var(--color-links) var(--fill-percentage), var(--color-text-secondary) var(--fill-percentage), var(--color-text-secondary) 100% ); } .slider::-webkit-slider-thumb { @include thumb-styles(); } .slider::-moz-range-thumb { @include thumb-styles(); } .slider::-ms-thumb { @include thumb-styles(); } .tickMarks { position: absolute; top: 2rem; left: 0; right: 0; height: 100%; display: flex; justify-content: space-between; pointer-events: none; z-index: 1; } .tick { position: relative; width: 0.25rem; height: 0.5rem; background-color: var(--color-text-secondary); border-radius: 0.1875rem; } .filled { background-color: var(--color-links); } .tickUnfilled { background-color: var(--color-text-secondary); }