Controlled
Use the value and onValueChange props to control state programmatically.
You selected bold
You selected bold
Orientation
Using the orientation prop to control the layout.
Horizontal
Vertical
Horizontal
Vertical
Direction
Set the text direction (ltr or rtl) using the dir prop.
API Reference
Root
inline-flex preset-outlined-surface-200-800 divide-surface-200-800 overflow-hidden rounded-base data-[orientation=horizontal]:divide-x data-[orientation=vertical]:divide-y data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col| Prop | Default | Type |
|---|---|---|
ids | — | Partial<{ root: string; item: (value: string) => string; }> | undefined The ids of the elements in the toggle. Useful for composition. |
disabled | — | boolean | undefined Whether the toggle is disabled. |
value | — | string[] | undefined The controlled selected value of the toggle group. |
defaultValue | — | string[] | undefined The initial selected value of the toggle group when rendered. Use when you don't need to control the selected value of the toggle group. |
onValueChange | — | ((details: ValueChangeDetails) => void) | undefined Function to call when the toggle is clicked. |
loopFocus | true | boolean | undefined Whether to loop focus inside the toggle group. |
rovingFocus | true | boolean | undefined Whether to use roving tab index to manage focus. |
orientation | "horizontal" | Orientation | undefined The orientation of the toggle group. |
multiple | — | boolean | undefined Whether to allow multiple toggles to be selected. |
deselectable | true | boolean | undefined Whether the toggle group allows empty selection. **Note:** This is ignored if `multiple` is `true`. |
dir | "ltr" | "ltr" | "rtl" | undefined The document's text/writing direction. |
getRootNode | — | (() => ShadowRoot | Node | Document) | undefined A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. |
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Provider
| Prop | Default | Type |
|---|---|---|
value | — | ToggleGroupApi<PropTypes> |
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Context
| Prop | Default | Type |
|---|---|---|
children | — | (togglegroup: ToggleGroupApi<PropTypes>) => ReactNode |
Item
flex justify-center items-center w-9 aspect-square hover:preset-tonal data-[state=on]:preset-filled data-focus-visible:outline-2 data-focus-visible:outline-offset-1 data-focus-visible:outline-surface-950-50 data-readonly:pointer-events-none data-disabled:pointer-events-none data-disabled:opacity-50| Prop | Default | Type |
|---|---|---|
value | — | string |
disabled | — | boolean | undefined |
element | — | ((attributes: HTMLAttributes<"button">) => Element) | undefined Render the element yourself |
Root
inline-flex preset-outlined-surface-200-800 divide-surface-200-800 overflow-hidden rounded-base data-[orientation=horizontal]:divide-x data-[orientation=vertical]:divide-y data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col| Prop | Default | Type |
|---|---|---|
ids | — | Partial<{ root: string; item: (value: string) => string; }> | undefined The ids of the elements in the toggle. Useful for composition. |
disabled | — | boolean | undefined Whether the toggle is disabled. |
value | — | string[] | undefined The controlled selected value of the toggle group. |
defaultValue | — | string[] | undefined The initial selected value of the toggle group when rendered. Use when you don't need to control the selected value of the toggle group. |
onValueChange | — | ((details: ValueChangeDetails) => void) | undefined Function to call when the toggle is clicked. |
loopFocus | true | boolean | undefined Whether to loop focus inside the toggle group. |
rovingFocus | true | boolean | undefined Whether to use roving tab index to manage focus. |
orientation | "horizontal" | Orientation | undefined The orientation of the toggle group. |
multiple | — | boolean | undefined Whether to allow multiple toggles to be selected. |
deselectable | true | boolean | undefined Whether the toggle group allows empty selection. **Note:** This is ignored if `multiple` is `true`. |
dir | "ltr" | "ltr" | "rtl" | undefined The document's text/writing direction. |
getRootNode | — | (() => ShadowRoot | Node | Document) | undefined A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. |
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Provider
| Prop | Default | Type |
|---|---|---|
value | — | () => ToggleGroupApi<PropTypes> |
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Context
| Prop | Default | Type |
|---|---|---|
children | — | Snippet<[() => ToggleGroupApi<PropTypes>]> |
Item
flex justify-center items-center w-9 aspect-square hover:preset-tonal data-[state=on]:preset-filled data-focus-visible:outline-2 data-focus-visible:outline-offset-1 data-focus-visible:outline-surface-950-50 data-readonly:pointer-events-none data-disabled:pointer-events-none data-disabled:opacity-50| Prop | Default | Type |
|---|---|---|
value | — | string |
disabled | — | boolean | undefined |
element | — | Snippet<[HTMLAttributes<"button">]> | undefined Render the element yourself |