- components
- ›
- segmented control
- ›
- react
Segmented Control
Capture input for a limited set of options.
Label
Icons
Orientation
Read Only
Disabled
Disabled Item
Direction
Label
API Reference
SegmentedControlControl
inline-flex preset-outlined-surface-200-800 p-2 gap-2 rounded group-data-[orientation=horizontal]:flex-row group-data-[orientation=vertical]:flex-col
Property | Default | Type |
---|---|---|
element | - | ((attributes: HTMLAttributes<"div">) => Element) | undefinedRender the element yourself |
SegmentedControlIndicator
top-(--top) left-(--left) w-(--width) h-(--height) preset-filled rounded data-disabled:opacity-50
Property | Default | Type |
---|---|---|
element | - | ((attributes: HTMLAttributes<"div">) => Element) | undefinedRender the element yourself |
SegmentedControlItemHiddenInput
Property | Default | Type |
---|---|---|
element | - | ((attributes: HTMLAttributes<"input">) => Element) | undefinedRender the element yourself |
SegmentedControlItemText
transition-colors data-[state=checked]:text-surface-contrast-950 data-[state=checked]:dark:text-surface-contrast-50
Property | Default | Type |
---|---|---|
element | - | ((attributes: HTMLAttributes<"span">) => Element) | undefinedRender the element yourself |
SegmentedControlItem
btn cursor-pointer z-10 flex-1 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
Property | Default | Type |
---|---|---|
value | - | string |
disabled | - | boolean | undefined |
invalid | - | boolean | undefined |
element | - | ((attributes: HTMLAttributes<"label">) => Element) | undefinedRender the element yourself |
SegmentedControlLabel
label-text
Property | Default | Type |
---|---|---|
element | - | ((attributes: HTMLAttributes<"span">) => Element) | undefinedRender the element yourself |
SegmentedControlRootProvider
Property | Default | Type |
---|---|---|
value | - | RadioGroupApi<PropTypes> |
element | - | ((attributes: HTMLAttributes<"div">) => Element) | undefinedRender the element yourself |
SegmentedControlRoot
flex flex-col gap-2 group
Property | Default | Type |
---|---|---|
ids | - | Partial<{ root: string; label: string; indicator: string; item: (value: string) => string; itemLabel: (value: string) => string; itemControl: (value: string) => string; itemHiddenInput: (value: string) => string; }> | undefinedThe ids of the elements in the radio. Useful for composition. |
value | - | string | null | undefinedThe controlled value of the radio group |
defaultValue | - | string | null | undefinedThe initial value of the checked radio when rendered. Use when you don't need to control the value of the radio group. |
name | - | string | undefinedThe name of the input fields in the radio (Useful for form submission). |
form | - | string | undefinedThe associate form of the underlying input. |
disabled | - | boolean | undefinedIf `true`, the radio group will be disabled |
readOnly | - | boolean | undefinedWhether the checkbox is read-only |
onValueChange | - | ((details: ValueChangeDetails) => void) | undefinedFunction called once a radio is checked |
orientation | - | "horizontal" | "vertical" | undefinedOrientation of the radio group |
dir | "ltr" | "ltr" | "rtl" | undefinedThe document's text/writing direction. |
getRootNode | - | (() => ShadowRoot | Node | Document) | undefinedA root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. |
element | - | ((attributes: HTMLAttributes<"div">) => Element) | undefinedRender the element yourself |
SegmentedControlRootContext
Property | Default | Type |
---|---|---|
children | - | (ratingGroup: RadioGroupApi<PropTypes>) => ReactNode |