Skip to content

Shape ​

The corner scale ​

Material 3 rounds corners on a fixed scale. Both styles share it; M3 Expressive adds the "increased" steps.

TokenSize
--md-sys-shape-corner-none0
--md-sys-shape-corner-extra-small4px
--md-sys-shape-corner-small8px
--md-sys-shape-corner-medium12px
--md-sys-shape-corner-large16px
--md-sys-shape-corner-large-increased20px
--md-sys-shape-corner-extra-large28px
--md-sys-shape-corner-extra-large-increased32px
--md-sys-shape-corner-extra-extra-large48px
--md-sys-shape-corner-fullpill

Surfaces ​

Where the two styles differ is which step each surface takes. Use these tokens in your own components and they follow the style automatically.

TokenStandardExpressive
--md-sys-shape-buttonfullfull
--md-sys-shape-button-pressedfullmedium
--md-sys-shape-cardmediumextra-large
--md-sys-shape-containermediumlarge-increased
--md-sys-shape-codemediumlarge
--md-sys-shape-dialogextra-largeextra-large-increased
--md-sys-shape-chipsmallmedium
--md-sys-shape-fieldfullfull
--md-sys-shape-nav-itemfullfull
--md-sys-shape-imagemediumlarge
--md-sys-shape-heroextra-largeextra-extra-large

Press the buttons on the home page in each style: Expressive buttons squash from a pill to a rounded rectangle and spring back.

Expressive shapes ​

M3 Expressive brings a library of playful shapes for avatars, icon containers and decoration. The theme generates them as CSS clip-path polygons, one custom property each — --md3-shape-<name> — so any element can wear one:

css
.avatar {
  clip-path: var(--md3-shape-cookie-9);
}

Or use the <Md3Shape> component, which also handles colour and spinning:

md
<Md3Shape shape="clover-4" tone="tertiary" size="4rem" spin />

Released under the MIT License.