In this styleguide you'll find all the necessary info you will need in order to start building digital layouts or ACPaaS apps.
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/acpaas_branding_scss/4.3.0/main.min.css">
You can even import it directly in your (S)CSS:
@import url("https://cdn.antwerpen.be/acpaas_branding_scss/4.3.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/acpaas --save
Then, you can import everything in your Sass setup (main.min.css
also available):
@import '~@a-ui/acpaas/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/acpaas/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 ACPaaS 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 accessibility note 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 ACPaaS styling guidelines.
Favicons
https://github.com/a-ui/acpaas_branding_favicons (external)
Favicons for ACPaaS apps.
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.mixinsMore 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.functionsMore 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.colorsAn 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.variablesAn 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-base
: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Arial, sans-serif -
$font-family-headings
: 'Titillium Web', 'Helvetica Neue', Helvetica, Arial, sans-serif -
$font-family-monospace
: Menlo, Monaco, Consolas, 'Courier New', monospace -
$brand-primary
: #242d9e -
$brand-secondary
: #322a56 -
$brand-tertiary
: #01afb8 -
$brand-quaternary
: #1730e2 -
$brand-quinary
: #8e87fc -
$brand-senary
: #e24814 -
$state-success
: #00816b -
$state-warning
: #f18a00 -
$state-danger
: #da291c -
$header-bg
: #322a56 -
$header-border
: rgba($black, 0) -
$header-height
: calc(3rem + 1px) -
$header-btn-bg
: #322a56 -
$header-btn-color
: #fff
Base
Layout
base/base.layoutMedia
base/base.mediaTypography
base/base.typographyAccessibility 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>
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.backgroundClasses 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.layoutThe .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.spacingHelper classes for adding or removing space between elements.
<div class="u-margin">.u-margin</div>
<div class="u-margin-bottom">.u-margin-bottom</div>
<div class="u-margin-bottom-lg">.u-margin-bottom-lg</div>
<div class="u-margin-bottom-xs">.u-margin-bottom-xs</div>
<div class="u-margin-bottom-xx">.u-margin-bottom-xx</div>
<div class="u-margin-left">.u-margin-left</div>
<div class="u-margin-left-lg">.u-margin-left-lg</div>
<div class="u-margin-left-xs">.u-margin-left-xs</div>
<div class="u-margin-left-xx">.u-margin-left-xx</div>
<div class="u-margin-lg">.u-margin-lg</div>
<div class="u-margin-right">.u-margin-right</div>
<div class="u-margin-right-lg">.u-margin-right-lg</div>
<div class="u-margin-right-xs">.u-margin-right-xs</div>
<div class="u-margin-right-xx">.u-margin-right-xx</div>
<div class="u-margin-top">.u-margin-top</div>
<div class="u-margin-top-lg">.u-margin-top-lg</div>
<div class="u-margin-top-xs">.u-margin-top-xs</div>
<div class="u-margin-top-xx">.u-margin-top-xx</div>
<div class="u-margin-xs">.u-margin-xs</div>
<div class="u-margin-xx">.u-margin-xx</div>
<div class="u-no-margin">.u-no-margin</div>
<div class="u-no-margin-bottom">.u-no-margin-bottom</div>
<div class="u-no-margin-left">.u-no-margin-left</div>
<div class="u-no-margin-right">.u-no-margin-right</div>
<div class="u-no-margin-top">.u-no-margin-top</div>
Text
utilities/utilities.textHelper classes for changing the appearance of text.
Make sure there is enough contrast between text and background. See the contrast success criterion.
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.
<p class="u-text-quaternary">.u-text-quaternary</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-quinary">.u-text-quinary</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-senary">.u-text-senary</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.
<p class="u-text-tertiary">.u-text-tertiary</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.addonAvatar
atoms/atoms.avatar<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<span class="a-badge">10</span>
<span class="a-badge a-badge--primary">11</span>
<span class="a-badge a-badge--secondary">12</span>
<span class="a-badge a-badge--success">13</span>
<span class="a-badge a-badge--warning">14</span>
<span class="a-badge a-badge--danger">15</span>
Button
atoms/atoms.buttonRegular 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>
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.codeType 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.formAccessibility 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).
.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>
<fieldset>
<legend>Optional legend</legend>
...
</fieldset>
Input
atoms/atoms.inputStandard input fields
<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">€</div>
<input type="text" name="text-field-addon-left" id="text-field-addon-left" placeholder="Placeholder" />
</div>
</div>
<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<span class="a-label">Default label</span>
<span class="a-label a-label--primary">Primary label</span>
<span class="a-label a-label--secondary">Secondary label</span>
<span class="a-label a-label--success">Success label</span>
<span class="a-label a-label--warning">Warning label</span>
<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.listStandard 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">
<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
<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
<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-checkboxSpinner
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.tableStandard tables
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 | 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 | 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 | 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 | 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 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>
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 | 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<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>
<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>
<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>
<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.accordionArma 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="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.alertAccessibility 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-groupNote 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.cardPublius Vergilius Maro
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.
<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.contactJasper Van Proeyen
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>
Jasper Van Proeyen
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.datepickerDatepicker 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
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.flyoutDefault 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-listAccessibility 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 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.modalAccessibility note. Note that focus management is essential (external) for a modal dialog to be accessible.
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.
<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>
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.
<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.navigationAccessibility 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.overlayIn 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.paginationRegular pagination
<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
<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
<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<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>
<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>
<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>
<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-sliderAccessibility note. Also check the ARIA best practices (external) in order to make the range slider accessible.
<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>
<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>
<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>
<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- Step 1 (completed)
- Step 2 (completed)
- Step 3
- 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<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>
<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>
<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<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>
<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
- 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.articleUse 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
- Lorem ipsum dolor
- sit:
- amet
- consectetur
- 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
- Lorem ipsum dolor
- sit:
- amet
- consectetur
- adipisicing elit
<div class="o-article">
...
</div>
Footer
organisms/organisms.footerFor 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.headerAccessibility 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/acpaas-logo.svg" alt="Homepage ACPaaS.">
</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/acpaas-logo.svg" alt="Homepage ACPaaS.">
</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-menuNavigation 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>
is-docked
class to the o-menu
element. Docked behaviour is only relevant for desktop layouts.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<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
<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<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>
<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>
<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>