# SubspaceModifier

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/SubspaceModifier.kt+class:androidx.xr.compose.subspace.layout.SubspaceModifier) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)


```
interface SubspaceModifier
```

<br />

Known direct subclasses [SubspaceModifier.Companion](https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Companion), [SubspaceModifierNodeElement](https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Companion` | The companion object `SubspaceModifier` is the empty, default, or starter `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that contains no `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` | Modifier elements manage an instance of a particular `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node` implementation. |

*** ** * ** ***

An ordered, immutable collection of `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` that decorate or add behavior to Subspace Compose elements.

Based on `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier`

## Summary

| ### Nested types |
|---|
| `object https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Companion : https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` The companion object `SubspaceModifier` is the empty, default, or starter `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that contains no `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement`. |
| `abstract class https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node : https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/DelegatableSubspaceNode` The longer-lived object that is created for each `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` applied to a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayout.composable#SubspaceLayout(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SubspaceMeasurePolicy)` |

| ### Public companion functions |
|---|---|
| `infix https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#then(androidx.xr.compose.subspace.node.SubspaceModifierNodeElement)(other: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>)` |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#toString()()` |

| ### Public functions |
|---|---|
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#all(kotlin.Function1)( predicate: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns `true` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#all(kotlin.Function1)` returns true for all `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement`s in this `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` or if this `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` contains no Elements. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#any(kotlin.Function1)( predicate: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns `true` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#any(kotlin.Function1)` returns true for any `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` in this `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier`. |
| `open R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldIn(kotlin.Any,kotlin.Function2)( initial: R, operation: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>, R) -> R )` Accumulates a value starting with `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldIn(kotlin.Any,kotlin.Function2)` and applying `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldIn(kotlin.Any,kotlin.Function2)` to the current value and each `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` from outside in. |
| `open R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldOut(kotlin.Any,kotlin.Function2)( initial: R, operation: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>, R) -> R )` Accumulates a value starting with `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldOut(kotlin.Any,kotlin.Function2)` and applying `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldOut(kotlin.Any,kotlin.Function2)` to the current value and each `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` from inside out. |
| `open infix https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#then(androidx.xr.compose.subspace.layout.SubspaceModifier)(other: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier)` Concatenates this modifier with another. |

| ### Extension functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).alpha(kotlin.Float)(alpha: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Sets the opacity of this element (and its children) to a value between 0..1. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)( ratio: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, matchHeightConstraintsFirst: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Attempts to size the content to match a specified aspect ratio by trying to match one of the incoming constraints in the following order: `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minHeight()` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)` is `false` (which is the default), or `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minHeight()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minWidth()` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)` is `true`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).gravityAligned()()` A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that forces the content to remain upright, aligned with gravity by isolating the element's yaw by cancelling parent pitch and roll. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `@https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ExperimentalSpatialLayoutModifierApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).layout(kotlin.Function3)( measure: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope.(https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable, https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints) -> https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult )` Creates a node that allows changing how the wrapped element is measured and laid out. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).movable(kotlin.Boolean,androidx.xr.compose.subspace.layout.MovePolicy)(enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, movePolicy: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy)` Configures this subspace element to be interactive and movable. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(x: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, y: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, z: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Offset the content by (`https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp) without considering layout direction. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(x: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, y: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, z: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Offset the content by (`https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp). |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).onGloballyPositioned(kotlin.Function1)( onGloballyPositioned: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Invoke `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).onGloballyPositioned(kotlin.Function1)` with the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates` of the element when the global position or the orientation of the content may have changed. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).onSizeChanged(kotlin.Function1)( onSizeChanged: (size: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/IntVolumeSize) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Invokes `onSizeChanged` with the `IntVolumeSize` of the element when its size changes. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( left: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, top: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, right: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, bottom: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, front: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, back: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Apply additional space along each edge of the content in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`: `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp)(all: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Apply `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp)` dp of additional space along each edge of the content, left, top, right, bottom, front, and back. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(horizontal: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, vertical: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Apply `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp space along the left and right edges of the content, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp space along the top and bottom edges, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp space along front and back edges. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, top: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, bottom: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, front: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, back: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Apply additional space along each edge of the content in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`: `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).pointerHoverIcon(androidx.xr.scenecore.SpatialPointerIcon)(icon: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialPointerIcon)` When present, this modifier defines how the pointer icon will be displayed when the spatial pointer hovers over an element. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).resizable(kotlin.Boolean,androidx.xr.compose.unit.DpVolumeSize,androidx.xr.compose.unit.DpVolumeSize,kotlin.Boolean,androidx.xr.compose.subspace.layout.ResizePolicy)( enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, minimumSize: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize, maximumSize: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize, maintainAspectRatio: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, resizePolicy: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ResizePolicy )` When the resizable modifier is present and enabled, UI controls will be shown that allow the user to resize the element in 3D space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.[rotate](https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate())()` **This function is deprecated.** SubspaceModifier.rotate() with no arguments does nothing. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate(androidx.xr.runtime.math.Quaternion)(quaternion: https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Quaternion)` Rotate a subspace element (i.e., Panel) in space with regard to the center of the element. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate(androidx.xr.runtime.math.Vector3,kotlin.Float)(axisAngle: https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Vector3, rotation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Rotate a subspace element (i.e., Panel) in space with regard to the center of the element. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate(kotlin.Float,kotlin.Float,kotlin.Float)(pitch: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, yaw: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, roll: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Rotate a subspace element (i.e., Panel) in space with regard to the center of the element. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `@https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ExperimentalRotateToLookAtUserApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotateToLookAtUser(kotlin.Boolean,kotlin.Boolean,androidx.xr.compose.subspace.layout.PitchLimits)( isYawUpdateEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isPitchUpdateEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, pitchLimits: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PitchLimits )` A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that continuously rotates content so that it faces the user at all times. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).scale(kotlin.Float)( scale: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Scale the contents of the composable by the scale factor along horizontal, vertical, and depth axes. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).semantics(kotlin.Function1)(properties: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/SubspaceSemanticsPropertyReceiver.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Add semantics key/value pairs to the layout node, for use in testing, accessibility, etc. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).depth(androidx.compose.ui.unit.Dp)(depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depth(androidx.compose.ui.unit.Dp)` dp along the z dimension of the Composable's local coordinate space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).depthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Constrain the depth of the content to be between `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp as permitted by the incoming measurement constraints. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxDepth(kotlin.Float)( fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` of the incoming measurement constraints, by setting the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minDepth()` and the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` to be equal to the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` multiplied by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxDepth(kotlin.Float)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxHeight(kotlin.Float)( fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` of the incoming measurement constraints, by setting the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minHeight()` and the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` to be equal to the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` multiplied by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxHeight(kotlin.Float)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxSize(kotlin.Float)( fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()`, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` of the incoming measurement constraints. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxWidth(kotlin.Float)( fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` of the incoming measurement constraints, by setting the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minWidth()` and the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` to be equal to the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` multiplied by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxWidth(kotlin.Float)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).height(androidx.compose.ui.unit.Dp)(height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).height(androidx.compose.ui.unit.Dp)` dp along the y dimension of the Composable's local coordinate space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).heightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Constrain the height of the content to be between `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).heightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).heightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp as permitted by the incoming measurement constraints. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredDepth(androidx.compose.ui.unit.Dp)(depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredDepth(androidx.compose.ui.unit.Dp)` dp along the z dimension of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredDepthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Constrain the depth of the content to be between `min` dp and `max` dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredHeight(androidx.compose.ui.unit.Dp)(height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredHeight(androidx.compose.ui.unit.Dp)` dp along the y dimension of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredHeightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Constrain the height of the content to be between `min` dp and `max` dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp)(size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the size of the content to be exactly a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp)` dp cube, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.xr.compose.unit.DpVolumeSize)(size: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize)` Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.xr.compose.unit.DpVolumeSize)` in each of the three dimensions of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` in each of the three dimensions of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSizeIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( minWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, maxWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, minHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, maxHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, minDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, maxDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Constrain the size of the content to be between min and max dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredWidth(androidx.compose.ui.unit.Dp)(width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredWidth(androidx.compose.ui.unit.Dp)` dp along the x dimension of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredWidthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Constrain the width of the content to be between `min` dp and `max` dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp)(size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the preferred size of the content to be exactly a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp)` dp cube. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.xr.compose.unit.DpVolumeSize)(size: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize)` Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.xr.compose.unit.DpVolumeSize)` in each of the three dimensions. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp along the x dimension, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp along the y dimension, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp along the z dimension of the Composable's local coordinate space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).sizeIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( minWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, maxWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, minHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, maxHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, minDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, maxDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Constrain the size of the content to be between min and max dp as permitted by the incoming measurement constraints. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).width(androidx.compose.ui.unit.Dp)(width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).width(androidx.compose.ui.unit.Dp)` dp along the x dimension of the Composable's local coordinate space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).widthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)(min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Constrain the width of the content to be between `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).widthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).widthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp as permitted by the incoming measurement constraints. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).spatializedAudioOutput(androidx.xr.compose.subspace.media.SpatializedAudioOutput)( spatializedAudioOutput: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/SpatializedAudioOutput )` Adds spatialized audio output to this Composable. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).testTag(kotlin.String)(tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Applies a tag to allow modified element to be found in tests. |

## Public companion functions

### then

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
infix fun then(other: SubspaceModifierNodeElement<SubspaceModifier.Node>): SubspaceModifier
```

### toString

```
open fun toString(): String
```

## Public functions

### all

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
open fun all(
    predicate: (SubspaceModifierNodeElement<SubspaceModifier.Node>) -> Boolean
): Boolean
```

Returns `true` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#all(kotlin.Function1)` returns true for all `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement`s in this `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` or if this `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` contains no Elements.

| Parameters |
|---|---|
| `predicate: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | condition to evaluate for each element. |

### any

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
open fun any(
    predicate: (SubspaceModifierNodeElement<SubspaceModifier.Node>) -> Boolean
): Boolean
```

Returns `true` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#any(kotlin.Function1)` returns true for any `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` in this `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier`.

| Parameters |
|---|---|
| `predicate: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | condition to evaluate for each element. |

### foldIn

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
open fun <R : Any?> foldIn(
    initial: R,
    operation: (SubspaceModifierNodeElement<SubspaceModifier.Node>, R) -> R
): R
```

Accumulates a value starting with `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldIn(kotlin.Any,kotlin.Function2)` and applying `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldIn(kotlin.Any,kotlin.Function2)` to the current value and each `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` from outside in.

| Parameters |
|---|---|
| `initial: R` | initial value for the accumulation. |
| `operation: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>, R) -> R` | function to apply to the current accumulated value and the next element. |

### foldOut

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
open fun <R : Any?> foldOut(
    initial: R,
    operation: (SubspaceModifierNodeElement<SubspaceModifier.Node>, R) -> R
): R
```

Accumulates a value starting with `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldOut(kotlin.Any,kotlin.Function2)` and applying `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#foldOut(kotlin.Any,kotlin.Function2)` to the current value and each `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement` from inside out.

| Parameters |
|---|---|
| `initial: R` | initial value for the accumulation. |
| `operation: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/node/SubspaceModifierNodeElement<https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node>, R) -> R` | function to apply to the next element and the current accumulated value. |

### then

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
open infix fun then(other: SubspaceModifier): SubspaceModifier
```

Concatenates this modifier with another.

Returns a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` representing this modifier followed by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#then(androidx.xr.compose.subspace.layout.SubspaceModifier)` in sequence.

| Parameters |
|---|---|
| `other: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` to concatenate to this one. |

## Extension functions

### SubspaceModifier.alpha

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/draw/Alpha.kt+function:alpha)

