Button · Size=Medium

Component Button-Filled · 56h · 16×24 padding · radius --radius-alias-button (4) · label label/large (16/24)

Primary
Outlined
Tonal
Text
Available
Hovered
Focused
Loading
Disabled

Button · Size=Small

Component Button-Filled · 40h · 10×16 padding · radius 4 · label label/medium (14/20) · icon 20

Primary
Outlined
Tonal
Text
Available
Loading
Disabled

Button · Icon slots

Every Button exposes boolean properties Leading icon and Trailing icon, independently. Icon Button is the only variant without toggles (the icon is the whole button).

None
Leading only
Trailing only
Both
Primary · Md
Outlined · Md
Tonal · Sm
Text · Sm

Icon Button · Types

4 types × state matrix · 48×48 hit area (Size=Standard) · 40×40 content · radius --radius-alias-icon-button (4) · icon 24

Standard
Filled
Tonal
Outline
Available
Hovered
Focused
Loading
Disabled

Icon Button · Sizes

Large 56×56 · Standard 48×48 · Small 40×40 (content scales 48 / 40 / 32; icon 24 / 24 / 20)

Large
Standard
Small
Standard
Filled
Tonal
Outline

Split Button · Styles × State

Left slot = Button (any style) · 2px gap · right slot = Icon Button with chevron. The right slot always mirrors the left style: Primary→Filled, Tonal→Tonal, Outlined→Outline, Text→Standard. State=Closed shows ▾, State=Open shows ▴.

Primary
Tonal
Outlined
Text
Closed · Md
Open · Md
Closed · Sm
Disabled · Md

Token map · --radius-alias-button: 4px · --radius-alias-icon-button: 4px · Primary = --sys-primary / --sys-on-primary · Tonal = --sys-secondary-container / --sys-on-secondary-container · Outlined = border --sys-outline-variant + label --sys-on-surface-variant · state layers 8 / 12 / 16 % on-color · disabled = 10% on-surface fill + 38% content.