Mental Model
An overlay is a floating screen layer owned by a screen in a stack.
Configure it on screen options with overlay and overlayShown.
TSX
The overlay belongs to the screen that defines it, not the whole app.
How Overlay Ownership Works
An overlay starts floating when its owner screen becomes active and stays active while you push screens above that owner.
- if
indexdefines an overlay, it can float fromindexthrough the rest of the stack - if screen 3 defines an overlay, it does not appear on screens 1 or 2
- once you reach screen 3, that overlay can float from screen 3 through any screens above it
- if a higher screen defines a visible overlay, that higher screen becomes the new overlay owner
This is stack-relative, not a global portal.
Basic Example
TSX
The same overlay can keep floating deeper through the stack.
If you push a screen with overlayShown: false, the system skips that screen and keeps scanning downward for the highest visible overlay owner.
Overlay Component Example
TSX
stackProgress is relative to the overlay owner's position in the stack.
Overlay Props
| Prop | Purpose |
|---|---|
focusedRoute | Focused route in the current stack |
focusedIndex | Focused route index |
routes | All routes in the current stack |
meta | meta from the focused screen options |
navigation | Navigation object for the overlay's owning stack |
options | Focused screen transition options |
progress | Overlay-relative stack progress |
Many overlay components read animation state through useScreenAnimation() instead of consuming progress directly.