---
layout: docs
title: Flexbox
group: utilities
---
Quickly manage the layout, alignment, and sizing of grid columns, navigation, components, and more with a full suite of responsive flexbox utilities. For more complex implementations, custom CSS may be necessary.
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
## Enable flex behaviors
Apply `display` utilities to create a flexbox container and transform **direct children elements** into flex items. Flex containers and items are able to be modified further with additional flex properties. Choose from the following options.
| Class | property: value; | Description |
| --- | --- | --- |
| `.d-flex` | `display: flex;` | Creates a block-level element using the flexbox model. |
| `.d-inline-flex` | `display: inline-flex;` | Creates an inline-level element using the flexbox model. |
{% example html %}
I'm a flexbox container!
{% endexample %}
{% example html %}
I'm an inline flexbox container!
{% endexample %}
Responsive variations also exist for `.d-flex` and `.d-inline-flex`.
Class |
Description |
{% for bp in site.data.breakpoints %}
.d{{ bp.abbr }}-flex
|
Sets display: flex; on viewports {{ bp.min-width }} wide and up
|
{% endfor %}
{% for bp in site.data.breakpoints %}
.d{{ bp.abbr }}-inline-flex
|
Sets display: inline-flex; on viewports {{ bp.min-width }} wide and up
|
{% endfor %}
## Direction
Set the direction of flex items in a flex container with direction utilities. In most cases you can omit the horizontal class here as the browser default is `row`. However, you may encounter situations where you needed to explicitly set this value (like responsive layouts).
Use `.flex-row` to set a horizontal direction.
{% example html %}
Flex item
Flex item
Flex item
{% endexample %}
Use `.flex-column` to set a vertical direction.
{% example html %}
Flex item
Flex item
Flex item
{% endexample %}
Responsive variations also exist for `.flex-row` and `.flex-column`.
Class |
Description |
{% for bp in site.data.breakpoints %}
.flex{{ bp.abbr }}-row
|
Sets flex-direction: row; on viewports {{ bp.min-width }} wide and up
|
{% endfor %}
{% for bp in site.data.breakpoints %}
.flex{{ bp.abbr }}-column
|
Sets flex-direction: column; on viewports {{ bp.min-width }} wide and up
|
{% endfor %}
## Wrap
Change how flex items wrap in a flex container. Choose from no wrapping at all (the browser default) with `.flex-nowrap`, or enable wrapping with `.flex-wrap`.
{% example html %}
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
{% endexample %}
{% example html %}
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
{% endexample %}
Responsive variations also exist for `.flex-nowrap` and `.flex-wrap`.
Class |
Description |
{% for bp in site.data.breakpoints %}
.flex{{ bp.abbr }}-nowrap
|
Sets flex-wrap: nowrap; on viewports {{ bp.min-width }} wide and up
|
{% endfor %}
{% for bp in site.data.breakpoints %}
.flex{{ bp.abbr }}-wrap
|
Sets flex-wrap: wrap; on viewports {{ bp.min-width }} wide and up
|
{% endfor %}