SUIT CSS flexbox utilities
- Read more about flexbox and its usage
- Read more about SUIT CSS's design principles.
flex-container
u-flex- Create a flex containeru-flexInline- Create an inline flex container
flex-direction
u-flexRow- Displays items in a rowu-flexRowReverse- Reverses items in a rowu-flexCol- Display items in a columnu-flexColReverse- Reverses items in a column
flex-wrap
u-flexWrap- Wrap items onto another line when space allowsu-flexNoWrap- Force items to stay on one lineu-flexWrapReverse- Wrap items and reverse direction
justify-content
u-flexJustifyStart- Align items at the start of the main axisu-flexJustifyEnd- Align items at the end of the main axisu-flexJustifyCenter- Align items at the center of the main axisu-flexJustifyBetween- Items have space between each other on main axisu-flexJustifyAround- Items have space around each other on main axis
align-items
u-flexAlignItemsStretch- Items stretch to fill containeru-flexAlignItemsStart- Cross-start margin edge of the items is placed on the cross-start lineu-flexAlignItemsEnd- Cross-end margin edge of the items is placed on the cross-end lineu-flexAlignItemsCenter- Items are centered in the cross-axisu-flexAlignItemsBaseline- Items have their baselines aligned on the cross axis
align-content
u-flexAlignContentStart- Items are packed to the start of the containeru-flexAlignContentEnd- Items are packed to the end of the containeru-flexAlignContentCenter- Items are packed to the centre of the containeru-flexAlignContentStretch- Lines stretch to take up the remaining spaceu-flexAlignContentBetween- Lines evenly distributed; first and last lines at container edgeu-flexAlignContentAround- Lines evenly distributed with equal space around each line
align-self
u-flexAlignSelfStart- Aligns single item at cross axis startu-flexAlignSelfEnd- Aligns single item at cross axis endu-flexAlignSelfCenter- Aligns single item at cross axis centre-u-flexAlignSelfStretch- Stretches single item from cross start to endu-flexAlignSelfAuto- Uses the default set byalign-items
order
u-flexOrderFirst- Positions an item at the startu-flexOrderLast- Positions an item at the endu-flexOrderNone- Sets item order to the default of0
flex-grow
u-flexGrowX- Specify how much the flex item will grow relatively
X can be any of the following numbers: 1, 2, 3, 4, 5.
Aligning with auto margins
u-flexExpand- Expand all margins to fill remaining spaceu-flexExpandTop- Expand top margin to fill remaining spaceu-flexExpandRight- Expand right margin to fill remaining spaceu-flexExpandBottom- Expand bottom margin to fill remaining spaceu-flexExpandLeft- Expand left margin to fill remaining space
Read more about how this works.
All flex utilities can be limited to specific Media Query breakpoints.
u-sm-flexX- To use at the smallest Media Query breakpoint.u-md-flexX- To use at the medium Media Query breakpoint.u-lg-flexX- To use at the largest Media Query breakpoint.
<div class="u-md-flex u-md-flexWrap">
<!-- flex items -->
</div>There are 3 Media Query breakpoints:
--sm-viewport--md-viewport--lg-viewport
When using postcss-custom-media,
breakpoints can be configured using @custom-media. For example:
@custom-media --sm-viewport (min-width:320px) and (max-width:640px);
@custom-media --md-viewport (min-width:640px) and (max-width:960px);
@custom-media --lg-viewport (min-width:960px);<div class="u-flex u-flexAlignItemsCenter u-flexJustifyCenter">
<p>Some centred content</p>
</div>Usage with Grid
Note: The Grid component already sets display: flex on the root element.
<div class="Grid Grid--alignBottom">
<div class="Grid-cell u-size1of3 u-md-flexAlignSelfCenter">Content</div>
<div class="Grid-cell u-size1of3">Content</div>
<div class="Grid-cell u-size1of3">Content</div>
</div>Usage with utils-size
<div class="u-flex u-flexJustifyEnd">
<div class="u-size4of12">Content</div>
<div class="u-size2of12">Content</div>
<div>Content</div>
</div><div class="u-flex u-flexAlignItemsCenter">
<div class="u-size1of4">Content</div>
<div class="u-size1of4">Content</div>
<div class="u-sizeFill">Content</div>
</div>Please refer to the README for SUIT CSS utils
Install Node (comes with npm).
npm install
To generate a build:
npm run build
To lint code with postcss-bem-linter and stylelint
npm run lint
To generate the testing build.
npm run build-test
To watch the files for making changes to test:
npm run watch
Basic visual tests are in test/index.html.
Refer to the caniuse page for flexbox.
- Google Chrome (latest)
- Opera (latest)
- Firefox 28+
- Safari 6.1+
- Internet Explorer 10+