shadow

Compose Modifier

Common

Deprecated Replace with shadow which accepts ambientColor and spotColor parameters

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

elevationThe elevation for the shadow in pixels
shapeDefines a shape of the physical object
clipWhen active, the content drawing clips to the shape.
Common
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

elevationThe elevation for the shadow in pixels
shapeDefines a shape of the physical object
clipWhen active, the content drawing clips to the shape.
ambientColorColor of the ambient shadow drawn when elevation > 0f
spotColorColor of the spot shadow that is drawn when elevation > 0f

Code Examples

ShadowSample

@Composable
fun ShadowSample() {
    Box(Modifier.shadow(12.dp, RectangleShape).size(100.dp, 100.dp))
}