Added in v5.1

View on GitHub

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 Boosted. All credit for the concept and implementation goes to the open source Pylon project.

Heads up! Support for gap utilities with flexbox isn’t available in Safari prior to 14.5, so consider verifying your intended browser support. Grid layout should have no issues. Read more.

Vertical

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

First item
Second item
Third item
<div class="vstack gap-3">
  <div class="p-2">First item</div>
  <div class="p-2">Second item</div>
  <div class="p-2">Third item</div>
</div>
html

Horizontal

Use .hstack for 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
<div class="hstack gap-3">
  <div class="p-2">First item</div>
  <div class="p-2">Second item</div>
  <div class="p-2">Third item</div>
</div>
html

Using horizontal margin utilities like .ms-auto as spacers:

First item
Second item
Third item
<div class="hstack gap-3">
  <div class="p-2">First item</div>
  <div class="p-2 ms-auto">Second item</div>
  <div class="p-2">Third item</div>
</div>
html

And with vertical rules:

First item
Second item
Third item
<div class="hstack gap-3">
  <div class="p-2">First item</div>
  <div class="p-2 ms-auto">Second item</div>
  <div class="vr"></div>
  <div class="p-2">Third item</div>
</div>
html

Examples

Use .vstack to stack buttons and other elements:

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

Create an inline form with .hstack:

See Bootstrap examples that are incompatible with Orange Design System.
danger

Incompatibility with Orange Design System. More information

This variant with an horizontal layout (i.e. labels not above the input fields) should not be used because it does not respect the Orange Design System specifications.
<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-primary">Submit</button>
  <div class="vr"></div>
  <button type="button" class="btn btn-outline-secondary">Reset</button>
</div>
html

CSS

.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;
}