Current version 22.0.0

Button Beta

import { Tg2ButtonComponent } from '@trademe/tangram';

The next-generation button directive. Applies to <button> and <a> elements via the tg2Button attribute.

Styles

All our different variants of buttons are set by adding the tg2Style attribute, set to one of the following options.

default
secondary
transparent
destructive
expressive
enhanced

States

Default size · square shape. Each variant has a distinct disabled treatment.

Button states
RestingHoverFocusActiveDisabledLoading
Primary - default
Secondary
Transparent
Destructive
Expressive
Enhanced

Sizes

Button sizes
PrimarySecondaryDestructiveExpressive
Small (32px)
Compact (35px)
Default (48px)

Shapes

Button

Button shapes
SquareRound
Small (32px)
Compact (35px)
Default (48px)

Icon only

Icon only shapes
SquareRound
Small (32px)
Compact (35px)
Default (48px)

Icons

Button icons
PrimarySecondaryExpressiveDestructive
Leading
Trailing

Icon only

Square

Icon only buttons, square
PrimarySecondaryTransparentDestructiveExpressiveEnhanced
Default (48px)
Compact (35px)
Small (32px)

Round

Icon only buttons, round
PrimarySecondaryTransparentDestructiveExpressiveEnhanced
Default (48px)
Compact (35px)
Small (32px)

Apply tg2Button to an <a> element to style it identically to a <button>.

Link buttons
PrimarySecondaryTransparent
ButtonButtonButton

Code example

Proudly made by © 2026 Trade Me Limited