Controlled
["bold"]
["bold"]
Orientation
Use the orientation prop to change the layout direction of the Toggle Group.
Horizontal
Vertical
Horizontal
Vertical
Direction
Use the dir prop to change the text direction (LTR/RTL).
API Reference
Root
inline-flex preset-outlined-surface-200-800 divide-surface-200-800 overflow-hidden rounded-base data-[orientation=horizontal]:divide-x-[1px] data-[orientation=vertical]:divide-y-[1px] 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-[1px] data-[orientation=vertical]:divide-y-[1px] 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  |