3 Layout
Layout components and grid systems.
3.1 24 column grid View in a new window
The 24 column grid is used across the site and is the primary grid system.
It features a maximum container width of 1320px
and no gutter. The
container padding is 6%
of the viewport width to create an
even margin at either side of the container on all devices.
Twig: layout/24-col-grid/24-col-grid.twig
Markup
<div class="grid__container grid--debug">
<div class="grid__row">
<div class="grid__col"></div>
</div>
</div>
3.2 Footer grid View in a new window
24 column grid, with nested columns.
Twig: layout/footer-grid/footer-grid.twig
Markup
<div class="footer-grid__container grid--debug">
<div class="footer-grid__row">
<div class="footer-grid__col footer-grid--col-4">
<div class="footer-grid__row">
<div class="footer-grid__col footer-grid--col-1"></div>
<div class="footer-grid__col footer-grid--col-1"></div>
<div class="footer-grid__col footer-grid--col-1"></div>
<div class="footer-grid__col footer-grid--col-1"></div>
</div>
</div>
<div class="footer-grid__col footer-grid--col-2"></div>
</div>
</div>
3.3 Sidebar grids View in a new window
A variety of sidebar grids used for each sidebar type.
3.3.1 Sidebar grid A View in a new window
A simple two column grid, one 1/3 width as a sidebar, the other 2/3 widths as a main. The sidebar appears first in the markup order.
Twig: layout/sidebar-grid/sidebar-grid-a.twig
Markup
<div class="sidebar-grid sidebar-grid--a grid--debug">
<div class="sidebar-grid__row">
<aside class="sidebar-grid__sidebar">
</aside>
<main class="sidebar-grid__main">
</main>
</div>
</div>
3.3.2 Sidebar grid B View in a new window
Sidebar B uses the same grid as Sidebar A, however the sidebar is offset.
Twig: layout/sidebar-grid/sidebar-grid-b.twig
Markup
<div class="sidebar-grid sidebar-grid--b grid--debug">
<div class="sidebar-grid__row">
<aside class="sidebar-grid__sidebar">
<div class="sidebar-grid__offset"></div>
</aside>
<main class="sidebar-grid__main">
</main>
</div>
</div>
3.3.3 Sidebar grid C View in a new window
A reversed layout with slightly tweaked column widths. At tablet portrait and below the column widths will tweak to allow more size for the sidebar.
Twig: layout/sidebar-grid/sidebar-grid-c.twig
Markup
<div class="sidebar-grid sidebar-grid--c grid--debug">
<div class="sidebar-grid__row">
<main class="sidebar-grid__main">
</main>
<aside class="sidebar-grid__sidebar">
</aside>
</div>
</div>
3.3.4 Sidebar grid D View in a new window
A reversed layout with a smaller sidebar than Sidebar C. Because the sidebar is smaller, this layout will stack at tablet portrait and below.
Twig: layout/sidebar-grid/sidebar-grid-d.twig
Markup
<div class="sidebar-grid sidebar-grid--d grid--debug">
<div class="sidebar-grid__row">
<main class="sidebar-grid__main">
</main>
<aside class="sidebar-grid__sidebar">
</aside>
</div>
</div>
3.3.5 Sidebar grid E View in a new window
The same column widths as Sidebar C, with the sidebar appearing in the markup first, so on mobile it is above the main column.
Twig: layout/sidebar-grid/sidebar-grid-e.twig
Markup
<div class="sidebar-grid sidebar-grid--e grid--debug">
<div class="sidebar-grid__row">
<aside class="sidebar-grid__sidebar">
</aside>
<main class="sidebar-grid__main">
</main>
</div>
</div>
3.3.6 Sidebar grid F View in a new window
The same column widths as Sidebar C, with the sidebar appearing in the markup first, so on mobile it is above the main column.
Twig: layout/sidebar-grid/sidebar-grid-f.twig
Markup
<div class="sidebar-grid sidebar-grid--f">
<div class="sidebar-grid__row">
<aside class="sidebar-grid__sidebar">
</aside>
<main class="sidebar-grid__main">
</main>
</div>
</div>
3.3.7 Sidebar grid G View in a new window
Sidebar G uses the same grid as Sidebar B, however the sidebar offset is reduced and suitable for the smaller banner aspect ratio
Twig: layout/sidebar-grid/sidebar-grid-g.twig
Markup
<div class="sidebar-grid sidebar-grid--g grid--debug">
<div class="sidebar-grid__row">
<aside class="sidebar-grid__sidebar">
<div class="sidebar-grid__offset"></div>
</aside>
<main class="sidebar-grid__main">
</main>
</div>
</div>
3.3.8 Sidebar grid H View in a new window
A simple two column grid, one 1/3 width as a sidebar, the other 2/3 widths as a main. The main appears first in the markup order.
Twig: layout/sidebar-grid/sidebar-grid-h.twig
Markup
<div class="sidebar-grid sidebar-grid--h grid--debug">
<div class="sidebar-grid__row">
<main class="sidebar-grid__main">
</main>
<aside class="sidebar-grid__sidebar">
</aside>
</div>
</div>
3.4 Flex tiles View in a new window
Equal height flexbox tile grids, in x2 and x3.
3.4.1 x3 View in a new window
Three tile wide grid.
Twig: layout/flex-tile/flex-tile-3x.twig
Markup
{% set classes = classes|default(['flex-tile', 'flex-tile--3x']) %}
<div class="grid__container">
<div {{ attributes|join(' ') }} class="{{ classes|join(' ') }}">
{% block content %}
<div class="flex-tile__item flex-tile--push-1x">
<div class="flex-tile__inner">1</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">2</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">3</div>
</div>
<div class="flex-tile__item flex-tile--span-2x">
<div class="flex-tile__inner">4</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">5</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">6</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">7</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">8</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">9</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">10</div>
</div>
<div class="flex-tile__item flex-tile--span-3x">
<div class="flex-tile__inner">11</div>
</div>
{% endblock %}
</div>
</div>
3.4.2 x2 View in a new window
Two tile wide grid.
Twig: layout/flex-tile/flex-tile-2x.twig
Markup
<div class="grid__container">
<div class="flex-tile flex-tile--2x">
<div class="flex-tile__item">
<div class="flex-tile__inner">1</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">2</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">3</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">4</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">5</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">6</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">7</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">8</div>
</div>
</div>
</div>
3.4.3 x3 - half tiles View in a new window
Three tile wide grid with gutter.
Twig: layout/flex-tile/flex-tile-3x-half-tile.twig
Markup
{% extends 'flex-tile-3x.twig' %}
{% block content %}
{% for i in 1..6 %}
<div class="flex-tile__item view-mode--tile-half">
<div class="flex-tile__inner">{{ i }}</div>
</div>
{% endfor %}
{% endblock %}
3.4.4 x3 - with gutter View in a new window
Three tile wide grid with gutter.
Twig: layout/flex-tile/flex-tile-3x-gutter.twig
Markup
{% extends 'flex-tile-3x.twig' %}
{% set classes = classes|merge(['flex-tile--3x__gutter']) %}
{% block content %}
<div class="flex-tile__item">
<div class="flex-tile__inner">1</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">2</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">3</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">4</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">5</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">6</div>
</div>
{% endblock %}
3.4.5 x3 - content height View in a new window
Three tile wide grid content height not restricted.
Twig: layout/flex-tile/flex-tile-3x-content-height.twig
Markup
{% set classes = classes|default(['flex-tile', 'flex-tile--3x-content-height']) %}
<div class="grid__container">
<div {{ attributes|join(' ') }} class="{{ classes|join(' ') }}">
{% block content %}
<div class="flex-tile__item flex-tile--push-1x">
<div class="flex-tile__inner">1</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">2</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">3</div>
</div>
<div class="flex-tile__item flex-tile--span-2x">
<div class="flex-tile__inner">4</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">5</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">6</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">7</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">8</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">9</div>
</div>
<div class="flex-tile__item">
<div class="flex-tile__inner">10</div>
</div>
<div class="flex-tile__item flex-tile--span-3x">
<div class="flex-tile__inner">11</div>
</div>
{% endblock %}
</div>
</div>