//! Style types for controlling alignment /// Used to control how child nodes are aligned. /// For Flexbox it controls alignment in the cross axis /// For Grid it controls alignment in the block axis /// /// [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items) #[derive(Copy, Clone, PartialEq, Eq, Debug)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum AlignItems { /// Items are packed toward the start of the axis Start, /// Items are packed toward the end of the axis End, /// Items are packed towards the flex-relative start of the axis. /// /// For flex containers with flex_direction RowReverse or ColumnReverse this is equivalent /// to End. In all other cases it is equivalent to Start. FlexStart, /// Items are packed towards the flex-relative end of the axis. /// /// For flex containers with flex_direction RowReverse or ColumnReverse this is equivalent /// to Start. In all other cases it is equivalent to End. FlexEnd, /// Items are packed along the center of the cross axis Center, /// Items are aligned such as their baselines align Baseline, /// Stretch to fill the container Stretch, } /// Used to control how child nodes are aligned. /// Does not apply to Flexbox, and will be ignored if specified on a flex container /// For Grid it controls alignment in the inline axis /// /// [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items) pub type JustifyItems = AlignItems; /// Controls alignment of an individual node /// /// Overrides the parent Node's `AlignItems` property. /// For Flexbox it controls alignment in the cross axis /// For Grid it controls alignment in the block axis /// /// [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/align-self) pub type AlignSelf = AlignItems; /// Controls alignment of an individual node /// /// Overrides the parent Node's `JustifyItems` property. /// Does not apply to Flexbox, and will be ignored if specified on a flex child /// For Grid it controls alignment in the inline axis /// /// [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self) pub type JustifySelf = AlignItems; /// Sets the distribution of space between and around content items /// For Flexbox it controls alignment in the cross axis /// For Grid it controls alignment in the block axis /// /// [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/align-content) #[derive(Copy, Clone, PartialEq, Eq, Debug)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum AlignContent { /// Items are packed toward the start of the axis Start, /// Items are packed toward the end of the axis End, /// Items are packed towards the flex-relative start of the axis. /// /// For flex containers with flex_direction RowReverse or ColumnReverse this is equivalent /// to End. In all other cases it is equivalent to Start. FlexStart, /// Items are packed towards the flex-relative end of the axis. /// /// For flex containers with flex_direction RowReverse or ColumnReverse this is equivalent /// to Start. In all other cases it is equivalent to End. FlexEnd, /// Items are centered around the middle of the axis Center, /// Items are stretched to fill the container Stretch, /// The first and last items are aligned flush with the edges of the container (no gap) /// The gap between items is distributed evenly. SpaceBetween, /// The gap between the first and last items is exactly THE SAME as the gap between items. /// The gaps are distributed evenly SpaceEvenly, /// The gap between the first and last items is exactly HALF the gap between items. /// The gaps are distributed evenly in proportion to these ratios. SpaceAround, } /// Sets the distribution of space between and around content items /// For Flexbox it controls alignment in the main axis /// For Grid it controls alignment in the inline axis /// /// [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content) pub type JustifyContent = AlignContent;