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

```kotlin
public interface OverlayScene<T : Any> : Scene<T>
```

A specific scene to render 1 or more `NavEntry` instances as an overlay.

It is expected that the `content` is rendered in one or more separate windows (e.g., a dialog,
popup window, etc.) that are visible above any additional [Scene](/jetpack-compose/androidx.navigation3/navigation3-ui/interfaces/Scene) instances calculated from the
`overlaidEntries`.

When processing `overlaidEntries`, expect processing of each [SceneStrategy](/jetpack-compose/androidx.navigation3/navigation3-ui/interfaces/SceneStrategy) to restart from the
first strategy. This may result in multiple instances of the same [OverlayScene](/jetpack-compose/androidx.navigation3/navigation3-ui/interfaces/OverlayScene) to be shown
simultaneously, making a unique [key](/jetpack-compose/androidx.compose.runtime/runtime/composable-functions/key) even more important.

## Functions

<h2 id="onremove">onRemove</h2>

```kotlin
public suspend fun onRemove()
```

Callback that is invoked after this [OverlayScene](/jetpack-compose/androidx.navigation3/navigation3-ui/interfaces/OverlayScene) is popped from the backStack, but before
it leaves composition.

Animations for exiting overlays should be implemented within [onRemove](#onremove). This ensures that
any suspending animations or other suspending work completes before the overlay is removed
from composition.