# ButtonProps

**Kind:** Interface

Props for the `Button` component. Also accepts:
* `AriaProps`
* `ButtonStyleProps`

## Properties

### `aria-selected?`

Type: `undefined | false | true`

The `aria-selected` attribute.

### `children?`

Type: `React.ReactNode | string`

The contents of the button.

### `className?`

Type: `undefined | string`

Extra `className`s to apply to the button, separated by spaces.

### `disabled?`

Type: `undefined | false | true`

Indicates whether or not the user can interact with the button.

### `icon?`

Type: `IconName | ReactElement`

The name of the icon or a React node. For more details, see the `list of supported icons`.

### `id?`

Type: `undefined | string`

The `id` attribute.

### `onClick?`

Type: `undefined | object`

Click event handler. Also handles Space and Enter keypress events.

### `size?`

Type: `ControlSizeProp`

The size of the button. Defaults to `default`. Can be a responsive prop object.

### `style?`

Type: `React.CSSProperties`

Extra styles to apply to the button.

### `tabIndex?`

Type: `undefined | number`

Indicates if the button can be focused and if/where it participates in sequential keyboard navigation.

### `type?`

Type: `"button" | "submit" | "reset"`

The type of the button. Defaults to `button`.

### `variant?`

Type: `ButtonVariant`

The variant of the button. Defaults to `default`.

---

## Button

**Kind:** Component

Clickable button component.

[[ Story id="button--example" title="Box example" ]]

**Parameters:**
- `props` (`ButtonProps`)
- `ref` (`React.Ref<HTMLButtonElement>`)

**Returns:** `Element`
