dropShadow

Compose Modifier

Common
fun Modifier.dropShadow(shape: Shape, shadow: Shadow): Modifier

Draws a drop shadow behind the rest of the content with the geometry specified by the given shape and the shadow properties defined by the Shadow. This is different than Modifier.shadow as this does not introduce a graphicsLayer to render elevation based shadows. This shadow is rendered without a single light source and will render consistently regardless of the on screen position of the content.

Parameters

shapeGeometry of the shadow
shadowProperties of the shadow like radius, spread, offset, and fill properties like the color or brush
Common
fun Modifier.dropShadow(shape: Shape, block: DropShadowScope.() -> Unit) =
    this then BlockDropShadowElement(shape, block)

Draws a drop shadow behind the rest of the content with the geometry specified by the given shape and the shadow properties defined the DropShadowScope. This is different than Modifier.shadow as this does not introduce a graphicsLayer to render elevation based shadows. This shadow is rendered without a single light source and will render consistently regardless of the on screen position of the content. This is similar to Modifier.dropShadow except that specification of drop shadow parameters is done with the lambda with DropShadowScope allows for more efficient transformations for animated use cases without recomposition.

Parameters

shapeGeometry of the shadow
blockDropShadowScope block where shadow properties are defined

Code Examples

DropShadowSample

@Composable
fun DropShadowSample() {
    Box(Modifier.size(100.dp, 100.dp).dropShadow(RectangleShape, Shadow(12.dp)))
}