freya/_docs/
layers.rs

1//! # Layers
2//!
3//! Layers control the rendering order of elements. Elements in higher layers are rendered on top of those in lower layers.
4//!
5//! Use the `.layer()` method with one of three variants:
6//!
7//! - [`Layer::Relative(i16)`](freya_core::prelude::Layer::Relative) *(default)*: offset relative to the parent's layer. Positive values render higher, negative values render lower.
8//! - [`Layer::Overlay`](freya_core::prelude::Layer::Overlay): jumps to a very high layer, useful for modals or tooltips that must appear above everything.
9//! - [`Layer::RelativeOverlay(u8)`](freya_core::prelude::Layer::RelativeOverlay): similar to `Overlay` but you have multiple overlay layers options.
10//!
11//! ```rust,no_run
12//! # use freya::prelude::*;
13//! fn app() -> impl IntoElement {
14//!     rect()
15//!         .child(rect().layer(-1).child("Background")) // below default
16//!         .child(rect().child("Content")) // default layer
17//!         .child(rect().layer(1).child("Foreground")) // above default
18//!         .child(rect().layer(Layer::Overlay).child("Modal")) // on top of everything
19//! }
20//! ```
21//!
22//! > **Note:** The rendering order of elements within the same layer is not guaranteed. Always use distinct layer values when order matters.