```
fun SubspaceModifier.alpha(alpha: @FloatRange(from = 0.0, to = 1.0) Float): SubspaceModifier
```

Sets the opacity of this element (and its children) to a value between 0..1. An alpha value of 0.0f means fully transparent while a value of 1.0f is completely opaque. Elements with semi-transparent alpha values (\> 0.0 but \< 1.0f) will be rendered using alpha-blending.

| Parameters |
|---|---|
| `alpha: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | the opacity of this element (and its children). Must be a value between 0 and 1, inclusive. Values \< 0 or \> 1 will be clamped. |

### SubspaceModifier.aspectRatio

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/AspectRatio.kt+function:aspectRatio)

```
fun SubspaceModifier.aspectRatio(
    ratio: @FloatRange(from = 0.0, fromInclusive = false) Float,
    matchHeightConstraintsFirst: Boolean = false
): SubspaceModifier
```

Attempts to size the content to match a specified aspect ratio by trying to match one of the incoming constraints in the following order: `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minHeight()` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)` is `false` (which is the default), or `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minHeight()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minWidth()` if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)` 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 `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` or `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` is matched (depending on `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)`). Note that this modifier constrains the ratio between the content's width and height only. The depth dimension is not affected or constrained by this aspect ratio modifier.

Example usage:

```kotlin
SpatialPanel(SubspaceModifier.width(100.dp).aspectRatio(16f / 9f)) {
    Text(text = "Inner Composable Content")
}
```

| Parameters |
|---|---|
| `ratio: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | the desired width/height positive ratio |
| `matchHeightConstraintsFirst: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | if true, height constraints will be matched before width constraints and used to calculate the resulting size according to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).aspectRatio(kotlin.Float,kotlin.Boolean)` |

### SubspaceModifier.gravityAligned

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/GravityAligned.kt+function:gravityAligned)

```
fun SubspaceModifier.gravityAligned(): SubspaceModifier
```

A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that forces the content to remain upright, aligned with gravity by isolating the element's yaw by cancelling parent pitch and roll.

