---
title: "layout"
description: "Creates a [LayoutModifier] that allows changing how the wrapped element is measured and laid out.

This is a convenience API of creating a custom [LayoutModifier] modifier, without having to
create a class or an object that implements the [LayoutModifier] interface. The intrinsic
measurements follow the default logic provided by the [LayoutModifier]."
type: "modifier"
---

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

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


```kotlin
fun Modifier.layout(measure: MeasureScope.(Measurable, Constraints) -> MeasureResult) =
    this then LayoutElement(measure)
```


Creates a `LayoutModifier` that allows changing how the wrapped element is measured and laid out.

This is a convenience API of creating a custom `LayoutModifier` modifier, without having to
create a class or an object that implements the `LayoutModifier` interface. The intrinsic
measurements follow the default logic provided by the `LayoutModifier`.



## Code Examples
### ConvenienceLayoutModifierSample
```kotlin
@Composable
fun ConvenienceLayoutModifierSample() {
    Box(
        Modifier.background(Color.Gray).layout { measurable, constraints ->
            // an example modifier that adds 50 pixels of vertical padding.
            val padding = 50
            val placeable = measurable.measure(constraints.offset(vertical = -padding))
            layout(placeable.width, placeable.height + padding) {
                placeable.placeRelative(0, padding)
            }
        }
    ) {
        Box(Modifier.fillMaxSize().background(Color.DarkGray))
    }
}
```

