---
title: "shadow"
description: "Creates a [graphicsLayer] that draws a shadow. The [elevation] defines the visual depth of the
physical object. The physical object has a shape specified by [shape].

If the passed [shape] is concave the shadow will not be drawn on Android versions less than 10.

Note that [elevation] is only affecting the shadow size and doesn't change the drawing order. Use
a [androidx.compose.ui.zIndex] modifier if you want to draw the elements with larger [elevation]
after all the elements with a smaller one.

Usage of this API renders this composable into a separate graphics layer"
type: "modifier"
---

<div class='type'>Compose Modifier</div>

<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


> **Deprecated** Replace with shadow which accepts ambientColor and spotColor parameters

```kotlin
fun Modifier.shadow(
    elevation: Dp,
    shape: Shape = RectangleShape,
    clip: Boolean = elevation > 0.dp,
) = shadow(elevation, shape, clip, DefaultShadowColor, DefaultShadowColor)
```


Creates a `graphicsLayer` that draws a shadow. The `elevation` defines the visual depth of the
physical object. The physical object has a shape specified by `shape`.

If the passed `shape` is concave the shadow will not be drawn on Android versions less than 10.

Note that `elevation` is only affecting the shadow size and doesn't change the drawing order. Use
a `androidx.compose.ui.zIndex` modifier if you want to draw the elements with larger `elevation`
after all the elements with a smaller one.

Usage of this API renders this composable into a separate graphics layer

#### Parameters

| | |
| --- | --- |
| elevation | The elevation for the shadow in pixels |
| shape | Defines a shape of the physical object |
| clip | When active, the content drawing clips to the shape. |




<div class='sourceset sourceset-common'>Common</div>


```kotlin
fun Modifier.shadow(
    elevation: Dp,
    shape: Shape = RectangleShape,
    clip: Boolean = elevation > 0.dp,
    ambientColor: Color = DefaultShadowColor,
    spotColor: Color = DefaultShadowColor,
) =
    if (elevation > 0.dp || clip) {
        this then ShadowGraphicsLayerElement(elevation, shape, clip, ambientColor, spotColor)
    } else {
        this
    }
```


Creates a `graphicsLayer` that draws a shadow. The `elevation` defines the visual depth of the
physical object. The physical object has a shape specified by `shape`.

If the passed `shape` is concave the shadow will not be drawn on Android versions less than 10.

Note that `elevation` is only affecting the shadow size and doesn't change the drawing order. Use
a `androidx.compose.ui.zIndex` modifier if you want to draw the elements with larger `elevation`
after all the elements with a smaller one.

Note that this parameter is only supported on Android 9 (Pie) and above. On older versions, this
property always returns `Color.Black` and setting new values is ignored.

Usage of this API renders this composable into a separate graphics layer

#### Parameters

| | |
| --- | --- |
| elevation | The elevation for the shadow in pixels |
| shape | Defines a shape of the physical object |
| clip | When active, the content drawing clips to the shape. |
| ambientColor | Color of the ambient shadow drawn when `elevation` > 0f |
| spotColor | Color of the spot shadow that is drawn when `elevation` > 0f |




## Code Examples
### ShadowSample
```kotlin
@Composable
fun ShadowSample() {
    Box(Modifier.shadow(12.dp, RectangleShape).size(100.dp, 100.dp))
}
```