This modifier calculates the necessary counter-rotation to ignore the pitch and roll of its parent entity's total world transformation. It only affects the rotation and not the translation. This is useful for UI elements like labels or billboards that should always stay level, regardless of the orientation of the object they are attached to. It effectively isolates the **yaw** (rotation around the vertical Y-axis).

### SubspaceModifier.layout

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/LayoutModifier.kt+function:layout)

```
@ExperimentalSpatialLayoutModifierApi
fun SubspaceModifier.layout(
    measure: SubspaceMeasureScope.(SubspaceMeasurable, VolumeConstraints) -> SubspaceMeasureResult
): SubspaceModifier
```

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

| Parameters |
|---|---|
| `measure: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope.(https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable, https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints) -> https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult` | function that defines the measurement and placement logic. |

### SubspaceModifier.movable

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Movable.kt+function:movable)

```
fun SubspaceModifier.movable(
    enabled: Boolean = true,
    movePolicy: MovePolicy = MovePolicy.Default
): SubspaceModifier
```

Configures this subspace element to be interactive and movable.

When this modifier is present and enabled, draggable UI controls will be shown that allow the user to move the element in 3D space. The specific behavior of this movement---such as whether the system automatically applies the transformation, leaves it to the developer, or anchors it to physical surfaces---is defined by the provided `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy`. Input events used for moving in this way are consumed.

There are some limitations that should be considered when using this modifier:

1. the draggable UI controls of nested composables using the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).movable(kotlin.Boolean,androidx.xr.compose.subspace.layout.MovePolicy)` modifier may conflict with each other.

2. Attaching multiple `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).movable(kotlin.Boolean,androidx.xr.compose.subspace.layout.MovePolicy)` modifiers with auto-applying policies (like `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy#system(kotlin.Boolean,kotlin.Function1)`) to the same element will compound the movement distance, since each modifier independently applies the drag offset upon release.

```kotlin
import androidx.compose.material3.Text
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.MovePolicy
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.movable

SpatialPanel(
    modifier = SubspaceModifier.movable(enabled = true, movePolicy = MovePolicy.system())
) {
    Text("The user can move me around!")
}
```

```kotlin
import androidx.compose.material3.Text
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.MovePolicy
import androidx.xr.compose.subspace.layout.SpatialMoveEvent
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.movable
import androidx.xr.compose.subspace.layout.offset
import androidx.xr.compose.subspace.layout.rotate
import androidx.xr.runtime.math.Quaternion

var offsetX by remember { mutableStateOf(0.dp) }
var offsetY by remember { mutableStateOf(0.dp) }
var offsetZ by remember { mutableStateOf(0.dp) }
var rotation by remember { mutableStateOf(Quaternion.Identity) }
val density = LocalDensity.current
val customMovement: (SpatialMoveEvent) -> Unit = { moveEvent ->
    offsetX = with(density) { moveEvent.pose.translation.x.toDp() }
    offsetY = with(density) { moveEvent.pose.translation.y.toDp() }
    offsetZ = with(density) { moveEvent.pose.translation.z.toDp() }
    rotation = moveEvent.pose.rotation
}
SpatialPanel(
    modifier =
        SubspaceModifier.movable(
                enabled = true,
                movePolicy = MovePolicy.custom(onMove = customMovement),
            )
            .offset(x = offsetX, y = offsetY, z = offsetZ)
            .rotate(rotation)
) {
    Text("The user can move me around!")
}
```

| Parameters |
|---|---|
| `enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | true if this composable should be movable. Setting this to false will remove the interactable affordance associated with the content. Disabling the modifier after movement keeps the composable at its last dragged position. Removing the modifier entirely resets the composable to its original layout position. |
| `movePolicy: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy = MovePolicy.Default` | The `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy` that dictates how movement transformations are calculated and applied. Defaults to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy#Default()`. |

### SubspaceModifier.absoluteOffset

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Offset.kt+function:absoluteOffset)

```
fun SubspaceModifier.absoluteOffset(x: Dp = 0.dp, y: Dp = 0.dp, z: Dp = 0.dp): SubspaceModifier
```

Offset the content by (`https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp) without considering layout direction. The offsets can be positive as well as non-positive.

This modifier will not consider layout direction when calculating the position of the content: a positive `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` offset will always move the content to the right. For a modifier that considers the layout direction when applying the offset, see `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `x: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | horizontal offset in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `y: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | vertical offset in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `z: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | depth offset in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` |   |

### SubspaceModifier.offset

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Offset.kt+function:offset)

```
fun SubspaceModifier.offset(x: Dp = 0.dp, y: Dp = 0.dp, z: Dp = 0.dp): SubspaceModifier
```

Offset the content by (`https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp). The offsets can be positive as well as non-positive.

This modifier will automatically adjust the horizontal offset according to the layout direction: when the layout direction is LTR, positive `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` offsets will move the content to the right and when the layout direction is RTL, positive `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).offset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` offsets will move the content to the left. For a modifier that offsets without considering layout direction, see `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `x: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | horizontal offset in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `y: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | vertical offset in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `z: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | depth offset in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absoluteOffset(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` |   |

### SubspaceModifier.onGloballyPositioned

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/OnGloballyPositionedModifier.kt+function:onGloballyPositioned)

```
fun SubspaceModifier.onGloballyPositioned(
    onGloballyPositioned: (SubspaceLayoutCoordinates) -> Unit
): SubspaceModifier
```

Invoke `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).onGloballyPositioned(kotlin.Function1)` with the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates` of the element when the global position or the orientation of the content may have changed. Note that it will be called **after** a composition when the coordinates are finalized.

This callback executes after composition once the final coordinates are determined. It will be invoked at least once when the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates` become available and subsequently whenever the composable's transform (position, rotation, scale) is updated relative to the subspace's origin.

The callback information will be relative to its subspace. For instance, when a nested subspace is moved by the global subspace, its Pose will reflect its position in the nested subspace. Its position value will not be updated despite moving locations in the Global Subspace.

| Parameters |
|---|---|
| `onGloballyPositioned: (https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | callback to be invoked with the updated `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates`. |

### SubspaceModifier.onSizeChanged

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/OnSizeChanged.kt+function:onSizeChanged)

```
fun SubspaceModifier.onSizeChanged(
    onSizeChanged: (size: IntVolumeSize) -> Unit
): SubspaceModifier
```

Invokes `onSizeChanged` with the `IntVolumeSize` of the element when its size changes.

This callback is executed after the measure pass when the SubspaceComposable's size is finalized. It will be invoked at least once when the size becomes available and subsequently whenever the size changes.

For observing changes to position or orientation in addition to size, use `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).onGloballyPositioned(kotlin.Function1)` instead.

| Parameters |
|---|---|
| `onSizeChanged: (size: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/IntVolumeSize) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The callback that is invoked when the size changes. The `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/IntVolumeSize` parameter represents the new size of the layout in pixels. |

### SubspaceModifier.absolutePadding

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Padding.kt+function:absolutePadding)

