Flex Utilities
Use flexbox utilities to modify the layout, alignment, and sizing of components and more.
Flex Behavior
Apply display: flex
using CSS or the ._display-flex
helper to create a flexbox container and transform direct children elements into flex items.
Flexbox utilities can be applied responsively using the following helper classes:
._display-flex
._display-inline-flex
._display-{xs|sm|md|lg|xl}-flex
._display-{xs|sm|md|lg|xl}-inline-flex
Flex Direction
Set the direction of flex items in a flex container with direction utilities. The browser default is flex-direction: row
, therefore the row helper won't be always necessary. However, when targeting various screen sizes, you may encounter situations where you needed to explicitly set this value.
Row Direction
Setting a row direction will cause the flexbox items to flow horizontally.
Column Direction
Setting a column direction will cause the flexbox items to flow vertically.
Flexbox direction utilities can be applied responsively using the following helper classes:
._flex-direction-row
._flex-direction-row-reverse
._flex-direction-column
._flex-direction-column-reverse
._flex-direction-{xs|sm|md|lg|xl}-row
._flex-direction-{xs|sm|md|lg|xl}-row-reverse
._flex-direction-{xs|sm|md|lg|xl}-column
._flex-direction-{xs|sm|md|lg|xl}-column-reverse
Justify Content
Use justify-content
utilities on flexbox containers to change the alignment of flex items on the main axis (the x-axis if flex-direction: row
, y-axis if flex-direction: column
).
Flexbox justify content utilities can be applied responsively using the following helper classes:
._justify-content-start
._justify-content-end
._justify-content-center
._justify-content-space-between
._justify-content-space-around
._justify-content-{xs|sm|md|lg|xl}-start
._justify-content-{xs|sm|md|lg|xl}-end
._justify-content-{xs|sm|md|lg|xl}-center
._justify-content-{xs|sm|md|lg|xl}-space-between
._justify-content-{xs|sm|md|lg|xl}-space-around
Align Items
Use align-items
utilities on flexbox containers to change the alignment of flex items on the secondary axis (the y-axis if flex-direction: row
, x-axis if flex-direction: column
).
Flexbox align items utilities can be applied responsively using the following helper classes:
._align-items-start
._align-items-end
._align-items-center
._align-items-baseline
._align-items-stretch
._align-items-{xs|sm|md|lg|xl}-start
._align-items-{xs|sm|md|lg|xl}-end
._align-items-{xs|sm|md|lg|xl}-center
._align-items-{xs|sm|md|lg|xl}-baseline
._align-items-{xs|sm|md|lg|xl}-stretch
Align Self
Use align-self
utilities on a flexbox item to change the alignment of the item on the secondary axis (the y-axis if flex-direction: row
, x-axis if flex-direction: column
).
Flexbox align self utilities can be applied responsively using the following helper classes:
._align-self-start
._align-self-end
._align-self-center
._align-self-baseline
._align-self-stretch
._align-self-{xs|sm|md|lg|xl}-start
._align-self-{xs|sm|md|lg|xl}-end
._align-self-{xs|sm|md|lg|xl}-center
._align-self-{xs|sm|md|lg|xl}-baseline
._align-self-{xs|sm|md|lg|xl}-stretch
Fill
Use ._flex-fill
utilities on a on a series of flexbox items to force them into widths equal to their content.
Flexbox fill utilities can be applied responsively using the following helper classes:
._flex-fill
._flex-{xs|sm|md|lg|xl}-fill
Grow and shrink
Use ._flex-grow-1
and _flex-grow-0
utilities to toggle a flex item’s ability to grow to fill available space. In the example below. A value of 1
uses all available space it can, while allowing the remaining two flex items their necessary space.
Use the ._flex-shrink-1
and ._flex-shrink-0
utilities to toggle a flex item’s ability to shrink if necessary. This can be used together with a width: 100%
div to make some flex items cover as little space as possible.
Flexbox shrink and grow utilities can be applied responsively using the following helper classes:
._flex-grow-0
._flex-grow-1
._flex-shrink-0
._flex-shrink-1
._flex-{xs|sm|md|lg|xl}-grow-0
._flex-{xs|sm|md|lg|xl}-grow-1
._flex-{xs|sm|md|lg|xl}-shrink-0
._flex-{xs|sm|md|lg|xl}-shrink-1
Auto Margins
When you mix flex alignments with auto margins you can obtain some pretty unique and useful layouts.
Wrapping
Change how flex items wrap in a flex container. To have wrapping disabled (browser default) use ._flex-nowrap
. To enable wrapping, use ._flex-wrap
, or reverse wrapping with ._flex-wrap-reverse
.
Flexbox shrink and grow utilities can be applied responsively using the following helper classes:
._flex-wrap
._flex-wrap-reverse
._flex-nowrap
._flex-{xs|sm|md|lg|xl}-wrap
._flex-{xs|sm|md|lg|xl}-wrap-reverse
._flex-{xs|sm|md|lg|xl}-nowrap
Order
You can change the order of flex items with a handful of order utilities. You can use ._order-first
to make an item first or ._order-last
to make an item last. You can use _order-{value}
(where value can be a number from 1
to 12
) to change the order of elements to a specific position.
Flexbox shrink and grow utilities can be applied responsively using the following helper classes:
._order-first
._order-last
._order-{1-12}
._order-{xs|sm|md|lg|xl}-first
._order-{xs|sm|md|lg|xl}-last
._order-{xs|sm|md|lg|xl}-{1-12}
Align Content
Use align-content
utilities on flexbox containers to align flex content on the secondary axis. You can use one of start
, end
, center
, between
, around
, or stretch
.
For demo purposes, the examples are enforced to have flex-wrap: wrap
using ._flex-wrap
and have an increased height
and number of items.
Flexbox shrink and grow utilities can be applied responsively using the following helper classes:
._align-content-start
._align-content-center
._align-content-end
._align-content-space-between
._align-content-space-around
._align-content-space-stretch
._align-content-{xs|sm|md|lg|xl}-start
._align-content-{xs|sm|md|lg|xl}-center
._align-content-{xs|sm|md|lg|xl}-end
._align-content-{xs|sm|md|lg|xl}-space-between
._align-content-{xs|sm|md|lg|xl}-space-around
._align-content-{xs|sm|md|lg|xl}-space-stretch