Загрузка данных
.range {
--range-input-height: var(--space-1000);
--range-track-height: var(--space-0750);
--range-thumb-size: var(--space-1000);
--range-pattern-size: var(--space-0500);
--range-label-font-size: var(--space-0875);
--range-value-font-size: var(--space-0750);
--range-wrapper-gap: var(--space-0500);
display: flex;
flex-direction: column;
gap: var(--space-0250);
&_sm {
--range-input-height: var(--space-0750);
--range-track-height: var(--space-0375);
--range-thumb-size: var(--space-0750);
--range-pattern-size: var(--space-0250);
--range-label-font-size: var(--space-0750);
--range-wrapper-gap: var(--space-0250);
}
&_label {
color: var(--neutral-11);
font-size: var(--range-label-font-size);
}
&_wrapper {
display: grid;
align-items: center;
grid-template: 1fr / 1fr auto;
gap: var(--range-wrapper-gap);
}
&_value {
min-width: var(--space-2000);
color: var(--neutral-11);
font-size: var(--range-value-font-size);
text-align: right;
}
&_input {
--range-color: var(--blue-1);
width: 100%;
height: var(--range-input-height);
appearance: none;
background: transparent;
cursor: pointer;
&::-webkit-slider-runnable-track {
height: var(--range-track-height);
border: 1px solid var(--color-field-border);
border-radius: 999px;
background:
linear-gradient(to right, transparent 0%, var(--range-color) 100%),
linear-gradient(45deg, var(--color-field-square) 25%, transparent 25%),
linear-gradient(-45deg, var(--color-field-square) 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, var(--color-field-square) 75%),
linear-gradient(-45deg, transparent 75%, var(--color-field-square) 75%);
background-size:
100% 100%,
var(--range-pattern-size) var(--range-pattern-size),
var(--range-pattern-size) var(--range-pattern-size),
var(--range-pattern-size) var(--range-pattern-size),
var(--range-pattern-size) var(--range-pattern-size);
background-position:
0 0,
0 0,
0 calc(var(--range-pattern-size) / 2),
calc(var(--range-pattern-size) / 2) calc(var(--range-pattern-size) / -2),
calc(var(--range-pattern-size) / -2) 0;
}
&::-webkit-slider-thumb {
width: var(--range-thumb-size);
height: var(--range-thumb-size);
margin-top: calc((var(--range-track-height) - var(--range-thumb-size)) / 2);
appearance: none;
border: 1px solid var(--color-field-border);
border-radius: 50%;
background-color: var(--neutral-panel);
}
&::-moz-range-track {
height: var(--range-track-height);
border: 1px solid var(--color-field-border);
border-radius: 999px;
background:
linear-gradient(to right, transparent 0%, var(--range-color) 100%),
linear-gradient(45deg, var(--color-field-square) 25%, transparent 25%),
linear-gradient(-45deg, var(--color-field-square) 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, var(--color-field-square) 75%),
linear-gradient(-45deg, transparent 75%, var(--color-field-square) 75%);
background-size:
100% 100%,
var(--range-pattern-size) var(--range-pattern-size),
var(--range-pattern-size) var(--range-pattern-size),
var(--range-pattern-size) var(--range-pattern-size),
var(--range-pattern-size) var(--range-pattern-size);
background-position:
0 0,
0 0,
0 calc(var(--range-pattern-size) / 2),
calc(var(--range-pattern-size) / 2) calc(var(--range-pattern-size) / -2),
calc(var(--range-pattern-size) / -2) 0;
}
&::-moz-range-progress {
background: transparent;
}
&::-moz-range-thumb {
width: var(--range-thumb-size);
height: var(--range-thumb-size);
border: 1px solid var(--color-field-border);
border-radius: 50%;
background-color: var(--neutral-panel);
}
}
}