In this styleguide you'll find all the necessary info you will need in order to start building digital layouts or apps for Digipolis.

Basic implementation

In its simplest form you can just include the following line in the <head> section of your app.

<link rel="stylesheet" href="https://cdn.antwerpen.be/digipolis_branding_scss/5.0.0/main.min.css">

You can even import it directly in your (S)CSS:

@import url("https://cdn.antwerpen.be/digipolis_branding_scss/5.0.0/main.min.css");

We adopt semantic versioning. If you want to use another version of the Core Branding you can do so by adjusting the version in the URL address. See the changelog for all available versions.

You can also install everything with npm:

npm install @a-ui/digipolis --save

Then, you can import everything in your Sass setup (main.min.css also available):

@import '~@a-ui/digipolis/dist/main.css';

In order to extend our style kit you can make use of our Sass variables. Import them like this:

@import '~@a-ui/digipolis/dist/assets/styles/_quarks';

Advanced usage

Sometimes you want to add functionality which requires more styling as defined in our kit. In order to help with this we provide some simple tools and the ability to import all the kit's Sass variables. See the Quarks section for more info.

Accessibility

Web Content Accessibility Guidelines (WCAG) 2.1 (external) cover a wide range of recommendations for making web content more accessible.

Some parts of the Digipolis branding may need special actions on the subject of WCAG 2.1 AA, specific guidelines that are required by European law. When this is the case you will see this icon which will warn you about any incompatibilities and actions that may have to be taken from your behalf.

Other resources

Flexboxgrid

https://github.com/a-ui/core_flexboxgrid_scss (external)

Grid optimized to follow the Antwerp styling guidelines.

Favicons

https://github.com/a-ui/digipolis_branding_favicons (external)

Favicons for Digipolis apps.

Table of contents

Quarks

You can treat this part of the package as the API of our styling library. Include it on top of your custom stylesheet in order to have access to all defined variables, mixins and functions.

@import 'quarks';

Mixins

quarks/quarks.mixins

More mixins are available, but the following are the more important ones.

Force an element to self-clear its children

Note that you can also use the .clearfix class.

.css {
  @include clearfix;
}

Use FontAwesome as font

.css {
  @include fontawesome;
}

Responsive mixins

Note that working mobile first is encouraged, so try to limit the use of the to mixin.

.css {
  @include at($screen) {
    /* Anything bigger than $screen */
  }

  @include to($screen-xs-max) {
    /* Anything smaller or equal than $screen */
  }
}

Functions

quarks/quarks.functions

More functions are available, but the following are the more important ones.

Convert pixels to rem

.css {
  margin: rem(32px) / 16 * 1rem // margin: 2rem;
}

Correctly handle z-indexes

For all options, see below in the variables section.

.css {
  z-index: layer('base'); // z-index: 1;
}

Colors

quarks/quarks.colors

An overview of the complete color palette.

  • $monza
    rgb(207, 0, 57)
  • $corn
    rgb(220, 198, 0)
  • $sun
    rgb(249, 176, 30)
  • $porsche
    rgb(236, 161, 84)
  • $tangerine
    rgb(241, 138, 0)
  • $korma
    rgb(148, 69, 11)
  • $punch
    rgb(224, 78, 57)
  • $alizarin-crimson
    rgb(218, 41, 28)
  • $mandy
    rgb(223, 70, 97)
  • $red-ribbon
    rgb(228, 0, 70)
  • $deep-blush
    rgb(229, 109, 177)
  • $cerise
    rgb(227, 49, 138)
  • $rose-bud-cherry
    rgb(132, 11, 85)
  • $east-side
    rgb(181, 128, 209)
  • $seance
    rgb(105, 31, 130)
  • $ship-cove
    rgb(103, 135, 183)
  • $st-tropaz
    rgb(44, 86, 151)
  • $congress-blue
    rgb(0, 64, 136)
  • $cerulean
    rgb(0, 145, 211)
  • $endeavour
    rgb(0, 100, 180)
  • $light-cerulean
    rgb(0, 160, 211)
  • $deep-cerulean
    rgb(0, 127, 163)
  • $monte-carlo
    rgb(127, 202, 211)
  • $blue-lagoon
    rgb(0, 140, 149)
  • $persian-green
    rgb(0, 152, 130)
  • $tropical-rain-forrest
    rgb(0, 123, 95)
  • $mantis
    rgb(108, 194, 74)
  • $apple
    rgb(43, 132, 13)
  • $celery
    rgb(170, 203, 87)
  • $limeade
    rgb(122, 154, 1)
  • $asparagus
    rgb(120, 157, 74)
  • $green-leaf
    rgb(87, 115, 7)
  • $kabul
    rgb(85, 71, 65)
  • $nepal
    rgb(144, 171, 188)
  • $black-pearl
    rgb(8, 31, 44)
  • $black
    rgb(0, 0, 0)
  • $grey-dark
    rgb(111, 111, 111)
  • $grey
    rgb(148, 148, 148)
  • $grey-light
    rgb(216, 216, 216)
  • $grey-lighter
    rgb(243, 243, 243)
  • $white
    rgb(255, 255, 255)
  • $twitter
    rgb(0, 172, 237)
  • $linkedin
    rgb(0, 119, 181)
  • $facebook
    rgb(24, 119, 242)
  • $google
    rgb(220, 78, 65)
  • $snapchat
    rgb(255, 252, 0)
  • $instagram
    inspect me

Variables

quarks/quarks.variables

An overview of all variables and their default values. If you are using Sass, you can overwrite these values for creating your own flavor of the branding kit.

  • $font-family-headings: 'Antwerpen Small', sans-serif
  • $brand-tertiary: #2058b1
  • $brand-quaternary: #357961
  • $brand-quinary: #f7a300
  • $brand-senary: #7739a1
  • $digi-pattern-border-width: .1875rem !default
  • $digi-pattern-border-color: $white !default

Base

Fonts

base/base.fonts

Antwerpen Small

.css {
  font-family: 'Antwerpen Small';
}

Sun Antwerpen 100, 200, 300
Sun Antwerpen 100, 200, 300

Sun Antwerpen 400, 500
Sun Antwerpen 400, 500

Sun Antwerpen 600, 700
Sun Antwerpen 600, 700

Sun Antwerpen 800, 900
Sun Antwerpen 800, 900

.css {
  font-family: 'Sun Antwerpen';
  font-weight: …
}
<p>Sun Antwerpen …</p>
<p><em>Sun Antwerpen …</em></p>

Antwerpen icons

base/base.antwerpen-icons

Accessibility note. In some cases your icon will need an appropriate text alternative. If the icon is informative and not accompanied by a text label, add invisible text for screenreaders with the .u-screen-reader-only class. See the non-text content success criterion(external). When adding labels or instructions that are only visible to users of assistive technology (such as alt and aria-label attributes), make sure the text strings can be localised if the website is multilingual.

Layout

base/base.layout
This file contains mostly basic layout-related styling resets, like box model behaviour and such. No need to worry about its contents!

Media

base/base.media
This file contains mostly basic media-related styling resets, like default behaviour of video and images. No need to worry about its contents!

Typography

base/base.typography

Accessibility note. Never use a heading class without a heading element.

Heading 1

<h1>Heading 1</h1>
<div class="h1">Heading 1</div>

Heading 2

<h2>Heading 2</h2>
<div class="h2">Heading 2</div>

Heading 3

<h3>Heading 3</h3>
<div class="h3">Heading 3</div>

Heading 4

<h4>Heading 4</h4>
<div class="h4">Heading 4</div>
Heading 5
<h5>Heading 5</h5>
<div class="h5">Heading 5</div>
Heading 6
<h6>Heading 6</h6>
<div class="h6">Heading 6</div>
In some cases, it might be necessary to use the base font as font family for the headings. In that case, add the class has-base-font to your heading.
<h1 class="has-base-font">Heading 1</h1>
<h2 class="has-base-font">Heading 2</h2>
<h3 class="has-base-font">Heading 3</h3>
<h4 class="has-base-font">Heading 4</h4>
<h5 class="has-base-font">Heading 5</h5>
<h6 class="has-base-font">Heading 6</h6>

Paragraph: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.

<p>Paragraph: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.</p>

Blockquote: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae. Publius Vergilius Maro

<blockquote>
    <p>Blockquote: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.</p>
    <p>Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.</p>
    <cite>Publius Vergilius Maro</cite>
</blockquote>

Small paragraph: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.

<p><small>Small paragraph: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.</small></p>
<p class="small">Small paragraph: Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.</p>

Mark

<mark>Mark</mark>

<hr>
<a href="#">This is how a link looks like (hover me)</a>

Utilities

Background

utilities/utilities.background

Classes that allow you to quickly change the background color of an element.

Accessibility note. Make sure there is enough contrast between text and background. See the contrast success criterion (external).

.u-bg
<div class="u-bg">.u-bg</div>
.u-bg-black
<div class="u-bg-black">.u-bg-black</div>
.u-bg-danger
<div class="u-bg-danger">.u-bg-danger</div>
.u-bg-light
<div class="u-bg-light">.u-bg-light</div>
.u-bg-primary
<div class="u-bg-primary">.u-bg-primary</div>
.u-bg-quaternary
<div class="u-bg-quaternary">.u-bg-quaternary</div>
.u-bg-quinary
<div class="u-bg-quinary">.u-bg-quinary</div>
.u-bg-secondary
<div class="u-bg-secondary">.u-bg-secondary</div>
.u-bg-senary
<div class="u-bg-senary">.u-bg-senary</div>
.u-bg-success
<div class="u-bg-success">.u-bg-success</div>
.u-bg-tertiary
<div class="u-bg-tertiary">.u-bg-tertiary</div>
.u-bg-warning
<div class="u-bg-warning">.u-bg-warning</div>
.u-bg-white
<div class="u-bg-white">.u-bg-white</div>

Layout

utilities/utilities.layout

The .u-wrapper class makes sure that all content can flow next to the "Antwerp" logo (above 30rem). It does not provide extra padding for smaller screens.

<div class="u-wrapper">
  ...
</div>

The .u-container class makes sure that all content stays centered. It provides extra padding for smaller screens so that your content doesn't stick to the boundaries of your screen.

<div class="u-container">
  ...
</div>

Note that .u-wrapper and .u-container can work perfectly together as illustrated in the example.

<div class="u-wrapper">
  <div class="u-container">
    ...
  </div>
</div>

The .u-no-scroll class will clip content when an element's content is too big to fit in the given area.

<div class="u-no-scroll">
  ...
</div>

The .u-horizontal-scroll class makes sure your content box will only scroll horizontally.

<div class="u-horizontal-scroll">
  ...
</div>

The .u-vertical-scroll class makes sure your content box will only scroll vertically.

<div class="u-vertical-scroll">
  ...
</div>

The .u-viewport-vertical class makes sure your content box will be as high as the viewport (height).

<div class="u-viewport-vertical">
  ...
</div>

The .u-clearfix class will force an element to self-clear its children.

Note that you can also use the clearfix mixin.

<div class="u-clearfix">
  ...
</div>
.css {
  @include clearfix;
}

.u-screen-reader-only is an accessiblity class and can be used to hide information intended only for screen readers.

Note that we offer this also as a Sass placeholder, so you can @extend it in your own class.

<div class="u-screen-reader-only">
  ...
</div>
.css {
  @extend %u-screen-reader-only;
}

Spacing

utilities/utilities.spacing

Helper classes for adding or removing space between elements.

.u-margin
<div class="u-margin">.u-margin</div>
.u-margin-bottom
<div class="u-margin-bottom">.u-margin-bottom</div>
.u-margin-bottom-lg
<div class="u-margin-bottom-lg">.u-margin-bottom-lg</div>
.u-margin-bottom-xs
<div class="u-margin-bottom-xs">.u-margin-bottom-xs</div>
.u-margin-bottom-xx
<div class="u-margin-bottom-xx">.u-margin-bottom-xx</div>
.u-margin-left
<div class="u-margin-left">.u-margin-left</div>
.u-margin-left-lg
<div class="u-margin-left-lg">.u-margin-left-lg</div>
.u-margin-left-xs
<div class="u-margin-left-xs">.u-margin-left-xs</div>
.u-margin-left-xx
<div class="u-margin-left-xx">.u-margin-left-xx</div>
.u-margin-lg
<div class="u-margin-lg">.u-margin-lg</div>
.u-margin-right
<div class="u-margin-right">.u-margin-right</div>
.u-margin-right-lg
<div class="u-margin-right-lg">.u-margin-right-lg</div>
.u-margin-right-xs
<div class="u-margin-right-xs">.u-margin-right-xs</div>
.u-margin-right-xx
<div class="u-margin-right-xx">.u-margin-right-xx</div>
.u-margin-top
<div class="u-margin-top">.u-margin-top</div>
.u-margin-top-lg
<div class="u-margin-top-lg">.u-margin-top-lg</div>
.u-margin-top-xs
<div class="u-margin-top-xs">.u-margin-top-xs</div>
.u-margin-top-xx
<div class="u-margin-top-xx">.u-margin-top-xx</div>
.u-margin-xs
<div class="u-margin-xs">.u-margin-xs</div>
.u-margin-xx
<div class="u-margin-xx">.u-margin-xx</div>
.u-no-margin
<div class="u-no-margin">.u-no-margin</div>
.u-no-margin-bottom
<div class="u-no-margin-bottom">.u-no-margin-bottom</div>
.u-no-margin-left
<div class="u-no-margin-left">.u-no-margin-left</div>
.u-no-margin-right
<div class="u-no-margin-right">.u-no-margin-right</div>
.u-no-margin-top
<div class="u-no-margin-top">.u-no-margin-top</div>

