Button Component
Buttons are clickable elements of your application, analogous to the HTML button tag.
Buttons can be clicked using a mouse or assistive device. When clicked, buttons will trigger their click event.
A button is disabled when Enabled is set to false. When disabled, buttons will not trigger their click events and a disabled cursor will be shown on hover.
Properties
Visible
| Prop | isVisible |
|---|---|
| Type | boolean |
| Default | true |
Whether or not this node is visible.
Enabled
| Prop | isEnabled |
|---|---|
| Type | boolean |
| Default | true |
Whether or not this node is enabled.
Tooltip
| Prop | tooltip |
|---|---|
| Type | string |
| Default | undefined |
The tooltip text to display when hovered or focused over this node.
Top
| Prop | top |
|---|---|
| Type | number |
| Default | 1 |
The position of the node from the top side of the grid (grid-row-start).
Left
| Prop | left |
|---|---|
| Type | number |
| Default | 1 |
The position of the node from the left side of the grid (grid-column-start).
Width
| Prop | width |
|---|---|
| Type | string |
| Default | 136px |
The width of the node. When this node is in a grid layout, this should be done using unitless grid column units (specifying 4 will become grid-column-end: span 4). When this node is in a stack layout, the width can be specified using CSS units (e.g. 100px or 100%), or be left unitless to be treated as flex-grow for the node.
Min Width
| Prop | minWidth |
|---|---|
| Type | string |
| Default | undefined |
The minimum width of the node. When this node is in a grid layout, this property is ignored.
Max Width
| Prop | maxWidth |
|---|---|
| Type | string |
| Default | undefined |
The maximum width of the node. When this node is in a grid layout, this property is ignored.
Height
| Prop | height |
|---|---|
| Type | string |
| Default | 32px |
The height of the node. When this node is in a grid layout, this should be done using unitless grid row units (specifying 4 will become grid-row-end: span 4). When this node is in a stack layout, the height can be specified using CSS units (e.g. 100px or 100%), or be left unitless to be treated as flex-grow for the node.
Min Height
| Prop | minHeight |
|---|---|
| Type | string |
| Default | undefined |
The minimum height of the node. When this node is in a grid layout, this property is ignored.
Max Height
| Prop | maxHeight |
|---|---|
| Type | string |
| Default | undefined |
The minimum height of the node. When this node is in a grid layout, this property is ignored.
Overflow
| Prop | overflow |
|---|---|
| Type | Overflow ('auto' | 'visible' | 'hidden' | 'scroll') |
| Default | auto |
The strategy used to handle overflow in the horizontal and vertical axes for content that is larger than its container.
Overflow X
| Prop | overflowX |
|---|---|
| Type | Overflow ('auto' | 'visible' | 'hidden' | 'scroll') |
| Default | auto |
The strategy used to handle overflow in the horizontal axis for content that is larger than its container.
Overflow Y
| Prop | overflowY |
|---|---|
| Type | Overflow ('auto' | 'visible' | 'hidden' | 'scroll') |
| Default | auto |
The strategy used to handle overflow in the vertical axis for content that is larger than its container.
Custom Styles
| Prop | styles |
|---|---|
| Type | string |
| Default | ::component { } |
Custom CSS styles to be applied to the node. Use element.styles to refer to the current node.
Object Fit
| Prop | objectFit |
|---|---|
| Type | ObjectFit ('none' | 'contain' | 'cover' | 'fill' | 'scale-down') |
| Default | cover |
The strategy used to set how the content of a replaced element should be resized to fit its container.
Text
| Prop | text |
|---|---|
| Type | string |
| Default | Button |
The text to display in the button's label.
Left Icon
| Prop | leftIcon |
|---|---|
| Type | string |
| Default | undefined |
The icon to display on the left side of the button.
Right Icon
| Prop | rightIcon |
|---|---|
| Type | string |
| Default | undefined |
The icon to display on the right side of the button.
Text Color
| Prop | textColor |
|---|---|
| Type | string |
| Default | undefined |
The text color of the button's label.
Font Size
| Prop | fontSize |
|---|---|
| Type | FontSize ('xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl') |
| Default | sm |
The font size of the button's label.
Text Hover Decoration
| Prop | textHoverDecoration |
|---|---|
| Type | string |
| Default | underline |
The text decoration that is applied upon hover
Border Color
| Prop | borderColor |
|---|---|
| Type | string |
| Default | undefined |
The border color of the button.
Border Width
| Prop | borderWidth |
|---|---|
| Type | string |
| Default | 1px |
The border width of the button.
Border Radius
| Prop | borderRadius |
|---|---|
| Type | string |
| Default | 6px |
The radius of the rounded corners of button's border (perimeter). Supports the same values as the corresponding CSS property.
Padding
| Prop | padding |
|---|---|
| Type | string |
| Default | 4px |
The interior padding of the button.
Background Color
| Prop | backgroundColor |
|---|---|
| Type | string |
| Default | button.background |
The background color of the button.
Hover Background Color
| Prop | hoverBackgroundColor |
|---|---|
| Type | string |
| Default | undefined |
The background color of the button when it is hovered over or focused.
Variant
| Prop | variant |
|---|---|
| Type | Variant ('solid' | 'ghost' | 'outline' | 'link') |
| Default | solid |
The visual style of the button.
Loading
| Prop | isLoading |
|---|---|
| Type | boolean |
| Default | false |
The current visual loading state of the button.
Loading Text
| Prop | loadingText |
|---|---|
| Type | string |
| Default | undefined |
The text to display in the button's label when it is in a loading state.
Spinner Placement
| Prop | spinnerPlacement |
|---|---|
| Type | SpinnerPlacement ('start' | 'end') |
| Default | start |
The placement of the spinner relative to the label when it is in a loading state.
Type
| Prop | type |
|---|---|
| Type | FormButtonTypes ('submit' | 'reset' | 'auto') |
| Default | auto |
The HTML type value for the input element.
Distribute Content
| Prop | distributeContent |
|---|---|
| Type | NodeLayoutDistributeStyle ('start' | 'center' | 'end' | 'around' | 'between' | 'even') |
| Default | center |
The distribution of the children nodes within the component. Corresponds to the justify-content CSS Flexbox property.
Event Handlers
On Click
| Handler | buttonNode.onClick |
|---|
Called when the user clicks the node. Use this event to trigger downstream actions when this node is clicked.
On Hover
| Handler | buttonNode.onHover |
|---|
Called when the user hovers on the node. Use this event to trigger downstream actions when this node is hovered.
On Leave
| Handler | buttonNode.onLeave |
|---|
Called when the user is not hovering over the node. Use this event to trigger downstream actions when this node is no longer hovered.
On Focus
| Handler | buttonNode.onFocus |
|---|
Called when the user focuses the node. Use this event to trigger downstream actions when this node is focused.
On Blur
| Handler | buttonNode.onBlur |
|---|
Called when the user blurs the node. Use this event to trigger downstream actions when this node is blurred.