Alerts

Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.

Examples

Wrap any text and an optional dismiss button in .alert and one of the four contextual classes (e.g., .alert-success) for basic alert messages.

No default class

Alerts don't have default classes, only base and modifier classes. A default gray alert doesn't make too much sense, so you're required to specify a type via contextual class. Choose from success, info, warning, or danger.

	<div class="alert alert-success" role="alert">
		<div class="alert-body">...</div>
	</div>
	<div class="alert alert-info" role="alert">
		<div class="alert-body">...</div>
	</div>
	<div class="alert alert-warning" role="alert">
		<div class="alert-body">...</div>
	</div>
	<div class="alert alert-danger" role="alert">
		<div class="alert-body">...</div>
	</div>
	<!-- .alert-error is also available, identical to .alert-danger -->

	

Alert error overlay

Deprecated

This alert was so ugly we made it redundant. It's still in the codebase to keep it backwards compatible.

This is how it looks now. Exactly the same as .alert-info thanks to Sass @extend functionality.

Sorry

Dit is geen artikel. Klik op een artikel om meer info te zien.

	<div class="alert-error-body">
		<div class="alert-error-block">
			<span class="fa fa-exclamation-triangle fa-4x alert-error-opacity"></span>
			<p class="alert-error-title">Sorry</p>
			<p class="alert-error-subtext alert-error-opacity">Dit is geen artikel. Klik op een artikel om meer info te zien.</p>
		</div>
	</div>
	

Titles on alerts

	<div class="alert alert-warning" role="alert">
		<div class="alert-title">Message title</div>
		<div class="alert-body">
			Better check yourself, you're not looking too good.
			<ol>
				<li>Drink enough water</li>
				<li>Wear sunscreen</li>
			</ol>
		</div>
	</div>
	

Dismissible alerts

Build on any alert by adding an optional .alert-dismissible and close button.

Requires JavaScript alert plugin

For fully functioning, dismissible alerts, you must use the alerts JavaScript plugin.

	<div class="alert alert-warning alert-dismissible" role="alert">
		<div class="alert-title">
			<button type="button" class="close" data-dismiss="alert">
				<span class="icon icon-close" aria-hidden="true"></span>
				<span class="sr-only">Close</span>
			</button>
			Message title
		</div>
		<div class="alert-body">
			...
		</div>
	</div>
	

Ensure proper behavior across all devices

Be sure to use the <button> element with the data-dismiss="alert" data attribute.

Use the .alert-link utility class to quickly provide matching colored links within any alert.

	<div class="alert alert-success" role="alert">
		<div class="alert-body">
			<a href="#" class="alert-link">...</a>
		</div>
	</div>
	<div class="alert alert-info" role="alert">
		<div class="alert-body">
			<a href="#" class="alert-link">...</a>
		</div>
	</div>
	<div class="alert alert-warning" role="alert">
		<div class="alert-body">
			<a href="#" class="alert-link">...</a>
		</div>
	</div>
	<div class="alert alert-danger" role="alert">
		<div class="alert-body">
			<a href="#" class="alert-link">...</a>
		</div>
	</div>
	

Tooltips in alerts

Requires JavaScript tooltip plugin

For fully functioning, tooltips in alerts, you must use the tooltip JavaScript plugin.

	<div class="alert alert-success" role="alert">
		<div class="alert-body">
			<span class="alert-tip" data-toggle="tooltip" title="Oh My God">OMG</span>
		</div>
	</div>
	<div class="alert alert-info" role="alert">
		<div class="alert-body">
			<span class="alert-tip" data-toggle="tooltip" title="You Only Live Once">YOLO</span>
		</div>
	</div>
	<div class="alert alert-warning" role="alert">
		<div class="alert-body">
			<span class="alert-tip" data-toggle="tooltip" title="Not Safe For Work">NSFW</span>
		</div>
	</div>
	<div class="alert alert-danger" role="alert">
		<div class="alert-body">
			<span class="alert-tip" data-toggle="tooltip" title="Pain In The Ass">PITA</span>
		</div>
	</div>
	

Standalone alerts

Deprecated

This alert couldn't cope with multiple alerts. It's still in the codebase to keep it backwards compatible.

	<div class="alert alert-standalone alert-danger alert-dismissible" role="alert">
		<div class="alert-title">
			<button type="button" class="close" data-dismiss="alert">
				<span class="icon icon-close" aria-hidden="true"></span>
				<span class="sr-only">Close</span>
			</button>
			Message title
		</div>
		<div class="alert-body">
			Better check yourself, you're not looking too good.
		</div>
	</div>
	

Standalone alerts container

Container positioning alerts on the screen so that they're always visible, even if you have scrolled.

	<div class="alert-standalone-container fjs-standalone-alert-example">
		<div class="alert alert-danger alert-dismissible" role="alert">
			<div class="alert-title">
				<button type="button" class="close" data-dismiss="alert">
					<span class="icon icon-close" aria-hidden="true"></span>
					<span class="sr-only">Close</span>
				</button>
				Message title
			</div>
			<div class="alert-body">
				Better check yourself, you're not looking too good.
			</div>
		</div>
	</div>
	

Apps

Graphical representation of the available DNR applications, see DNR Portal

<div class="app">
	<a href="#" class="app-link">
			<span class="app-icon">S</span>
			<span class="app-title">Sitebeheer</span>
	</a>
</div>

<!-- or as a <button> -->
<div class="app">
	<button class="app-link" type="button" value="">
			<span class="app-icon">Z</span>
			<span class="app-title">Zoeken</span>
	</button>
</div>

App specific icons

.app.app-small.app-[appname]

.app-articleeditor

.app-sitemanagement

.app-search

.app-workflow

.app-polleditor

.app-photoalbumeditor

.app-liveeditor

.app-videomanager

<div class="app app-small app-sitemanagement">
	<a href="#" class="app-link">
			<span class="app-icon">S</span>
			<span class="app-title">Sitebeheer</span>
	</a>
</div>

<!-- or as a <button> -->
<div class="app app-small app-search">
	<button class="app-link" type="button">
			<span class="app-icon">Z</span>
			<span class="app-title">Zoeken</span>
	</button>
</div>

Sizing and alternatives

The .app-small.app-inverted is also used in the header

.app-inverted

.app-small

.app-inverted.app-small

<div class="app app-inverted">
	<a href="#" class="app-link">
			<span class="app-icon">S</span>
			<span class="app-title">Sitebeheer</span>
	</a>
</div>

<div class="app app-small">
	<a href="#" class="app-link">
			<span class="app-icon">S</span>
			<span class="app-title">Sitebeheer</span>
	</a>
</div>

<div class="app app-xs">
	<a href="#" class="app-link">
			<span class="app-icon">S</span>
			<span class="app-title">Sitebeheer</span>
	</a>
</div>

<div class="app app-small app-inverted">
	<a href="#" class="app-link">
			<span class="app-icon">A</span>
			<span class="app-title">Artikel editor</span>
	</a>
</div>

<div class="app">
	<a href="#" class="app-link">
		<span class="app-icon app-icon-svg">
			<svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
			...
			</svg>
		</span>
		<span class="app-title">Column</span>
	</a>
</div>

<div class="app app-transparent">
	<a href="#" class="app-link">
		<span class="app-icon app-icon-svg">
			<svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
			...
			</svg>
		</span>
	</a>
</div>

Artifacts

Mini representations of an article's meta info. Used in the search results and list views

Default

Paying and missing image: .is-paying or .js-is-paying

Draggable: .is-draggable

With leading number - e.g. for teaser lists

Pinned state - e.g. for teaser list : .is-pinned or .js-is-pinned. The class .is-draggable is also on the element because it's in a teaser list.

Paying + Pinned state - e.g. for teaser list: .is-pinned.is-paying or with the .js- prefix

Success: .is-success and .js-is-success

Danger: .is-danger and .js-is-danger

