EDS4 logo
@eds/button
v4.4.0

Button

An interactive element to perform an action or to navigate.
Prop
Required
Description
Type
label
✅

The text label of the button.

string
size
—

Sets the button size. Defaults to medium.

"small" | "medium"
tone
—

Different tone styles for the button. Defaults to primary.

"primary" | "neutral" | "critical" | "ghost"
block
—

Makes the button fill its container. Defaults to false.

icon
—

Puts the provided Icon component in the button.

ComponentClass<IconProps, any> | FunctionComponent<IconProps>
iconPlacement
—

Controls the placement of icon in the button, left or right of the label. Defaults to left.

"left" | "right"
iconOnly
—

Make the label visually hidden. Defaults to false.

boolean
disabled
—

Prevents user interaction with the button and gives it a disabled style. Defaults to false.

boolean
loading
—

When true, replaces the label with the LoadingSpinner component. Defaults to false.

boolean
onClick
—

Function to be triggered following a click event of the button.

MouseEventHandler<HTMLButtonElement>
type
—

Provide an alternate type if the button is within a form. Defaults to button.

"button" | "submit" | "reset"
pressed
—

Controls the button's pressed state. Defaults to false.

boolean
Prop
Required
Description
Type
href
✅

The target URL. For flexibility with routing frameworks, this type can be modified.

string
label
✅

The text label of the button.

string
rel
—

Relationship to the target resource. Defaults to noreferrer noopener.

string
target
—

Where to display the URL.

string
download
—

Causes the browser to treat the linked URL as a download.

any
shouldIgnoreCoreLinkComponent
—

Option to ignore the global link override on a case by case basis. Doing this will render the link as a normal <a>-element even if a linkComponent in <Core/> is defined. Defaults to false.

boolean
size
—

Sets the button size. Defaults to medium.

"small" | "medium"
tone
—

Different tone styles for the button. Defaults to primary.

"primary" | "neutral" | "critical" | "ghost"
block
—

Makes the button fill its container. Defaults to false.

icon
—

Puts the provided Icon component in the button.

ComponentClass<IconProps, any> | FunctionComponent<IconProps>
iconPlacement
—

Controls the placement of icon in the button, left or right of the label. Defaults to left.

"left" | "right"
iconOnly
—

Make the label visually hidden. Defaults to false.

boolean
loading
—

When true, replaces the label with the LoadingSpinner component. Defaults to false.

boolean
type
—

Provide an alternate type if the button is within a form. Defaults to button.

"button" | "submit" | "reset"
pressed
—

Controls the button's pressed state. Defaults to false.

boolean
providerOverrides
—

Pass overriding props from your global link provider.

ProviderOverrides
ref
—

(instance: HTMLAnchorElement) => void | MutableRefObject<HTMLAnchorElement>
Prop
Required
Description
Type
icon
✅

Puts the provided Icon component in the button.

ComponentClass<IconProps, any> | FunctionComponent<IconProps>
ariaLabel
✅

Provides a button label for assistive technologies.

string
inputSize
✅

Sets the button size to the passed in input size.

"small" | "medium" | "xsmall" | "xxsmall"
disabled
✅

Prevents user interaction with the button and gives it a disabled style.

boolean
onClick
—

Function to be triggered following a click event of the button.

MouseEventHandler<HTMLButtonElement>
disableTab
—

Disable tabbing to this button, if you implement another way make the UI accessible for keyboard-only users.

boolean
paddingX
—

Left/right padding for the button. Defaults to xsmall.

"small" | "medium" | "xsmall" | "xxsmall" | "large" | "xlarge" | "none" | "auto" | "xxlarge"Supports responsive prop syntax
children
—

Optionally pass in children, like an icon or a text string.

string | number | false | true | ReactElement<any, string | JSXElementConstructor<any>> | ReactPortal | { key?: string | number; ref?: null; props?: { children?: boolean | ReactChild | ReactPortal | StrictReactFragment; }; } | (boolean | ReactChild | ReactPortal | StrictReactFragment)[]
type
—

Provide an alternate type if the button is within a form. Defaults to button.

"submit" | "reset" | "button"
Prop
Required
Description
Type
children
✅

The label content of the button.

string | number | false | true | ReactElement<any, string | JSXElementConstructor<any>> | ReactPortal | { key?: string | number; ref?: null; props?: { children?: boolean | ReactChild | ReactPortal | StrictReactFragment; }; } | (boolean | ReactChild | ReactPortal | StrictReactFragment)[]
ariaLabel
—

Optionally pass an aria-label if label content (children) doesn't suffice for screen reader users.

string
size
—

Sets the button size. Defaults to medium.

"small" | "medium"
tone
—

Different tone styles for the custom button. Defaults to neutral.

"neutral" | "ghost"
block
—

Makes the button fill its container. Defaults to false.

disabled
—

Prevents user interaction with the button and gives it a disabled style. Defaults to false.

boolean
onClick
—

Function to be triggered following a click event of the button.

MouseEventHandler<HTMLButtonElement>
paddingLeft
—

Overrides the default left padding of the button.

"small" | "medium" | "xsmall" | "large" | "xlarge" | "none" | "auto" | "xxsmall" | "xxlarge"
paddingRight
—

Overrides the default right padding of the button.

"small" | "medium" | "xsmall" | "large" | "xlarge" | "none" | "auto" | "xxsmall" | "xxlarge"
pressed
—

Controls the button's pressed state. Defaults to false.

boolean
className
—

The className prop can be used to add CSS classes to the custom button.

string