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

<a id='references'></a>


<h2 id="aspectratio-matchheightconstraintsfirst">aspectRatio</h2>

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


```kotlin
fun Modifier.aspectRatio(
    @FloatRange(from = 0.0, fromInclusive = false) ratio: Float,
    matchHeightConstraintsFirst: Boolean = false,
) =
    this.then(
        AspectRatioElement(
            ratio,
            matchHeightConstraintsFirst,
            debugInspectorInfo {
                name = "aspectRatio"
                properties["ratio"] = ratio
                properties["matchHeightConstraintsFirst"] = matchHeightConstraintsFirst
            },
        )
    )
```


Attempts to size the content to match a specified aspect ratio by trying to match one of the
incoming constraints in the following order: `Constraints.maxWidth`, `Constraints.maxHeight`,
`Constraints.minWidth`, `Constraints.minHeight` if `matchHeightConstraintsFirst` is `false`
(which is the default), or `Constraints.maxHeight`, `Constraints.maxWidth`,
`Constraints.minHeight`, `Constraints.minWidth` if `matchHeightConstraintsFirst` is `true`. The
size in the other dimension is determined by the aspect ratio. The combinations will be tried in
this order until one non-empty is found to satisfy the constraints. If no valid size is obtained
this way, it means that there is no non-empty size satisfying both the constraints and the aspect
ratio, so the constraints will not be respected and the content will be sized such that the
`Constraints.maxWidth` or `Constraints.maxHeight` is matched (depending on
`matchHeightConstraintsFirst`).

#### Parameters

| | |
| --- | --- |
| ratio | the desired width/height positive ratio |
| matchHeightConstraintsFirst | if true, height constraints will be matched before width constraints and used to calculate the resulting size according to `ratio` |