---
title: Immersive spaces
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/immersive-spaces
---

# Immersive spaces

Display unbounded content in a person’s surroundings.

## Overview

Overview Use an immersive space in visionOS to present SwiftUI views outside of any containers. You can include any views in a space, although you typically use a RealityView to present RealityKit content.

You can request one of three styles of spaces with the immersionStyle(selection:in:) scene modifier: The mixed style blends your content with passthrough. This enables you to place virtual objects in a person’s surroundings. The full style displays only your content, with passthrough turned off. This enables you to completely control the visual experience, like when you want to transport people to a new world. The progressive style completely replaces passthrough in a portion of the display. You might use this style to keep people grounded in the real world while displaying a view into another world. When you open an immersive space, the system continues to display all of your app’s windows, but hides windows from other apps. The system supports displaying only one space at a time across all apps, so your app can only open a space if one isn’t already open.

## Topics

### Creating an immersive space

- [ImmersiveSpace](swiftui/immersivespace.md)
- [ImmersiveSpaceContentBuilder](swiftui/immersivespacecontentbuilder.md)
- [immersionStyle(selection:in:)](swiftui/scene/immersionstyle(selection:in:).md)
- [ImmersionStyle](swiftui/immersionstyle.md)
- [immersiveSpaceDisplacement](swiftui/environmentvalues/immersivespacedisplacement.md)
- [ImmersiveEnvironmentBehavior](swiftui/immersiveenvironmentbehavior.md)
- [ProgressiveImmersionAspectRatio](swiftui/progressiveimmersionaspectratio.md)

### Opening an immersive space

- [openImmersiveSpace](swiftui/environmentvalues/openimmersivespace.md)
- [OpenImmersiveSpaceAction](swiftui/openimmersivespaceaction.md)

### Closing the immersive space

- [dismissImmersiveSpace](swiftui/environmentvalues/dismissimmersivespace.md)
- [DismissImmersiveSpaceAction](swiftui/dismissimmersivespaceaction.md)

### Hiding upper limbs during immersion

- [upperLimbVisibility(_:)](swiftui/scene/upperlimbvisibility(_:).md)
- [upperLimbVisibility(_:)](swiftui/view/upperlimbvisibility(_:).md)

### Adjusting content brightness

- [immersiveContentBrightness(_:)](swiftui/scene/immersivecontentbrightness(_:).md)
- [ImmersiveContentBrightness](swiftui/immersivecontentbrightness.md)

### Responding to immersion changes

- [onImmersionChange(initial:_:)](swiftui/view/onimmersionchange(initial:_:).md)
- [ImmersionChangeContext](swiftui/immersionchangecontext.md)

### Adding menu items to an immersive space

- [immersiveEnvironmentPicker(content:)](swiftui/view/immersiveenvironmentpicker(content:).md)

### Handling remote immersive spaces

- [RemoteImmersiveSpace](swiftui/remoteimmersivespace.md)
- [RemoteDeviceIdentifier](swiftui/remotedeviceidentifier.md)

## See Also

### App structure

- [App organization](swiftui/app-organization.md)
- [Scenes](swiftui/scenes.md)
- [Windows](swiftui/windows.md)
- [Documents](swiftui/documents.md)
- [Navigation](swiftui/navigation.md)
- [Modal presentations](swiftui/modal-presentations.md)
- [Toolbars](swiftui/toolbars.md)
- [Search](swiftui/search.md)
- [App extensions](swiftui/app-extensions.md)
