Перейти к основному содержанию

Обзор

Задайте группе доступное имя и разместите внутри неё связанные кнопки. Группа объединяет смежные границы и может применять значения по умолчанию для размера, варианта и цвета. Кнопки сохраняют собственные позиции в порядке табуляции.

Использование

Владение состоянием

ButtonGroup координирует внешний вид, а не выбор. У него нет управляемого или неуправляемого режима выбора. Каждая кнопка получает собственный обработчик действия и состояние приложения; сведения о поведении при загрузке см. в примере владения состоянием Button. Для взаимоисключающего выбора используйте RadioGroup, который управляет выбором для своих переключателей.

Приоритет внешнего вида

Каждый пропс внешнего вида определяется независимо: явный пропс дочернего элемента, затем значение группы по умолчанию, затем значение компонента по умолчанию. Это относится как к Button, так и к IconButton, включая явный IconButton size="xs". Значения по умолчанию передаются дочерним элементам через фрагменты, обёртки и якоря всплывающих подсказок. Группа может задавать color="inherit" на цветной поверхности. Дочерний элемент, получающий унаследованный цвет, также должен получать несплошной вариант. Явно заданные переопределения цвета и варианта дочернего элемента имеют приоритет, поэтому дочерний элемент может выбрать несплошной вариант или семантический цвет, когда группа одновременно задает сплошной вариант и наследование. Сохраняйте одинаковый размер присоединённых кнопок, чтобы их края выравнивались. В этом примере переопределяются вариант и цвет, а размер группы наследуется.

Отдельные элементы управления

Установите attached={false}, чтобы сохранить скруглённые углы каждого элемента управления и промежуток 2px. Значения группы по умолчанию по-прежнему применяются через обёртки и якоря всплывающих подсказок; явные свойства дочерних элементов имеют приоритет.

Элементы управления с рамкой

Установите framed, чтобы добавить полупрозрачный фон, границу, отступ 2px и концентрические скругления углов. Рамка работает с присоединёнными и отдельными элементами управления и сохраняет явно заданный внешний вид дочерних элементов. Используйте size="xs" для IconButton для компактных действий размером 20px.

Обновление существующих групп

Замените IconButtonGroup и его массив iconButtons на ButtonGroup framed attached={false} с явными дочерними элементами. Замените InsideButton на LightIconButton size="xs". Каждая кнопка имеет собственные доступное имя, обработчик действия, состояние отключения и необязательную всплывающую подсказку.

Свойства

boolean
по умолчанию:"true"
Join adjacent controls. Set to false for independently rounded buttons with a 2px gap.
"accent" | "danger" | "inherit" | "neutral" | "success"
Default semantic color for children without an explicit color. Inherited color requires each child to resolve to a non-solid variant; explicit child overrides take precedence.
boolean
по умолчанию:"false"
Add a translucent frame with padding and concentric corners. Button sizes and appearance remain independent unless set on the group.
ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, {}>
Allows you to replace the component’s HTML element with a different tag, or compose it with another component.Accepts a ReactElement or a function that returns the element to render.
"md" | "sm"
Default button height for children without an explicit size.
"ghost" | "link" | "outline" | "soft" | "solid"
Default surface treatment for children without an explicit variant.