SegmentedButton
The segmented button group is a component that encapsulates a set of buttons. It is used to provide options, switch views, or sort elements.
Usage
Import the component:
import 'mdui/components/segmented-button-group.js';
import 'mdui/components/segmented-button.js';
Import the TypeScript type:
import type { SegmentedButtonGroup } from 'mdui/components/segmented-button-group.js';
import type { SegmentedButton } from 'mdui/components/segmented-button.js';
Example:
<mdui-segmented-button-group>
<mdui-segmented-button>Day</mdui-segmented-button>
<mdui-segmented-button>Week</mdui-segmented-button>
<mdui-segmented-button>Month</mdui-segmented-button>
</mdui-segmented-button-group>Examples
Full Width
To make the component take up the full width of its container, add the full-width attribute to the <mdui-segmented-button-group> component.
Single Selection
To enable single selection mode, set the selects attribute of the <mdui-segmented-button-group> component to single. In this mode, the value property of <mdui-segmented-button-group> reflects the value property of the currently selected <mdui-segmented-button>.
Multiple Selection
To enable multiple selection mode, set the selects attribute of the <mdui-segmented-button-group> component to multiple. In this mode, the value property of <mdui-segmented-button-group> is an array consisting of the value properties of the currently selected <mdui-segmented-button> components.
Note that when supporting multiple selection, the value property of <mdui-segmented-button-group> is an array, and it can only be read and set through JavaScript property.
Icons
To add Material Icons on the left and right sides of the button, use the icon and end-icon attributes on the <mdui-segmented-button> element. Alternatively, use the icon and end-icon slots to add elements on the left and right sides of the button.
To set the Material Icon for the selected state, use the selected-icon attribute on the <mdui-segmented-button> element. Alternatively, use the selected-icon slot.
Link
To turn the button into a link, use the href attribute on the <mdui-segmented-button> component. The download, target, and rel attributes are available for link-related functionality.
Disabled and Loading States
To disable the entire segmented button group, add the disabled attribute to the <mdui-segmented-button-group> element.
To disable specific buttons, add the disabled attribute to the <mdui-segmented-button> element. To make a button enter the loading state, add the loading attribute.
mdui-segmented-button-group API
Properties
| Attribute | Property | Reflect | Type | Default |
|---|---|---|---|---|
full-width | fullWidth | boolean | false | |
If set, the segmented button group will fill the width of its parent element. | ||||
selects | selects | 'single' | 'multiple' | - | |
Defines selectable states. Default is non-selectable. Possible values:
| ||||
disabled | disabled | boolean | false | |
Disables the segmented button group when set. | ||||
required | required | boolean | false | |
Requires a selection when the form is submitted. | ||||
form | form | string | - | |
Associates the segmented button group with a This attribute allows segmented button group elements to be associated with | ||||
name | name | string | '' | |
The name of the segmented button group, which is submitted with form data. | ||||
value | value | string | string[] | '' | |
The value of the selected Note: The HTML attribute is always a string and can only be set as an initial value when | ||||
defaultValue | string | string[] | '' | ||
The default selected value. Resets to this state when the form is reset. This value can only be set via JavaScript property. | ||||
validity | ValidityState | - | ||
A | ||||
validationMessage | string | - | ||
The element's validation message. This is empty if the element meets its constraints. | ||||
Methods
| Name | Parameters | Returns |
|---|---|---|
checkValidity | boolean | |
Checks the validity of the form field. If it's invalid, it triggers an | ||
reportValidity | boolean | |
Checks the validity of the form field. If it's invalid, it triggers an | ||
setCustomValidity |
| void |
Sets a custom error message. If the text is non-empty, it indicates that the field is invalid. | ||
CSS Custom Properties
| Name |
|---|
--shape-corner |
The size of the component corner. You can use a specific pixel value, but it's recommended to reference design tokens. |
mdui-segmented-button API
Properties
| Attribute | Property | Reflect | Type | Default |
|---|---|---|---|---|
icon | icon | string | - | |
Specifies the Material Icons name for the left icon. Alternatively, use | ||||
end-icon | endIcon | string | - | |
Specifies the Material Icons name for the right icon. Alternatively, use | ||||
selected-icon | selectedIcon | string | - | |
Specifies the Material Icons name for the selected state. Alternatively, use | ||||
href | href | string | - | |
The URL for the hyperlink. If provided, the component is rendered as an | ||||
download | download | string | - | |
Instructs the browser to download the linked URL. Note: This is only available when | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Defines where to open the linked URL. Possible values:
Note: This is only available when | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Specifies the relationship of the linked URL as space-separated link types. Possible values:
Note: This is only available when | ||||
autofocus | autofocus | boolean | false | |
Specifies that the element should be focused when the page loads. | ||||
tabindex | tabIndex | number | - | |
Defines the order in which the element receives focus when navigating with the Tab key. | ||||
disabled | disabled | boolean | false | |
Disables the element. | ||||
loading | loading | boolean | false | |
Indicates that the element is in a loading state. | ||||
name | name | string | '' | |
The button's name, which is submitted with form data. Note: This is only available when | ||||
value | value | string | '' | |
The button's value, which is submitted with form data. Note: This is only available when | ||||
type | type | 'submit' | 'reset' | 'button' | 'button' | |
Defines the button's default behavior. The default is
Note: This is only available when | ||||
form | form | string | - | |
Associates the button with a This attribute allows button elements to be associated with Note: Only available when | ||||
formaction | formAction | string | - | |
Specifies the URL that processes the button's submitted information. Overrides the Note: Only available when | ||||
formenctype | formEnctype | 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' | - | |
Specifies the form data encoding method. Possible values:
Overrides the Note: Only available when | ||||
formmethod | formMethod | 'post' | 'get' | - | |
Specifies the HTTP method for form submission. Possible values:
Overrides the Note: Only available when | ||||
formnovalidate | formNoValidate | boolean | false | |
Specifies that the form should not be validated on submission. Overrides the Note: Only available when | ||||
formtarget | formTarget | '_self' | '_blank' | '_parent' | '_top' | - | |
Specifies where to display the form submission response. Possible values:
Overrides the Note: Only available when | ||||
validity | ValidityState | - | ||
A | ||||
validationMessage | string | - | ||
The element's validation message. This is empty if the element meets its constraints. | ||||
Methods
| Name | Parameters | Returns |
|---|---|---|
click | void | |
Simulates a mouse click on the element. | ||
focus |
| void |
Sets focus on the element. An optional parameter can be an object with a | ||
blur | void | |
Removes focus from the element. | ||
checkValidity | boolean | |
Checks the validity of the form field. If it's invalid, it triggers an | ||
reportValidity | boolean | |
Checks the validity of the form field. If it's invalid, it triggers an | ||
setCustomValidity |
| void |
Sets a custom error message. If the text is non-empty, it indicates that the field is invalid. | ||
Slots
| Name |
|---|
| (default) |
Text content. |
icon |
Left icon. |
selected-icon |
Icon for the selected state. |
end-icon |
Right icon. |