```
fun SubspaceModifier.absolutePadding(
    left: Dp = 0.dp,
    top: Dp = 0.dp,
    right: Dp = 0.dp,
    bottom: Dp = 0.dp,
    front: Dp = 0.dp,
    back: Dp = 0.dp
): SubspaceModifier
```

Apply additional space along each edge of the content in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`: `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. Padding is applied before content measurement and takes precedence; content may only be as large as the remaining space. To apply relative padding with layout direction, see `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

Negative padding is not permitted --- it will cause `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html`.

| Parameters |
|---|---|
| `left: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the left edge of the content. |
| `top: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the top edge of the content. |
| `right: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the right edge of the content. |
| `bottom: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the bottom edge of the content. |
| `front: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the front edge of the content. |
| `back: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the back edge of the content. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` |   |

### SubspaceModifier.padding

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Padding.kt+function:padding)

```
fun SubspaceModifier.padding(all: Dp): SubspaceModifier
```

Apply `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp)` dp of additional space along each edge of the content, left, top, right, bottom, front, and back. Padding is applied before content measurement and takes precedence; content may only be as large as the remaining space.

Negative padding is not permitted --- it will cause `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html`. See `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `all: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The amount of space at each edge of the content. |

### SubspaceModifier.padding

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Padding.kt+function:padding)

```
fun SubspaceModifier.padding(
    horizontal: Dp = 0.dp,
    vertical: Dp = 0.dp,
    depth: Dp = 0.dp
): SubspaceModifier
```

Apply `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp space along the left and right edges of the content, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp space along the top and bottom edges, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp space along front and back edges. Padding is applied before content measurement and takes precedence; content may only be as large as the remaining space.

Negative padding is not permitted --- it will cause `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html`. See `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `horizontal: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the left and right edges of the content. |
| `vertical: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the top and bottom edges of the content. |
| `depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the front and back edges of the content. |

### SubspaceModifier.padding

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Padding.kt+function:padding)

```
fun SubspaceModifier.padding(
    start: Dp = 0.dp,
    top: Dp = 0.dp,
    end: Dp = 0.dp,
    bottom: Dp = 0.dp,
    front: Dp = 0.dp,
    back: Dp = 0.dp
): SubspaceModifier
```

Apply additional space along each edge of the content in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`: `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. The start and end edges will be determined by the current `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/LayoutDirection`. Padding is applied before content measurement and takes precedence; content may only be as large as the remaining space. To not consider the layout direction when applying the padding, see `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

Negative padding is not permitted --- it will cause `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html`.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the start edge of the content. Start edge is left if the layout direction is LTR, or right for RTL. |
| `top: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the top edge of the content. |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the end edge of the content. End edge is right if the layout direction is LTR, or left for RTL. |
| `bottom: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the bottom edge of the content. |
| `front: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the front edge of the content. |
| `back: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = 0.dp` | The amount of space at the back edge of the content. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).absolutePadding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` |   |

### SubspaceModifier.pointerHoverIcon

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/PointerHoverIcon.kt+function:pointerHoverIcon)

```
fun SubspaceModifier.pointerHoverIcon(icon: SpatialPointerIcon): SubspaceModifier
```

When present, this modifier defines how the pointer icon will be displayed when the spatial pointer hovers over an element. Any child elements will inherit the pointer icon setting that this modifier defines for their parent element upon hovering.

| Parameters |
|---|---|
| `icon: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialPointerIcon` | The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialPointerIcon` to be displayed on hover. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that includes the hover icon behavior. |

### SubspaceModifier.resizable

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Resizable.kt+function:resizable)

```
fun SubspaceModifier.resizable(
    enabled: Boolean = true,
    minimumSize: DpVolumeSize = DpVolumeSize.Zero,
    maximumSize: DpVolumeSize = DpVolumeSize(Dp.Infinity, Dp.Infinity, Dp.Infinity),
    maintainAspectRatio: Boolean = false,
    resizePolicy: ResizePolicy = ResizePolicy.Default
): SubspaceModifier
```

When the resizable modifier is present and enabled, UI controls will be shown that allow the user to resize the element in 3D space.

```kotlin
import androidx.compose.material3.Text
import androidx.compose.ui.unit.dp
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.resizable
import androidx.xr.compose.unit.DpVolumeSize

SpatialPanel(
    modifier =
        SubspaceModifier.resizable(
            minimumSize = DpVolumeSize(100.dp, 100.dp, 0.dp),
            maximumSize = DpVolumeSize(800.dp, 800.dp, 0.dp),
        )
) {
    Text("Basic Resizable")
}
```

```kotlin
import androidx.compose.material3.Text
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.ResizePolicy
import androidx.xr.compose.subspace.layout.SpatialResizeEventType
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.height
import androidx.xr.compose.subspace.layout.resizable
import androidx.xr.compose.subspace.layout.width

val density = LocalDensity.current
var panelWidth by remember { mutableStateOf(400.dp) }
var panelHeight by remember { mutableStateOf(300.dp) }

SpatialPanel(
    modifier =
        SubspaceModifier.width(panelWidth)
            .height(panelHeight)
            .resizable(
                resizePolicy =
                    ResizePolicy.custom { event ->
                        // The developer decides when and how to apply the new size.
                        // In this example, we update our state when the resize interaction
                        // ends.
                        if (event.type == SpatialResizeEventType.End) {
                            with(density) {
                                panelWidth = event.size.width.toDp()
                                panelHeight = event.size.height.toDp()
                            }
                        }
                    }
            )
) {
    Text("Resizable with size state.")
}
```

| Parameters |
|---|---|
| `enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | Whether resizing is enabled for this object. If `false`, the object cannot be resized, but any size modifications that already occurred under the current `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).resizable(kotlin.Boolean,androidx.xr.compose.unit.DpVolumeSize,androidx.xr.compose.unit.DpVolumeSize,kotlin.Boolean,androidx.xr.compose.subspace.layout.ResizePolicy)` will remain. |
| `minimumSize: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize = DpVolumeSize.Zero` | The minimum allowable size for the object, represented by a `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize`. The object cannot be scaled down beyond these dimensions. Defaults to `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize#Zero()`. |
| `maximumSize: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize = DpVolumeSize(Dp.Infinity, Dp.Infinity, Dp.Infinity)` | The maximum allowable size for the object, represented by a `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize`. The object cannot be scaled up beyond these dimensions. Defaults to a `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize` with all dimensions set to `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp#Infinity()`, meaning no upper limit by default. |
| `maintainAspectRatio: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If `true`, the object's aspect ratio (proportions) will be preserved during resizing. If `false`, individual dimensions can be changed independently. Defaults to `false`. |
| `resizePolicy: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ResizePolicy = ResizePolicy.Default` | The policy that determines how the size change is applied. Defaults to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ResizePolicy#Default()` which automatically handles resizing under the hood. |

### SubspaceModifier.rotate

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Rotate.kt+function:rotate)

```
fun SubspaceModifier.[rotate](https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate())(): SubspaceModifier
```

