WARNING: Cushy is in early alpha. This guide doubly so.
Aligning Widgets
The Align widget positions a child widget within its parent. It
supports both horizontal and vertical alignment.
It accomplishes this by requesting the child measure itself using
SizeToFit for the child's width and/or height, and then positions
the child to align it.
The align widget uses Edges<FlexibleDimension>
to specify the alignment of each edge. If an edge is
FlexibleDimension::Dimension, that edge of the child will be
placed the exact measurement from the parent's matching edge. If an edge is
FlexibleDimension::Auto, that edge will not be positioned relative
to the parent's matching edge.
Examples

The content() function in each of these snippets is a Space widget
occupying at least 32px squared:
#![allow(unused)] fn main() { fn content() -> impl MakeWidget { Space::primary().size(Size::squared(Px::new(32)..)) } }
Align a widget to the left
Any widget can be aligned to the left using
MakeWidget::align_left():
#![allow(unused)] fn main() { content().align_left() }
Align a widget to the center
Any widget can be centered using
MakeWidget::centered():
#![allow(unused)] fn main() { content().centered() }
centered() works in both axis. To center only in one direction, "fit" the
other direction:
- To center vertically but occupy the parent's width, use
MakeWidget::fit_horizontally(). - To center horizontally but occupy the parent's height, use
MakeWidget::fit_vertically().
Align a widget to the right
Any widget can be aligned to the right using
MakeWidget::align_right():
#![allow(unused)] fn main() { content().align_right() }
Align a widget to the top
Any widget can be aligned to the top using
MakeWidget::align_top():
#![allow(unused)] fn main() { content().align_top() }
Align a widget to the bottom
Any widget can be aligned to the bottom using
MakeWidget::align_bottom():
#![allow(unused)] fn main() { content().align_bottom() }