Диапазон значений — ключевая часть компонентов ввода числовых данных в Carbon Components Svelte, таких как Slider, NumberInput, и RangeSlider. Правильная настройка диапазона обеспечивает удобство работы с интерфейсом, предотвращает ошибки ввода и поддерживает согласованность данных.
Slider позволяет пользователю выбирать значение из заданного диапазона. Основные свойства для настройки диапазона:
<Slider
min={0}
max={100}
step={5}
value={50}
/>
0.100.[min, max]. Если значение выходит за пределы,
компонент автоматически корректирует его до ближайшей границы.Особенности работы с шагом:
step больше разницы между min и
max, ползунок будет принимать только одно значение —
min.step={0.1}.RangeSlider используется для выбора диапазона значений, а не одного числа. Его свойства включают:
<RangeSlider
min={0}
max={1000}
step={10}
value={[200, 800]}
/>
[minValue, maxValue]. Компонент гарантирует, что
minValue <= maxValue.[min, max],
компонент автоматически корректирует их.Совет по UX: минимальная разница между
minValue и maxValue должна соответствовать
step, иначе ползунки могут “слипаться” при
перетаскивании.
NumberInput обеспечивает ввод чисел с клавиатуры и
позволяет ограничивать диапазон с помощью min и
max:
<NumberInput
min={1}
max={10}
value={5}
step={1}
/>
min или больше
max, компонент автоматически корректирует его при потере
фокуса.Важно: NumberInput не предотвращает ввод некорректных символов (например, букв), но при сохранении значения в компоненте оно будет приведено к допустимому числу.
Carbon Components Svelte поддерживает реактивные переменные для привязки значений:
<script>
import { Slider } from "carbon-components-svelte";
let volume = 30;
</script>
<Slider min={0} max={100} bind:value={volume} />
<p>Текущее значение: {volume}</p>
<script>
import { RangeSlider } from "carbon-components-svelte";
let range = [20, 80];
</script>
<RangeSlider min={0} max={100} step={5} bind:value={range} />
<p>Диапазон: {range[0]} - {range[1]}</p>
Для надёжной работы компонентов рекомендуется контролировать:
min не должен
быть больше max.(max - min) % step должно быть равно 0 для
точного позиционирования.value[0] <= value[1].Использование реактивной проверки:
$: if (range[0] > range[1]) {
range = [range[1], range[0]];
}
Это предотвращает обратное перепрыгивание ползунков и обеспечивает корректное отображение диапазона.
Диапазон можно изменять на лету:
<script>
import { Slider } from "carbon-components-svelte";
let minVal = 0;
let maxVal = 50;
let value = 25;
</script>
<Slider min={minVal} max={maxVal} bind:value={value} />
<button on:click={() => maxVal += 10}>Увеличить максимум</button>
<button on:click={() => minVal += 5}>Сдвинуть минимум</button>
<p>Текущее значение: {value}</p>
min или max компонент
автоматически корректирует value, чтобы оно оставалось в
пределах диапазона.Эти принципы создают основу для точного, безопасного и удобного взаимодействия с числовыми данными в Carbon Components Svelte.