> [!CAUTION]
> **This function is deprecated.**   
> SubspaceModifier.rotate() with no arguments does nothing. Please provide at least one rotation angle (pitch, yaw, or roll).

This overload is provided to prevent `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate()` from being called with no arguments.

### SubspaceModifier.rotate

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Rotate.kt+function:rotate)

```
fun SubspaceModifier.rotate(quaternion: Quaternion): SubspaceModifier
```

Rotate a subspace element (i.e., Panel) in space with regard to the center of the element. The rotation is directly specified by the provided `https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Quaternion`. The `https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Quaternion` values are specified as x, y, z, w, where w is the rotation of the unit vector, in radians. Rotation does not alter a Composable's measured size in its parent.

| Parameters |
|---|---|
| `quaternion: https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Quaternion` | Quaternion describing the rotation. |

### SubspaceModifier.rotate

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Rotate.kt+function:rotate)

```
fun SubspaceModifier.rotate(axisAngle: Vector3, rotation: Float): SubspaceModifier
```

Rotate a subspace element (i.e., Panel) in space with regard to the center of the element. The rotation is defined by a `https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Vector3` and a rotation angle in degrees. The axis angle will be normalized during construction. The `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate(androidx.xr.runtime.math.Vector3,kotlin.Float)` will be applied to the unit vector representing the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotate(androidx.xr.runtime.math.Vector3,kotlin.Float)`. Rotation does not alter a Composable's measured size in its parent.

| Parameters |
|---|---|
| `axisAngle: https://developer.android.com/reference/kotlin/androidx/xr/runtime/math/Vector3` | Vector representing the axis of rotation. |
| `rotation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | Degrees of rotation. |

### SubspaceModifier.rotate

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Rotate.kt+function:rotate)

```
fun SubspaceModifier.rotate(pitch: Float = 0.0f, yaw: Float = 0.0f, roll: Float = 0.0f): SubspaceModifier
```

Rotate a subspace element (i.e., Panel) in space with regard to the center of the element. Parameter rotation angles are specified in degrees. The rotations are applied in the order pitch, then yaw, then roll. If no values are provided, no rotation is applied. Rotation does not alter a Composable's measured size in its parent.

| Parameters |
|---|---|
| `pitch: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.0f` | Rotation around the x-axis. Defaults to `0.0f`. The x-axis is the axis along which width is measured. |
| `yaw: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.0f` | Rotation around the y-axis. Defaults to `0.0f`. The y-axis is the axis along which height is measured. |
| `roll: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.0f` | Rotation around the z-axis. Defaults to `0.0f`. The z-axis is the axis along which depth is measured. |

### SubspaceModifier.rotateToLookAtUser

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/RotateToLookAtUser.kt+function:rotateToLookAtUser)

```
@ExperimentalRotateToLookAtUserApi
fun SubspaceModifier.rotateToLookAtUser(
    isYawUpdateEnabled: Boolean = true,
    isPitchUpdateEnabled: Boolean = true,
    pitchLimits: PitchLimits = PitchLimits.FullRange
): SubspaceModifier
```

A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` that continuously rotates content so that it faces the user at all times.

A user of this API should configure the activity's Session object with `https://developer.android.com/reference/kotlin/androidx/xr/runtime/DeviceTrackingMode#SPATIAL()` which requires `android.permission.HEAD_TRACKING` Android permission be granted by the calling application. `session.configure( config = Config.Builder(session.config).setDeviceTracking(DeviceTrackingMode.SPATIAL).build() )`

The preceding rotate modifiers will be disregarded because this modifier will override them. But the rotate after the `rotateToLookAtUser` modifier will be respected.

To achieve a "billboard" effect---where the content rotates to face the user on the Y-axis while remaining upright and aligned with gravity---combine this with `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).gravityAligned()`.

```kotlin
import androidx.compose.material3.Text
import androidx.xr.compose.spatial.Subspace
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.gravityAligned
import androidx.xr.compose.subspace.layout.rotate
import androidx.xr.compose.subspace.layout.rotateToLookAtUser

Subspace {
    SpatialPanel(modifier = SubspaceModifier.rotateToLookAtUser().gravityAligned()) {
        Text("I always face you and stay upright!")
    }
}
```

```kotlin
import androidx.compose.material3.Text
import androidx.xr.compose.spatial.Subspace
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.PitchLimits
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.rotate
import androidx.xr.compose.subspace.layout.rotateToLookAtUser

Subspace {
    SpatialPanel(
        modifier =
            SubspaceModifier.rotateToLookAtUser(
                isYawUpdateEnabled = true,
                pitchLimits = PitchLimits(minimumPitch = -15f, maximumPitch = 15f),
            )
    ) {
        Text("I track your yaw, but my pitch is restricted between -15 and 15 degrees.")
    }
}
```

```kotlin
import androidx.compose.material3.Text
import androidx.xr.compose.spatial.Subspace
import androidx.xr.compose.subspace.SpatialBox
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.rotate
import androidx.xr.compose.subspace.layout.rotateToLookAtUser
import androidx.xr.runtime.math.Quaternion

val parentRotation = Quaternion.fromEulerAngles(pitch = 40f, yaw = 30f, roll = 20f)

Subspace {
    SpatialBox(SubspaceModifier.rotate(parentRotation)) {
        // This panel will rotate to face the user regardless of where
        // the parent SpatialBox is placed in the ActivitySpace.
        SpatialPanel(modifier = SubspaceModifier.rotateToLookAtUser()) {
            Text("I'm inside a SpatialBox, but I still see you!")
        }
    }
}
```

| Parameters |
|---|---|
| `isYawUpdateEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | Whether to update the Yaw (Y-axis rotation) to track the user. If `false`, yaw tracking is disabled and the content retains the Y-axis rotation specified by the layout and preceding modifiers. |
| `isPitchUpdateEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | Whether to update the Pitch (X-axis rotation) to track the user. If `false`, pitch tracking is disabled and the content retains the X-axis rotation specified by the layout and preceding modifiers. |
| `pitchLimits: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PitchLimits = PitchLimits.FullRange` | The limits for the Pitch (X-axis rotation) to track the user. Defaults to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PitchLimits#FullRange()`. This parameter is ignored if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).rotateToLookAtUser(kotlin.Boolean,kotlin.Boolean,androidx.xr.compose.subspace.layout.PitchLimits)` is `false`. |

### SubspaceModifier.scale

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/draw/Scale.kt+function:scale)

```
fun SubspaceModifier.scale(
    scale: @FloatRange(from = 0.0, fromInclusive = false) Float
): SubspaceModifier
```

Scale the contents of the composable by the scale factor along horizontal, vertical, and depth axes. Scaling does not change the measured size of the composable content during layout. The measured size of `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SubspaceComposable` elements can be controlled using size modifiers. The scale factor must be a positive number.

