Basis element for wrapping page content. Tiles make use of flexbox and provide a more efficient way to align items.
<div class="tile-container">
<div class="tile">
<div class="tile-body">
This is the tile content
</div>
</div>
</div>Divide content by using the bootstrap grid within a .tile-body wrapper.
<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><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>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.
<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>Add ml-auto to align the element on the right.
<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.
<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>When using .nav.sub-nav 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.
<div class="tile-container">
<div class="tile">
<div class="tile-header tile-header-border">
<ul class="nav nav-sub" 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-sub" 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 my-n3 my-md-n4 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>Images will scale up to 100% width of the tile element.
<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>Use tables inside a tile element.
| 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 border-bottom-0">
<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>A sticky tile will stick to the bottom of the viewport until its intended place in the page flow is reached.
<div class="tile-container">
<div class="tile tile-sticky">
<div class="tile-body">
Sticky
</div>
</div>
</div>