Button
Buttons are interactive components that enable users to execute actions such as sending emails, sharing documents, or expressing preferences.
Usage
Import the component:
import 'mdui/components/button.js';
Import the TypeScript type:
import type { Button } from 'mdui/components/button.js';
Example:
<mdui-button>Button</mdui-button>
Full Width
Add the full-width
attribute to make the button span the entire width of its container.
Icons
Use the icon
and end-icon
attributes to add Material Icons to the left and right sides of the button, respectively. Alternatively, use the icon
and end-icon
slots to add custom elements to the button's sides.
Link
Use the href
attribute to transform the button into a link. The download
, target
, and rel
attributes are available for link-related functionality.
Disabled and Loading States
Use the disabled
attribute to disable the button. The loading
attribute displays a loading state.
API
Properties
Attribute | Property | Reflect | Type | Default |
---|---|---|---|---|
variant | variant | 'elevated' | 'filled' | 'tonal' | 'outlined' | 'text' | 'filled' | |
Defines the button style. Possible values:
| ||||
full-width | fullWidth | boolean | false | |
If set, the button will fill the width of its parent element. | ||||
icon | icon | string | - | |
Specifies the Material Icons name on the left. Alternatively, use | ||||
end-icon | endIcon | string | - | |
Specifies the Material Icons name on the right. 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. |
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. |