| Parameters |
|---|---|
| `scale: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | Multiplier to scale content along the horizontal, vertical, and depth axes. |

### SubspaceModifier.semantics

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/semantics/SemanticsModifier.kt+function:semantics)

```
fun SubspaceModifier.semantics(properties: SubspaceSemanticsPropertyReceiver.() -> Unit): SubspaceModifier
```

Add semantics key/value pairs to the layout node, for use in testing, accessibility, etc.

**Mental Model (Picture Frame vs. Canvas):** When building a combined UI in Compose for XR, think of a Subspace node (such as `SpatialPanel`) as a "Picture Frame" existing in 3D space, and the standard 2D Compose UI elements inside it as the "Canvas".

- Use `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).semantics(kotlin.Function1)` on the 3D container (the frame) to provide spatial properties (such as `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).testTag(kotlin.String)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/package-summary#(androidx.xr.compose.subspace.semantics.SubspaceSemanticsPropertyReceiver).contentDescription()`) for 3D placement, anchoring, or testing.

- Use standard `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/semantics.modifier#(androidx.compose.ui.Modifier).semantics(kotlin.Boolean,kotlin.Function1)` modifiers on the 2D Compose composables (the canvas) for fine-grained user interactions and TalkBack accessibility.

**Interop \& Merging Guidance:** The 3D Subspace semantics tree and the 2D foundational semantics tree operate as distinct hierarchies. Spatial containers do not support merging descendant semantics (`mergeDescendants = true`).

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.xr.compose.spatial.Subspace
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.semantics.contentDescription
import androidx.xr.compose.subspace.semantics.semantics
import androidx.xr.compose.subspace.semantics.testTag

@Composable
fun AppContent() {
    // Mental Model: The "Picture Frame" (3D Container) vs. the "Canvas" (2D Content)
    Subspace {
        SpatialPanel(
            modifier =
                SubspaceModifier.semantics {
                    // Set spatial semantics on the 3D container (the "Picture Frame")
                    testTag = "main_settings_panel"
                    contentDescription = "System Settings Window"
                }
        ) {
            // Standard 2D Compose UI goes inside (the "Canvas").
            // These elements use standard Modifier.semantics for TalkBack and interactions.
            Column {
                Text("System Settings")
                Button(
                    onClick = { /* do something */ },
                    modifier = Modifier.semantics { contentDescription = "Perform action" },
                ) {
                    Text("Click Me")
                }
            }
        }
    }
}
```

| Parameters |
|---|---|
| `properties: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/SubspaceSemanticsPropertyReceiver.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Builder block where the semantics properties are defined. |

### SubspaceModifier.depth

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:depth)

```
fun SubspaceModifier.depth(depth: Dp): SubspaceModifier
```

Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depth(androidx.compose.ui.unit.Dp)` dp along the z dimension of the Composable's local coordinate space.

| Parameters |
|---|---|
| `depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | preferred depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.depthIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:depthIn)

```
fun SubspaceModifier.depthIn(min: Dp = Dp.Unspecified, max: Dp = Dp.Unspecified): SubspaceModifier
```

Constrain the depth of the content to be between `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp as permitted by the incoming measurement constraints. If the incoming constraints are more restrictive, the requested size will obey the incoming constraints and attempt to be as close as possible to the preferred size.

| Parameters |
|---|---|
| `min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum depth. |
| `max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum depth. |

### SubspaceModifier.fillMaxDepth

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:fillMaxDepth)

```
fun SubspaceModifier.fillMaxDepth(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): SubspaceModifier
```

Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` of the incoming measurement constraints, by setting the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minDepth()` and the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` to be equal to the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` multiplied by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxDepth(kotlin.Float)`. Note that, by default, the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxDepth(kotlin.Float)` is 1, so the modifier will make the content fill the whole available depth. If the incoming maximum depth is `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#INFINITY()` this modifier will have no effect.

| Parameters |
|---|---|
| `fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 1.0f` | The fraction of the maximum height to use, between `0` and `1`, inclusive. |

### SubspaceModifier.fillMaxHeight

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:fillMaxHeight)

```
fun SubspaceModifier.fillMaxHeight(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): SubspaceModifier
```

Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` of the incoming measurement constraints, by setting the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minHeight()` and the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` to be equal to the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()` multiplied by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxHeight(kotlin.Float)`. Note that, by default, the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxHeight(kotlin.Float)` is 1, so the modifier will make the content fill the whole available height. If the incoming maximum height is `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#INFINITY()` this modifier will have no effect.

| Parameters |
|---|---|
| `fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 1.0f` | The fraction of the maximum height to use, between `0` and `1`, inclusive. |

### SubspaceModifier.fillMaxSize

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:fillMaxSize)

```
fun SubspaceModifier.fillMaxSize(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): SubspaceModifier
```

Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxHeight()`, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxDepth()` of the incoming measurement constraints. See `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxWidth(kotlin.Float)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxHeight(kotlin.Float)`, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxDepth(kotlin.Float)` for details. Note that, by default, the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxSize(kotlin.Float)` is 1, so the modifier will make the content fill the whole available space. If the incoming maximum width or height or depth is `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#INFINITY()` this modifier will have no effect in that dimension.

| Parameters |
|---|---|
| `fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 1.0f` | The fraction of the maximum size to use, between `0` and `1`, inclusive. |

### SubspaceModifier.fillMaxWidth

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:fillMaxWidth)

```
fun SubspaceModifier.fillMaxWidth(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): SubspaceModifier
```

Have the content fill (possibly only partially) the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` of the incoming measurement constraints, by setting the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#minWidth()` and the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` to be equal to the `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#maxWidth()` multiplied by `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxWidth(kotlin.Float)`. Note that, by default, the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).fillMaxWidth(kotlin.Float)` is 1, so the modifier will make the content fill the whole available width. If the incoming maximum width is `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints#INFINITY()` this modifier will have no effect.

| Parameters |
|---|---|
| `fraction: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 1.0f` | The fraction of the maximum width to use, between `0` and `1`, inclusive. |

### SubspaceModifier.height

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:height)

```
fun SubspaceModifier.height(height: Dp): SubspaceModifier
```

Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).height(androidx.compose.ui.unit.Dp)` dp along the y dimension of the Composable's local coordinate space.

| Parameters |
|---|---|
| `height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | preferred height in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.heightIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:heightIn)

```
fun SubspaceModifier.heightIn(min: Dp = Dp.Unspecified, max: Dp = Dp.Unspecified): SubspaceModifier
```

Constrain the height of the content to be between `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).heightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).heightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp as permitted by the incoming measurement constraints. If the incoming constraints are more restrictive, the requested size will obey the incoming constraints and attempt to be as close as possible to the preferred size.

| Parameters |
|---|---|
| `min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum height. |
| `max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum height. |

### SubspaceModifier.requiredDepth

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredDepth)

```
fun SubspaceModifier.requiredDepth(depth: Dp): SubspaceModifier
```

Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredDepth(androidx.compose.ui.unit.Dp)` dp along the z dimension of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depth(androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredDepth` will ignore the `minDepth` and `maxDepth` from the incoming constraints, which can be useful for sizing an element to a specific value even if it exceeds the parent's bounds.

| Parameters |
|---|---|
| `depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | required depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.requiredDepthIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredDepthIn)

