Перейти к содержимому
v2.5.0
English
Русский
Документация

SegmentedControl

SegmentedControl — составной компонент для коротких, всегда видимых наборов взаимоисключающих вариантов с нативными радиоинпутами на уровне элементов и анимированным индикатором выбранного состояния.

Пропсы корня

ПропТипПо умолчанию
disabledboolean—
Отключает все сегменты, запрещая взаимодействие.
sizeSegmentedControlSize'md'
Визуальный размер сегментированного контрола.
variantSegmentedControlVariant'secondary'
Вариант визуального стиля сегментированного контрола.
refRef<HTMLDivElement>—
Ref на корневой элемент-контейнер. Полезен для измерений или управления фокусом.
valueSegmentedControlValue—
Текущее выбранное значение сегментированного контрола
defaultValueSegmentedControlValue''
Начальное выбранное значение, когда компонент используется в неконтролируемом режиме
onChange(e: ChangeEvent<HTMLInputElement>) => void—
Вызывается при изменении выбранного сегмента. Это событие повторяет нативное событие change радиокнопки и может использоваться для интеграции с формами или отслеживания выбора пользователя. Целью события является скрытый <input type="radio">.
nameобязательныйstring—
Имя нижележащей группы радиокнопок. Все элементы SegmentedControlItemInput используют это имя, поэтому сегментированный контрол ведёт себя как одна нативная группа радиокнопок для отправки формы и доступности.

Также принимает все атрибуты <div>.

Дочерние части

  • SegmentedControlItem: видимый выбираемый сегмент.
  • SegmentedControlIndicator: анимированная поверхность выбранного состояния.
  • SegmentedControlItemInput: нативный радиоинпут для каждого элемента.

SegmentedControlItem

ПропТипПо умолчанию
disabledboolean—
Отключает элемент, запрещая выбор и фокус.
sizeSegmentedControlSize—
Управляет размером элемента. Влияет на отступы, размер шрифта и интервалы.
variantSegmentedControlVariant—
Вариант визуального стиля элемента.
valueобязательныйSegmentedControlValue—
Уникальное значение, связанное с этим сегментом
refRef<HTMLLabelElement>—
Ref, передаваемый на нижележащий элемент <label>.

Также принимает все атрибуты <label>.

SegmentedControlIndicator

Также принимает все атрибуты <div>.

SegmentedControlItemInput

Также принимает все атрибуты <input>.

Типы

  • SegmentedControlProps
  • SegmentedControlItemProps
  • SegmentedControlIndicatorProps
  • SegmentedControlItemInputProps
  • SegmentedControlSize
  • SegmentedControlVariant

Модель состояния

  • SegmentedControl может быть неконтролируемым через defaultValue или контролируемым через value и onChange.
  • В неконтролируемом режиме выбором владеет нативная группа радиокнопок: клики, клавиатура, сброс формы и программные изменения checked применяются без состояния React.
  • SegmentedControlIndicator привязан к отмеченному сегменту через CSS, поэтому следует за любым из этих изменений.
  • Для продвинутых обёрток и кастомных композиций доступен useSegmentedControlContext.