<div class="artifact is-pinned">
	<div class="artifact-digit">3</div>
	<div class="artifact-thumb-cell">
		<img src="/assets/img/hamburger.jpg" alt="" class="artifact-thumb" />
		<a href="#" class="artifact-pin-action"><span class="icon icon-pin" aria-hidden="true"></span></a>
	</div>
	<div class="artifact-body">
		<a href="#" class="artifact-link">Juist de behaalde medailles tonen wat beter kan</a>
		<div class="artifact-meta">
			<span class="icon result-type-article" aria-hidden="true"></span>
			<span>Arno Van Hauwermeiren</span>
			<span>Redactie</span>
		</div>
	</div>
	<div class="artifact-info">
		<time>1 uur</time>
		<div class="artifact-state">
			<span class="icon icon-euro"></span>
		</div>
		<div class="artifact-actions">
			<div class="dropdown dropdown-btn dropdown-btn-small">
				<input type="checkbox" class="dropdown-toggle" id="artifactiddropdown3" />
				<label for="artifactiddropdown3" class="dropdown-toggle-label" id="artifactiddropdown3label" aria-haspopup="true" aria-label="Meer opties"><span class="icon icon-triple-mid-dots" aria-hidden="true"></span></label>
				<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="artifactiddropdown3label">
					<li class="dropdown-menu-item">
						<a href="#" class="dropdown-menu-link">Maak dossier</a>
					</li>
					<li class="dropdown-menu-item">
						<a href="#" class="dropdown-menu-link">Bewerk artikel</a>
					</li>
					<li class="dropdown-menu-item">
						<a href="#" class="dropdown-menu-link">Maak gratis <span class="icon icon-euro"></span></a>
					</li>
					<li class="dropdown-menu-item">
						<a href="#" class="dropdown-menu-link">Meer informatie</a>
					</li>
				</ul>
			</div>
		</div>
	</div>
</div>

The icon in .result-type represents a type of result. One of ['article', 'column', 'dossier', 'opinie', 'photoalbum', 'poll', 'review', 'verdiepend_artikel', 'video_artikel', 'wire']

Sizing

Rihanna begint veel te laat aan set en krijgt fluitconcert

With digit

1

Rihanna begint veel te laat aan set en krijgt fluitconcert

A default artifact made smaller with JS (a toggler). Add .js-artifact-small dynamically.

<div class="artifact artifact-small">
	<div class="artifact-digit">1</div>
	<div class="artifact-body">
		<p class="artifact-title">Rihanna begint veel te laat aan set en krijgt fluitconcert</p>
	</div>
	<div class="artifact-info">
		<time>1 uur</time>
		<div class="artifact-actions">
			<div class="dropdown dropdown-btn dropdown-btn-small">
				<input type="checkbox" class="dropdown-toggle" id="smallartifactiddropdown2" />
				<label for="smallartifactiddropdown2" class="dropdown-toggle-label" id="smallartifactiddropdown2label" aria-haspopup="true" aria-label="Meer opties"><span class="icon icon-triple-mid-dots" aria-hidden="true"></span></label>
				<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="smallartifactiddropdown2label">
					<li class="dropdown-menu-item">
						<a href="#" class="dropdown-menu-link">Verwijder</a>
					</li>
				</ul>
			</div>
		</div>
	</div>
</div>

Removing interaction

If you want no interaction (hovers and the hidden dropdown) on your artifact, add .artifact-simple.

Rihanna begint veel te laat aan set en krijgt fluitconcert

<div class="artifact artifact-small artifact-simple">
	<div class="artifact-body">
		<p class="artifact-title"><span class="icon icon-folder" aria-hidden="true"></span> Rihanna begint veel te laat aan set en krijgt fluitconcert</p>
	</div>
	<div class="artifact-info">
		<time>1 uur</time>
	</div>
</div>

Implementation

When implementing it in a list view, please embed the artifacts in a .block-list

<ol class="block-list">
	<li class="list-item">
		<div class="artifact">...</div>
	</li>
	<li class="list-item">
		<div class="artifact">...</div>
	</li>
	<li class="list-item">
		<div class="artifact">...</div>
	</li>
	<li class="list-item">
		<div class="artifact">...</div>
	</li>
</ol>

If you're implementing a list with drag 'n' drop functionality, please add modifier class .has-dragndrop to .block-list. This fixes some spacing and drag n drop issues.

<ol class="block-list has-dragndrop">
	...
</ol>

Badges

Easily highlight new or unread items by adding a <span class="badge"> to links, Bootstrap navs, and more.

Inbox 42

<a href="#">Inbox <span class="badge">42</span></a>

<button class="btn btn-primary" type="button">
	Messages <span class="badge">4</span>
</button>

Colors

123 123 123 123 123 123
<span class="badge badge-primary">123</span>
<span class="badge badge-secondary">123</span>
<span class="badge badge-success">123</span>
<span class="badge badge-warning">123</span>
<span class="badge badge-danger">123</span>
<span class="badge badge-info">123</span>

Self collapsing

