# Shapes

Artifact: [androidx.compose.material3:material3](https://developer.android.com/jetpack/androidx/releases/compose-material3) [View Source](https://cs.android.com/search?q=file:androidx/compose/material3/Shapes.kt+class:androidx.compose.material3.Shapes) Common/AllAndroid/JVM
- Cmn

  ```
  class Shapes
  ```

*** ** * ** ***

Material surfaces can be displayed in different shapes. Shapes direct attention, identify components, communicate state, and express brand.

The shape scale defines the style of container corners, offering a range of roundedness from square to fully circular.

There are different sizes of shapes:

- Extra Small

- Small

- Medium

- Large, Large Increased

- Extra Large, Extra Large Increased

- Extra Extra Large

You can customize the shape system for all components in the `https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialTheme` or you can do it on a per component basis.

You can change the shape that a component has by overriding the shape parameter for that component. For example, by default, buttons use the shape style "full." If your product requires a smaller amount of roundedness, you can override the shape parameter with a different shape value like `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` of `https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialTheme#shapes()`.

To learn more about shapes, see [Material Design shapes](https://m3.material.io/styles/shape/overview).

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#Shapes(androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape)( extraSmall: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, small: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, medium: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, large: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape )` Material surfaces can be displayed in different shapes. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#Shapes(androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape)( extraSmall: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, small: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, medium: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, large: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, largeIncreased: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraLargeIncreased: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraExtraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape )` | Cmn |

| ### Public functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#copy(androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape)( extraSmall: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, small: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, medium: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, large: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape )` Returns a copy of this Shapes, optionally overriding some of the values. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#copy(androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape,androidx.compose.foundation.shape.CornerBasedShape)( extraSmall: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, small: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, medium: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, large: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, largeIncreased: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraLargeIncreased: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape, extraExtraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape )` Returns a copy of this Shapes, optionally overriding some of the values. | Cmn |
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#equals(kotlin.Any)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#hashCode()()` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#toString()()` | Cmn |

| ### Public properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraExtraLarge()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLargeIncreased()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraExtraLarge()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraSmall()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/package-summary#RectangleShape()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#largeIncreased()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraSmall()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()`. | Cmn |

## Public constructors

### Shapes

Cmn

```
Shapes(
    extraSmall: CornerBasedShape = ShapeDefaults.ExtraSmall,
    small: CornerBasedShape = ShapeDefaults.Small,
    medium: CornerBasedShape = ShapeDefaults.Medium,
    large: CornerBasedShape = ShapeDefaults.Large,
    extraLarge: CornerBasedShape = ShapeDefaults.ExtraLarge
)
```

Material surfaces can be displayed in different shapes. Shapes direct attention, identify components, communicate state, and express brand.

The shape scale defines the style of container corners, offering a range of roundedness from square to fully circular.

There are different sizes of shapes:

- Extra Small

- Small

- Medium

- Large, Large Increased

- Extra Large, Extra Large Increased

- Extra Extra Large

You can customize the shape system for all components in the `https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialTheme` or you can do it on a per component basis.

You can change the shape that a component has by overriding the shape parameter for that component. For example, by default, buttons use the shape style "full." If your product requires a smaller amount of roundedness, you can override the shape parameter with a different shape value like `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` of `https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialTheme#shapes()`.

To learn more about shapes, see [Material Design shapes](https://m3.material.io/styles/shape/overview).

| Parameters |
|---|---|
| `extraSmall: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.ExtraSmall` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/package-summary#RectangleShape()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()`. By default autocomplete menu, select menu, snackbars, standard menu, and text fields use this shape. |
| `small: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.Small` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraSmall()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()`. By default chips use this shape. |
| `medium: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.Medium` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()`. By default cards and small FABs use this shape. |
| `large: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.Large` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. By default extended FABs, FABs, and navigation drawers use this shape. |
| `extraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.ExtraLarge` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`. By default large FABs use this shape. |

### Shapes

Cmn

```
Shapes(
    extraSmall: CornerBasedShape = ShapeDefaults.ExtraSmall,
    small: CornerBasedShape = ShapeDefaults.Small,
    medium: CornerBasedShape = ShapeDefaults.Medium,
    large: CornerBasedShape = ShapeDefaults.Large,
    extraLarge: CornerBasedShape = ShapeDefaults.ExtraLarge,
    largeIncreased: CornerBasedShape = ShapeDefaults.LargeIncreased,
    extraLargeIncreased: CornerBasedShape = ShapeDefaults.ExtraLargeIncreased,
    extraExtraLarge: CornerBasedShape = ShapeDefaults.ExtraExtraLarge
)
```

| Parameters |
|---|---|
| `extraSmall: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.ExtraSmall` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/package-summary#RectangleShape()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()`. By default autocomplete menu, select menu, snackbars, standard menu, and text fields use this shape. |
| `small: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.Small` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraSmall()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()`. By default chips use this shape. |
| `medium: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.Medium` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()`. By default cards and small FABs use this shape. |
| `large: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.Large` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. By default extended FABs, FABs, and navigation drawers use this shape. |
| `extraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.ExtraLarge` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`. By default large FABs use this shape. |
| `largeIncreased: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.LargeIncreased` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. Slightly larger variant to `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()`. |
| `extraLargeIncreased: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.ExtraLargeIncreased` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraExtraLarge()`. Slightly larger variant to `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. |
| `extraExtraLarge: https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/CornerBasedShape = ShapeDefaults.ExtraExtraLarge` | A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`. |

## Public functions

### copy

Cmn

```
fun copy(
    extraSmall: CornerBasedShape = this.extraSmall,
    small: CornerBasedShape = this.small,
    medium: CornerBasedShape = this.medium,
    large: CornerBasedShape = this.large,
    extraLarge: CornerBasedShape = this.extraLarge
): Shapes
```

Returns a copy of this Shapes, optionally overriding some of the values.

### copy

Cmn

```
fun copy(
    extraSmall: CornerBasedShape = this.extraSmall,
    small: CornerBasedShape = this.small,
    medium: CornerBasedShape = this.medium,
    large: CornerBasedShape = this.large,
    extraLarge: CornerBasedShape = this.extraLarge,
    largeIncreased: CornerBasedShape = this.largeIncreased,
    extraLargeIncreased: CornerBasedShape = this.extraLargeIncreased,
    extraExtraLarge: CornerBasedShape = this.extraExtraLarge
): Shapes
```

Returns a copy of this Shapes, optionally overriding some of the values.

### equals

Cmn

```
open operator fun equals(other: Any?): Boolean
```

### hashCode

Cmn

```
open fun hashCode(): Int
```

### toString

Cmn

```
open fun toString(): String
```

## Public properties

### extraExtraLarge

Cmn

```
val extraExtraLarge: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`.

### extraLarge

Cmn

```
val extraLarge: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/foundation/shape/package-summary#CircleShape()`. By default large FABs use this shape.

### extraLargeIncreased

Cmn

```
val extraLargeIncreased: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraExtraLarge()`. Slightly larger variant to `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`.

### extraSmall

Cmn

```
val extraSmall: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/package-summary#RectangleShape()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()`. By default autocomplete menu, select menu, snackbars, standard menu, and text fields use this shape.

### large

Cmn

```
val large: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. By default extended FABs, FABs, and navigation drawers use this shape.

### largeIncreased

Cmn

```
val largeIncreased: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraLarge()`. Slightly larger variant to `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()`.

### medium

Cmn

```
val medium: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#small()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#large()`. By default cards and small FABs use this shape.

### small

Cmn

```
val small: CornerBasedShape
```

A shape style with 4 same-sized corners whose size are bigger than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#extraSmall()` and smaller than `https://developer.android.com/reference/kotlin/androidx/compose/material3/Shapes#medium()`. By default chips use this shape.