Skip to content

Primary button

<tpg-primary-button></tpg-primary-button>

Primary buttons are high emphasis buttons used to communicate the primary and most important actions that users can take. They are typically placed throughout the UI, in places like Dialogues, Modal windows, Forms, Cards, Toolbars.

The PrimaryButton come with two alert state variants: PrimaryButtonDanger: used when the button enables an action that carries a real world danger (e.g. fire, deploy payload, etc..) PrimaryButtonError: used when the button enables a destructive action that affects the system, but does not constitute any real danger (e.g. delete permanently, deploy payload, etc..)

Component behavior

The primary button will respond to click inside the entirety of its area while not disabled, or from “Enter” and “Space” keys while having k-focus.

Examples

Button type

Use the type attribute to set the button’s type.

Setting icons

You can use the icon-template attribute to set an icon for the button.

This can also be combined with the icon-position attribute to set its position

The icon size is managed by the component itself. When there is an icon and no label, the icon size will increase.

Size

Use the size attribute to set the size.

Custom width

Buttons will try to take all available space by default unless they have an icon and no text — icon-only. Wrap a smaller container or use the style attribute combined with the width property to set custom width. Use width: fit-content to make the button adjust to the label.

The label will also be automatically truncated should the text exceed its container’s width.

Badge

The Primary Button includes a dedicated badge slot. To display a badge within the button, place a Badge component in this slot using slot="badge".

Event handling

The PrimaryButton emits a TpgClickEvent when clicked. Below are some examples of how you can handle the event.

Tables

Properties

Attribute Property Description Type Default Value
type type The type of button to render in terms of severity-level. 'default' | 'error' | 'danger' 'default'
size size Size of the button, overrides base-class size 'small' | 'regular' 'regular'
label label Textual label of the button string ''
aria-label ariaLabel The aria-label of the button. This is used for accessibility purposes. Defaults to label if defined string
disabled disabled Flag that disables the button, just like vanilla boolean false
icon-template iconTemplate URI-encoded SVG template for the button's icon. Supported constants are found in IconConstant | '' ''
icon-position iconPosition The positioning of the icon 'leading' | 'trailing' | 'top' 'leading'
icon-only-size iconOnlySize The size of the icon when the button has no label IconSize 'large'

Events

Event name Reactjs attribute Description
tpg-click ontpg-click Event emitted when the button is triggered, either by clicking it or pressing space/enter while focused.

Functions

Name Description Arguments
focus This method can be called to shift focus to the button. No parameters

Slots

Name Description
badge Slot dedicated to slotting a badge. NOTE: should NOT be used in conjunction with label and icon!

CSS Parts

Attribute Description
No CSS parts found.

Sandbox