# kol-button-link

<!-- Auto Generated Below -->


## Overview

The **ButtonLink** component is semantically a button but has the appearance of a link. All relevant properties of the Button component are adopted and extended with the design-defining properties of a link.

A button can be disabled, therefore the **ButtonLink** also has the `_disabled` property. How this is styled visually is determined by the UX designer.

Instead of using `_href` as with a regular link, the **ButtonLink**'s behavior is controlled via a click callback using the `_on` property.

A link has the `target` property which optionally opens the link in a new window/tab. This behavior is not yet implemented.

Since a link, unlike a button, is not offered in multiple variants (`primary`, `secondary`, etc.), the `_customClass` and `_variant` properties are not available.

## Properties

| Property              | Attribute           | Description                                                                                                                                                                                                                              | Type                                                                                                                                                                                                                                                      | Default     |
| --------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `_accessKey`          | `_access-key`       | Defines the key combination that can be used to trigger or focus the component's interactive element.                                                                                                                                    | `string \| undefined`                                                                                                                                                                                                                                     | `undefined` |
| `_ariaControls`       | `_aria-controls`    | Defines which elements are controlled by this component. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)                                                                                      | `string \| undefined`                                                                                                                                                                                                                                     | `undefined` |
| `_ariaDescription`    | `_aria-description` | Defines the value for the aria-description attribute.                                                                                                                                                                                    | `string \| undefined`                                                                                                                                                                                                                                     | `undefined` |
| `_ariaExpanded`       | `_aria-expanded`    | Defines whether the interactive element of the component expanded something. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)                                                                  | `boolean \| undefined`                                                                                                                                                                                                                                    | `undefined` |
| `_ariaSelected`       | `_aria-selected`    | Defines whether the interactive element of the component is selected (e.g. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)                                                         | `boolean \| undefined`                                                                                                                                                                                                                                    | `undefined` |
| `_disabled`           | `_disabled`         | Makes the element not focusable and ignore all events.                                                                                                                                                                                   | `boolean \| undefined`                                                                                                                                                                                                                                    | `false`     |
| `_hideLabel`          | `_hide-label`       | Hides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it.                                                                                               | `boolean \| undefined`                                                                                                                                                                                                                                    | `false`     |
| `_icons`              | `_icons`            | Defines the icon classnames (e.g. `_icons="fa-solid fa-user"`).                                                                                                                                                                          | `KoliBriHorizontalIcons & KoliBriVerticalIcons \| string \| undefined`                                                                                                                                                                                    | `undefined` |
| `_inline`             | `_inline`           | Defines whether the component is displayed as a standalone block or inline without enforcing a minimum size of 44px.                                                                                                                     | `boolean \| undefined`                                                                                                                                                                                                                                    | `true`      |
| `_label` _(required)_ | `_label`            | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.                                                                             | `string`                                                                                                                                                                                                                                                  | `undefined` |
| `_name`               | `_name`             | Defines the technical name of an input field.                                                                                                                                                                                            | `string \| undefined`                                                                                                                                                                                                                                     | `undefined` |
| `_on`                 | --                  | Gibt die EventCallback-Funktionen für die Button-Events an.                                                                                                                                                                              | `undefined \| { onClick?: EventValueOrEventCallback<MouseEvent, StencilUnknown> \| undefined; onMouseDown?: EventCallback<MouseEvent> \| undefined; onFocus?: EventCallback<FocusEvent> \| undefined; onBlur?: EventCallback<FocusEvent> \| undefined; }` | `undefined` |
| `_role`               | `_role`             | <span class="text-red-500">**[DEPRECATED]**</span> We prefer the semantic role of the HTML element and do not allow for customization. We will remove this prop in the future.<br/><br/>Defines the role of the components primary element. | `"tab" \| "treeitem" \| undefined`                                                                                                                                                                                                                        | `undefined` |
| `_shortKey`           | `_short-key`        | Adds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud.                                                                                                                                  | `string \| undefined`                                                                                                                                                                                                                                     | `undefined` |
| `_tooltipAlign`       | `_tooltip-align`    | Defines where to show the Tooltip preferably: top, right, bottom or left.                                                                                                                                                                | `"bottom" \| "left" \| "right" \| "top" \| undefined`                                                                                                                                                                                                     | `'top'`     |
| `_type`               | `_type`             | Defines either the type of the component or of the components interactive element.                                                                                                                                                       | `"button" \| "reset" \| "submit" \| undefined`                                                                                                                                                                                                            | `'button'`  |
| `_value`              | `_value`            | Defines the value of the element.                                                                                                                                                                                                        | `boolean \| null \| number \| object \| string \| undefined`                                                                                                                                                                                              | `undefined` |
| `_variant`            | `_variant`          | Defines which variant should be used for presentation.                                                                                                                                                                                   | `string \| undefined`                                                                                                                                                                                                                                     | `undefined` |


## Methods

### `click() => Promise<void>`

Clicks the primary interactive element inside this component.

#### Returns

Type: `Promise<void>`



### `focus(options?: KolFocusOptions) => Promise<void>`

Sets focus on the internal element.

#### Parameters

| Name      | Type                           | Description |
| --------- | ------------------------------ | ----------- |
| `options` | `KolFocusOptions \| undefined` |             |

#### Returns

Type: `Promise<void>`



### `getValue() => Promise<StencilUnknown>`

Returns the current value.

#### Returns

Type: `Promise<StencilUnknown>`




## Slots

| Slot       | Description                                        |
| ---------- | -------------------------------------------------- |
| `"expert"` | Custom label content, e.g. for rich text or icons. |


----------------------------------------------


