This module includes basic positioning utilities to alter the default document flow.

Use positions with caution. They are often unnecessary and commonly misused.

Use .relative to create a new stacking context.

<div class="relative">
  <button class="btn btn-primary">Button</button>
</div>

Use .absolute to move elements out of the default document flow.

<div class="relative mb4">
  <button class="btn btn-primary">Button</button>
  <div class="absolute bg-white border rounded">
    <a href="#" class="block btn">Dropdown Action</a>
    <a href="#" class="block btn">Action</a>
    <a href="#" class="block btn">Action</a>
  </div>
</div>

Use .fixed to position an element relative to the viewport.

<button class="fixed btn btn-primary">
  Button
</button>

Note: Fixed positioning is notoriously tricky to use well and can lead to inaccessible content and unwanted side effects. Use fixed positioning with caution.

To anchor to a particular side, use .top-0, .right-0, .bottom-0, or .left-0. Margin and padding utilities can be used to space elements apart.

<button class="fixed top-0 right-0 m2 btn btn-primary">
  Button
</button>

To fill an entire width or height, use opposing directions.

Fixed bar
<div class="fixed top-0 left-0 right-0 p2 white bg-black">
  Fixed bar
</div>

To ensure the desired stacking order, use z-index utilities.

Fixed bar
<div class="fixed z2 top-0 left-0 right-0 p2 white bg-black">
  Fixed bar
</div>

CSS Source

.relative { position: relative }
.absolute { position: absolute }
.fixed    { position: fixed }

.top-0    { top: 0 }
.right-0  { right: 0 }
.bottom-0 { bottom: 0 }
.left-0   { left: 0 }

.z1 { z-index: var(--z1) }
.z2 { z-index: var(--z2) }
.z3 { z-index: var(--z3) }
.z4 { z-index: var(--z4) }

12 Rules
12 Selectors
15 Declarations
10 Properties