When there are no new or unread items, badges will simply collapse (via CSS's :empty selector) provided no content exists within.

Cross-browser compatibility

Badges won't self collapse in Internet Explorer 8 because it lacks support for the :empty selector.

Breadcrumbs

Indicate the current page's location within a navigational hierarchy.

Separators are automatically added in CSS through :before and content.

<ol class="breadcrumb">
	<li><a href="#">Home</a></li>
	<li><a href="#">Library</a></li>
	<li class="active">Data</li>
</ol>

Cards

Used in the workflow to show the current state of an article.

online
print
Pag. 3
tip
<div class="card">
	<div class="card-body">
		<div class="card-subject">
			<span class="label label-secondary">Kerncentrale</span>
		</div>
		<a href="#" class="card-link">
			Zo reageert de Belgische politiek op president Trump: "Dit is een schok"
		</a>
		<div class="card-footer">
			<div class="card-meta">
				Roel Wauters en Jonas Muylaert
			</div>
		</div>
	</div>
	<div class="card-aside">
		<table class="card-aside-table">
			<tbody>
				<tr>
					<td><span class="icon icon-check icon-success icon-medium" title="Geredigeerd door eindredactie"></span></td>
				</tr>
				<tr>
					<td><span class="label label-online">online</span></td>
				</tr>
				<tr>
					<td><span class="label label-print">print</span></td>
				</tr>
				<tr>
					<td class="value">Pag. 3</td>
				</tr>
				<tr>
					<td><span class="label label-tip">tip</span></td>
				</tr>
				<tr>
					<td>
						<div class="card-actions">
							<div class="dropdown dropdown-btn dropdown-btn-small">
								<input type="checkbox" class="dropdown-toggle" id="card-1-dropdown" />
								<label for="card-1-dropdown" class="dropdown-toggle-label" id="card-1-dropdown-label" aria-haspopup="true" aria-label="Meer opties"><span class="icon icon-triple-mid-dots" aria-hidden="true"></span></label>
								<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="card-1-dropdown-label">
									<li class="dropdown-menu-item">
										<a href="#" target="_blank" class="dropdown-menu-link">Bewerk artikel</a>
									</li>
									<li class="dropdown-menu-item">
										<a href="#" target="_blank" class="dropdown-menu-link">Status aanpassen</a>
									</li>
								</ul>
							</div>
						</div>
					</td>
				</tr>
			</tbody>
		</table>
	</div>
</div>

States

The disabled state is for cards that can't be moved.

<div class="card is-disabled">
	...
</div>

<!-- or disabled thru JS -->
<div class="card js-is-disabled">
	...
</div>

The changed state is for cards that have been changed in the background. If person Y changes something in the workflow, person X wants to see some visual feedback. Through service workers we place temporary class on the card that has been changed. You have to add or remove (after a certain amount of time) this class yourself through some custom Javascript in your project.

<div class="card has-changed">
	...
</div>

<!-- or changed thru JS -->
<div class="card js-has-changed">
	...
</div>

The danger state is for cards that are under embargo. It also has an extra icon (a clock) to emphasize that state.

Onder embargo Amerikaanse verkiezingen
Zo reageert de Belgische politiek op president Trump: "Dit is een schok"
<div class="card has-warning">
	...
</div>

<!-- or changed thru JS -->
<div class="card js-has-warning">
	...
</div>

Ghost card

Used for the drag and drop feature

<div class="card card-ghost" style="height: 166px;"></div>

The height is set through JavaScript. This is not included in Bootstrap. It's the initial height of the corresponding card that's being moved.

Dropdowns

Toggleable, contextual menu for displaying lists of links. Made interactive with a input[type="checkbox"] hack. So, no JavaScript required.

Restricted use!

Please avoid the use of .dropdown in a form. Using the native <select> is mandatory.

The custom dropdowns are very prone to bugs, especially on large lists. So we advice you to use the native <select> as much as possible. We won't be fixing any bugs that require a lot of code and mimic default browser behaviour while you can use the built-in version.

Wrap the dropdown's trigger and the dropdown menu within .dropdown, or another element that declares position: relative;. Then add the menu's HTML.

<div class="dropdown">
	<input type="checkbox" class="dropdown-toggle" id="dropdownMenu1" checked="checked" />
	<label class="dropdown-field" id="dropdownMenu1Label" aria-haspopup="true" aria-expanded="true" for="dropdownMenu1" role="button">
		Pick one
		<span class="caret"></span>
	</label>
	<ul class="dropdown-menu" aria-labelledby="dropdownMenu1Label">
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">
				Action
			</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">
				Another action
			</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">
				Something else here
			</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">
				Delete something
			</a>
		</li>
	</ul>
</div>

Deprecated

We had a modifier class .dropdown-menu-link-alt to make an item stand out but it's no longer in use.

Use .dropdown-block to make the field 100% wide.

<div class="dropdown dropdown-block">
	...
</div>

Dropdown menus can be changed to expand upwards (instead of downwards) by adding .dropup to the parent.

<div class="dropup">
	<input type="checkbox" class="dropdown-toggle" id="dropUpMenu2" />
	<label class="dropdown-field" id="dropUpMenu2Label" aria-haspopup="true" aria-expanded="true" for="dropUpMenu2" role="button">
		Dropup
		<span class="caret"></span>
	</label>
	<ul class="dropdown-menu" aria-labelledby="dropUpMenu2Label">
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Action</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Another action</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Something else here</a>
		</li>
	</ul>
</div>

Extended dropdowns are dropdowns with a large number of items. The dropdowns are mostly used in Site Management and are placed at the top of the document. Instead of triggering a scrollbar on the page we set its height to be smaller than the viewport (with CSS) and trigger a scrollbar in the dropdown.

We still advice to use the native <select> which automatically adds overflow, will stay in the viewport and has keyboard accessibility.

<div class="dropdown dropdown-block dropdown-extended">
	...
</div>

Dropdowns with extremely long lists can be a hell to navigate. We add a search box to help with finding the needle in the haystack.

<div class="dropdown dropdown-block dropdown-searchable fjs-dropdown-searchable">
	...
	<div class="dropdown-menu-wrapper" aria-labelledby="dropdownSearchableMenu1Label">
		<div class="dropdowm-menu-search fjs-dropdown-search-input">
			<input type="text" class="form-control form-control-search" placeholder="Zoek in lijst" />
		</div>
		<ul class="dropdown-menu">
			<li class="dropdown-menu-item" data-filter="Home > Regio > Oost-Vlaanderen > Waasland > Beveren">
				<a href="#" class="dropdown-menu-link">
					Home > Regio > Oost-Vlaanderen > Waasland > Beveren
				</a>
			</li>
			<li class="dropdown-menu-item" data-filter="Home > Regio > Oost-Vlaanderen > Waasland > Haasdonk">
				<a href="#" class="dropdown-menu-link">
					Home > Regio > Oost-Vlaanderen > Waasland > Haasdonk
				</a>
			</li>
			...
		</ul>
	</div>
</div>

Note the data-filter attribute. It's required and it has to be lowercase to make the JS plugin work.

Add .disabled to a <li> in the dropdown to disable the link.

<ul class="dropdown-menu" aria-labelledby="dropdownMenuLabel4">
	<li class="dropdown-menu-item">
		<a href="#" class="dropdown-menu-link">Regular link</a>
	</li>
	<li class="dropdown-menu-item disabled">
		<a href="#" class="dropdown-menu-link">Disabled link</a>
	</li>
	<li class="dropdown-menu-item">
		<a href="#" class="dropdown-menu-link">Another link</a>
	</li>
</ul>

Other elements list items

To accomodate the use in forms, list items can contain buttons or even labels. Just give them the class .dropdown-menu-link

<li class="dropdown-menu-item">
	<button type="button" class="dropdown-menu-link">Button</button>
</li>
<li class="dropdown-menu-item">
	<label class="dropdown-menu-link" for="">Label</label>
</li>
<li class="dropdown-menu-item">
	<button type="button" class="dropdown-menu-link" disabled="disabled">Disabled button</button>
</li>

You can also add classes .disabled or .js-is-disabled to the button but you need to write JS to disable the click action.

Button dropdowns

Use any button to trigger a dropdown menu by placing it within a .btn-group and providing the proper menu markup.

Plugin dependency

Button dropdowns require the dropdown plugin to be included in your version of Bootstrap. But that's only for enhanced UX, not for it's core functionality. Our dropdowns still work without JS.

No-JS Single button dropdowns

With the checkbox hack we have No-JS dropdowns

<!-- Single button -->
<div class="dropdown dropdown-btn">
	<input type="checkbox" class="dropdown-toggle" id="someuniqueid" aria-labelledby="someuniqueidlabel" />
	<label for="someuniqueid" class="dropdown-toggle-label" aria-haspopup="true" id="someuniqueidlabel" role="button" aria-label="More options"><span class="icon icon-triple-mid-dots" aria-hidden="true"></span></label>
	<ul class="dropdown-menu">
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Action</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Another action</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Something else here</a>
		</li>
		<li role="separator" class="dropdown-menu-item divider"></li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Separated link</a>
		</li>
	</ul>
</div>

<!-- Dropup -->
<div class="dropup dropdown-btn ">
	<input type="checkbox" class="dropdown-toggle" id="someuniqueiddropup" aria-labelledby="someuniqueiddropuplabel" />
	<label for="someuniqueiddropup" class="dropdown-toggle-label dropdown-toggle-label-wide" aria-haspopup="true" id="someuniqueiddropuplabel" role="button" aria-label="More options"><span class="icon icon-factfile" aria-hidden="true"></span> Filters</label>
	<ul class="dropdown-menu">
		...
	</ul>
</div>

Add .dropdown-toggle-label-wide to .dropdown-toggle-label to get some extra padding on the left and right. (see the dropup example)

Add .dropdown-inverted to .dropdown to create a white bordered dropdown button, for use on dark backgrounds.

Split button dropdowns

Similarly, create split button dropdowns with the same markup changes, only with a separate button.

<!-- Split button -->
<div class="btn-group">
	<button type="button" class="btn btn-default">Default</button>
	<input type="checkbox" class="dropdown-toggle" id="splitbuttontoggle1" />
	<label for="splitbuttontoggle1" class="btn btn-default dropdown-toggle-label" aria-haspopup="true" arial-label="More options">
		<span class="caret"></span>
	</label>
	<ul class="dropdown-menu">
		<li class="dropdown-menu-item">
			<button href="#" class="dropdown-menu-link">Action</button>
		</li>
		<li class="dropdown-menu-item">
			<button href="#" class="dropdown-menu-link">Another action</button>
		</li>
		<li class="dropdown-menu-item">
			<button href="#" class="dropdown-menu-link">Something else here</button>
		</li>
		<li class="dropdown-menu-item">
			<button href="#" class="dropdown-menu-link">Separated link</button>
		</li>
	</ul>
</div>

Works with links also!

Unless you're implementing the split buttons in forms, where you need real buttons, you can use links so it's progressive enhanced.

<div class="btn-group">
	<a href="#" class="btn btn-default">Default</a>
	<input type="checkbox" class="dropdown-toggle" id="splitbuttontogglelinks" />
	<label for="splitbuttontogglelinks" class="btn btn-default dropdown-toggle-label" aria-haspopup="true" arial-label="More options">
		<span class="caret"></span>
	</label>
	<ul class="dropdown-menu">
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Action</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Another action</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Something else here</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link">Separated link</a>
		</li>
	</ul>
</div>

And with link styling

<div class="btn-group">
	<a href="#" class="btn btn-default">Default</a>
	<input type="checkbox" class="dropdown-toggle" id="splitbuttontoggleprimarylinks" />
	<label for="splitbuttontoggleprimarylinks" class="btn btn-default dropdown-toggle-label" aria-haspopup="true" arial-label="More options">
		<span class="caret"></span>
	</label>
	<ul class="dropdown-menu">
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link dropdown-menu-link-primary"><span class="icon icon-plus icon-fw icon-small" aria-hidden="true"></span> Link</a>
		</li>
		<li class="dropdown-menu-item">
			<a href="#" class="dropdown-menu-link dropdown-menu-link-primary">Another link</a>
		</li>
	</ul>
</div>

Header

The page's header. This should contain the brand name or the name of the tool.

Digital News Room

<header class="header">

	<div class="header-section">
		
		<div class="app app-small app-inverted">
			<a href="/" class="app-link">
				<span class="app-icon" aria-hidden="true">
					D
				</span>
				<span class="app-title">
					Digital News Room
				</span>
			</a>
		</div>
		
	</div>
	<div class="header-section">
		
		<div class="header-title">
			
				<h1 class="header-title-inner">
					
					Digital News Room
				</h1>
			
		</div>
		
	</div>
	<div class="header-section">
		<div class="dropdown dropdown-block">
			<input type="checkbox" class="dropdown-toggle" id="usermenu" />
			<label for="usermenu" class="dropdown-field dropdown-field-no-border" id="usermenulabel" aria-haspopup="true" aria-expanded="false" role="button">Jochen Vandendriessche senior<span class="caret"></span></label>
			<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="usermenulabel">
				<li class="dropdown-menu-item">
					<a href="#" class="dropdown-menu-link">Afmelden</a>
				</li>
			</ul>
		</div>
	</div>
</header>

HTML5 requirements

According to the HTML5 spec, when using <header> you must use at least one of <h1><h6> inside.

Icons

Custom designed iconfont for DNR. We created the font through Icomoon.io

  • icon-bell
  • icon-copy
  • icon-clipboard
  • icon-clock
  • icon-cloud-upload
  • icon-cloud-download
  • icon-document
  • icon-lock
  • icon-user
  • icon-monitor
  • icon-paper
  • icon-recipe
  • icon-align-center
  • icon-align-left
  • icon-align-right
  • icon-bold
  • icon-bubble
  • icon-bulb
  • icon-calendar
  • icon-caret-down
  • icon-caret-up
  • icon-check
  • icon-chevron-down
  • icon-chevron-left
  • icon-chevron-right
  • icon-chevron-up
  • icon-close
  • icon-cloud
  • icon-embed-code
  • icon-envelope
  • icon-eraser
  • icon-euro
  • icon-facebook
  • icon-factfile
  • icon-floppy-disk
  • icon-focuspoint
  • icon-folder
  • icon-forbidden
  • icon-glasses
  • icon-grid-large
  • icon-grid-small
  • icon-hidden
  • icon-image
  • icon-instagram
  • icon-italic
  • icon-link
  • icon-live
  • icon-omega
  • icon-paywall
  • icon-pencil
  • icon-phone
  • icon-pin
  • icon-plus-circle
  • icon-plus
  • icon-pointer
  • icon-poll
  • icon-quote-left
  • icon-quote-right
  • icon-redo
  • icon-search
  • icon-shout
  • icon-sixdots
  • icon-soundcloud
  • icon-spinner
  • icon-spotify
  • icon-star
  • icon-strikethrough
  • icon-subscript
  • icon-superscript
  • icon-tag
  • icon-thumbs-list
  • icon-trash
  • icon-triple-mid-dots
  • icon-twitter
  • icon-underline
  • icon-undo
  • icon-unlink
  • icon-video
  • icon-insert-template
  • icon-clipboard-markup
  • icon-newspaper
  • icon-tablet
  • icon-information

Adjusting the font

If you need to make adjustments, upload the selection.json from /fonts/icons/DNRICON to Icomoon. Make your changes and download the altered font. Replace the old selection.json with the new one that's included in the download

How to use

For performance reasons, all icons require a base class and individual icon class. To use, place the following code just about anywhere. Be sure to leave a space between the icon and text for proper padding.

<span class="icon icon-image"></span>

Don't mix with other components

Icon classes cannot be directly combined with other components. They should not be used along with other classes on the same element. Instead, add a nested <span> and apply the icon classes to the <span>.

Only for use on empty elements

Icon classes should only be used on elements that contain no text content and have no child elements.

Accessible icons

Modern versions of assistive technologies will announce CSS generated content, as well as specific Unicode characters. To avoid unintended and confusing output in screen readers (particularly when icons are used purely for decoration), we hide them with the aria-hidden="true" attribute.

If you're using an icon to convey meaning (rather than only as a decorative element), ensure that this meaning is also conveyed to assistive technologies – for instance, include additional content, visually hidden with the .sr-only class.

If you're creating controls with no other text (such as a <button> that only contains an icon), you should always provide alternative content to identify the purpose of the control, so that it will make sense to users of assistive technologies. In this case, you could add an aria-label attribute on the control itself.

<span class="icon icon-image" aria-hidden="true"></span>

Animated icons

To create loading animations, you can use spinning or pulsing icons

<span class="icon icon-spinner icon-spin"></span>
<span class="icon icon-spinner icon-pulse"></span>

Examples

Use them in buttons, button groups for a toolbar, navigation, or prepended form inputs.

<button type="button" class="btn btn-default" aria-label="Left Align">
	<span class="icon icon-align-left" aria-hidden="true"></span>
</button>

An icon used in an alert to convey that it's an error message, with additional .sr-only text to convey this hint to users of assistive technologies.

<div class="alert alert-danger" role="alert">
	<span class="icon icon-close" aria-hidden="true"></span>
	<span class="sr-only">Error:</span>
	Enter a valid email address
</div>

Sizing

If you need to size the icon, please use any value that's a multiple of 16. The grid on which the icons are designed is a 32x32 pixel grid. This way you get crispy results.

We have some helper classes (e.g. .icon-2x) to size the icons.

<span class="icon icon-calendar"></span>
<span class="icon icon-calendar icon-2x"></span>
<span class="icon icon-calendar icon-3x"></span>
<span class="icon icon-calendar icon-4x"></span>
<span class="icon icon-calendar icon-5x"></span>

<!-- smaller versios - use with caution, may result in blurry icons -->
<span class="icon icon-calendar icon-medium"></span>
<span class="icon icon-calendar icon-small"></span>

Fixed width

Use .icon-fw to set icons at a fixed width. Great to use when different icon widths throw off alignment. Especially useful in things like nav lists & list groups.

  •   Confirm
  •   Twitter
  •   Search
  •   Trash
<span class="icon icon-twitter icon-fw"></span>

Colored icons

By default icons inherit the color of the font of the parent element.

Although we prefer styling (coloring) the icons through css in your module you can add modifier classes to give a state color.

.icon-success

.icon-danger

.icon-info

.icon-warning

<span class="icon icon-check icon-success"></span>
<span class="icon icon-forbidden icon-danger"></span>
<span class="icon icon-shout icon-info"></span>
<span class="icon icon-star icon-warning"></span>

SVG icons

We have a few icons available as svg. If you want to use them, download them from the Bootstrap repo. You find the files in /_site/dist/svg.

icon-large-arttype-advertorial
icon-large-arttype-column
icon-large-arttype-factfile
icon-large-arttype-live
icon-large-arttype-longread
icon-large-arttype-normal
icon-large-arttype-opinion
icon-large-arttype-photo
icon-large-arttype-recipe
icon-large-arttype-regio
icon-large-arttype-review
icon-large-arttype-video
Cartoon
icon-large-arttype-poll

Labels

Example

Example heading New

Example heading New

Example heading New

Example heading New

Example heading New
Example heading New
<h3>Example heading <span class="label label-default">New</span></h3>

Available variations

Add any of the below mentioned modifier classes to change the appearance of a label.

Default Primary Secondary Success Info Warning Danger Online Krant

Default Primary Secondary Success Info Warning Danger Online Krant

<span class="label label-default">Default</span>
<span class="label label-primary">Primary</span>
<span class="label label-secondary">Secondary</span>
<span class="label label-success">Success</span>
<span class="label label-info">Info</span>
<span class="label label-warning">Warning</span>
<span class="label label-danger">Danger</span>
<span class="label label-online">Online</span>
<span class="label label-print">Krant</span>

<span class="label label-inverse label-default">Default</span>
<span class="label label-inverse label-primary">Primary</span>
<span class="label label-inverse label-secondary">Secondary</span>
<span class="label label-inverse label-success">Success</span>
<span class="label label-inverse label-info">Info</span>
<span class="label label-inverse label-warning">Warning</span>
<span class="label label-inverse label-danger">Danger</span>
<span class="label label-inverse label-online">Online</span>
<span class="label label-inverse label-print">Krant</span>

Have tons of labels?

Rendering problems can arise when you have dozens of inline labels within a narrow container, each containing its own inline-block element (like an icon). The way around this is setting display: inline-block;. For context and an example, see #13219.

List group

List groups are a flexible and powerful component for displaying not only simple lists of elements, but complex ones with custom content.

Basic example

The most basic list group is simply an unordered list with list items, and the proper classes. Build upon it with the options that follow, or your own CSS as needed.

  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
<ul class="list-group">
	<li class="list-group-item">Cras justo odio</li>
	<li class="list-group-item">Dapibus ac facilisis in</li>
	<li class="list-group-item">Morbi leo risus</li>
	<li class="list-group-item">Porta ac consectetur ac</li>
	<li class="list-group-item">Vestibulum at eros</li>
</ul>

Only horizontal borders

Only top and bottom borders on the list items. Left and right padding is also removed.

  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
<ul class="list-group list-group-horz-borders">
	<li class="list-group-item">Cras justo odio</li>
	<li class="list-group-item">Dapibus ac facilisis in</li>
	<li class="list-group-item">Morbi leo risus</li>
	<li class="list-group-item">Porta ac consectetur ac</li>
	<li class="list-group-item">Vestibulum at eros</li>
</ul>

Badges

Add the badges component to any list group item and it will automatically be positioned on the right.

  • 14 Cras justo odio
  • 2 Dapibus ac facilisis in
  • 1 Morbi leo risus
<ul class="list-group">
	<li class="list-group-item">
		<span class="badge">14</span>
		Cras justo odio
	</li>
</ul>

Icons

Add an icon to any list group item and it will automatically be positioned on the right.

  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
<ul class="list-group">
	<li class="list-group-item">
		Cras justo odio
		<span class="fa fa-sitemap"></span>
	</li>
</ul>

Linked items

Linkify list group items by using anchor tags inside of list items.

<ul class="list-group">
	<li class="list-group-item">
		<a href="#" class="list-group-block-link">
			Cras justo odio
			<span class="fa fa-sitemap"></span>
		</a>
	</li>
	<li class="list-group-item">
		<a href="#" class="list-group-block-link">
			Dapibus ac facilisis in
			<span class="fa fa-eye"></span>
		</a>
	</li>
	<li class="list-group-item">
		<a href="#" class="list-group-block-link">
			Morbi leo risus
			<span class="fa fa-external-link-square"></span>
		</a>
	</li>
</ul>

Nested components

With other components nested inside a list.

<ul class="list-group">
	<li class="list-group-item">
		<a href="#" class="list-group-block-link">
			<ol class="breadcrumb">
				<li>Home</li>
				<li>Library</li>
				<li>Data</li>
			</ol>
			<span class="fa fa-sitemap"></span>
		</a>
	</li>
	<li class="list-group-item">
		<a href="#" class="list-group-block-link">
			<ol class="breadcrumb">
				<li>Home</li>
				<li>Library</li>
				<li>Data</li>
			</ol>
			<span class="fa fa-eye"></span>
		</a>
	</li>
	<li class="list-group-item">
		<a href="#" class="list-group-block-link">
			<ol class="breadcrumb">
			 <li>Home</li>
			 <li>Library</li>
			 <li>Data</li>
			</ol>
			<span class="fa fa-external-link-square"></span>
		</a>
	</li>
</ul>

Logo's

Easily add logo's from the different DPP Brands

A11Y

Please read our a11y guidelines for logo's

<div class="logo logo-demorgen"></div>
<div class="logo logo-demorgen logo-demorgen-bw"></div>
<div class="logo logo-hlnbe"></div>
<div class="logo logo-hetlaatstenieuws"></div>
<div class="logo logo-volkskrant"></div>
<div class="logo logo-algemeendagblad"></div>
<div class="logo logo-algemeendagblad logo-algemeendagblad-bw"></div>
<div class="logo logo-trouw"></div>
<div class="logo logo-trouw logo-trouw-bw"></div>
<div class="logo logo-parool"></div>
<div class="logo logo-default"></div>
<div class="logo logo-default logo-default-bw"></div>
<div class="logo logo-tvfamilie"></div>
<div class="logo logo-story"></div>
<div class="logo logo-destentor"></div>
<div class="logo logo-brabantsdagblad"></div>
<div class="logo logo-tubantia"></div>
<div class="logo logo-dagallemaal"></div>
<div class="logo logo-humo"></div>

Logo sizing

<div class="logo logo-demorgen logo-small"></div>
<div class="logo logo-demorgen logo-medium"></div>

.logo-small is 15px high and variable width, while .logo-medium is 20px high.

Logo accessibility

Please keep accessibilty in mind and provide additional attributes or elements.

<!-- make it readable (meaningful) by screenreaders -->
<div class="logo logo-demorgen logo-small"><span class="sr-only">DeMorgen</span></div>

<!-- if the logo is purely for presentational purposes and doesn't need to be read by screenreaders -->
<div class="logo logo-demorgen logo-small" role="presentation"></div>
<!-- or ...  -->
<div class="logo logo-demorgen logo-small" aria-hidden="true"></div>

With aria-hidden="true" the element MAY NOT contain any other children, because they won't be visible for assistive technologies.

Media picker

The media-picker component usually works in conjunction with the Results component.

Example

<div class="media-picker">
	<ul class="media-picker-list">
		<li class="media-picker-item">
			<input type="checkbox" id="id1" class="media-picker-checkbox" />
			<label for="id1" class="media-picker-label is-forbidden">
				<figure class="media-picker-figure">
					<div class="media-picker-figure-inner">
						<img src="/assets/img/bengie-joggink.jpg" alt="" class="media-picker-media media-picker-img" />
					</div>
					<figcaption class="media-picker-caption">
						<span class="media-picker-caption-desc">Republican presidential candidate Donald Trump speaks with Steve Staub, right, president of Staub Manufacturing Solutions and his sister, Sandy Keplinger, vice president, Wednesday, Sept. 21, 2016 in Dayton, Ohio. (Ty Greenlees /Dayton Daily News via AP, Pool)</span>
						<div class="media-picker-caption-meta">
							<span class="media-picker-caption-copyright">&copy; Agency</span>
							<span class="media-picker-pool-forbidden" data-toggle="tooltip" title="DeMorgen heeft geen rechten op deze foto"><span class="sr-only">Geen rechten op deze media pool</span></span>
						</div>
					</figcaption>
				</figure>
			</label>
		</li>
		<li class="media-picker-item">
			<input type="checkbox" id="id2" class="media-picker-checkbox" />
			<label for="id2" class="media-picker-label">
				<figure class="media-picker-figure">
					<div class="media-picker-figure-inner">
						<img src="/assets/img/bengie-joggink2.jpg" alt="" class="media-picker-media media-picker-img" />
					</div>
					<figcaption class="media-picker-caption">
						<span class="media-picker-caption-desc">Republican presidential candidate Donald Trump speaks with Steve Staub, right, president of Staub Manufacturing Solutions and his sister, Sandy Keplinger, vice president, Wednesday, Sept. 21, 2016 in Dayton, Ohio. (Ty Greenlees /Dayton Daily News via AP, Pool)</span>
						<div class="media-picker-caption-meta">
							<span class="media-picker-caption-copyright">&copy; Belachelijk lange naam voor persagentschap</span>
						</div>
					</figcaption>
				</figure>
			</label>
		</li>
		<li class="media-picker-item">
			<input type="checkbox" id="id3" class="media-picker-checkbox" />
			<label for="id3" class="media-picker-label">
				<figure class="media-picker-figure">
					<div class="media-picker-figure-inner">
						<img src="/assets/img/pelle.jpg" alt="" class="media-picker-media media-picker-img" />
					</div>
					<figcaption class="media-picker-caption">
						<span class="media-picker-caption-desc">Republican presidential candidate Donald Trump speaks with Steve Staub, right, president of Staub Manufacturing Solutions and his sister, Sandy Keplinger, vice president, Wednesday, Sept. 21, 2016 in Dayton, Ohio. (Ty Greenlees /Dayton Daily News via AP, Pool)</span>
						<div class="media-picker-caption-meta">
							<span class="media-picker-caption-copyright">&copy; Reuters</span>
						</div>
					</figcaption>
				</figure>
			</label>
		</li>
		<li class="media-picker-item">
			<input type="checkbox" id="id4" class="media-picker-checkbox" />
			<label for="id4" class="media-picker-label">
				<figure class="media-picker-figure">
					<div class="media-picker-figure-inner">
						<img src="/assets/img/hackatom.jpg" alt="" class="media-picker-media media-picker-img" />
					</div>
					<figcaption class="media-picker-caption">
						<span class="media-picker-caption-desc">Republican presidential candidate Donald Trump speaks with Steve Staub, right, president of Staub Manufacturing Solutions and his sister, Sandy Keplinger, vice president, Wednesday, Sept. 21, 2016 in Dayton, Ohio. (Ty Greenlees /Dayton Daily News via AP, Pool)</span>
						<div class="media-picker-caption-meta">
							<span class="media-picker-caption-copyright">&copy; AP</span>
						</div>
					</figcaption>
				</figure>
			</label>
		</li>
	</ul>
</div>

Sizing

Sizing is normally done by toggling checkboxes in the Results component, but for demonstrational purposes we used modifier classes. If you want non-togglable media-pickers you can use these modifier classes.

Small .media-picker-small


Row .media-picker-row

Notes

Notes are reminders and remarks in the sidebar of the editors.

  1. ontwerpen en zet nu het parlement buitenspel door te vragen dat ze in amper twee weken besproken en gestemd worden. De spoedbehandeling is totaal ongepast en het is gevaarlijk dat het parlement zich daartoe leent.” AI roept de parlementsleden dan ook op zich te bezinnen vooraleer ze de wetten nog voor het zomerreces stemmen.
  2. Kan iemand hier nog een paar leuke foto’s aan toevoegen? Die van Clinton lijkt nergens naar!
<div class="notes">
	<ol class="notes-list fjs-scroll-to-bottom">
		<li class="notes-item">
			<div class="note">
				<div class="note-body">ontwerpen en zet nu het parlement buitenspel door te vragen dat ze in amper twee weken besproken en gestemd worden. De spoedbehandeling is totaal ongepast en het is gevaarlijk dat het parlement zich daartoe leent.” AI roept de parlementsleden dan ook op zich te bezinnen vooraleer ze de wetten nog voor het zomerreces stemmen.</div>
				<div class="note-footer">
					<span class="note-footer-meta">Peter Evergem</span>
					<time class="note-footer-meta-timestamp">Woe 25/01/2017 10u45</time>
				</div>
			</div>
		</li>
		<li class="notes-item">
			<div class="note">
				<div class="note-body">Kan iemand hier nog een paar leuke foto’s aan toevoegen? Die van Clinton lijkt nergens naar!</div>
				<div class="note-footer">
					<span class="note-footer-meta">Evelien Maes</span>
					<time class="note-footer-meta-timestamp">Woe 25/01/2017 12u45</time>
				</div>
			</div>
		</li>
	</ol>
	<form action="" method="" class="notes-form">
		<input value="" type="text" class="form-control" placeholder="Voeg een notitie toe…" />
		<div class="form-footer form-footer-hidden-js">
			<button class="btn btn-primary" type="submit">Verzenden</button>
		</div>
	</form>
</div>

The .fjs-scroll-to-bottom class will make the notes scroll to the last one (at the bottom).

Clean slate state

Clean slate for when there are no notes yet.

  1. Er zijn nog geen notities
<div class="notes">
	...
	<div class="note note-cleanslate">
		<div class="note-body">Er zijn nog geen notities</div>
	</div>
	...
</div>

Pagination

Provide pagination links for your site or app with the multi-page pagination component, or the simpler pager alternative.

Default pagination

Pagination is being used in order to ensure quick performance of an application. It allows a quick loading of a page, and if the user wants to see more items or results, they can be found on the subsequent pages.

Maximum items

We show a maximum of 7 page numbers per pagination. The page number before & the page number after the currenly selected page are always displayed. The first and the last page is always displayed. The pages in between are represented by 3 dots "…"

<nav class="pagination">
	<ul class="pagination-wrapper">
		<li class="pagination-arrow pagination-arrow-previous">
			<a href="#" class="pagination-link">Vorige</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">1</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">&hellip;</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">14</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">15</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">16</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">&hellip;</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">25</a>
		</li>
		<li class="pagination-arrow pagination-arrow-next">
			<a href="#" class="pagination-link">Volgende</a>
		</li>
	</ul>
	<div class="pagination-range">
		<span class="pagination-range-from-to">25 tot 50</span> van <span class="pagination-range-total">25461</span>
	</div>
</nav>

Disabled and active states

Links are customizable for different circumstances. Use .disabled for unclickable links and .active to indicate the current page.

<nav class="pagination">
	...
	<ul class="pagination-wrapper">
		<li class="pagination-arrow pagination-arrow-previous">
			<a href="#" class="pagination-link">Vorige</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">1</a>
		</li>
		<li class="pagination-item disabled">
			<a class="pagination-link" href="#">&hellip;</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">14</a>
		</li>
		<li class="pagination-item active">
			<a class="pagination-link" href="#">15</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">16</a>
		</li>
		<li class="pagination-item disabled">
			<a class="pagination-link" href="#">&hellip;</a>
		</li>
		<li class="pagination-item">
			<a class="pagination-link" href="#">25</a>
		</li>
		<li class="pagination-arrow pagination-arrow-next">
			<a href="#" class="pagination-link">Volgende</a>
		</li>
	</ul>
	...
</nav>

You can optionally swap out active or disabled anchors for <span class="pagination-dummy">, to remove click functionality while retaining intended styles.

...
	<ul class="pagination-wrapper">
		<li class="pagination-item disabled">
			<span class="pagination-dummy">1</span>
		</li>
		<li class="pagination-item active">
			<span class="pagination-dummy">1<span class="sr-only">(huidige)</span></span>
		</li>
		...
	</ul>
...

First and last page

Previous button: only shown when there is a previous page (so not on the first page). Next button: only shown when there is a next page (so will not be shown on last page)

Short list

When there are less than 7 result pages ...

Panels

While not always necessary, sometimes you need to put your DOM in a box. For those situations, try the panel component.

Basic example

By default, all the .panel does is apply some basic border and padding to contain some content.

Basic panel example
<div class="panel panel-default">
	<div class="panel-body">
		Basic panel example
	</div>
</div>

Panel with heading

Easily add a heading container to your panel with .panel-heading. You may also include any <h1>-<h6> with a .panel-title class to add a pre-styled heading. However, the font sizes of <h1>-<h6> are overridden by .panel-heading.

For proper link coloring, be sure to place links in headings within .panel-title.

Panel heading without title
Panel content

Panel title

Panel content
<div class="panel panel-default">
	<div class="panel-heading">Panel heading without title</div>
	<div class="panel-body">
		Panel content
	</div>
</div>

<div class="panel panel-default">
	<div class="panel-heading">
		<h3 class="panel-title">Panel title</h3>
	</div>
	<div class="panel-body">
		Panel content
	</div>
</div>

Wrap buttons or secondary text in .panel-footer. Note that panel footers do not inherit colors and borders when using contextual variations as they are not meant to be in the foreground.

Panel content
<div class="panel panel-default">
	<div class="panel-body">
		Panel content
	</div>
	<div class="panel-footer">Panel footer</div>
</div>

Contextual alternatives

Like other components, easily make a panel more meaningful to a particular context by adding any of the contextual state classes.

Panel title

Panel content

Panel title

Panel content

Panel title

Panel content

Panel title

Panel content
<div class="panel panel-primary">...</div>
<div class="panel panel-success">...</div>
<div class="panel panel-warning">...</div>
<div class="panel panel-danger">...</div>

Togglable panels

Make panels togglable so you can open or close them.

With the checked="checked" attribute on the checkbox you can open the panel.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla autem ducimus aliquid eveniet id amet, quod labore eligendi voluptates itaque tempora, quo accusamus ratione exercitationem saepe deleniti dolorem inventore ipsum! Blanditiis quo sit, ipsa exercitationem magni dolor commodi nemo iusto nesciunt provident delectus odio quas est suscipit nostrum id. Voluptate!
<div class="panel panel-default panel-togglable">
	<input type="checkbox" class="panel-trigger" id="panelXtrigger" checked="checked" />
	<label for="panelXtrigger" class="panel-trigger-label panel-heading" aria-label="Klik om dit paneel te openen of sluiten">
		<span class="icon" aria-hidden="true"></span>
		<h4 class="panel-title">Zoekresultaten <span class="badge badge-primary">223</span></h4>
	</label>
	<div class="panel-body">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla autem ducimus aliquid eveniet id amet, quod labore eligendi voluptates itaque tempora, quo accusamus ratione exercitationem saepe deleniti dolorem inventore ipsum! Blanditiis quo sit, ipsa exercitationem magni dolor commodi nemo iusto nesciunt provident delectus odio quas est suscipit nostrum id. Voluptate!</div>
</div>

Panel body without padding

If for some reason you need a .panel-body without padding, add .panel-body-no-padding to .panel-body.

Progress bars

Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.

Cross-browser compatibility

Progress bars use CSS3 transitions and animations to achieve some of their effects. These features are not supported in Internet Explorer 9 and below or older versions of Firefox. Opera 12 does not support animations.

Content Security Policy (CSP) compatibility

If your website has a Content Security Policy (CSP) which doesn't allow style-src 'unsafe-inline', then you won't be able to use inline style attributes to set progress bar widths as shown in our examples below. Alternative methods for setting the widths that are compatible with strict CSPs include using a little custom JavaScript (that sets element.style.width) or using custom CSS classes.

Basic example

Default progress bar.

60% Complete
<div class="progress">
	<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;">
		<span class="sr-only">60% Complete</span>
	</div>
</div>

With label

Remove the <span> with .sr-only class from within the progress bar to show a visible percentage.

60%
<div class="progress">
	<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;">
		60%
	</div>
</div>

To ensure that the label text remains legible even for low percentages, consider adding a min-width to the progress bar.

0%
2%
<div class="progress">
	<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="min-width: 2em;">
		0%
	</div>
</div>
<div class="progress">
	<div class="progress-bar" role="progressbar" aria-valuenow="2" aria-valuemin="0" aria-valuemax="100" style="min-width: 2em; width: 2%;">
		2%
	</div>
</div>

Available sizes

Besides the default size, there's also a small size available.

50%
<div class="progress progress-small">
	<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 50%;">
		<span class="sr-only">50%</span>
	</div>
</div>

Contextual alternatives

Progress bars use some of the same button and alert classes for consistent styles.

40% Complete (success)
20% Complete
60% Complete (warning)
80% Complete (danger)
<div class="progress">
	<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
		<span class="sr-only">40% Complete (success)</span>
	</div>
</div>
<div class="progress">
	<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
		<span class="sr-only">20% Complete</span>
	</div>
</div>
<div class="progress">
	<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
		<span class="sr-only">60% Complete (warning)</span>
	</div>
</div>
<div class="progress">
	<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
		<span class="sr-only">80% Complete (danger)</span>
	</div>
</div>

Striped

Uses a gradient to create a striped effect. Not available in IE9 and below.

40% Complete (success)
20% Complete
60% Complete (warning)
80% Complete (danger)
<div class="progress">
	<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
		<span class="sr-only">40% Complete (success)</span>
	</div>
</div>
<div class="progress">
	<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
		<span class="sr-only">20% Complete</span>
	</div>
</div>
<div class="progress">
	<div class="progress-bar progress-bar-warning progress-bar-striped" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
		<span class="sr-only">60% Complete (warning)</span>
	</div>
</div>
<div class="progress">
	<div class="progress-bar progress-bar-danger progress-bar-striped" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
		<span class="sr-only">80% Complete (danger)</span>
	</div>
</div>

Animated

Add .active to .progress-bar-striped to animate the stripes right to left. Not available in IE9 and below.

45% Complete
<div class="progress">
	<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%">
		<span class="sr-only">45% Complete</span>
	</div>
</div>

Automated

In addition to the animated version we also offer a "automated" progress bar. It's use case is providing a visual feedback when clicking a button with an action like "Saving" or likewise.

Saving in progress
<div class="progress progress-small progress-automated">
	<div class="progress-bar " role="progressbar" role="presentation">
		<span class="sr-only">Saving in progress</span>
	</div>
</div>

Be creative with this and combine it with animated buttons to give the user some usefull feedback on an action like "Saving".

Stacked

Place multiple bars into the same .progress to stack them.

35% Complete (success)
20% Complete (warning)
10% Complete (danger)
<div class="progress">
	<div class="progress-bar progress-bar-success" style="width: 35%">
		<span class="sr-only">35% Complete (success)</span>
	</div>
	<div class="progress-bar progress-bar-warning progress-bar-striped" style="width: 20%">
		<span class="sr-only">20% Complete (warning)</span>
	</div>
	<div class="progress-bar progress-bar-danger" style="width: 10%">
		<span class="sr-only">10% Complete (danger)</span>
	</div>
</div>

Results

Show your output in a modifiable layout.

The Results component usually works in conjunction with the Media picker component. This way you can toggle the different states of the media-picker component. See a live example.

...
<div class="results">
	<input type="radio" class="results-view-trigger" id="resultsviewlarge2" name="resultsview" checked="checked" />
	<label class="results-view-label" for="resultsviewlarge2">large tiles</label>
	<input type="radio" class="results-view-trigger" id="resultsviewsmall2" name="resultsview" />
	<label class="results-view-label" for="resultsviewsmall2">small tiles</label>
	<input type="radio" class="results-view-trigger" id="resultsviewrows2" name="resultsview" />
	<label class="results-view-label" for="resultsviewrows2">rows</label>
	<div class="results-body">
		<div class="media-picker">
			...
		</div>
	</div>
</div>

Shell

Create a Shell to hold an application. You will create two equal height columns that each holds an iframe.

<html class="">
	<head>...</head>
	<body>
		<div class="shell">
			<header class="header">...</header>
			<div class="page-main-content shell-inner">
				<div class="shell-cols">
					<div class="shell-frame">
						<div class="tabs tabs-primary fjs-tabs-faux tabs-faux" role="tablist">...</div>
						<iframe src="..." frameborder="0" name="frame1"></iframe>
					</div>
					<div class="shell-frame">
						<div class="tabs tabs-primary tabs-alt fjs-tabs-faux tabs-faux" role="tablist">...</div>
						<iframe src="..." frameborder="0" name="frame2"></iframe>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>

For a layout with white borders and a header without box-shadow, add .layout-alt to <html class="">

Tabs

Tabs purely with html and css, no JavaScript required. Flexbox to the rescue!

Active states are styled using the :checked pseudo selector on the input[type="radio"] and the adjacent sibling combinator .tabs-trigger:checked + .tabs-label {...}.

Primary tabs

Add quick, dynamic tab functionality to transition through panes of local content.

Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.

A darker version

Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.

<div class="tabs tabs-primary tabs-alt" role="tablist">
	...
</div>

Secondary tabs

A cleaner version ....

Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.

Markup

Check your code

Please pay attention to the following.

  1. id's of the input[type="radio"] and the for="" attribute of the label must match.
  2. All input[type="radio"] must have the same name="" value
  3. Also make sure you don't have any duplicate id's and no duplicate name="" values on other tabs components in the page
  4. Please add the WAI-ARIA attributes for improved accessibility
<div class="tabs tabs-primary" role="tablist">
	<input type="radio" class="tabs-trigger" name="tabs-trigger" id="home" checked="checked" />
	<label for="home" class="tabs-label" id="home-tab" role="tab" aria-controls="home-pane">Home</label>
	<div class="tabs-pane" id="home-pane" role="tabpanel" aria-labelledby="home-tab">
		...
	</div>
	<input type="radio" class="tabs-trigger" name="tabs-trigger" id="profile" />
	<label for="profile" class="tabs-label" id="profile-tab" role="tab" aria-controls="profile-pane">Profile</label>
	<div class="tabs-pane" id="profile-pane" role="tabpanel" aria-labelledby="profile-tab">
		...
	</div>
	<input type="radio" class="tabs-trigger" name="tabs-trigger" id="settings" />
	<label for="settings" class="tabs-label" id="settings-tab" role="tab" aria-controls="settings-pane">Settings</label>
	<div class="tabs-pane" id="settings-pane" role="tabpanel" aria-labelledby="settings-tab">
		...
	</div>
</div>

Faux tabs

Component that looks like regular tabs, but it's actually a list of links. We use them on the shell to control the iframes.

Why don't we use regular tabs for this?
Because with regular tabs we would load (on page load) all the content of each pane (a complete webpage in an iframe) and that would be overkill.

Primary tabs

<div class="tabs tabs-primary tabs-faux fjs-tabs-faux" role="tablist">
	<a href="#" class="tabs-link" target="">Structuur</a>
	<a href="#" class="tabs-link js-is-active" target="">Zoeken</a>
	<a href="#" class="tabs-link" target="">Communicatie</a>
	<a href="#" class="tabs-link" target="">Dossier</a>
</div>

With a darker active state: .tabs-primary.tabs-alt

<div class="tabs tabs-primary tabs-alt tabs-faux fjs-tabs-faux" role="tablist">
	<a href="#" class="tabs-link">Structuur</a>
	<a href="#" class="tabs-link js-is-active">Zoeken</a>
	<a href="#" class="tabs-link">Communicatie</a>
	<a href="#" class="tabs-link">Dossier</a>
</div>

Simple faux tabs

Used as an extension of the primary faux tabs in Site Management. This is in fact a simple list of links.

A darker version

<div class="tabs tabs-primary tabs-simple tabs-alt tabs-faux" role="tablist">
	<div class="tabs-icon">
		<span class="icon icon-shout" aria-hidden="true"></span>
	</div>
	<a href="#" class="tabs-link is-active">Pushberichten</a>
	<a href="#" class="tabs-link">Nieuwsbrieven</a>
	<a href="#" class="tabs-link">Social media</a>
</div>

Drop the classes you don't need

Mostly this component will not control iframes so you can drop the .fjs-tabs-faux and change the active state to .is-active

Secondary faux tabs

<div class="tabs tabs-secondary tabs-faux fjs-tabs-faux" role="tablist">
	<a href="#" class="tabs-link" target="">Structuur</a>
	<a href="#" class="tabs-link" target="">Zoeken</a>
	<a href="#" class="tabs-link" target="">Communicatie</a>
	<a href="#" class="tabs-link" target="">Dossier</a>
</div>

With a darker active state: .tabs-secondary.tabs-alt

<div class="tabs tabs-secondary tabs-alt tabs-faux fjs-tabs-faux" role="tablist">
	<a href="#" class="tabs-link js-is-active" target="">Structuur</a>
	<a href="#" class="tabs-link" target="">Zoeken</a>
	<a href="#" class="tabs-link" target="">Communicatie</a>
	<a href="#" class="tabs-link" target="">Dossier</a>
</div>

To control iframes, you must place a name="" attribute on the iframe and a target="" attribute on the link that matches the name of the iframe

<div class="tabs tabs-primary tabs-faux fjs-tabs-faux" role="tablist">
	<a href="/some/link.html" class="tabs-link js-is-active" target="frameX">Structuur</a>
	<a href="/some/searchlink.html" class="tabs-link" target="frameX">Zoeken</a>
	...
</div>

<iframe src="/some/link.html" frameborder="0" name="frameX"></iframe>

Javascript Required

You need JS to visualize the active state of the faux tabs. Toggle the class .js-is-active on .tabs-link

Tags

Removable element linked to a predefined category (mediatopic or entity). The element occurs when an item is selected from the list after typing a word and when a single predefined category is found corresponding to the word.

Example

Topics Trailrunning
<span class="tag">Topics</span>
<span class="tag dp-tag-type">Trailrunning</span>

Available variations

Add any of the below mentioned modifier classes to change the appearance of a label.

Unidentified Media topics Author Brand Type Time Date Source Price
<span class="tag">Unidentified</span>
<span class="tag dp-tag-mediatopic">Media topics</span>
<span class="tag dp-tag-author">Author</span>
<span class="tag dp-tag-brand">Brand</span>
<span class="tag dp-tag-type">Type</span>
<span class="tag dp-tag-time">Time</span>
<span class="tag dp-tag-date">Date</span>
<span class="tag dp-tag-source">Source</span>
<span class="tag dp-tag-paying">Price</span>

Interactive tags

Tags are mostly used in conjunction with Tag input. You need an extra span inside the .tag to add the remove function.

Try hovering over the tag to see the effect.

De Morgen
<span class="tag dp-tag-brand">De Morgen<span data-role="remove"></span></span>

Rounded tags

Pill shaped tags

De Morgen
<span class="tag tag-rounded dp-tag-brand">De Morgen<span data-role="remove"></span></span>

Outlined

De Morgen De Morgen
<span class="tag tag-outline dp-tag-brand">De Morgen<span data-role="remove"></span></span>
<span class="tag tag-outline tag-rounded">De Morgen<span data-role="remove"></span></span>

Navigation Tree

A tree representation of a folder structure.

<div class="tree">
	<ol class="tree-list">
		<li class="tree-item">
			<input type="checkbox" name="" value="" id="binnenland" class="tree-checkbox" checked="checked" />
			<label for="binnenland" class="tree-label"><span class="tree-label-inner">Nieuws &gt; Binnenland</span></label>
			<ol class="tree-list">
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="binnenland-prios" class="tree-checkbox" checked="checked" />
					<label for="binnenland-prios" class="tree-label"><span class="tree-label-inner">Prio's</span></label>
					<ol class="tree-list">
						<li class="tree-item">
							<input type="checkbox" name="" value="" id="binnenland-prios-dringend" class="tree-checkbox" />
							<label for="binnenland-prios-dringend" class="tree-label"><span class="tree-label-inner">Echt Dringend</span></label>
						</li>
						<li class="tree-item">
							<input type="checkbox" name="" value="" id="binnenland-prios-alarmerend" class="tree-checkbox" />
							<label for="binnenland-prios-alarmerend" class="tree-label"><span class="tree-label-inner">Alarmerend</span></label>
						</li>
						<li class="tree-item">
							<input type="checkbox" name="" value="" id="binnenland-prios-gepind" class="tree-checkbox" />
							<label for="binnenland-prios-gepind" class="tree-label"><span class="tree-label-inner">Gepind</span></label>
						</li>
					</ol>
				</li>
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="binnenland-live-event" class="tree-checkbox" checked="checked" />
					<label for="binnenland-live-event" class="tree-label"><span class="tree-label-inner">Live event</span></label>
				</li>
			</ol>
		</li>
		<li class="tree-item">
			<input type="checkbox" name="" value="" id="buitenland" class="tree-checkbox" checked="checked" />
			<label for="buitenland" class="tree-label"><span class="tree-label-inner">Nieuws &gt; Buitenland</span></label>
			<ol class="tree-list">
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="buitenland-prios" class="tree-checkbox" />
					<label for="buitenland-prios" class="tree-label"><span class="tree-label-inner">Prio's</span></label>
					<ol class="tree-list">
						<li class="tree-item">
							<input type="checkbox" name="" value="" id="buitenland-prios-super-prio" class="tree-checkbox" />
							<label for="buitenland-prios-super-prio" class="tree-label"><span class="tree-label-inner">Super prio</span></label>
						</li>
					</ol>
				</li>
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="buitenland-live-event" class="tree-checkbox" />
					<label for="buitenland-live-event" class="tree-label"><span class="tree-label-inner">Live event</span></label>
					<ol class="tree-list">
						<li class="tree-item">
							<input type="checkbox" name="" value="" id="buitenland-live-event-begrafenis" class="tree-checkbox" />
							<label for="buitenland-live-event-begrafenis" class="tree-label"><span class="tree-label-inner">Begrafenissen</span></label>
						</li>
					</ol>
				</li>
			</ol>
		</li>
		<li class="tree-item">
			<input type="checkbox" name="" value="" id="politiek" class="tree-checkbox" />
			<label for="politiek" class="tree-label"><span class="tree-label-inner">Nieuws &gt; Politiek</span></label>
			<ol class="tree-list">
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="politiek-usa" class="tree-checkbox" />
					<label for="politiek-usa" class="tree-label"><span class="tree-label-inner">Amerikaanse Verkiezingen</span></label>
				</li>
			</ol>
		</li>
		<li class="tree-item">
			<input type="checkbox" name="" value="" id="wetenschap" class="tree-checkbox" />
			<label for="wetenschap" class="tree-label"><span class="tree-label-inner">Nieuws &gt; Wetenschap</span></label>
			<ol class="tree-list">
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="wetenschap-prios" class="tree-checkbox" />
					<label for="wetenschap-prios" class="tree-label"><span class="tree-label-inner">Prio's</span></label>
				</li>
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="wetenschap-live-event" class="tree-checkbox" />
					<label for="wetenschap-live-event" class="tree-label"><span class="tree-label-inner">Live event</span></label>
				</li>
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="wetenschap-top-breaking" class="tree-checkbox" />
					<label for="wetenschap-top-breaking" class="tree-label"><span class="tree-label-inner">Top breaking</span></label>
				</li>
				<li class="tree-item">
					<input type="checkbox" name="" value="" id="wetenschap-bakskes" class="tree-checkbox" />
					<label for="wetenschap-bakskes" class="tree-label"><span class="tree-label-inner">Bakskes</span></label>
				</li>
			</ol>
		</li>
		<li class="tree-item">
			<input type="checkbox" name="" value="" id="opinie" class="tree-checkbox" />
			<label for="opinie" class="tree-label"><span class="tree-label-inner">Nieuws &gt; Opinie</span></label>
		</li>
		<li class="tree-item">
			<input type="checkbox" name="" value="" id="sport" class="tree-checkbox" />
			<label for="sport" class="tree-label"><span class="tree-label-inner">Nieuws &gt; Sport</span></label>
		</li>
	</ol>
</div>