Text

utilities/utilities.text

Helper classes for changing the appearance of text.

Accessibility note. Make sure there is enough contrast between text and background. See the contrast success criterion (external).

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-bold">.u-text-bold</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-capitalize">.u-text-capitalize</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-center">.u-text-center</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-danger">.u-text-danger</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-italic">.u-text-italic</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-justify">.u-text-justify</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-left">.u-text-left</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-light">.u-text-light</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-lowercase">.u-text-lowercase</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-primary">.u-text-primary</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

Accessibility note. For people with some reading or vision disabilities, long lines of text can become a significant barrier. Try to keep the line length below 80 characters.

<p class="u-text-readable">.u-text-readable</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-right">.u-text-right</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-secondary">.u-text-secondary</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-success">.u-text-success</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

Note that we offer this also as a Sass placeholder, so you can @extend it in your own class.

<p class="u-text-truncate">.u-text-truncate</p>
.css {
  @extend %u-text-truncate;
}

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

Accessibility note. Use with caution. It may cause confusion because underlined text is stronly associated with a link.

<p class="u-text-underline">.u-text-underline</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-uppercase">.u-text-uppercase</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-warning">.u-text-warning</p>

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<p class="u-text-xlight">.u-text-xlight</p>

Atoms

Addon

atoms/atoms.addon
Addons are small pieces that can be added before or after an input field. Check out code examples of how to implement them in your design in the input section.

Avatar

atoms/atoms.avatar
Avatar image.
User icon
T
<div class="a-avatar">
  <img src="..." alt="..." />
</div>
<a href="#">
  <span class="a-avatar">
    <img src="..." alt="..." />
  </span>
</a>
<div class="a-avatar">
  <span class="a-avatar__icon">
    <span class="fa fa-user"><span class="u-screen-reader-only">User icon</span></span>
  </span>
</div>
<div class="a-avatar">
  <span class="a-avatar__letter">T</span>
</div>
<div class="a-avatar a-avatar--small">
  <img src="..." alt="..." />
</div>
<a href="#">
  <span class="a-avatar a-avatar--small">
    <img src="..." alt="..." />
  </span>
</a>
<div class="a-avatar a-avatar--medium">
  <img src="..." alt="..." />
</div>
<a href="#">
  <span class="a-avatar a-avatar--medium">
    <img src="..." alt="..." />
  </span>
</a>
<div class="a-avatar a-avatar--large">
  <img src="..." alt="..." />
</div>
<a href="#">
  <span class="a-avatar a-avatar--large">
    <img src="..." alt="..." />
  </span>
</a>

Badge

atoms/atoms.badge
10
<span class="a-badge">10</span>
11
<span class="a-badge a-badge--primary">11</span>
12
<span class="a-badge a-badge--secondary">12</span>
13
<span class="a-badge a-badge--success">13</span>
14
<span class="a-badge a-badge--warning">14</span>
15
<span class="a-badge a-badge--danger">15</span>

Button

atoms/atoms.button

Regular buttons

<button class="a-button">Primary button</button>
<button class="a-button" disabled>Secondary button</button>
<button class="a-button a-button--secondary">Secondary button</button>
<button class="a-button a-button--success">Success button</button>
<button class="a-button a-button--warning">Warning button</button>
<button class="a-button a-button--danger">Danger button</button>
<button class="a-button a-button--transparent">Transparent button</button>

Negative buttons

<button class="a-button-negative">Primary button</button>
<button class="a-button-negative" disabled>Secondary button</button>
<button class="a-button-negative a-button--secondary">Secondary button</button>

Outline buttons

<button class="a-button-outline">Primary button</button>
<button class="a-button-outline" disabled>Secondary button</button>
<button class="a-button-outline a-button--secondary">Secondary button</button>
<button class="a-button-outline a-button--success">Success button</button>
<button class="a-button-outline a-button--warning">Warning button</button>
<button class="a-button-outline a-button--danger">Danger button</button>

Button sizes

<button class="a-button a-button--large">Large button</button>
<button class="a-button a-button--small">Small button</button>
<button class="a-button a-button--tiny">Tiny button</button>

Full width buttons

<button class="a-button a-button--block">Block button</button>

Icon buttons

Note that the button sizes are omitted in the code examples. Just add the .a-button--large, .a-button--small or .a-button--tiny class to achieve the wanted result.

<button class="a-button has-icon-left">
  <span class="fa fa-arrow-left" aria-hidden="true"></span>
  Icon left
</button>
<button class="a-button-negative has-icon-left">
  <span class="fa fa-arrow-left" aria-hidden="true"></span>
  Icon left
</button>
<button class="a-button-outline has-icon-left">
  <span class="fa fa-arrow-left" aria-hidden="true"></span>
  Icon left
</button>
<button class="a-button has-icon-right">
  <span class="fa fa-arrow-right" aria-hidden="true"></span>
  Icon right
</button>
<button class="a-button-negative has-icon-right">
  <span class="fa fa-arrow-right" aria-hidden="true"></span>
  Icon right
</button>
<button class="a-button-outline has-icon-right">
  <span class="fa fa-arrow-right" aria-hidden="true"></span>
  Icon right
</button>

Accessibility note. All 'icon only' buttons must be accompanied by an appropriate text alternative. See the non-text content success criterion (external). Consider using an ARIA label or the .u-screen-reader-only utility class.

<button class="a-button has-icon" aria-label="Download">
  <span class="fa fa-download" aria-hidden="true"></span>
</button>
<button class="a-button-negative has-icon" aria-label="Download">
  <span class="fa fa-download" aria-hidden="true"></span>
</button>
<button class="a-button-outline has-icon" aria-label="Download">
  <span class="fa fa-download" aria-hidden="true"></span>
</button>
<button class="a-button has-icon-right">
  <span class="fa fa-circle-o-notch fa-spin" aria-hidden="true"></span>
  Loading
</button>
<button class="a-button a-button--default has-icon" aria-label="Download">
  <span class="fa fa-download" aria-hidden="true"></span>
</button>
<button class="a-button-transparent a-button--default has-icon" aria-label="Close">
  <span class="fa fa-close" aria-hidden="true"></span>
</button>
<button class="a-button-transparent has-icon aria-label="Close"">
  <span class="fa fa-close" aria-hidden="true"></span>
</button>
<button class="a-button-transparent a-button--success has-icon aria-label="Close"">
  <span class="fa fa-close" aria-hidden="true"></span>
</button>
<button class="a-button-transparent a-button--warning has-icon aria-label="Close"">
  <span class="fa fa-close" aria-hidden="true"></span>
</button>
<button class="a-button-transparent a-button--danger has-icon aria-label="Close"">
  <span class="fa fa-close" aria-hidden="true"></span>
</button>

Official button

<button class="a-button-official">
  Log in with A-profile
</button>

Social buttons

<a href="#" class="a-button a-button--facebook has-icon" aria-label="Facebook">
  <span class="fa fa-facebook" aria-hidden="true"></span>
</a>
<a href="#" class="a-button a-button--twitter has-icon" aria-label="Twitter">
  <span class="fa fa-twitter" aria-hidden="true"></span>
</a>
<a href="#" class="a-button a-button--linkedin has-icon" aria-label="LinkedIn">
  <span class="fa fa-linkedin" aria-hidden="true"></span>
</a>
<a href="#" class="a-button a-button--instagram has-icon" aria-label="Instagram">
  <span class="fa fa-instagram" aria-hidden="true"></span>
</a>
<a href="#" class="a-button a-button--google has-icon" aria-label="Google+">
  <span class="fa fa-google-plus" aria-hidden="true"></span>
</a>
<a href="#" class="a-button a-button--snapchat has-icon" aria-label="Snapchat">
  <span class="fa fa-snapchat-ghost" aria-hidden="true"></span>
</a>

Code

atoms/atoms.code

Type npm install in your command line.

Type <code>npm install</code> in your command line.

To copy-paste, first type CMD-C and then CMD-V.

To copy-paste, first type <kbd>CMD-C</kbd> and then <kbd>CMD-V</kbd>.

The error message simply said: An error has occurred.

The error message simply said: <samp>An error has occurred</samp>.
                           ''~``
                          ( o o )
