Skip to content

Shape ​

The M3 shape system includes original shapes, a corner radius scale, and built-in shape morphing

Overview & principles · Corner radius scale · Shape morph

Material components use a corner radius scale to define all rectangular shapes, such as buttons, carousels, and dialogs.

Illustration of range of shapes.

M3 defines corner radii using a shape scale. This can be used to create both uniform and asymmetrical shapes.

Shape tokens ​

Material has shape corner tokens to define all corners, and corner-value tokens for individual corners. Learn more about design tokens

Design tokens

Token table

Machine-readable relationship table

Shape tokens · 1 token set · 24 tokens · live token table · DSDB TOKEN_TYPE_UNSPECIFIED.20543ce18892f7d9

  • Default context: none
  • Not configurable here (group default used): Theme: Light · Platform: Android · Audience: 1P Baseline · Motion scheme: Standard · Font: Static · Contrast: Default · iOS dark theme elevation: None · iOS weight setting: Default · Language height: Small
  • Reference chain: aliases from the token to its source value (token → alias → … → value). "—" means the token holds a literal value.

Shape · md.sys.shape · 24 tokens

Corner shape and directional modifier (like "top" or "end") tokens.

GroupTokenTypeReference chainResolved value
All tokensmd.sys.shape.corner.fullShape—Circular (fully rounded)
All tokensmd.sys.shape.corner.extra-large.topShape—Rounded corners: top-left 28dp, top-right 28dp
All tokensmd.sys.shape.corner.extra-largeShape—Rounded corners 28dp
All tokensmd.sys.shape.corner.large.topShape—Rounded corners: top-left 16dp, top-right 16dp
All tokensmd.sys.shape.corner.large.endShape—Rounded corners: top-right 16dp, bottom-right 16dp
All tokensmd.sys.shape.corner.large.startShape—Rounded corners: top-left 16dp, bottom-left 16dp
All tokensmd.sys.shape.corner.largeShape—Rounded corners 16dp
All tokensmd.sys.shape.corner.mediumShape—Rounded corners 12dp
All tokensmd.sys.shape.corner.smallShape—Rounded corners 8dp
All tokensmd.sys.shape.corner.extra-small.topShape—Rounded corners: top-left 4dp, top-right 4dp
All tokensmd.sys.shape.corner.extra-smallShape—Rounded corners 4dp
All tokensmd.sys.shape.corner.noneShape—Rounded corners 0dp
All tokensmd.sys.shape.corner.large-increasedShape—Rounded corners 20dp
All tokensmd.sys.shape.corner.extra-large-increasedShape—Rounded corners 32dp
All tokensmd.sys.shape.corner.extra-extra-largeShape—Rounded corners 48dp
All tokensmd.sys.shape.corner-value.noneLength—0dp
All tokensmd.sys.shape.corner-value.extra-smallLength—4dp
All tokensmd.sys.shape.corner-value.smallLength—8dp
All tokensmd.sys.shape.corner-value.mediumLength—12dp
All tokensmd.sys.shape.corner-value.largeLength—16dp
All tokensmd.sys.shape.corner-value.large-increasedLength—20dp
All tokensmd.sys.shape.corner-value.extra-largeLength—28dp
All tokensmd.sys.shape.corner-value.extra-large-increasedLength—32dp
All tokensmd.sys.shape.corner-value.extra-extra-largeLength—48dp

Corner radius scale ​

The Material 3 shape system uses a size-based scale with ten styles. Styles are assigned to components based on the desired amount of roundedness. 

  1. None - 0dp
  2. Extra small - 4dp
  3. Small - 8dp
  4. Medium - 12dp
  5. Large - 16dp
  6. Large increased - 20dp
  7. Extra large - 28dp
  8. Extra large increased - 32dp
  9. Extra extra large - 48dp
  10. Full - fully rounded corners

Apply shape styles using tokens

10 corner radii styles.

Steps on the scale are named for the amount of roundedness applied to the corner

Components illustrating the old 3-level shape scale.

M2: Three-level shape scale based on the size of the component container

Components illustrating the new 10-level shape scale.

M3: Ten-level shape scale based on the roundedness of shape corners

Symmetry ​

Components can have either symmetric or asymmetric corner shapes. Symmetric shapes have the same values for all corners, while asymmetric shapes can have corners with different values.

Both symmetric and asymmetric shapes use the same 10-step scale.

Asymmetrical shapes are used in M3 components with closely-grouped items, such as menus and split buttons. These are called inner corners.

3 shapes illustrating symmetrical and asymmetrical styles.

Inner corner component tokens always map to individual corner shape tokens

Customizing shapes ​

Generally, products should consistently use the Material 3 shape styles. However, customization is sometimes necessary, and even encouraged, for hero moments or custom components. Shapes can be customized at the style or component level.

Style changes ​

The corner radius shape style, like medium, can be customized to be a different size.

This applies the change to all components mapped to that shape style, unless they have an override.

Customizing the corner size of the medium style applies the change to all components using this style, such as cards and small FABs

Component changes  ​

The style of a specific component, such as a button, can be changed by customizing which corner radius shape style it maps to.

For example, by default, buttons are mapped to the full corner radius shape style. If your product needs a less rounded shape, remap the token to another style in the shape scale, such as small or medium.

Remapping the shape for a component to a different style applies the change to just that component across the UI

The shape style family can be customized from rounded to cut. This makes the corner a straight line instead of curved.



Add extra padding to avoid cutting off content in information-dense components. 



For example, a large cut corner on a card will clip content and images in the area more than a rounded corner of the same size.

Caution

Be careful not to apply large or full corners to information-dense components, such as cards

Do

Carousel with images with rounded corners.

Shapes can be intentionally rounder to add more visual variety

Do

Carousel with full rounded shapes.

Add unexpected moments by switching between square and fully rounded shapes

Adjust for optical roundness ​

When nesting rounded objects, avoid using the same corner radii for both objects. This can make the corners look unbalanced.

Instead, adjust the corner radii to be proportional to each other; this is called optical roundness. To calculate optical roundness:

  • Outer radius - padding = inner radius
  • For example: 48dp - 14dp = 34dp

3 parts of corner radii to adjust.

  1. Padding
  2. Outer radius
  3. Inner radius

Do

Nested carousel with optical roundness.

Use different corner radii values for nested components so they have optical roundness

Don't

Nested radii with the same roundness as its container.

Avoid using the same corner radius value for nested objects

Using the shape library ​

The Material 3 shape library can be used to create more interesting containers. Use the shape library for mostly visual elements. Avoid applying unconventional shapes to text-heavy containers. 

Shapes should be used sparingly to provide a stronger emphasis and moments of delight.

Unexpected shapes in carousel.

Leverage the Material shape library for moments of delight

Unofficial offline mirror. Content © Google, licensed under CC BY 4.0.