```
fun SubspaceModifier.requiredDepthIn(
    min: Dp = Dp.Unspecified,
    max: Dp = Dp.Unspecified
): SubspaceModifier
```

Constrain the depth of the content to be between `min` dp and `max` dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).depthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredDepthIn` will ignore the `minDepth` and `maxDepth` from the incoming constraints.

| Parameters |
|---|---|
| `min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum depth. |
| `max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum depth. |

### SubspaceModifier.requiredHeight

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredHeight)

```
fun SubspaceModifier.requiredHeight(height: Dp): SubspaceModifier
```

Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredHeight(androidx.compose.ui.unit.Dp)` dp along the y dimension of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).height(androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredHeight` will ignore the `minHeight` and `maxHeight` from the incoming constraints, which can be useful for sizing an element to a specific value even if it exceeds the parent's bounds.

| Parameters |
|---|---|
| `height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | required height in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.requiredHeightIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredHeightIn)

```
fun SubspaceModifier.requiredHeightIn(
    min: Dp = Dp.Unspecified,
    max: Dp = Dp.Unspecified
): SubspaceModifier
```

Constrain the height of the content to be between `min` dp and `max` dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).heightIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredHeightIn` will ignore the `minHeight` and `maxHeight` from the incoming constraints.

| Parameters |
|---|---|
| `min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum height. |
| `max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum height. |

### SubspaceModifier.requiredSize

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredSize)

```
fun SubspaceModifier.requiredSize(size: Dp): SubspaceModifier
```

Declare the size of the content to be exactly a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp)` dp cube, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`. When applied to a Panel, the size will be a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp)` dp square instead.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredSize` will ignore all min and max constraints from the incoming constraints, which can be useful for sizing an element to a specific value even if it exceeds the parent's bounds.

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | required size in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` for all dimensions. |

### SubspaceModifier.requiredSize

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredSize)

```
fun SubspaceModifier.requiredSize(size: DpVolumeSize): SubspaceModifier
```

Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.xr.compose.unit.DpVolumeSize)` in each of the three dimensions of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredSize` will ignore all min and max constraints from the incoming constraints, which can be useful for sizing an element to a specific value even if it exceeds the parent's bounds. The parent will then determine how to handle the overflow.

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize` | required volume size as a `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize`. |

### SubspaceModifier.requiredSize

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredSize)

```
fun SubspaceModifier.requiredSize(
    width: Dp = Dp.Unspecified,
    height: Dp = Dp.Unspecified,
    depth: Dp = Dp.Unspecified
): SubspaceModifier
```

Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredSize(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` in each of the three dimensions of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredSize` will ignore all min and max constraints from the incoming constraints, which can be useful for sizing an element to a specific value even if it exceeds the parent's bounds. The parent will then determine how to handle the overflow.

| Parameters |
|---|---|
| `width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | required width in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | required height in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | required depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.requiredSizeIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredSizeIn)

```
fun SubspaceModifier.requiredSizeIn(
    minWidth: Dp = Dp.Unspecified,
    maxWidth: Dp = Dp.Unspecified,
    minHeight: Dp = Dp.Unspecified,
    maxHeight: Dp = Dp.Unspecified,
    minDepth: Dp = Dp.Unspecified,
    maxDepth: Dp = Dp.Unspecified
): SubspaceModifier
```

Constrain the size of the content to be between min and max dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).sizeIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredSizeIn` will ignore the min and max constraints from the incoming constraints, which can be useful for sizing an element to a specific range even if it exceeds the parent's bounds.

| Parameters |
|---|---|
| `minWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum width. |
| `maxWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum width. |
| `minHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum height. |
| `maxHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum height. |
| `minDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum depth. |
| `maxDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum depth. |

### SubspaceModifier.requiredWidth

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredWidth)

```
fun SubspaceModifier.requiredWidth(width: Dp): SubspaceModifier
```

Declare the size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).requiredWidth(androidx.compose.ui.unit.Dp)` dp along the x dimension of the Composable's local coordinate space, disregarding the incoming `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).width(androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredWidth` will ignore the `minWidth` and `maxWidth` from the incoming constraints, which can be useful for sizing an element to a specific value even if it exceeds the parent's bounds.

| Parameters |
|---|---|
| `width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | required width in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.requiredWidthIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:requiredWidthIn)

```
fun SubspaceModifier.requiredWidthIn(
    min: Dp = Dp.Unspecified,
    max: Dp = Dp.Unspecified
): SubspaceModifier
```

Constrain the width of the content to be between `min` dp and `max` dp, disregarding the incoming measurement `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/VolumeConstraints`.

This is in contrast to `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).widthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`, which respects the parent's constraints. `requiredWidthIn` will ignore the `minWidth` and `maxWidth` from the incoming constraints.

| Parameters |
|---|---|
| `min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum width. |
| `max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum width. |

### SubspaceModifier.size

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:size)

```
fun SubspaceModifier.size(size: Dp): SubspaceModifier
```

Declare the preferred size of the content to be exactly a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp)` dp cube.

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | preferred size in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` for all dimensions. |

### SubspaceModifier.size

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:size)

```
fun SubspaceModifier.size(size: DpVolumeSize): SubspaceModifier
```

Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.xr.compose.unit.DpVolumeSize)` in each of the three dimensions. Applying rotations to an object will also rotate the xyz axes of this modifier.

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize` | preferred volume size as a `https://developer.android.com/reference/kotlin/androidx/xr/compose/unit/DpVolumeSize`. |

### SubspaceModifier.size

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:size)

```
fun SubspaceModifier.size(
    width: Dp = Dp.Unspecified,
    height: Dp = Dp.Unspecified,
    depth: Dp = Dp.Unspecified
): SubspaceModifier
```

Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp along the x dimension, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp along the y dimension, and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).size(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp along the z dimension of the Composable's local coordinate space.

| Parameters |
|---|---|
| `width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | preferred width in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | preferred height in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |
| `depth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | preferred depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.sizeIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:sizeIn)

```
fun SubspaceModifier.sizeIn(
    minWidth: Dp = Dp.Unspecified,
    maxWidth: Dp = Dp.Unspecified,
    minHeight: Dp = Dp.Unspecified,
    maxHeight: Dp = Dp.Unspecified,
    minDepth: Dp = Dp.Unspecified,
    maxDepth: Dp = Dp.Unspecified
): SubspaceModifier
```

Constrain the size of the content to be between min and max dp as permitted by the incoming measurement constraints. If the incoming constraints are more restrictive, the requested size will obey the incoming constraints and attempt to be as close as possible to the preferred size.

| Parameters |
|---|---|
| `minWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum width. |
| `maxWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum width. |
| `minHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum height. |
| `maxHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum height. |
| `minDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum depth. |
| `maxDepth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum depth. |

### SubspaceModifier.width

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:width)

```
fun SubspaceModifier.width(width: Dp): SubspaceModifier
```