+--------------------.oooO--(_)--Oooo.--------------------+
|                                                         |
|                      .oooO                              |
|                      (   )   Oooo.                      |
+-----------------------\ (----(   )----------------------+
                         \_)    ) /
                               (_/
<pre class="a-pre a-pre--scrollable">
  ...
</pre>
var add = (function () {
  var counter = 0;
  return function () {
    return counter += 1;
  }
})();
<pre class="a-pre a-pre--scrollable">
  <code>
    var add = (function () {
      var counter = 0;
      return function () {
        return counter += 1;
      }
    })();
  </code>
</pre>

Note that removing the .a-pre--scrollable class will enable wrapping.

Copyright

atoms/atoms.copyright
<div class="a-copyright">
  <div class="a-copyright__sign">
    <span class="fa fa-copyright" aria-hidden="true"></span>
    <span class="u-screen-reader-only">Copyright </span>
  </div>
  <span class="a-copyright__label">Jasper Van Proeyen</span>
</div>

Form

atoms/atoms.form

Accessibility note. It is important to provide the user with clear instructions on how to complete the form. You can provide these both overall or inline. Note that you can not use the placeholder attribute as a replacement for clean instructions or for the label. See the input assistance success criterion (external).

Use the .a-form class as a wrapper around .a-input classes to automatically create spacing between your form elements.
<form class="a-form">
  <div class="a-input">...</div>
  <div class="a-input">...</div>
  ...
</form>
Optional legend Your form here
<fieldset>
  <legend>Optional legend</legend>
  ...
</fieldset>

Input

atoms/atoms.input

Standard input fields

Input description
<div class="a-input">
  <label class="a-input__label" for="text-field">Text field</label>
  <input type="text" name="text-field" id="text-field" placeholder="Placeholder" aria-describedby="text-field-description" />
  <small id="text-field-description">Input description</small>
</div>

Note that all input types are supported and it is encouraged to use them appropriately: text, password, datetime, datetime-local, date, month, time, week, number, email, url, search, tel and color.

<div class="a-input is-required">
  <label class="a-input__label" for="required-text-field">Required text field</label>
  <input type="text" name="required-text-field" id="required-text-field" placeholder="Placeholder" required />
</div>

Accessibility note. Always provide an explanation above the form in case you use asterisks. For example: Fields marked with an asterisk (*) are required.

<div class="a-input a-input--inline">
  <label class="a-input__label a-input__label--inline" for="inline-text-field">Inline text field</label>
  <input type="text" name="inline-text-field" id="inline-text-field" placeholder="Placeholder" />
</div>
<div class="a-input">
  <label class="a-input__label">Input checkbox</label>
  <div class="a-input__checkbox">
    <input type="checkbox" id="checkbox1" name="input-checkbox" checked="">
    <label for="checkbox1">Option one</label>
  </div>
  <div class="a-input__checkbox">
    <input type="checkbox" id="checkbox2" name="input-checkbox">
    <label for="checkbox2">Option two contains a bit more text, so we can test its behaviour on smaller devices.</label>
  </div>
  <div class="a-input__checkbox">
    <input type="checkbox" id="checkbox3" name="input-checkbox" disabled="">
    <label for="checkbox3">Option three is disabled</label>
  </div>
  <div class="a-input__checkbox">
    <input type="checkbox" id="checkbox4" name="input-checkbox" checked="" disabled="">
    <label for="checkbox4">Option four is checked and disabled</label>
  </div>
</div>
<div class="a-input">
  <label class="a-input__label">Input radio button</label>
  <div class="a-input__radio">
    <input type="radio" id="radio1" name="input-radio" checked="">
    <label for="radio1">Option one</label>
  </div>
  <div class="a-input__radio">
    <input type="radio" id="radio2" name="input-radio">
    <label for="radio2">Option two contains a bit more text, so we can test its behaviour on smaller devices.</label>
  </div>
  <div class="a-input__radio">
    <input type="radio" id="radio3" name="input-radio" disabled="">
    <label for="radio3">Option three is disabled</label>
  </div>
  <div class="a-input__radio">
    <input type="radio" id="radio4" name="input-radio2" checked="" disabled="">
    <label for="radio4">Separate radio button that is checked and disabled</label>
  </div>
</div>
<div class="a-input">
  <label class="a-input__label" for="input-textarea">Text area</label>
  <textarea name="input-textarea" id="input-textarea" placeholder="Placeholder"></textarea>
</div>
<div class="a-input has-icon-right">
  <label class="a-input__label" for="input-select">Select with options</label>
  <div class="a-input__wrapper">
    <select name="input-select" id="input-select">
      <option disabled selected>Make your choice...</option>
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
      <option value="3">Option 3</option>
      <option value="4" disabled>Option 4 disabled</option>
      <option value="5">Option 5</option>
    </select>
    <span class="fa fa-angle-down" aria-hidden="true"></span>
  </div>
</div>
<div class="a-input has-icon-right a-input--inline">
  <label class="a-input__label a-input__label--inline" for="input-select-inline">Inline select input</label>
  <div class="a-input__wrapper a-input__wrapper--inline">
    <select name="input-select-inline" id="input-select-inline">
      <option disabled selected>Make your choice...</option>
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
      <option value="3">Option 3</option>
      <option value="4" disabled>Option 4 disabled</option>
      <option value="5">Option 5</option>
    </select>
    <span class="fa fa-angle-down" aria-hidden="true"></span>
  </div>
</div>

Input field sizes

<div class="a-input a-input--small">
  <label class="a-input__label" for="text-field-small">Text field</label>
  <input type="text" name="text-field-small" id="text-field-small" placeholder="Placeholder" />
</div>
<div class="a-input a-input--small has-icon-right">
  <label class="a-input__label" for="input-select-small">Select with options</label>
  <div class="a-input__wrapper">
    <select name="input-select-small" id="input-select-small">
      ...
    </select>
    <span class="fa fa-angle-down" aria-hidden="true"></span>
  </div>
</div>
<div class="a-input a-input--small">
  <label class="a-input__label" for="input-textarea-small">Text area</label>
  <textarea name="input-textarea-small" id="input-textarea-small" placeholder="Placeholder"></textarea>
</div>
<div class="a-input a-input--large">
  <label class="a-input__label" for="text-field-large">Text field</label>
  <input type="text" name="text-field-large" id="text-field-large" placeholder="Placeholder" />
</div>
<div class="a-input a-input--large has-icon-right">
  <label class="a-input__label" for="input-select-large">Select with options</label>
  <div class="a-input__wrapper">
    <select name="input-select-large" id="input-select-large">
      ...
    </select>
    <span class="fa fa-angle-down" aria-hidden="true"></span>
  </div>
</div>
<div class="a-input a-input--large">
  <label class="a-input__label" for="input-textarea-large">Text area</label>
  <textarea name="input-textarea-large" id="input-textarea-large" placeholder="Placeholder"></textarea>
</div>

Input icons and addons

<div class="a-input has-icon-left">
  <label class="a-input__label" for="text-field-icon-left">Text field with left icon</label>
  <div class="a-input__wrapper">
    <span class="fa fa-user" aria-hidden="true"></span>
    <input type="text" name="text-field-icon-left" id="text-field-icon-left" placeholder="Placeholder" />
  </div>
</div>
<div class="a-input has-icon-right">
  <label class="a-input__label" for="text-field-icon-right">Text field with right icon</label>
  <div class="a-input__wrapper">
    <input type="text" name="text-field-icon-right" id="text-field-icon-right" placeholder="Placeholder" />
    <span class="fa fa-eye" aria-hidden="true"></span>
  </div>
</div>
<div class="a-input has-addon">
  <label class="a-input__label" for="text-field-addon-left">Text field with left addon</label>
  <div class="a-input__wrapper">
    <div class="a-input__addon">&euro;</div>
    <input type="text" name="text-field-addon-left" id="text-field-addon-left" placeholder="Placeholder" />
  </div>
</div>
km
<div class="a-input has-addon">
  <label class="a-input__label" for="text-field-addon-right">Text field with right addon</label>
  <div class="a-input__wrapper">
    <input type="text" name="text-field-addon-right" id="text-field-addon-right" placeholder="Placeholder" />
    <div class="a-input__addon">km</div>
  </div>
</div>

Input states

<div class="a-input has-success">
  <label class="a-input__label" for="text-field-success">Success text field</label>
  <div class="a-input__wrapper">
    <input type="text" name="text-field-success" id="text-field-success" placeholder="Placeholder" />
  </div>
</div>
<div class="a-input has-warning">
  <label class="a-input__label" for="text-field-warning">Warning text field</label>
  <div class="a-input__wrapper">
    <input type="text" name="text-field-warning" id="text-field-warning" placeholder="Placeholder" />
  </div>
</div>
<div class="a-input has-error">
  <label class="a-input__label" for="text-field-error">Error text field</label>
  <div class="a-input__wrapper">
    <input type="text" name="text-field-error" id="text-field-error" placeholder="Placeholder" />
  </div>
</div>

Label

atoms/atoms.label
Default label
<span class="a-label">Default label</span>
Primary label
<span class="a-label a-label--primary">Primary label</span>
Secondary label
<span class="a-label a-label--secondary">Secondary label</span>
Success label
<span class="a-label a-label--success">Success label</span>
Warning label
<span class="a-label a-label--warning">Warning label</span>
Danger label
<span class="a-label a-label--danger">Danger label</span>

Link

atoms/atoms.link
<a href="#">
  This is a nice link
</a>
<a href="#" class="has-icon-left">
  <span class="fa fa-angle-left" aria-hidden="true"></span>This is a nice link with an icon to the left
</a>
<a href="#" class="has-icon-right">
  This is a nice link with an icon to the right<span class="fa fa-external-link" aria-hidden="true"><span class="u-screen-reader-only"> (external)</span></span>
</a>

List

atoms/atoms.list

Standard lists

  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
  1. First item
  2. Second item
    1. First subitem
    2. Second subitem
  3. Third item
  4. Fourth item
<ul class="a-list">
  <li>First item</li>
  <li>Second item
    <ul class="a-list">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ul>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ul>
<ol class="a-list">
  <li>First item</li>
  <li>Second item
    <ol class="a-list">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ol>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ol>
.css {
  @extend %a-list;
}

List variations

  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list a-list--reset">
  <li>First item</li>
  <li>Second item
    <ul class="a-list">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ul>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ul>
.css {
  @extend %a-list--reset;
}
  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list a-list--unstyled">
  <li>First item</li>
  <li>Second item
    <ul class="a-list">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ul>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ul>
.css {
  @extend %a-list--unstyled;
}
  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list a-list--flattened">
  <li>First item</li>
  <li>Second item
    <ul class="a-list">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ul>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ul>
.css {
  @extend %a-list--flattened;
}
  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list a-list--primary">
  <li>First item</li>
  <li>Second item
    <ul class="a-list">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ul>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ul>
.css {
  @extend %a-list--primary;
}
  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list a-list--lined">
  <li>First item</li>
  <li>Second item
    <ul class="a-list a-list--lined">
      <li>First subitem</li>
      <li>Second subitem</li>
    </ul>
  </li>
  <li>Third item</li>
  <li>Fourth item</li>
</ul>
.css {
  @extend %a-list--lined;
}

Icon lists

  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list has-icon-left">
  <li><span class="fa fa-angle-left" aria-hidden="true"></span>First item</li>
  <li><span class="fa fa-angle-left" aria-hidden="true"></span>Second item
    <ul class="a-list">
      <li><span class="fa fa-angle-left" aria-hidden="true"></span>First subitem</li>
      <li><span class="fa fa-angle-left" aria-hidden="true"></span>Second subitem</li>
    </ul>
  </li>
  <li><span class="fa fa-angle-left" aria-hidden="true"></span>Third item</li>
  <li><span class="fa fa-angle-left" aria-hidden="true"></span>Fourth item</li>
</ul>
<ul class="a-list has-icon-right">
  <li>First item<span class="fa fa-angle-right" aria-hidden="true"></span></li>
  <li>Second item<span class="fa fa-angle-right" aria-hidden="true"></span>
    <ul class="a-list">
      <li>First subitem<span class="fa fa-angle-right" aria-hidden="true"></span></li>
      <li>Second subitem<span class="fa fa-angle-right" aria-hidden="true"></span></li>
    </ul>
  </li>
  <li>Third item<span class="fa fa-angle-right" aria-hidden="true"></span></li>
  <li>Fourth item<span class="fa fa-angle-right" aria-hidden="true"></span></li>
</ul>

List combinations

  • First item
  • Second item
    • First subitem
    • Second subitem
  • Third item
  • Fourth item
<ul class="a-list a-list--lined has-icon-left">
  <li><span class="fa fa-angle-left">First item</li>
  <li><span class="fa fa-angle-left">Second item
    <ul class="a-list a-list--lined has-icon-left">
      <li><span class="fa fa-angle-left">First subitem</li>
      <li><span class="fa fa-angle-left">Second subitem</li>
    </ul>
  </li>
  <li><span class="fa fa-angle-left">Third item</li>
  <li><span class="fa fa-angle-left">Fourth item</li>
</ul>
.css {
  @extend %a-list--lined has-icon-left;
}

Definition list

Name:
Sander
Surname:
Geenen
Address:
[Private]
<dl class="a-definition-list">
  <dt>Name:</dt>
    <dd>Sander</dd>
  <dt>Surname:</dt>
    <dd>Geenen</dd>
  <dt>Address:</dt>
    <dd>[Private]</dd>
</dl>

Radio button / checkbox

atoms/atoms.radio-checkbox
As these are two types of input fields, you can check out code examples there, in the input section.

Spinner

atoms/atoms.spinner
<div class="a-spinner" role="alert"><span class="u-screen-reader-only">Loading</span></div>
<div class="a-spinner a-spinner--sm" role="alert"><span class="u-screen-reader-only">Loading</span></div>

Note that the large spinner can be used only once per page and only for indicating that the complete page is loading.

<div class="a-spinner a-spinner--lg" role="alert"><span class="u-screen-reader-only">Loading</span></div>

Switch

atoms/atoms.switch
<div class="a-input">
  <label class="a-input__label">Switch</label>
  <div class="a-switch">
    <label class="a-switch__label">Off</label>
    <div class="a-switch__toggle">
      <input type="checkbox" name="switch1" id="switch1" role="switch" aria-checked="false">
      <label for="switch1"><span class="u-screen-reader-only">Toggle switch</span></label>
    </div>
    <label class="a-switch__label">On</label>
  </div>
</div>
<div class="a-input">
  <label class="a-input__label">Disabled switch</label>
  <div class="a-switch">
    <label class="a-switch__label">On</label>
    <div class="a-switch__toggle">
      <input type="checkbox" name="switch2" id="switch2" role="switch" aria-checked="false" disabled>
      <label for="switch2"><span class="u-screen-reader-only">Toggle switch</span></label>
    </div>
    <label class="a-switch__label">Off</label>
  </div>
</div>

Table

atoms/atoms.table

Standard tables

Standard table
Standard table Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table">
  <caption>Standard table</caption>
  <thead>
    <tr>
      <th>Standard table</th>
      <th>...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>
More compact table
More compact table Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table a-table--small">
  <caption>More compact table</caption>
  <thead>
    <tr>
      <th>More compact table</th>
      <th>...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>

Table schemes

Primary table
Primary table Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table a-table--primary">
  <caption>Primary table</caption>
  <thead>
    <tr>
      <th>Primary table</th>
      <th>...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>
Secondary table
Secondary table Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table a-table--secondary">
  <caption>Seconday table</caption>
  <thead>
    <tr>
      <th>Secondary table</th>
      <th>...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>
Striped table
Striped table Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table a-table--striped">
  <caption>Striped table</caption>
  <thead>
    <tr>
      <th>Striped table</th>
      <th>...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>

Table cell options

Condensed table
Condensed table cells Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table">
  <caption>Condensed table</caption>
  <thead>
    <tr>
      <th class="is-condensed">Condensed table cells</th>
      <th class="is-condensed">...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="is-condensed">...</td>
      <td class="is-condensed">...</td>
    </tr>
    <tr>
      <td class="is-condensed">...</td>
      <td class="is-condensed">...</td>
    </tr>
    <tr>
      <td class="is-condensed">...</td>
      <td class="is-condensed">...</td>
    </tr>
  </tbody>
</table>
Paddingless table
Table cells without padding Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<table class="a-table">
  <caption>Paddingless table</caption>
  <thead>
    <tr>
      <th class="has-no-padding">Table cells without padding</th>
      <th class="has-no-padding">...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="has-no-padding">...</td>
      <td class="has-no-padding">...</td>
    </tr>
    <tr>
      <td class="has-no-padding">...</td>
      <td class="has-no-padding">...</td>
    </tr>
    <tr>
      <td class="has-no-padding">...</td>
      <td class="has-no-padding">...</td>
    </tr>
  </tbody>
</table>

Responsive wrapper for tables

Responsive table
Responsive table Publius Vergilius Maro
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.
<div class="a-table__wrapper-responsive">
  <table class="a-table">
    <caption>Responsive table</caption>
    <thead>
      <tr>
        <th>Responsive table</th>
        <th>...</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>...</td>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
        <td>...</td>
      </tr>
    </tbody>
  </table>
</div>

Timepicker

atoms/atoms.timepicker
:
<div class="a-timepicker">
  <div class="a-input has-icon-right">
    <label class="a-input__label" for="input-hours">Hours</label>
    <div class="a-input__wrapper">
      <select name="input-hours" id="input-houres">
        <option value="" disabled selected>hh</option>
        <option value="...">...</option>
      </select>
      <span class="fa fa-angle-down" aria-hidden="true"></span>
    </div>
  </div>
  <span class="a-timepicker__separator">:</span>
  <div class="a-input has-icon-right">
    <label class="a-input__label" for="input-minutes">Minutes</label>
    <div class="a-input__wrapper">
      <select name="input-minutes" id="input-minutes">
        <option value="" disabled selected>mm</option>
        <option value="...">...</option>
      </select>
      <span class="fa fa-angle-down" aria-hidden="true"></span>
    </div>
  </div>
</div>

Toggle

atoms/atoms.toggle
<div class="a-toggle has-icon">
  <input class="a-toggle__checkbox" id="icon-toggle" type="checkbox" role="switch" aria-checked="false">
  <div class="a-toggle__labels">
    <label for="icon-toggle" class="a-toggle__on a-button has-icon">
      <span class="fa fa-bars"><span class="u-screen-reader-only">Open menu</span></span>
    </label>
    <label for="icon-toggle" class="a-toggle__off a-button a-button--danger has-icon">
      <span class="fa fa-close"><span class="u-screen-reader-only">Close menu</span></span>
    </label>
  </div>
</div>
<div class="a-toggle a-toggle--large has-icon">
  <input class="a-toggle__checkbox" id="icon-toggle-large" type="checkbox" role="switch" aria-checked="false">
  <div class="a-toggle__labels">
    <label for="icon-toggle-large" class="a-toggle__on a-button a-button--large has-icon">
      <span class="fa fa-bars"><span class="u-screen-reader-only">Open menu</span></span>
    </label>
    <label for="icon-toggle-large" class="a-toggle__off a-button a-button--danger a-button--large has-icon">
      <span class="fa fa-close"><span class="u-screen-reader-only">Close menu</span></span>
    </label>
  </div>
</div>
<div class="a-toggle a-toggle--small has-icon">
  <input class="a-toggle__checkbox" id="icon-toggle-small" type="checkbox" role="switch" aria-checked="false">
  <div class="a-toggle__labels">
    <label for="icon-toggle-small" class="a-toggle__on a-button a-button--small has-icon">
      <span class="fa fa-bars"><span class="u-screen-reader-only">Open menu</span></span>
    </label>
    <label for="icon-toggle-small" class="a-toggle__off a-button a-button--danger a-button--small has-icon">
      <span class="fa fa-close"><span class="u-screen-reader-only">Close menu</span></span>
    </label>
  </div>
</div>
<div class="a-toggle a-toggle--tiny has-icon">
  <input class="a-toggle__checkbox" id="icon-toggle-tiny" type="checkbox" role="switch" aria-checked="false">
  <div class="a-toggle__labels">
    <label for="icon-toggle-tiny" class="a-toggle__on a-button a-button--tiny has-icon">
      <span class="fa fa-bars"><span class="u-screen-reader-only">Open menu</span></span>
    </label>
    <label for="icon-toggle-tiny" class="a-toggle__off a-button a-button--danger a-button--tiny has-icon">
      <span class="fa fa-close"><span class="u-screen-reader-only">Close menu</span></span>
    </label>
  </div>
</div>
<div class="a-toggle">
  <input class="a-toggle__checkbox" id="toggle-normal" type="checkbox" role="switch" aria-checked="false">
  <div class="a-toggle__labels">
    <label for="toggle-normal" class="a-toggle__on a-button has-icon-left">
      <span class="fa fa-bars" aria-hidden="true"></span>
      Open
    </label>
    <label for="toggle-normal" class="a-toggle__off a-button a-button--danger has-icon-left">
      <span class="fa fa-close" aria-hidden="true"></span>
      Close
    </label>
  </div>
</div>

Tooltip

atoms/atoms.tooltip
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
<div class="a-tooltip a-tooltip--top-right">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--primary a-tooltip--top">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--secondary a-tooltip--top-left">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
<div class="a-tooltip a-tooltip--bottom-right">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--primary a-tooltip--bottom">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--secondary a-tooltip--bottom-left">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
<div class="a-tooltip a-tooltip--left-bottom">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip  a-tooltip--primary a-tooltip--left">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--secondary a-tooltip--left-top">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum nihil perspiciatis molestias mollitia.
<div class="a-tooltip a-tooltip--right-bottom">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--primary a-tooltip--right">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>
<div class="a-tooltip a-tooltip--secondary a-tooltip--right-top">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel eum <a href="#">nihil perspiciatis</a> molestias mollitia.
</div>

Molecules

Accordion

molecules/molecules.accordion
Aeneis

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.

De Bello Gallico
...
Odes
...
<div class="m-accordion">
  <div class="m-accordion__tab is-open">
    <div class="m-accordion__header">
      Aeneis
    </div>
    <div class="m-accordion__content">
      <div class="u-margin">
        ...
      </div>
    </div>
  </div>
  <div class="m-accordion__tab">
    <div class="m-accordion__header">
      De Bello Gallico
    </div>
    <div class="m-accordion__content">
      ...
    </div>
  </div>
  <div class="m-accordion__tab">
    <div class="m-accordion__header">
      Odes
    </div>
    <div class="m-accordion__content">
      ...
    </div>
  </div>
</div>

Alert

molecules/molecules.alert

Accessibility note. If you use these alerts as a popup, you have to add aria-modal="true" to the parent <div>.

Alert

Some explanation.

<div role="alertdialog" aria-labelledby="alert" class="m-alert">
  <button class="a-button-transparent has-icon m-alert__close" aria-label="Close"><span class="fa fa-close" aria-hidden="true"></span></button>
  <h4 id="alert" class="h5 u-margin-bottom-xs">Alert</h4>
  <p class="u-margin-bottom">Some explanation.</p>
  <div class="m-alert__actions">
    <button class="a-button-outline a-button--small">Cancel</button>
    <button class="a-button a-button--small">Got it</button>
  </div>
</div>

Success alert

Some explanation.

<div role="alertdialog" aria-labelledby="alert-success" class="m-alert m-alert--success">
  <button class="a-button-transparent a-button--success has-icon m-alert__close" aria-label="Close"><span class="fa fa-close" aria-hidden="true"></span></button>
  <h4 id="alert-success" class="h5 u-margin-bottom-xs">Success alert</h4>
  <p class="u-margin-bottom">Some explanation.</p>
  <div class="m-alert__actions">
    <button class="a-button-outline a-button--success a-button--small">Cancel</button>
    <button class="a-button a-button--success a-button--small">Got it</button>
  </div>
</div>

Warning alert

Some explanation.

<div role="alertdialog" aria-labelledby="alert-warning" class="m-alert m-alert--warning">
  <button class="a-button-transparent a-button--warning has-icon m-alert__close" aria-label="Close"><span class="fa fa-close" aria-hidden="true"></span></button>
  <h4 id="alert-warning" class="h5 u-margin-bottom-xs">Warning alert</h4>
  <p class="u-margin-bottom">Some explanation.</p>
  <div class="m-alert__actions">
    <button class="a-button-outline a-button--warning a-button--small">Cancel</button>
    <button class="a-button a-button--warning a-button--small">Got it</button>
  </div>
</div>

Danger alert

Some explanation.

<div role="alertdialog" aria-labelledby="alert-danger" class="m-alert m-alert--danger">
  <button class="a-button-transparent a-button--danger has-icon m-alert__close" aria-label="Close"><span class="fa fa-close" aria-hidden="true"></span></button>
  <h4 id="alert-danger" class="h5 u-margin-bottom-xs">Danger alert</h4>
  <p class="u-margin-bottom">Some explanation.</p>
  <div class="m-alert__actions">
    <button class="a-button-outline a-button--danger a-button--small">Cancel</button>
    <button class="a-button a-button--danger a-button--small">Got it</button>
  </div>
</div>

Breadcrumb

molecules/molecules.breadcrumb
<ul class="m-breadcrumbs">
  <li><a href="#">Home</a></li>
  <li><a href="#">Styleguide</a></li>
  <li><a href="#">Molecules</a></li>
  <li>Breadcrumb</li>
</ul>

Button group

molecules/molecules.button-group

Note that all button variations are possible in button groups. Go to the buttons section to check out all possibilities.

<div class="m-button-group">
  <button class="a-button">Primary</button>
  <button class="a-button">Button</button>
  <button class="a-button">Group</button>
</div>
<div class="m-button-group">
  <button class="a-button-negative">Primary</button>
  <button class="a-button-negative">Button</button>
  <button class="a-button-negative">Group</button>
</div>
<div class="m-button-group">
  <button class="a-button-outline">Primary</button>
  <button class="a-button-outline">Button</button>
  <button class="a-button-outline">Group</button>
</div>
<div class="m-button-group m-button-group--vertical">
  <button class="a-button">Primary</button>
  <button class="a-button">Button</button>
  <button class="a-button">Group</button>
</div>
<div class="m-button-group m-button-group--vertical">
  <button class="a-button-negative">Primary</button>
  <button class="a-button-negative">Button</button>
  <button class="a-button-negative">Group</button>
</div>
<div class="m-button-group m-button-group--vertical">
  <button class="a-button-outline">Primary</button>
  <button class="a-button-outline">Button</button>
  <button class="a-button-outline">Group</button>
</div>

Button list

molecules/molecules.button-list
<ul class="m-button-list">
  <li><a href="#" class="a-button a-button--facebook has-icon" aria-label="Facebook"><span class="fa fa-facebook" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--twitter has-icon" aria-label="Twitter"><span class="fa fa-twitter" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--linkedin has-icon" aria-label="LinkedIn"><span class="fa fa-linkedin" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--instagram has-icon" aria-label="Instagram"><span class="fa fa-instagram" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--google has-icon" aria-label="Google+"><span class="fa fa-google-plus" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--snapchat has-icon" aria-label="Snapchat"><span class="fa fa-snapchat-ghost" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-button-list m-button-list--horizontal">
  <li><a href="#" class="a-button a-button--facebook has-icon" aria-label="Facebook"><span class="fa fa-facebook" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--twitter has-icon" aria-label="Twitter"><span class="fa fa-twitter" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--linkedin has-icon" aria-label="LinkedIn"><span class="fa fa-linkedin" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--instagram has-icon" aria-label="Instagram"><span class="fa fa-instagram" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--google has-icon" aria-label="Google+"><span class="fa fa-google-plus" aria-hidden="true"></span></a></li>
  <li><a href="#" class="a-button a-button--snapchat has-icon" aria-label="Snapchat"><span class="fa fa-snapchat-ghost" aria-hidden="true"></span></a></li>
</ul>

Card

molecules/molecules.card
Avatar image.

Publius Vergilius Maro

Card image.

Aeneis

May 4th 2017, 12:34

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram. Multa quoque et bello passus, dum conderet urbem, inferretque deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.

Read the article

<div class="m-card">
  <div class="m-card__header">
    <div class="m-contact">
      <div class="a-avatar a-avatar--small">
        <img src="https://robohash.org/vergilius" alt="Avatar image." />
      </div>
      <div class="m-contact__info">
        <p class="u-text-bold">Publius Vergilius Maro</p>
      </div>
    </div>
  </div>
  <div class="m-card__image">
    <img src="https://placeimg.com/1000/500/tech" alt="Card image.">
  </div>
  <div class="m-card__body">
    <h4 id="card-title" class="h5 u-margin-bottom-xs">Aeneis</h4>
    <p class="small u-text-bold u-margin-bottom-xs">May 4th 2017, 12:34</p>
    <p class="u-margin-bottom">...</p>
    <p class="u-text-right">
      <a id="card-link" href="#" class="has-icon-right" aria-labelledby="card-link card-title">
        Read more<span class="fa fa-angle-right" aria-hidden="true"></span>
      </a>
    </p>
  </div>
</div>

Collapsible list

molecules/molecules.collapsible-list
<ul class="m-collapsible-list">
  <li class="m-collapsible-list__item">
    <a href="#">
      <span>First item</span>
    </a>
  </li>
  <li class="m-collapsible-list__item">
    <a href="#">
      <span class="fa fa-fw fa-angle-down" aria-hidden="true"></span><span>Second collapsible item</span>
    </a>
    <ul>
      <li class="m-collapsible-list__item">
        <a href="#">
          <span class="fa fa-fw fa-angle-down" aria-hidden="true"></span><span>First collapsible subitem</span>
        </a>
        <ul>
          <li class="m-collapsible-list__item is-active">
            <a href="#">
              <span>First active subsubitem</span>
            </a>
          </li>
        </ul>
      </li>
      <li class="m-collapsible-list__item">
        <a href="#">
          <span class="fa fa-fw fa-angle-right" aria-hidden="true"></span><span>Second collapsed subitem</span>
        </a>
        <ul class="is-collapsed">
          <li class="m-collapsible-list__item">
            <a href="#">
              <span>Second hidden subsubitem</span>
            </a>
          </li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

Contact

molecules/molecules.contact
Avatar image.

Jasper Van Proeyen

Avatar image.

Sander Geenen

1 min ago

<div class="m-contact">
  <div class="a-avatar a-avatar--small">
    <img src="https://robohash.org/jasper" alt="Avatar image." />
  </div>
  <div class="m-contact__info">
    <p class="u-text-bold">Jasper Van Proeyen</p>
  </div>
</div>
<div class="m-contact">
  <div class="a-avatar a-avatar--small">
    <img src="https://robohash.org/sander" alt="Avatar image." />
  </div>
  <div class="m-contact__info">
    <p class="u-text-bold">Sander Geenen</p>
    <p class="small">1 min ago</p>
  </div>
</div>
Avatar image.

Jasper Van Proeyen

Avatar image.

Sander Geenen

1 min ago

<div class="m-contact">
  <div class="a-avatar">
    <img src="https://robohash.org/jasper" alt="Avatar image." />
  </div>
  <div class="m-contact__info">
    <p class="u-text-bold">Jasper Van Proeyen</p>
  </div>
</div>
<div class="m-contact">
  <div class="a-avatar">
    <img src="https://robohash.org/sander" alt="Avatar image." />
  </div>
  <div class="m-contact__info">
    <p class="u-text-bold">Sander Geenen</p>
    <p class="small">1 min ago</p>
  </div>
</div>

Datepicker

molecules/molecules.datepicker

Datepicker views

Mo Tu We Th Fr Sa Su
<div role="application" aria-label="Datepicker days" class="m-datepicker is-open" aria-hidden="false">
  <div class="m-datepicker__nav">
    <button type="button" aria-label="Go to previous month, April 2017" class="a-button has-icon"><span class="fa fa-angle-left" aria-hidden="true"></span></button>
    <button type="button" class="m-datepicker__title a-button">May 2017</button>
    <button type="button" aria-label="Go to next month, June 2017" class="a-button has-icon"><span class="fa fa-angle-right" aria-hidden="true"></span></button>
  </div>
  <table>
    <thead>
      <tr class="m-datepicker__days">
        <th scope="col"><span title="Monday">Mo</span></th>
        <th scope="col"><span title="Tuesday">Tu</span></th>
        <th scope="col"><span title="Wednesday">We</span></th>
        <th scope="col"><span title="Thursday">Th</span></th>
        <th scope="col"><span title="Friday">Fr</span></th>
        <th scope="col"><span title="Saturday">Sa</span></th>
        <th scope="col"><span title="Sunday">Su</span></th>
      </tr>
    </thead>
    <tbody class="m-datepicker__calendar">
      <tr>
        <td><button type="button" class="is-faded" aria-label="Monday 27 April 2017">27</button></td>
        <td><button type="button" class="is-faded" aria-label="Tuesday 28 April 2017">28</button></td>
        <td><button type="button" aria-label="Wednesday 1 May 2017">1</button></td>
        <td><button type="button" aria-label="Thursday 2 May 2017">2</button></td>
        <td><button type="button" aria-label="Friday 3 May 2017">3</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 4 May 2017">4</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 5 May 2017">5</button></td>
      </tr>
      <tr>
        <td><button type="button" aria-label="Monday 6 May 2017">6</button></td>
        <td><button type="button" aria-label="Tuesday 7 May 2017">7</button></td>
        <td><button type="button" aria-label="Wednesday 8 May 2017">8</button></td>
        <td><button type="button" class="is-selected" aria-pressed="true" aria-label="Thursday 9 May 2017">9</button></td>
        <td><button type="button" aria-label="Friday 10 May 2017">10</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 11 May 2017">11</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 12 May 2017">12</button></td>
      </tr>
      <tr>
        <td><button type="button" aria-label="Monday 13 May 2017">13</button></td>
        <td><button type="button" aria-label="Tuesday 14 May 2017">14</button></td>
        <td><button type="button" aria-label="Wednesday 15 May 2017">15</button></td>
        <td><button type="button" aria-label="Thursday 16 May 2017">16</button></td>
        <td><button type="button" aria-label="Friday 17 May 2017">17</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 18 May 2017">18</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 19 May 2017">19</button></td>
      </tr>
      <tr>
        <td><button type="button" aria-label="Monday 20 May 2017">20</button></td>
        <td><button type="button" class="is-current" aria-label="Tuesday 21 May 2017">21</button></td>
        <td><button type="button" aria-label="Wednesday 22 May 2017">22</button></td>
        <td><button type="button" aria-label="Thursday 23 May 2017">23</button></td>
        <td><button type="button" aria-label="Friday 24 May 2017">24</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 25 May 2017">25</button></td>
        <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 26 May 2017">26</button></td>
      </tr>
      <tr>
        <td><button type="button" aria-label="Monday 27 May 2017">27</button></td>
        <td><button type="button" aria-label="Tuesday 28 May 2017">28</button></td>
        <td><button type="button" aria-label="Wednesday 29 May 2017">29</button></td>
        <td><button type="button" aria-label="Thursday 30 May 2017">30</button></td>
        <td><button type="button" aria-label="Friday 31 May 2017">31</button></td>
        <td><button type="button" class="is-faded" aria-label="Saturday 1 June 2017">1</button></td>
        <td><button type="button" class="is-faded" aria-label="Sunday 2 June 2017">2</button></td>
      </tr>
    </tbody>
  </table>
</div>
<div role="application" aria-label="Datepicker months" class="m-datepicker is-open" aria-hidden="false">
  <div class="m-datepicker__nav">
    <button type="button" aria-label="Go to previous year (2016)" class="a-button has-icon"><span class="fa fa-angle-left" aria-hidden="true"></span></button>
    <button type="button" class="m-datepicker__title a-button">2017</button>
    <button type="button" aria-label="Go to next year (2018)" class="a-button has-icon"><span class="fa fa-angle-right" aria-hidden="true"></span></button>
  </div>
  <table>
    <tbody class="m-datepicker__calendar">
      <tr>
        <td><button type="button" aria-label="January 2017">Jan</button></td>
        <td><button type="button" aria-label="February 2017">Feb</button></td>
        <td><button type="button" aria-label="March 2017">Mar</button></td>
        <td><button type="button" aria-label="April 2017">Apr</button></td>
      </tr>
      <tr>
        <td><button type="button" aria-label="May 2017">May</button></td>
        <td><button type="button" aria-label="June 2017">Jun</button></td>
        <td><button type="button" aria-label="July 2017">Jul</button></td>
        <td><button type="button" aria-label="August 2017">Aug</button></td>
      </tr>
      <tr>
        <td><button type="button" aria-label="September 2017">Sep</button></td>
        <td><button type="button" aria-label="October 2017">Oct</button></td>
        <td><button type="button" aria-label="November 2017">Nov</button></td>
        <td><button type="button" aria-label="December 2017">Dec</button></td>
      </tr>
    </tbody>
  </table>
</div>
<div role="application" aria-label="Datepicker years" class="m-datepicker is-open" aria-hidden="false">
  <div class="m-datepicker__nav">
    <button type="button" aria-label="Go back 12 years (1995-2006)" class="a-button has-icon"><span class="fa fa-angle-left" aria-hidden="true"></span></button>
    <button type="button" class="m-datepicker__title a-button">2007 - 2018</button>
    <button type="button" aria-label="Go forward 12 years (2019-2030)" class="a-button has-icon"><span class="fa fa-angle-right" aria-hidden="true"></span></button>
  </div>
  <table>
    <tbody class="m-datepicker__calendar">
      <tr>
        <td><button type="button">2007</button></td>
        <td><button type="button">2008</button></td>
        <td><button type="button">2009</button></td>
        <td><button type="button">2010</button></td>
      </tr>
      <tr>
        <td><button type="button">2011</button></td>
        <td><button type="button">2012</button></td>
        <td><button type="button">2013</button></td>
        <td><button type="button">2014</button></td>
      </tr>
      <tr>
        <td><button type="button">2015</button></td>
        <td><button type="button">2016</button></td>
        <td><button type="button">2017</button></td>
        <td><button type="button">2018</button></td>
      </tr>
    </tbody>
  </table>
</div>

Datepicker attached to an input field

Mo Tu We Th Fr Sa Su

In order to make the datepicker visible, just add the .is-open class, as demonstrated in the example.

In the rare case that you want your datepicker to open on the left side of the input field, just add the .m-datepicker--left class.

<div class="a-input has-icon-right">
  <label class="a-input__label" for="input-datepicker">Choose a date</label>
  <div class="a-input__wrapper">
    <input type="text" name="input-datepicker" id="input-datepicker" placeholder="dd/mm/yyyy" />
    <span class="fa fa-calendar is-clickable" role="button" aria-hidden="true" aria-expanded="true"></span>
    <div role="application" aria-label="Attached datepicker days" class="m-datepicker m-datepicker--fixed is-open" aria-hidden="false">
      <div class="m-datepicker__nav">
        <button type="button" aria-label="Go to previous month, April 2017" class="a-button has-icon"><span class="fa fa-angle-left" aria-hidden="true"></span></button>
        <button type="button" class="m-datepicker__title a-button">May 2017</button>
        <button type="button" aria-label="Go to next month, June 2017" class="a-button has-icon"><span class="fa fa-angle-right" aria-hidden="true"></span></button>
      </div>
      <table>
        <thead>
          <tr class="m-datepicker__days">
            <th scope="col"><span title="Monday">Mo</span></th>
            <th scope="col"><span title="Tuesday">Tu</span></th>
            <th scope="col"><span title="Wednesday">We</span></th>
            <th scope="col"><span title="Thursday">Th</span></th>
            <th scope="col"><span title="Friday">Fr</span></th>
            <th scope="col"><span title="Saturday">Sa</span></th>
            <th scope="col"><span title="Sunday">Su</span></th>
          </tr>
        </thead>
        <tbody class="m-datepicker__calendar">
          <tr>
            <td><button type="button" class="is-faded" aria-label="Monday 27 April 2017">27</button></td>
            <td><button type="button" class="is-faded" aria-label="Tuesday 28 April 2017">28</button></td>
            <td><button type="button" aria-label="Wednesday 1 May 2017">1</button></td>
            <td><button type="button" aria-label="Thursday 2 May 2017">2</button></td>
            <td><button type="button" aria-label="Friday 3 May 2017">3</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 4 May 2017">4</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 5 May 2017">5</button></td>
          </tr>
          <tr>
            <td><button type="button" aria-label="Monday 6 May 2017">6</button></td>
            <td><button type="button" aria-label="Tuesday 7 May 2017">7</button></td>
            <td><button type="button" aria-label="Wednesday 8 May 2017">8</button></td>
            <td><button type="button" class="is-selected" aria-pressed="true" aria-label="Thursday 9 May 2017">9</button></td>
            <td><button type="button" aria-label="Friday 10 May 2017">10</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 11 May 2017">11</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 12 May 2017">12</button></td>
          </tr>
          <tr>
            <td><button type="button" aria-label="Monday 13 May 2017">13</button></td>
            <td><button type="button" aria-label="Tuesday 14 May 2017">14</button></td>
            <td><button type="button" aria-label="Wednesday 15 May 2017">15</button></td>
            <td><button type="button" aria-label="Thursday 16 May 2017">16</button></td>
            <td><button type="button" aria-label="Friday 17 May 2017">17</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 18 May 2017">18</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 19 May 2017">19</button></td>
          </tr>
          <tr>
            <td><button type="button" aria-label="Monday 20 May 2017">20</button></td>
            <td><button type="button" class="is-current" aria-label="Tuesday 21 May 2017">21</button></td>
            <td><button type="button" aria-label="Wednesday 22 May 2017">22</button></td>
            <td><button type="button" aria-label="Thursday 23 May 2017">23</button></td>
            <td><button type="button" aria-label="Friday 24 May 2017">24</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Saturday 25 May 2017">25</button></td>
            <td><button type="button" class="is-unavailable" tabindex="-1" aria-disabled="true" aria-label="Sunday 26 May 2017">26</button></td>
          </tr>
          <tr>
            <td><button type="button" aria-label="Monday 27 May 2017">27</button></td>
            <td><button type="button" aria-label="Tuesday 28 May 2017">28</button></td>
            <td><button type="button" aria-label="Wednesday 29 May 2017">29</button></td>
            <td><button type="button" aria-label="Thursday 30 May 2017">30</button></td>
            <td><button type="button" aria-label="Friday 31 May 2017">31</button></td>
            <td><button type="button" class="is-faded" aria-label="Saturday 1 June 2017">1</button></td>
            <td><button type="button" class="is-faded" aria-label="Sunday 2 June 2017">2</button></td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>
// To open your datepicker on the left side of your input field
...
<div role="datepicker" class="m-datepicker m-datepicker--left is-open m-datepicker--fixed" aria-hidden="false">
...

Flyout

atoms/atoms.flyout

Default flyout

The default flyout will never be bigger than the element that triggers it.

<div class="m-flyout is-open">
  <button class="a-button" aria-expanded="true">Default flyout</button>
  <div class="m-flyout__content has-padding">
    <p>The default flyout will never be bigger than the element that triggers it.</p>
  </div>
</div>

Flyout sizes

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

… the element that triggers it.

<div class="m-flyout m-flyout--sm is-open">
  ...
</div>
<div class="m-flyout m-flyout--md is-open">
  ...
</div>
<div class="m-flyout m-flyout--lg is-open">
  ...
</div>
<div class="m-flyout m-flyout--full is-open">
  ...
</div>

Flyout options

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<div class="m-flyout m-flyout--right m-flyout--md is-open">
  ...
</div>

No padding here.

<div class="m-flyout m-flyout--sm is-open d-flyout--md">
  <button class="a-button" aria-expanded="true">Flyout without padding</button>
  <div class="m-flyout__content">
    <p>No padding here.</p>
  </div>
</div>
<div class="m-flyout m-flyout--full m-flyout--scrollable is-open">
  <label class="a-input__label" for="input-autocomplete">Flyout as an autocomplete</label>
  <div class="a-input">
    <input type="text" name="input-autocomplete" id="input-autocomplete" placeholder="Placeholder" aria-expanded="true" />
  </div>
  <div class="m-flyout__content">
    <ul class="m-selectable-list m-selectable-list--no-border">
      <li>...</li>
    </ul>
  </div>
</div>

Sometimes you might want to programmatically open the flyout above your clicked element (e.g. when you're at the end of the page and there is no free space below enough). To fix the dropshadow when doing this, add the .opens-above class to your flyout.

Arma virumque cano, Troiae qui primus ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris iactatus et alto vi superum saevae memorem Iunonis ob iram.

<div class="m-flyout is-open opens-above">
  ...
</div>

Gallery

molecules/molecules.gallery
<ul class="m-gallery">
  <li class="m-gallery__item m-gallery__item--preview">
    <a rel="gallery" href="https://placeimg.com/1000/600/tech" title="Item 1">
      <img src="https://placeimg.com/1000/600/tech" alt="Gallery image 1.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 2">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 2.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 3">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 3.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 4">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 4.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 5">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 5.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 6">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 6.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 7">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 7.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 8">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 8.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 9">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 9.">
    </a>
  </li>
  <li class="m-gallery__item">
    <a rel="gallery" href="https://placeimg.com/320/320/tech" title="Item 10">
      <img src="https://placeimg.com/320/320/tech" alt="Gallery image 10.">
    </a>
  </li>
</ul>

Icon list

molecules/molecules.icon-list

Accessibility note. Make sure there is enough contrast between the icon list and the background. See the contrast success criterion (external).

<ul class="m-icon-list">
    <li><a href="#" aria-label="Facebook"><span class="fa fa-facebook" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Twitter"><span class="fa fa-twitter" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="LinkedIn"><span class="fa fa-linkedin" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Instagram"><span class="fa fa-instagram" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Google+"><span class="fa fa-google-plus" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Snapchat"><span class="fa fa-snapchat-ghost" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-icon-list m-icon-list--negative">
    <li><a href="#" aria-label="Facebook"><span class="fa fa-facebook" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Twitter"><span class="fa fa-twitter" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="LinkedIn"><span class="fa fa-linkedin" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Instagram"><span class="fa fa-instagram" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Google+"><span class="fa fa-google-plus" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Snapchat"><span class="fa fa-snapchat-ghost" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-icon-list m-icon-list--horizontal">
    <li><a href="#" aria-label="Facebook"><span class="fa fa-facebook" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Twitter"><span class="fa fa-twitter" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="LinkedIn"><span class="fa fa-linkedin" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Instagram"><span class="fa fa-instagram" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Google+"><span class="fa fa-google-plus" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Snapchat"><span class="fa fa-snapchat-ghost" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-icon-list m-icon-list--horizontal m-icon-list--negative">
    <li><a href="#" aria-label="Facebook"><span class="fa fa-facebook" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Twitter"><span class="fa fa-twitter" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="LinkedIn"><span class="fa fa-linkedin" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Instagram"><span class="fa fa-instagram" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Google+"><span class="fa fa-google-plus" aria-hidden="true"></span></a></li>
    <li><a href="#" aria-label="Snapchat"><span class="fa fa-snapchat-ghost" aria-hidden="true"></span></a></li>
</ul>

Image

molecules/molecules.image
Figure image.
<figure class="m-image">
  <img src="https://placeimg.com/1000/500/tech" alt="Figure image.">
</figure>
<figure class="m-image">
  <img src="https://placeimg.com/1000/500/tech" alt="Figure image.">
  <a href="#" class="m-image__copyright a-copyright" aria-expanded="true">
    <div class="a-copyright__sign">
      <span class="fa fa-copyright" aria-hidden="true"></span>
        <span class="u-screen-reader-only">Copyright </span>
    </div>
    <span class="a-copyright__label">Lorem Pixel</span>
  </a>
</figure>

Note that you need to add/remove the aria-expanded attribute programmatically.

Modal

molecules/molecules.modal

Accessibility note. Note that focus management is essential (external) for a modal dialog to be accessible.

<div class="m-modal" role="dialog" aria-modal="true" aria-labelledby="myModalTitle" aria-describedby="myModelDesc">
  <div class="m-modal__content">
    <div class="m-modal__header u-margin-bottom-xs">
      <button class="m-modal__close a-button-transparent a-button--default has-icon" aria-label="Close"><span class="fa fa-close" aria-hidden="true"></span></button>
      <h4 id="myModalTitle" class="h6">Aeneis</h4>
    </div>
    <div class="u-margin-bottom">
      <p id="myModalDesc">...</p>
    </div>
    <div class="m-modal__footer">
      <button class="a-button">Got it</button>
      <button class="a-button-outline">Cancel</button>
    </div>
  </div>
</div>
<div class="m-modal m-modal--large" role="dialog" aria-modal="true" aria-labelledby="myLargeModalTitle" aria-describedby="myLargeModelDesc">
  <div class="m-modal__content">
    <div class="m-modal__header u-margin-bottom-xs">
      <button class="m-modal__close a-button-transparent a-button--default has-icon" aria-label="Close"><span class="fa fa-close" aria-hidden="true"></span></button>
      <h4 id="myLargeModalTitle" class="h6">Aeneis</h4>
    </div>
    <div class="u-margin-bottom">
      <p id="myLargeModalDesc">...</p>
    </div>
    <div class="m-modal__footer">
      <button class="a-button">Got it</button>
      <button class="a-button-outline">Cancel</button>
    </div>
  </div>
</div>

Navigation

molecules/molecules.navigation

Accessibility note. In order to make your navigation accessible make sure to follow the ARIA design patterns for tabs (external). Also note that none of the examples below include an actual tab panel, which is part of the design pattern.

List navigation

<ul class="m-nav-list" role="tablist" aria-label="My tablist">
  <li><a href="#" role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</a></li>
  <li><a class="is-active" href="#" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></a></li>
  <li><a class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</a></li>
</ul>
<ul class="m-nav-list m-nav-list--left">
  <li><a href="#" role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</a></li>
  <li><a class="is-active" href="#" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></a></li>
  <li><a class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</a></li>
</ul>

In order to maintain correct semantics, you also can use buttons inside a `nav-list`. Use this option when working with click events, instead of linking to another page.

<ul class="m-nav-list" role="tablist" aria-label="My tablist">
  <li><button role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</button></li>
  <li><button class="is-active" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></button></li>
  <li><button class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</button></li>
</ul>
<ul class="m-nav-list m-nav-list--left" role="tablist" aria-label="My tablist">
  <li><button role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</button></li>
  <li><button class="is-active" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></button></li>
  <li><button class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</button></li>
</ul>

Tab navigation

<ul class="m-nav-tabs" role="tablist" aria-label="My tablist">
  <li><a href="#" role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</a></li>
  <li><a class="is-active" href="#" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></a></li>
  <li><a class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</a></li>
</ul>
<ul class="m-nav-tabs m-nav-tabs--left" role="tablist" aria-label="My tablist">
  <li><a href="#" role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</a></li>
  <li><a class="is-active" href="#" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></a></li>
  <li><a class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</a></li>
</ul>
<ul class="m-nav-tabs m-nav-tabs--right" role="tablist" aria-label="My tablist">
  <li><a href="#" role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</a></li>
  <li><a class="is-active" href="#" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></a></li>
  <li><a class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</a></li>
</ul>
<ul class="m-nav-tabs m-nav-tabs--left" role="tablist" aria-label="My tablist">
  <li><button role="tab" aria-selected="false"><span class="fa fa-lightbulb-o" aria-hidden="true"></span>Thomas Edison</a></li>
  <li><button class="is-active" role="tab" aria-selected="true">Leonardo da Vinci <span class="a-badge">67</span></button></li>
  <li><button class="is-disabled" role="tab" aria-disabled="true" aria-selected="false">Albert Einstein</button></li>
</ul>

Note that on mobile devices .m-nav-tabs has the exact same appearance as .m-nav-list.

Overlay

molecules/molecules.overlay

This simple modal is just one example of what can be put inside an overlay.

In order to make the overlay visible, just add the .is-active class, as demonstrated in the example.

<div class="m-overlay">
  <div class="m-overlay__inner">
    ...
  </div>
</div>
<div class="m-overlay is-active">
  ...
</div>

Pagination

molecules/molecules.pagination

Regular pagination

  • Page 1 of 6
<ul class="m-pagination">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li class="m-pagination__next"><a href="#" aria-label="Go to the next page"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination">
  <li class="m-pagination__prev"><a class="is-disabled" aria-label="Go to the previous page (disabled)"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li class="m-pagination__label"><span class="u-screen-reader-only">Page </span>1 of 6</li>
  <li class="m-pagination__next"><a href="#" aria-label="Go to the next page"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li>...</li>
  <li><a href="#" aria-label="Go to page 3">3</a></li>
  <li><a href="#" aria-label="Go to page 4">4</a></li>
  <li><a href="#" aria-label="Go to page 5">5</a></li>
  <li><a class="is-active" href="#" aria-label="Go to page 6 (current page)">6</a></li>
  <li class="m-pagination__next"><a class="is-disabled" aria-label="Go to the next page (disabled)"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>

Outline pagination

  • Page 1 of 6
<ul class="m-pagination m-pagination--outline">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li class="m-pagination__next"><a href="#" aria-label="Go to the next page"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination m-pagination--outline">
  <li class="m-pagination__prev"><a class="is-disabled" aria-label="Go to the previous page (disabled)"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li class="m-pagination__label"><span class="u-screen-reader-only">Page </span>1 of 6</li>
  <li class="m-pagination__next"><a href="#" aria-label="Go to the next page"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination m-pagination--outline">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li>...</li>
  <li><a href="#" aria-label="Go to page 3">3</a></li>
  <li><a href="#" aria-label="Go to page 4">4</a></li>
  <li><a href="#" aria-label="Go to page 5">5</a></li>
  <li><a class="is-active" href="#" aria-label="Go to page 6 (current page)">6</a></li>
  <li class="m-pagination__next"><a class="is-disabled" aria-label="Go to the next page (disabled)"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>

Pagination sizes

  • Page 1 of 6
<ul class="m-pagination m-pagination--small">
  <li class="m-pagination__prev"><a class="is-disabled" aria-label="Go to the previous page (disabled)"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li class="m-pagination__label"><span class="u-screen-reader-only">Page </span>1 of 6</li>
  <li class="m-pagination__next"><a href="#" aria-label="Go to the next page"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination m-pagination--large">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li>...</li>
  <li><a href="#" aria-label="Go to page 3">3</a></li>
  <li><a href="#" aria-label="Go to page 4">4</a></li>
  <li><a href="#" aria-label="Go to page 5">5</a></li>
  <li><a class="is-active" href="#" aria-label="Go to page 6 (current page)">6</a></li>
  <li class="m-pagination__next"><a class="is-disabled" aria-label="Go to the next page (disabled)"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination m-pagination--outline m-pagination--large">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li class="m-pagination__next"><a href="#" aria-label="Go to the next page"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>
<ul class="m-pagination m-pagination--outline m-pagination--small">
  <li class="m-pagination__prev"><a href="#" aria-label="Go to the previous page"><span class="fa fa-angle-left" aria-hidden="true"></span></a></li>
  <li>...</li>
  <li><a href="#" aria-label="Go to page 3">3</a></li>
  <li><a href="#" aria-label="Go to page 4">4</a></li>
  <li><a href="#" aria-label="Go to page 5">5</a></li>
  <li><a class="is-active" href="#" aria-label="Go to page 6 (current page)">6</a></li>
  <li class="m-pagination__next"><a class="is-disabled" aria-label="Go to the next page (disabled)"><span class="fa fa-angle-right" aria-hidden="true"></span></a></li>
</ul>

Progress

molecules/molecules.progress
Step 1 of 5
<div class="m-progress">
  <div class="m-progress__label">Step 1 of 5</div>
  <div class="m-progress__inner">
    <div class="m-progress__bar" style="width: 20%"></div>
  </div>
</div>
20%
<div class="m-progress m-progress--inline">
  <div class="m-progress__inner">
    <div class="m-progress__bar" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%"></div>
  </div>
  <div class="m-progress__label">20%</div>
</div>
20%
<div class="m-progress m-progress--inline">
  <div class="m-progress__label">20%</div>
  <div class="m-progress__inner">
    <div class="m-progress__bar" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%"></div>
  </div>
</div>

20%

<div class="m-progress">
  <div class="m-progress__inner">
    <div class="m-progress__bar" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
      <div class="a-tooltip a-tooltip--primary a-tooltip--top">
        <p>20%</p>
      </div>
    </div>
  </div>
</div>

Range slider

molecules/molecules.range-slider

Accessibility note. Also check the ARIA best practices (external) in order to make the range slider accessible.

50%

<div class="m-range-slider">
  <div class="m-range-slider__inner">
    <div class="m-range-slider__bar" style="width: 50%"></div>
    <span class="m-range-slider__handle" style="left: 50%;" role="slider" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" tabindex="0">
      <div class="m-range-slider__tooltip a-tooltip a-tooltip--primary a-tooltip--top">
        <p>50%</p>
      </div>
    </span>
  </div>
</div>

20%

80%

<div class="m-range-slider">
  <div class="m-range-slider__inner">
    <div class="m-range-slider__bar" style="left: 20%; width: 60%"></div>
    <span class="m-range-slider__handle" style="left: 20%;" role="slider" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" tabindex="0">
      <div class="m-range-slider__tooltip a-tooltip a-tooltip--primary a-tooltip--top">
        <p>20%</p>
      </div>
    </span>
    <span class="m-range-slider__handle" style="left: 80%;" role="slider" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" tabindex="0">
      <div class="m-range-slider__tooltip a-tooltip a-tooltip--primary a-tooltip--top">
        <p>80%</p>
      </div>
    </span>
  </div>
</div>
50%
<div class="m-range-slider">
  <div class="m-range-slider__inner">
    <div class="m-range-slider__bar" style="width: 50%"></div>
    <span class="m-range-slider__handle" style="left: 50%;" role="slider" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" tabindex="0">
      <span class="m-range-slider__value">50%</span>
    </span>
  </div>
</div>
20% 80%
<div class="m-range-slider">
  <div class="m-range-slider__inner">
    <div class="m-range-slider__bar" style="left: 20%; width: 60%"></div>
    <span class="m-range-slider__handle" style="left: 20%;" role="slider" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" tabindex="0">
      <span class="m-range-slider__value">20%</span>
    </span>
    <span class="m-range-slider__handle" style="left: 80%;" role="slider" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" tabindex="0">
      <span class="m-range-slider__value">80%</span>
    </span>
  </div>
</div>

Selectable list

molecules/molecules.selectable-list
<div>
  <ul class="m-selectable-list">
    <li><a href="#" class="m-selectable-list__item">Thomas Edison</a></li>
    <li><a href="#" class="m-selectable-list__item m-selectable-list__item--active" aria-current="page">Leonardo da Vinci</a></li>
    <li><a href="#" class="m-selectable-list__item">Albert Einstein</a></li>
  </ul>
</div>
<div>
  <ul class="m-selectable-list m-selectable-list--no-border">
    <li><a href="#" class="m-selectable-list__item">Thomas Edison</a></li>
    <li><a href="#" class="m-selectable-list__item m-selectable-list__item--active" aria-current="page">Leonardo da Vinci</a></li>
    <li><a href="#" class="m-selectable-list__item">Albert Einstein</a></li>
  </ul>
</div>
  • Thomas Edison
  • Leonardo da Vinci
  • Albert Einstein
<div>
  <ul class="m-selectable-list>
    <li class="m-selectable-list__item">Thomas Edison</li>
    <li class="m-selectable-list__item m-selectable-list__item--active" aria-current="page">Leonardo da Vinci</li>
    <li class="m-selectable-list__item">Albert Einstein</li>
  </ul>
</div>

Step indicator

molecules/molecules.step-indicator
  1. Step 1 (completed)
  2. Step 2 (completed)
  3. Step 3
  4. Step 4
<ol class="m-step-indicator">
  <li class="is-completed"><span class="m-step-indicator__label">Step 1<span class="u-screen-reader-only"> (completed)</span></span></li>
  <li class="is-completed"><span class="m-step-indicator__label">Step 2<span class="u-screen-reader-only"> (completed)</span></span></li>
  <li class="is-active" aria-current="step"><span class="m-step-indicator__label">Step 3</span></li>
  <li><span class="m-step-indicator__label">Step 4</span></li>
</ol>

Tag

molecules/molecules.tag
My fancy tag
<div class="m-tag">
  <span class="m-tag__label">My fancy tag</span>
</div>

Accessibility note. Note that you can't solely rely on a placeholder for creating new tags.

<div class="m-tag">
  <label for="new-tag" class="u-screen-reader-only">Insert new tag</label>
  <input id="new-tag" class="m-tag__input" type="text" placeholder="Insert new tag" />
</div>
My tag with delete button
<div class="m-tag">
  <span class="m-tag__label">My tag with delete button</span>
  <button class="a-button-transparent a-button--small a-button--danger has-icon" aria-label="Delete"><span class="fa fa-close" aria-hidden="true"></span></button>
</div>
My tag with icon
My other tag with icon
<div class="m-tag">
  <button class="a-button a-button--default a-button--small has-icon" aria-label="Accept"><span class="fa fa-check" aria-hidden="true"></span></button>
  <span class="m-tag__label">My tag with icon</span>
 </div>
<div class="m-tag">
  <button class="a-button a-button--small a-button--success has-icon" aria-label="Accept"><span class="fa fa-check" aria-hidden="true"></span></button>
  <span class="m-tag__label">My other tag with icon</span>
</div>

Upload

molecules/molecules.upload
Maximum file size: 4MB
<div class="m-upload">
  <div class="m-upload__inner">
    <div class="m-upload__dropzone">
      <input id="upload" type="file" multiple="multiple" class="m-upload__input">
      <div class="m-upload__content">
        <label for="upload" class="m-upload__message">Drag a file here or click to browse</label>
      </div>
    </div>
  </div>
  <small class="m-upload__description">Maximum file size: 4MB</small>
</div>
Maximum file size: 4MB
<div class="m-upload is-disabled">
  <div class="m-upload__inner">
    <div class="m-upload__dropzone">
      <input id="upload" type="file" multiple="multiple" class="m-upload__input" disabled>
      <div class="m-upload__content">
        <label for="upload-2" class="m-upload__message">Drag a file here or click to browse</label>
      </div>
    </div>
  </div>
  <small class="m-upload__description">Maximum file size: 4MB</small>
</div>

my-doc.pdf and my-pic.jpg

Maximum file size: 4MB
  • my-doc.pdf
  • my-pic.jpg
  • my-unallowed-file.xml This file format is not allowed.
<div class="m-upload">
  <div class="m-upload__inner">
    <div class="m-upload__dropzone">
      <input id="upload-3" type="file" multiple="multiple" class="m-upload__input">
      <div class="m-upload__content">
        <label for="upload-3" class="m-upload__message u-margin-bottom">Drag a file here or click to browse</label>
        <p class="m-upload__uploads u-text-bold u-margin-bottom-xs">my-doc.pdf and my-pic.jpg</p>
        <div class="m-upload__progress m-progress">
          <div class="m-progress__inner">
            <div class="m-progress__bar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <small class="m-upload__description">Maximum file size: 4MB</small>
  <ul class="m-upload__files">
    <li>
      <span class="fa fa-file-o" aria-hidden="true"></span>
      <span class="m-upload__filename">my-doc.pdf</span>
      <button class="m-upload__delete a-button-transparent a-button--default a-button--small has-icon"><span class="fa fa-close" aria-label="Close" aria-hidden="true"></span></button>
    </li>
    <li>
      <span class="fa fa-file-o" aria-hidden="true"></span>
      <span class="m-upload__filename">my-pic.jpg</span>
      <button class="m-upload__delete a-button-transparent a-button--default a-button--small has-icon"><span class="fa fa-close" aria-label="Close" aria-hidden="true"></span></button>
    </li>
    <li class="is-error">
      <span class="fa fa-warning" aria-hidden="true"></span>
      <span class="m-upload__filename">my-unallowed-file.xml</span>
      <span class="m-upload__error">This file format is not allowed.</span>
      <button class="m-upload__delete a-button-transparent a-button--danger a-button--small has-icon"><span class="fa fa-close" aria-label="Close" aria-hidden="true"></span></button>
    </li>
  </ul>
</div>

Organisms

Article

organisms/organisms.article

Use this wrapper class to style basic html tags without any extra classes.

Heading 1

Lorem ipsum dolor sit amet consectetur adipisicing elit.

Lorem ipsum dolor sit amet consectetur adipisicing elit.

Heading 2

  • Lorem ipsum dolor
  • sit:
    • amet
    • consectetur
  • adipisicing elit

Heading 3

  1. Lorem ipsum dolor
  2. sit:
    • amet
    • consectetur
  3. adipisicing elit

Heading 4

Lorem ipsum dolor sit amet consectetur adipisicing elit.

Lorem ipsum dolor sit amet consectetur adipisicing elit.

Heading 5
  • Lorem ipsum dolor
  • sit:
    • amet
    • consectetur
  • adipisicing elit
Heading 6
  1. Lorem ipsum dolor
  2. sit:
    • amet
    • consectetur
  3. adipisicing elit
<div class="o-article">
  ...
</div>

Digi pattern

organisms/organisms.digi-pattern
Digi pattern image

Digi pattern

Natoque libero nisl vel euismod sapien, lectus eget mus nec placerat magnis, leo penatibus elit scelerisque. Viverra netus senectus ullamcorper ipsum aenean vitae curabitur, est rutrum hendrerit feugiat inceptos varius ex suspendisse.

Helper classes to create a Digi pattern effect in your layout:

  • Add the .o-digi-pattern class on the top layer element and set the .o-digi-pattern__title class on the element the pattern should start from.
  • Make sure to add an element with the .o-digi-pattern__shapes class as a direct child of your starting element.
  • Text should always be displayed in front of the pattern, images and other content should be displayed behind the pattern. You can use the .o-digi-pattern__front and .o-digi-pattern__behind helper classes or set the z-index yourself.
  • The Digi pattern works for the most part on relative positioning and (vertical) dimensions so you might have to tweak your base layout to accomodate the pattern layout.
  • The border width is .1875rem and is exposed as a variable ($digi-pattern-border-width) in case you want to tweak the pattern or want to create new patterns.

<div class="u-bg-quinary o-digi-pattern">
  <div class="o-digi-pattern__behind">
    <img src="https://placeimg.com/800/800" alt="Digi pattern image" />
  </div>
  <article>
    <header>
      <h1 class="o-digi-pattern__title">
        Digi pattern
        <span class="o-digi-pattern__shapes"></span>
      </h1>
    </header>
    <section>
      <p>Natoque libero nisl vel euismod sapien, lectus eget mus nec placerat magnis, leo penatibus elit scelerisque. Viverra netus senectus ullamcorper ipsum aenean vitae curabitur, est rutrum hendrerit feugiat inceptos varius ex suspendisse.</p>
    </section>
  </article>
</div>
Digi pattern image

Digi pattern

Natoque libero nisl vel euismod sapien, lectus eget mus nec placerat magnis, leo penatibus elit scelerisque. Viverra netus senectus ullamcorper ipsum aenean vitae curabitur, est rutrum hendrerit feugiat inceptos varius ex suspendisse.

An alternative version of the Digi-pattern, using less complex shapes in desktop view and a more complex pattern on mobile.

<div class="u-bg-quinary o-digi-pattern o-digi-pattern--alt">
  <div class="o-digi-pattern__behind">
    <img src="https://placeimg.com/800/800" alt="Digi pattern image" />
  </div>
  <article>
    <header>
      <h1 class="o-digi-pattern__title">
        Digi pattern
        <span class="o-digi-pattern__shapes"></span>
      </h1>
    </header>
    <section>
      <p>Natoque libero nisl vel euismod sapien, lectus eget mus nec placerat magnis, leo penatibus elit scelerisque. Viverra netus senectus ullamcorper ipsum aenean vitae curabitur, est rutrum hendrerit feugiat inceptos varius ex suspendisse.</p>
    </section>
  </article>
</div>

Footer

organisms/organisms.footer

For a visible example of the footer, take a look at the very bottom of this page.

<footer class="o-footer">
  <span class="o-footer__label">© stad Antwerpen</span>
  <a href="#" class="o-footer__button a-button a-button--secondary has-icon" aria-label="Go back to top">
    <span class="fa fa-arrow-up" aria-hidden="true"></span>
  </a>
</footer>

Header

organisms/organisms.header

Accessibility note. Don't forget to assign the id="main-content" to an element at the beginning of the content for the skiplink to work. For example, the <h1> or <main>.

<header class="o-header">
  <a href="#main-content" class="a-button-negative o-header__button o-header__button-skip">Skip to main content</a>
  <a href="#" class="o-header__logo">
    <img src="images/digipolis-logo.svg" alt="Homepage Digipolis.">
  </a>
</header>
<header class="o-header">
  <div class="o-header__content-wrapper">
    <div class="o-header__content">
      <a href="#main-content" class="a-button-negative o-header__button o-header__button-skip">Skip to main content</a>
      <a href="#" class="o-header__logo">
        <img src="images/digipolis-logo.svg" alt="Homepage Digipolis.">
      </a>
    </div>
    <div class="o-header__menu-items">
      <a href="#" class="a-button-negative o-header__button">Menu button</a>
    </div>
  </div>
</header>

Navigation menu

aui/aui.navigation-menu

Navigation menu that may be used for global navigation on an application. Please note that for optimal mobile layouts, the menu should manually be positioned fixed on the page. For flexibility purposes, this styling is not included in the CSS classes.

<div class="o-menu">
    <div class="o-menu__tabs-wrapper">
        <div class="o-menu__tab">
            <div class="o-menu__tab-wrapper">
                <div class="o-menu__tab-header">
                    <div class="o-menu__tab-title">
                        <span class="o-menu__icon o-menu__tab-icon fa fa-bars"></span>
                        <a class="o-menu__link" href="#organisms-navigation-menu">Link A</a>
                    </div>
                </div>
            </div>
        </div>
        <div class="o-menu__tab is-active">
            <div class="o-menu__tab-wrapper">
                <div class="o-menu__tab-header">
                    <div class="o-menu__tab-title">
                        <span class="o-menu__icon o-menu__tab-icon fa fa-file"></span>
                        <a class="o-menu__link" href="#organisms-navigation-menu">Link B</a>
                    </div>
                    <span class="o-menu__icon o-menu__submenu-icon fa fa-angle-down"></span>
                </div>
                <div class="o-menu__submenu is-active">
                    <div class="o-menu__submenu-content-wrapper">
                        <ul class="m-nav-list">
                            <li><a>First Layer A</a></li>
                            <li class="is-active">
                                <a>First Layer B <span class="o-menu__icon o-menu__submenu-icon fa fa-angle-down"></span></a>
                                <div class="o-menu__submenu">
                                    <div class="o-menu__submenu-content-wrapper">
                                        <ul class="m-nav-list">
                                            <li><a>Second Layer A</a></li>
                                            <li><a>Second Layer B</a></li>
                                        </ul>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>
        <div class="o-menu__tab">
            <div class="o-menu__tab-wrapper">
                <div class="o-menu__tab-header">
                    <div class="o-menu__tab-title">
                        <span class="o-menu__icon o-menu__tab-icon fa fa-bars"></span>
                        <a class="o-menu__link" href="#organisms-navigation-menu">Link C</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="o-menu__hide-cta">
        <a href="#organisms-navigation-menu">Hide Menu <span class="fa fa-angle-double-left"></span></a>
    </div>
</div>
                
The Navigation Menu may also be 'docked'. This is achieved by only adding the is-docked class to the o-menu element. Docked behaviour is only relevant for desktop layouts.
<div class="o-menu is-docked">
    <!-- Exactly the same markup as the first example -->
</div>
                 

Additionally, the styling classes include utility classes for creating a panel that will overlay the whole page, designed to contain a Navigation list. The use is intended for mobile only.

Use the is-visible class on the o-menu__slide-in-submenu to create an animation where the second menu slides from the right over the first menu.

<div class="o-menu__navigation-pane is-visible">
    <div class="o-navigation-pane__overlay"></div>
    <div class="o-navigation-pane__wrapper">
        <div class="o-menu__main-submenu"></div>
        <div class="o-menu__slide-in-submenu is-visible"> </div>
    </div>
</div>

                 

Slideshow

Regular slideshow

organisms/organisms.slideshow
Slideshow image 1.
Slideshow image 2.
Slideshow image 3.
<div class="o-slideshow">
  <div class="o-slideshow__inner">
    <button class="a-button o-slideshow__prev">
      <span class="u-screen-reader-only">Previous image</span>
    </button>
    <div class="o-slideshow__slides">
      <figure class="o-slideshow__slide is-active">
        <div class="o-slideshow__image">
          <div class="m-image">
            <img src="https://placeimg.com/1000/500/tech" alt="Slideshow image 1.">
            <div class="m-image__copyright a-copyright" aria-haspopup="true">
              <div class="a-copyright__sign"><span class="fa fa-copyright" aria-hidden="true"></span></div>
              <span class="a-copyright__label">Lorem Pixel</span>
            </div>
          </div>
        </div>
      </figure>
      <figure class="o-slideshow__slide">
        <div class="o-slideshow__image">
          <div class="m-image">
            <img src="https://placeimg.com/1000/500/tech" alt="Slideshow image 2.">
            <div class="m-image__copyright a-copyright" aria-haspopup="true">
              <div class="a-copyright__sign"><span class="fa fa-copyright" aria-hidden="true"></span></div>
              <span class="a-copyright__label">Lorem Pixel</span>
            </div>
          </div>
        </div>
      </figure>
      <figure class="o-slideshow__slide">
        <div class="o-slideshow__image">
          <div class="m-image">
            <img src="https://placeimg.com/1000/500/tech" alt="Slideshow image 3.">
            <div class="m-image__copyright a-copyright" aria-haspopup="true">
              <div class="a-copyright__sign"><span class="fa fa-copyright" aria-hidden="true"></span></div>
              <span class="a-copyright__label">Lorem Pixel</span>
            </div>
          </div>
        </div>
      </figure>
    </div>
    <button class="a-button o-slideshow__next">
      <span class="u-screen-reader-only">Next image</span>
    </button>
  </div>
  <figcaption class="o-slideshow__footer">
    <span class="o-slideshow__counter">1 | 3</span>
    Some fancy caption about this photo
  </figcaption>
</div>

Slideshow overlay

Slideshow image 1.
Slideshow image 2.
Slideshow image 3.
<div class="m-overlay">
  <label for="input-slideshow"><a class="m-overlay__button"><span class="fa fa-close"><span class="u-screen-reader-only">Close overlay</span></span></a></label>
  <div class="m-overlay__slideshow o-slideshow o-slideshow--transparent">
    <div class="o-slideshow__inner">
      <div class="o-slideshow__prev o-slideshow__prev--outside"></div>
      <div class="o-slideshow__slides">
        <figure class="o-slideshow__slide is-active">
          <div class="o-slideshow__image">
            <div class="m-image">
              <img src="https://placeimg.com/1000/500/tech" alt="Slideshow image 1.">
              <div class="m-image__copyright a-copyright" aria-haspopup="true">
                <div class="a-copyright__sign"><span class="fa fa-copyright" aria-hidden="true"></span></div>
                <span class="a-copyright__label">Lorem Pixel</span>
              </div>
            </div>
          </div>
        </figure>
        <figure class="o-slideshow__slide">
          <div class="o-slideshow__image">
            <div class="m-image">
              <img src="https://placeimg.com/1000/500/tech" alt="Slideshow image 2.">
              <div class="m-image__copyright a-copyright" aria-haspopup="true">
                <div class="a-copyright__sign"><span class="fa fa-copyright" aria-hidden="true"></span></div>
                <span class="a-copyright__label">Lorem Pixel</span>
              </div>
            </div>
          </div>
        </figure>
        <figure class="o-slideshow__slide">
          <div class="o-slideshow__image">
            <div class="m-image">
              <img src="https://placeimg.com/1000/500/tech" alt="Slideshow image 3.">
              <div class="m-image__copyright a-copyright" aria-haspopup="true">
                <div class="a-copyright__sign"><span class="fa fa-copyright" aria-hidden="true"></span></div>
                <span class="a-copyright__label">Lorem Pixel</span>
              </div>
            </div>
          </div>
        </figure>
      </div>
      <div class="o-slideshow__next o-slideshow__next--outside"></div>
    </div>
    <figcaption class="o-slideshow__footer">
      <span class="o-slideshow__counter">1 | 3</span>
      Some fancy caption about this photo
    </figcaption>
  </div>
</div>

Tag list

organisms/organisms.tag-list
  • Thomas Edison
  • Leonardo da Vinci
  • Albert Einstein
<ul class="o-tag-list">
  <li class="m-tag"><span class="m-tag__label">Thomas Edison</span></li>
  <li class="m-tag"><span class="m-tag__label">Leonardo da Vinci</span></li>
  <li class="m-tag"><span class="m-tag__label">Albert Einstein</span></li>
</ul>
<ul class="o-tag-list">
  <li class="m-tag"><span class="m-tag__label">Thomas Edison</span></li>
  <li class="m-tag"><span class="m-tag__label">Leonardo da Vinci</span></li>
  <li class="m-tag"><span class="m-tag__label">Albert Einstein</span></li>
</ul>
  • Thomas Edison
  • Leonardo da Vinci
  • Albert Einstein
<ul class="o-tag-list">
  <li class="m-tag">
    <span class="m-tag__label">Thomas Edison</span>
    <button class="a-button-transparent a-button--small a-button--danger has-icon" aria-label="Delete"><span class="fa fa-close" aria-hidden="true"></span></button>
  </li>
  <li class="m-tag">
    <span class="m-tag__label">Leonardo da Vinci</span>
    <button class="a-button-transparent a-button--small a-button--danger has-icon" aria-label="Delete"><span class="fa fa-close" aria-hidden="true"></span></button>
  </li>
  <li class="m-tag">
    <span class="m-tag__label">Albert Einstein</span>
    <button class="a-button-transparent a-button--small a-button--danger has-icon" aria-label="Delete"><span class="fa fa-close" aria-hidden="true"></span></button>
  </li>
</ul>
  • Thomas Edison
  • Leonardo da Vinci
  • Albert Einstein
<ul class="o-tag-list">
  <li class="m-tag">
    <button class="a-button a-button--default a-button--small has-icon" aria-label="Accept"><span class="fa fa-check" aria-hidden="true"></span></button>
    <span class="m-tag__label">Thomas Edison</span>
  </li>
  <li class="m-tag">
    <button class="a-button a-button--success a-button--small has-icon" aria-label="Accept"><span class="fa fa-check" aria-hidden="true"></span></button>
    <span class="m-tag__label">Leonardo da Vinci</span>
  </li>
  <li class="m-tag">
    <button class="a-button a-button a-button--small has-icon" aria-label="Drag"><span class="fa fa-arrows" aria-hidden="true"></span></button>
    <span class="m-tag__label">Albert Einstein</span>
  </li>
</ul>