Layout System
The layout system in univis_ui is built around two passes:
- an upward pass for intrinsic measurement
- a downward pass for constraint solving and placement
It operates on three core components:
UNode: box metrics and basic visualsULayout: container behaviorUSelf: per-child item behavior
Important Files
crates/univis_ui_engine/src/layout/univis_node.rscrates/univis_ui_engine/src/layout/core/pass_up.rscrates/univis_ui_engine/src/layout/core/pass_down.rscrates/univis_ui_engine/src/layout/core/solver.rscrates/univis_ui_engine/src/layout/core/layout_cache.rs
Core Principles
- roots start from
URootUi LayoutDepthis derived automatically from hierarchy traversalIntrinsicSizeestimates content-driven sizingComputedSizeis the final size consumed by rendering