Declare the preferred size of the content to be exactly `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).width(androidx.compose.ui.unit.Dp)` dp along the x dimension of the Composable's local coordinate space.

| Parameters |
|---|---|
| `width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | preferred width in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. |

### SubspaceModifier.widthIn

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/layout/Size.kt+function:widthIn)

```
fun SubspaceModifier.widthIn(min: Dp = Dp.Unspecified, max: Dp = Dp.Unspecified): SubspaceModifier
```

Constrain the width of the content to be between `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).widthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).widthIn(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` dp as permitted by the incoming measurement constraints. If the incoming constraints are more restrictive, the requested size will obey the incoming constraints and attempt to be as close as possible to the preferred size.

| Parameters |
|---|---|
| `min: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The minimum width. |
| `max: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The maximum width. |

### SubspaceModifier.spatializedAudioOutput

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/media/SpatializedAudioOutput.kt+function:spatializedAudioOutput)

```
fun SubspaceModifier.spatializedAudioOutput(
    spatializedAudioOutput: SpatializedAudioOutput
): SubspaceModifier
```

Adds spatialized audio output to this Composable. Use `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/PointSourceExoplayerAudioOutput`, `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/SoundFieldExoplayerAudioOutput` or `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/package-summary#(androidx.xr.scenecore.SoundEffectPoolComponent).asSpatializedAudioOutput()` to create an object capable of spatializing audio.

```kotlin
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.height
import androidx.xr.compose.subspace.layout.movable
import androidx.xr.compose.subspace.layout.width
import androidx.xr.compose.subspace.media.rememberPointSourceExoplayerAudioOutput
import androidx.xr.compose.subspace.media.spatializedAudioOutput
import androidx.xr.scenecore.PointSourceParams

val context = LocalContext.current

// Create a PointSourceExoplayerAudioOutput.
val audioOutput = rememberPointSourceExoplayerAudioOutput(PointSourceParams())

// Create an ExoPlayer and set its AudioOutputProvider.
val exoPlayer = remember {
    ExoPlayer.Builder(context).setAudioOutputProvider(audioOutput.audioOutputProvider).build()
}

DisposableEffect(Unit) {
    exoPlayer.setMediaItem(MediaItem.fromUri("asset:///audio.mp3"))
    exoPlayer.prepare()
    exoPlayer.play()

    onDispose { exoPlayer.release() }
}

// Attach the SpatializedAudioOutput via SubspaceModifier.spatializedAudioOutput. The audio will
// be spatialized from the position of this SpatialPanel, and will follow the Panel as it moves.
SpatialPanel(
    modifier =
        SubspaceModifier.width(600.dp)
            .height(400.dp)
            .spatializedAudioOutput(audioOutput)
            .movable()
) {
    // Content of the panel
}
```

```kotlin
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer
import androidx.xr.compose.platform.LocalSession
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.height
import androidx.xr.compose.subspace.layout.movable
import androidx.xr.compose.subspace.layout.width
import androidx.xr.compose.subspace.media.SoundFieldExoplayerAudioOutput
import androidx.xr.compose.subspace.media.spatializedAudioOutput
import androidx.xr.scenecore.SoundFieldAttributes
import androidx.xr.scenecore.SpatializerConstants

val context = LocalContext.current
val session = LocalSession.current ?: return

// Create a SoundFieldExoplayerAudioOutput.
val audioOutput = remember {
    SoundFieldExoplayerAudioOutput(
        session,
        SoundFieldAttributes(SpatializerConstants.AmbisonicsOrder.FIRST_ORDER),
    )
}

// Create an ExoPlayer and set its AudioOutputProvider.
val exoPlayer = remember {
    ExoPlayer.Builder(context).setAudioOutputProvider(audioOutput.audioOutputProvider).build()
}

DisposableEffect(Unit) {
    exoPlayer.setMediaItem(MediaItem.fromUri("asset:///ambient.mp3"))
    exoPlayer.prepare()
    exoPlayer.play()

    onDispose { exoPlayer.release() }
}

// Attach the SpatializedAudioOutput via SubspaceModifier.spatializedAudioOutput.
SpatialPanel(
    modifier =
        SubspaceModifier.width(600.dp)
            .height(400.dp)
            .spatializedAudioOutput(audioOutput)
            .movable()
) {
    // Content of the panel
}
```

```kotlin
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.xr.compose.platform.LocalSession
import androidx.xr.compose.subspace.SpatialPanel
import androidx.xr.compose.subspace.layout.SubspaceModifier
import androidx.xr.compose.subspace.layout.height
import androidx.xr.compose.subspace.layout.movable
import androidx.xr.compose.subspace.layout.width
import androidx.xr.compose.subspace.media.asSpatializedAudioOutput
import androidx.xr.compose.subspace.media.spatializedAudioOutput
import androidx.xr.scenecore.PointSourceParams
import androidx.xr.scenecore.SoundEffectPool
import androidx.xr.scenecore.SoundEffectPoolComponent

val context = LocalContext.current
val session = LocalSession.current ?: return

// Create a SoundEffectPool.
val soundEffectPool = remember { SoundEffectPool.create(session, maxStreams = 10) }

// Remember a sound effect loaded via AssetFileDescriptor.
val soundEffect = remember {
    val assetFileDescriptor = context.assets.openFd("click.wav")
    soundEffectPool.load(assetFileDescriptor)
}

// Create a SoundEffectPoolComponent.
val soundEffectPoolComponent =
    remember(session, soundEffectPool) {
        SoundEffectPoolComponent.create(session, soundEffectPool, PointSourceParams())
    }

// Attach the SpatializedAudioOutput via SubspaceModifier.spatializedAudioOutput.
SpatialPanel(
    modifier =
        SubspaceModifier.width(600.dp)
            .height(400.dp)
            .spatializedAudioOutput(soundEffectPoolComponent.asSpatializedAudioOutput())
            .movable()
) {
    Button(
        onClick = {
            soundEffectPoolComponent.play(
                soundEffect,
                volume = 1f,
                priority = 0,
                isLooping = false,
            )
        }
    ) {
        Text("Play Sound Effect")
    }
}
```

| Parameters |
|---|---|
| `spatializedAudioOutput: https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/SpatializedAudioOutput` | A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/SpatializedAudioOutput` to be added to this Composable. A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/media/SpatializedAudioOutput` should only be attached to one Composable at a time. If it is attached multiple times, its associated audio output will become head locked. |

### SubspaceModifier.testTag

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/semantics/TestTag.kt+function:testTag)

```
fun SubspaceModifier.testTag(tag: String): SubspaceModifier
```

Applies a tag to allow modified element to be found in tests.

This is a convenience method for a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/package-summary#(androidx.xr.compose.subspace.layout.SubspaceModifier).semantics(kotlin.Function1)` that sets `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/semantics/package-summary#(androidx.xr.compose.subspace.semantics.SubspaceSemanticsPropertyReceiver).testTag()`.

| Parameters |
|---|---|
| `tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | String used to identify the modified element in tests. |