# androidx.xr.compose.subspace.layout

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/DelegatableSubspaceNode` | Represents a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node` which can be a delegate of another `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/InteractionPolicy` | Defines the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/InteractionPolicy` for a spatial object. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/MovePolicy` | Defines the behavior and configuration for movement applied by 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. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsAdjustable` | Marker interface for types allowed to be adjusted by a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsModifier`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsModifier` | Interface for modifiers that can adjust the layout parameters of a composable that implements `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ParentLayoutParamsAdjustable`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ResizePolicy` | Defines how resizing interactions are applied and handled for `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)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialAlignment` | An interface to calculate the position of a sized box inside an available 3D space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialAlignment.Depth` | An interface to calculate the alignment of a box of a certain size inside an available depth. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialAlignment.Horizontal` | An interface to calculate the alignment of a box of a certain size inside an available width. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialAlignment.Vertical` | An interface to calculate the alignment of a box of a certain size inside an available height. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialArrangement.AxisIndependent` | Used to specify the horizontal arrangement of the layout's children in horizontal layouts like `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialRow.composable#SpatialRow(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SpatialAlignment.Vertical,androidx.xr.compose.subspace.layout.SpatialAlignment.Depth,androidx.xr.compose.subspace.layout.SpatialArrangement.Horizontal,kotlin.Function1)`, or the vertical arrangement of the layout's children in vertical layouts like `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialColumn.composable#SpatialColumn(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SpatialAlignment.Horizontal,androidx.xr.compose.subspace.layout.SpatialAlignment.Depth,androidx.xr.compose.subspace.layout.SpatialArrangement.Vertical,kotlin.Function1)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialArrangement.Horizontal` | Used to specify the horizontal arrangement of the layout's children in layouts like `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialRow.composable#SpatialRow(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SpatialAlignment.Vertical,androidx.xr.compose.subspace.layout.SpatialAlignment.Depth,androidx.xr.compose.subspace.layout.SpatialArrangement.Horizontal,kotlin.Function1)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialArrangement.Vertical` | Used to specify the vertical arrangement of the layout's children in layouts like `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialColumn.composable#SpatialColumn(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SpatialAlignment.Horizontal,androidx.xr.compose.subspace.layout.SpatialAlignment.Depth,androidx.xr.compose.subspace.layout.SpatialArrangement.Vertical,kotlin.Function1)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialShape` | Base type for shapes that could be applied to spatial elements. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayoutCoordinates` | A holder of the measured bounds. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurable` | A part of the composition layout that can be measured. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasurePolicy` | Defines the measure and layout behavior of 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)`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureResult` | Interface holding the size of the measured layout, as well as the children positioning logic. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceMeasureScope` | The receiver scope of a layout's measure lambda. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier` | 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. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PitchLimits` | Represents the limits for pitch angles in degrees. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PlaneOrientation` | Type of plane based on orientation, i.e., horizontal or vertical. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PlaneSemantic` | Semantic plane types. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialBiasAbsoluteAlignment` | Positions content in 3D space using horizontal, vertical, and depth bias. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialBiasAbsoluteAlignment.Horizontal` | Creates a weighted alignment that specifies a horizontal bias and independent of layout direction |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialBiasAlignment` | Positions content in 3D space using horizontal, vertical, and depth bias. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialBiasAlignment.Depth` | Creates a weighted alignment that specifies a depth bias. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialBiasAlignment.Horizontal` | Creates a weighted alignment that specifies a horizontal bias. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialBiasAlignment.Vertical` | Creates a weighted alignment that specifies a vertical bias. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialInputEvent` | Defines Spatial input events for Compose, representing a user's input in 3D space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialMoveEvent` | An event representing a change in pose, scale, and size. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialMoveEventType` | An enum representing the phases of dragging. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialResizeEvent` | 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/SpatialResizeEventType` | An enum representing the phases of resizing. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialRoundedCornerShape` | A shape describing a rectangle with rounded corners in 3D space. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.Node` | 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)` |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable` | A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable` corresponds to a child layout that can be positioned by its parent layout. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable.SubspacePlacementScope` | Receiver scope that permits explicit placement of a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspacePlaceable`. |

## Objects

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialAbsoluteAlignment` | A collection of common `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialAlignment`s unaware of the layout direction. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialArrangement` | Used to specify the arrangement of the layout's children in layouts like `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialRow.composable#SpatialRow(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SpatialAlignment.Vertical,androidx.xr.compose.subspace.layout.SpatialAlignment.Depth,androidx.xr.compose.subspace.layout.SpatialArrangement.Horizontal,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialColumn.composable#SpatialColumn(androidx.xr.compose.subspace.layout.SubspaceModifier,androidx.xr.compose.subspace.layout.SpatialAlignment.Horizontal,androidx.xr.compose.subspace.layout.SpatialAlignment.Depth,androidx.xr.compose.subspace.layout.SpatialArrangement.Vertical,kotlin.Function1)` in the main axis direction (horizontal and vertical, respectively). |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SpatialArrangement.Absolute` | Used to specify arrangement which doesn't change with layout direction. |
| `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`. |

## Annotations

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ExperimentalMoveAnchorPolicy` |   |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ExperimentalRotateToLookAtUserApi` | Marks RotateToLookAtUser APIs that are experimental and likely to change or be removed in the future. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ExperimentalSpatialLayoutModifierApi` | Marks the Spatial Layout Modifier APIs as experimental. |

## Composables

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceLayout.composable` | `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)` is the main component for laying out leaf nodes with zero children. |

## Top-level functions summary

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/PitchLimits` | `@https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/ExperimentalRotateToLookAtUserApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)( minimumPitch: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = -90.0, to = 90.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, maximumPitch: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = -90.0, to = 90.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Constructs a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)` from the given `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)` angles in degrees. |

## Extension functions summary

|---|---|
| `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/package-summary#(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/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)( 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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/SubspaceModifier.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)(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/package-summary#(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/ExperimentalSpatialLayoutModifierApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/SubspaceModifier.https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/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)( 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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/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)( 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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/package-summary#(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/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)( 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/package-summary#(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/package-summary#(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. |

## Top-level functions

### PitchLimits

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/PitchLimits.kt+function:PitchLimits) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
@ExperimentalRotateToLookAtUserApi
fun PitchLimits(
    minimumPitch: @FloatRange(from = -90.0, to = 90.0) Float,
    maximumPitch: @FloatRange(from = -90.0, to = 90.0) Float
): PitchLimits
```

Constructs a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)` from the given `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#PitchLimits(kotlin.Float,kotlin.Float)` angles in degrees.

| Parameters |
|---|---|
| `minimumPitch: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = -90.0, to = 90.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The minimum allowed pitch angle in degrees. Must be in the range -90.0, 90.0. |
| `maximumPitch: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = -90.0, to = 90.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The maximum allowed pitch angle in degrees. Must be in the range -90.0, 90.0. |

## Extension functions

### 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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02) Deprecated in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
fun SubspaceModifier.[rotate](https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/layout/package-summary#(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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
@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.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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
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. |