Skip to main content Skip to docs navigation
Check
Source

Stacks

Shorthand helpers that build on top of our flexbox utilities to make component layout faster and easier than ever.

On this page

Stacks offer a shortcut for applying a number of flexbox properties to quickly and easily create layouts in Bootstrap. All credit for the concept and implementation goes to the open source Pylon project .

Head up! Support for gap utilities with flexbox was recently added to Safari, so verifying considering your intended browser support. Grid layout should have no issues. Read more .

Vertical

Use .vstackto create vertical layouts. Stacked items are full-width by default. Use .gap-*utilities to add space between items.

First item
Second item
Third item
html
<div class="vstack gap-3">
  <div class="bg-light border">First item</div>
  <div class="bg-light border">Second item</div>
  <div class="bg-light border">Third item</div>
</div>

Horizontal

Use .hstackfor horizontal layouts. Stacked items are vertically centered by default and only take up their necessary width. Use .gap-*utilities to add space between items.

First item
Second item
Third item
html
<div class="hstack gap-3">
  <div class="bg-light border">First item</div>
  <div class="bg-light border">Second item</div>
  <div class="bg-light border">Third item</div>
</div>

Using horizontal margin utilities like .ms-autoas spacers:

First item
Second item
Third item
html
<div class="hstack gap-3">
  <div class="bg-light border">First item</div>
  <div class="bg-light border ms-auto">Second item</div>
  <div class="bg-light border">Third item</div>
</div>

And with vertical rules :

First item
Second item
Third item
html
<div class="hstack gap-3">
  <div class="bg-light border">First item</div>
  <div class="bg-light border ms-auto">Second item</div>
  <div class="vr"></div>
  <div class="bg-light border">Third item</div>
</div>

Examples

Use .vstackto stack buttons and other elements:

html
<div class="vstack gap-2 col-md-5 mx-auto">
  <button type="button" class="btn btn-secondary">Save changes</button>
  <button type="button" class="btn btn-outline-secondary">Cancel</button>
</div>

Create an inline form with .hstack:

html
<div class="hstack gap-3">
  <input class="form-control me-auto" type="text" placeholder="Add your item here..." aria-label="Add your item here...">
  <button type="button" class="btn btn-secondary">Submit</button>
  <div class="vr"></div>
  <button type="button" class="btn btn-outline-danger">Reset</button>
</div>

Sass

.hstack {
  display: flex;
  flex-direction: row;
  align-items: center;
  align-self: stretch;
}

.vstack {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-self: stretch;
}