Tiles

Tiles

Basis element for wrapping page content. Tiles make use of flexbox and provide a more efficient way to align items.

This is the tile content
<div class="tile-container">
  <div class="tile">
    <div class="tile-body">
      This is the tile content
    </div>
  </div>
</div>

Dividing content

Divide content by using the bootstrap grid within a .tile-body wrapper.

First column
Second column
Third column
<div class="tile-container">
  <div class="tile">
    <div class="tile-body">
      <div class="row">
        <div class="col">
          First column
        </div>
        <div class="col">
          Second column
        </div>
        <div class="col">
          Third column
        </div>
      </div>
    </div>
  </div>
</div>

Using headers and footers

This is a tile title

This is a tile subtitle

This is some tile content
<div class="tile-container">
  <div class="tile">
    <div class="tile-header">
      <div class="tile-titles">
        <h2 class="tile-title">This is a tile title</h2>
        <h2 class="tile-subtitle">This is a tile subtitle</h2>
      </div>
    </div>
    <div class="tile-body">
      This is some tile content
    </div>
    <div class="tile-footer">
      This is the tile footer
    </div>
  </div>
</div>

Headers and footers with a distinct separation line

Add .tile-header-border or .tile-footer-border to separate the header or footer with a border.

By default .column will fill the remaining width. Using multiple .column elements in a single .columns element will divide them equally.

This is a tile title

This is some tile content
<div class="tile-container">
  <div class="tile">
    <div class="tile-header tile-header-border">
      <div class="tile-titles">
        <h2 class="tile-title">This is a tile title</h2>
      </div>
    </div>
    <div class="tile-body">
      This is some tile content
    </div>
    <div class="tile-footer tile-footer-border">
      This is the tile footer
    </div>
  </div>
</div>

Extra elements within the header

Add ml-auto to align the element on the right.

This is a tile title

This is a tile subtitle

Action
<div class="tile-container">
  <div class="tile">
    <div class="tile-header">
      <div class="tile-titles">
        <h2 class="tile-title">This is a tile title</h2>
        <h2 class="tile-subtitle">This is a tile subtitle</h2>
      </div>
      <a href="#" class="btn btn-primary ml-auto">Action</a>
    </div>
  </div>
</div>

When using more than one extra element, wrap them inside a container and apply .ml-auto to it to properly align them.

This is a tile title

This is a tile subtitle

<div class="tile-container">
  <div class="tile">
    <div class="tile-header">
      <div class="tile-titles">
        <h2 class="tile-title">This is a tile title</h2>
        <h2 class="tile-subtitle">This is a tile subtitle</h2>
      </div>
      <div class="ml-auto">
        <div class="btn-group">
          <div class="dropdown">
            <a class="btn btn-light dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
            More
            </a>
            <div class="dropdown-menu">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <a class="dropdown-item" href="#">Something else here</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item" href="#">Separated link</a>
            </div>
          </div>
        </div>
        <a href="#" class="btn btn-primary">Action</a>
      </div>
    </div>
  </div>
</div>

Including a menu

When using .nav.nav-pills within the header, also add the .tile-header-border class. It sets up the padding to match the preset white space on the .nav.nav-sub element.

Tile content
<div class="tile-container">
  <div class="tile">
    <div class="tile-header tile-header-border">
      <ul class="nav nav-pills" role="tablist">
        <li class="nav-item">
          <a class="nav-link active" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Profile</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Messages</a>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#">Disabled</a>
        </li>
      </ul>
    </div>
    <div class="tile-body">
     Tile content
    </div>
  </div>
</div>

Example with navigation and buttons:

<div class="tile-container">
  <div class="tile">
    <div class="tile-header tile-header-border">
      <ul class="nav nav-pills" role="tablist">
        <li class="nav-item">
          <a class="nav-link active" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Profile</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Messages</a>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#">Disabled</a>
        </li>
      </ul>
      <div class="flex-shrink-0 ml-auto">
        <div class="btn-group">
          <div class="dropdown">
            <a class="btn btn-light dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
            More
            </a>
            <div class="dropdown-menu">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <a class="dropdown-item" href="#">Something else here</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item" href="#">Separated link</a>
            </div>
          </div>
        </div>
        <a href="#" class="btn btn-primary">Action</a>
      </div>
    </div>
  </div>
</div>

Using images

Images will scale up to 100% width of the tile element.

This is an image
This is an image
<div class="tile-container">
  <div class="row">
    <div class="col-md-6">
      <div class="tile">
        <div class="tile-image">
          <img src="https://loremflickr.com/640/360?lock=1">
        </div>
        <div class="tile-body">
          This is an image
        </div>
      </div>
    </div>
    <div class="col-md-6">
      <div class="tile">
        <div class="tile-image">
          <img src="https://loremflickr.com/640/360?lock=2">
        </div>
        <div class="tile-body">
          This is an image
        </div>
      </div>
    </div>
  </div>
</div>

Using tables

Use tables inside a tile element.

This is a tile title

This is a tile subtitle

This is a table header cell
This is a table cell
<div class="tile-container">
  <div class="tile">
    <div class="tile-header tile-header-border">
      <div class="tile-titles">
        <h2 class="tile-title">This is a tile title</h2>
        <h2 class="tile-subtitle">This is a tile subtitle</h2>
      </div>
    </div>
    <table class="table">
      <thead>
        <tr>
          <th>This is a table header cell</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>This is a table cell</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

Sticky tile

A sticky tile will stick to the bottom of the viewport until its intended place in the page flow is reached.

Sticky
<div class="tile-container">
  <div class="tile tile-sticky">
    <div class="tile-body">
    Sticky
    </div>
  </div>
</div>