Welcome to the VUB styleguide – an internal guide & code repository for designing and coding projects for VUB. If you're new here, have a look through some of the topics on the left.
Always provide different shades of the primary colors. For a more high-level approach on color use, head over to IBM Design Language.
$dark HEX: #2F3742
$medium HEX: #3F4A59
$light-extra HEX: #FFFFFF
$orange HEX: #FF6600
$blue HEX: #003399
UI-kit colors
Primary colors for interaction feedback, notifications and states: error (red), warning (orange), success (green) and information (blue). UI-kit colors should always be aligned with the tone of voice of the application/brand.
$ui-red HEX: #c93f30
$ui-orange HEX: #e37224
$ui-green HEX: #2a8b3d
$ui-blue HEX: #b77b2
Typography
/sass/base/_typography.scss
Reading experience
Typography is the atomic element of good interface design as it defines branding, layout, composition & rhythm. Note that it's not just about choosing the right typeface, it's also about tone of voice, microcopy. Head over to
IBM Design Language for an in-depth overview on the elements of typography.
Good reading experiences have the right amount of characters per line. If a line is too long users will have a hard time focusing, if a line is too short the eye will have to travel back too often, breaking the reader's rhythm. An optimal line length is 50-75 characters, which is about 10-12 words or 25-33 × base font-size (1em). To increase readability of typographic elements, default letter-spacing values for headings & small text are adjusted.
Content is king and should always precede design. Design in the absence of content is not design, but decoration.
<p> - Roboto (300) - 16px - line-height: 1.7
Many desperate acts of design (e.g. gradients, drop shadows, and the gratuitous use of transparency) are perpetuated in the absence of a strong concept. Good ideas provide a framework for design, guiding the work.
Online design trends change more often than the wind and slightly less often than my socks. Good design is timeless, good design creates culture. Culture shapes value and value determinates the future.
<h5>Heading 5</h5>
Hyperlinks: <a href="">, <span class="is-hyperlink">
This is a hyperlink This looks like a hyperlink
<a href="#" title="Always provide a title">Hyperlink</a>
<span class="is-hyperlink">This looks like a hyperlink</span>
Strong: <strong>
This text is strong
Emphasized: <em>
This text is emphasized
Quotes: <q>
This text is quoted
Obsolete/deleted/updated: <del>
This text is obsolete/deleted/updated
<strong>This text is strong</strong>
<em>This text is emphasized</em>
<q>This text is quoted</q>
<del>This text is obsolete/deleted/updated</del>
Lists
/sass/base/_lists.scss
Implementation
By default lists are not included in base/_normalize.scss. Each class extending the default (e.g. inline-list) must handle the reset in itself. Usually this means resetting the padding-left value and adjust the list-style property.
The icon-set is converted with a custom Gulp iconfont-task. To add/remove icons from the generated font, please contact Little Miss Robot or use an online service like IcoMoon. Warning: using an online service could break stuff!
.icon-support
.icon-international
.icon-research
.icon-study
.icon-arrow-up
.icon-arrow-down
.icon-arrow-left
.icon-arrow-right
.icon-full-arrow-left
.icon-full-arrow-right
.icon-search
.icon-social-instagram
.icon-social-facebook
.icon-social-youtube
.icon-social-twitter
<span class="icon-{{name}}"></span>
Grid system
/sass/base/_layout.scss
Columns
Basic grid classes for layout purposes, has no extra margins & paddings applied to items and will work with anything (class based).
Optionally the grid system can be extended to include default margins which can be used in general, multi-column page layouts. Add the .has-default-margins class to the wrapping container for this to work.
Extended with margins: <div class="rd-container rd-has-default-margins">
.rd-col-1-1
.rd-col-1-2
.rd-col-1-2
.rd-col-1-3
.rd-col-1-3
.rd-col-1-3
.rd-col-1-3
.rd-col-2-3
.rd-col-2-3
.rd-col-1-3
.rd-col-1-4
.rd-col-1-4
.rd-col-1-4
.rd-col-1-4
.rd-col-1-4
.rd-col-3-4
.rd-col-3-4
.rd-col-1-4
Rows
Since we need to fit everything on 1 page, it's important to define a a height on each of of the grid items as well. We can combine this we the columns to create a flexible layout system.
Use <a> for navigation, <button> for everything else. Submit/reset buttons are the only exceptions, using <input[type="submit"]> to trigger default browser behaviour associated with submitting form input. Buttons should follow a typographic scale, based on importance and base font-size.
Each input field should have a label and inform users about the kind of input they need to provide. This info-text switches functionality during the user flow: information becomes inline validation/immediate feedback. The tone of voice should be human and add personality to the experience/brand.
Implementation
Every form should have an action- and method-attribute. To encourage default browser behaviour, the submit button should be added as input[type=submit]. Every input should have a label with corresponding for-, id- and name-attributes. Labels are always placed before inputs, nesting is not allowed (except for checkboxes and radio's).
Input
Range slider
By default range sliders aren't easy to style in a specific look& feel. In roder to get it working, some additional javascript is needed. Changing the slider value will reveal a tooltip with the actual value.
Radios & checkboxes
Radio, checkboxes and toggles are wrapped inside a label to enable the default browser behaviour.
Toggles
Toggles are extended checkboxes, to be used if the context implies a yes/no condition.
Always provide feedback on user interaction. This can be immediate (eg. inline validation) or after the action (eg. submit a form). Feedback messages are informative and provide an easy escape or alternative/following action. The tone of voice should be human and add personality to the experience/brand.
Use tooltips to display inline information or validation feedback. Just like default alerts, different styling can be applied (error, warning, success and information). Although tooltips will work with any typographic style, the use of <small> is adviced.
General markup: <small class="tooltip{{-direction}} {{state}}">
Tooltip with hyperlink
Tooltip
Tooltip
Tooltip
Tooltip
Tooltip with hyperlink
Tooltip
Tooltip
Tooltip
Tooltip
Tooltip with hyperlink
Tooltip
Tooltip
Tooltip
Tooltip
Tooltip with hyperlink
Tooltip
Tooltip
Tooltip
Tooltip
Always provide immediate/inline feedback on user interaction. Feedback messages are informative and provide an easy escape or alternative/following action. The tone of voice should be human and add personality to the experience/brand.
Molecules
Main Navigation
/sass/components/_navigation.scss
The main navigation will always be placed on a photo background and contains the primary navigation on the website
The dividing image is a big hero box that stretches across the page and can be used to create a visual boundary on a page. This is perfectly suited to use at the start of a new section on a long page.
This module provides everything you need to easily allow the user to select a certain field of education. There are 2 different kind of links in this module: an internal one ( which opens up a new section ) and an external one. ( which links to a new page )
<ul class="rd-opleidingen">
<li>
<a href="#" class="rd-is-active">Bacheloropleidingen<span></span></a>
</li>
<li>
<a href="#">Masteropleidingen<span></span></a>
</li>
<li>
<a href="#">Manama’s<span></span></a>
</li>
<li>
<a href="#">Postgraduaten<span></span></a>
</li>
<li>
<a href="#" class="rd-external">Bachelor of Science in de biomedische wetenschappen<span></span></a>
</li>
<li>
<a href="#" class="rd-external">Bachelor of Science in de farmaceutische wetenschappen<span></span></a>
</li>
<li>
<a href="#" class="rd-external">Exchange agreements<span></span></a>
</li>
</ul>
Article
/sass/components/_article.scss
Articles are multi-functional components which can be used to display news & events.
The extra headline (h5) is optional and can be used to display a timestamp for events
<a href="#" class="rd-article rd-col-1-2">
<div class="rd-article-thumb">
<img src="img/layout/default-thumb.jpg" />
</div>
<div class="rd-article-header">
<h4>VUB'er David trekt alle registers open in The Voice van Vlaanderen </h4>
</div>
<p>
Student. Werknemer. Zanger. In de eerste ronde van The Voice van Vlaanderen blies David maar liefst twee juryleden van hun stoel. Vandaag valt hij te bewonderen in een battle op VTM. opnemen voor de volgende stap: de liveshow.
</p>
</a>
Logo
/sass/components/_logos.scss
Logo are functional components which can be used to display partners & or logos.
Tiles are multi-functional components which can be used to display small snippets of information in a grid.
There are 2 types of tiles: the default tile has a background, title & button. The custom tile is empty and can be used to manually insert HTML.
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
<div class="rd-testimonials-header">
<a href="#" class="rd-js-show-testimonial rd-is-active" data-ref="testimonial-1">
<div class="rd-headshot">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<h5>Arlene</h5>
<h6>1<sup>e</sup> bachelor</h6>
</a>
</div>
<div class="rd-testimonials-content">
<div class="rd-testimonial rd-is-visible" id="testimonial-1">
<p>
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
</div>
</div>
Content Sections
/sass/components/_content.scss
The content sections hold large chunks of text and can be use to display all sort of extra relevant components such as images, quotes, sidebar navigation, etc...
Connect Team
The CONNECT team (connexin and pannexin channels as drug targets and biomarkers in acute and chronic liver disease) is part of the Department of In Vitro Toxicology and Dermato-Cosmetology of the Faculty of Medicine and Pharmacy at the Vrije Universiteit Brussel-Belgium and the Department of Pathology of the School of Veterinary Medicine and Animal Science of the University of São Paulo-Brazil.
<section class="rd-content">
<div class="rd-container">
<div class="rd-content-holder">
<h4>Connect Team</h4>
<p>
The CONNECT team (connexin and pannexin channels as drug targets and biomarkers in acute and chronic liver disease) is part of the Department of In Vitro Toxicology and Dermato-Cosmetology of the Faculty of Medicine and Pharmacy at the Vrije Universiteit Brussel-Belgium and the Department of Pathology of the School of Veterinary Medicine and Animal Science of the University of São Paulo-Brazil.
</p>
</div>
</div>
</section>
Connect Team
The CONNECT team (connexin and pannexin channels as drug targets and biomarkers in acute and chronic liver disease) is part of the Department of In Vitro Toxicology and Dermato-Cosmetology of the Faculty of Medicine and Pharmacy at the Vrije Universiteit Brussel-Belgium and the Department of Pathology of the School of Veterinary Medicine and Animal Science of the University of São Paulo-Brazil.
<section class="rd-content rd-intro">
<div class="rd-container">
<div class="rd-content-holder">
<h2>Connect Team</h2>
<p>
The CONNECT team (connexin and pannexin channels as drug targets and biomarkers in acute and chronic liver disease) is part of the Department of In Vitro Toxicology and Dermato-Cosmetology of the Faculty of Medicine and Pharmacy at the Vrije Universiteit Brussel-Belgium and the Department of Pathology of the School of Veterinary Medicine and Animal Science of the University of São Paulo-Brazil.
</p>
</div>
</div>
</section>
Sterke opleidingen en sterk onderzoek
De faculteit met haar twee opleidingen rechten en criminologie wordt algemeen erkend voor haar studentgericht en kwalitatief onderwijs dat studenten vormt tot kritische en redelijk eigenzinnige wereldburgers. Onze alumni bekleden daarom zeer vaak sleutelposities in internationale en regionale organisaties, in de Belgische politiek, de magistratuur, de advocatuur, de ambtenarij, de politionele diensten, het bedrijfsleven en het maatschappelijk middenveld. Het onderwijs op onze faculteit wordt gevoed door een traditie in het wetenschappelijk onderzoek. Onderzoek dat op bepaalde domeinen tot ver buiten onze landsgrenzen geroemd wordt. De waarden van onze universiteit indachtig, zijn wij ook maatschappelijk geëngageerd en proberen we deze ingesteldheid mee te geven aan onze studenten zodat zij de uitdagingen van deze wereld niet onverschillig en onvoorbereid tegemoet gaan.
At the Belgian side, the Vrije Universiteit Brussel group is responsible for mechanistic and in vitro experimentation, whereas at the Brazilian side, the University of São Paulo group supervises the animal experiments.
<section class="rd-stories">
<div class="rd-container">
<div class="rd-section-header">
<h2>Wat er leeft op de VUB</h2>
<a href="#" class="rd-section-more">Meer Nieuws<span></span></a>
</div>
<div class="rd-section-content rd-has-default-margins">
<a href="#" class="rd-article rd-col-1-3">
<div class="rd-article-thumb">
<img src="img/layout/default-thumb.jpg" />
</div>
<div class="rd-article-header">
<h4>VUB'er David trekt alle registers open in The Voice van Vlaanderen </h4>
</div>
<p>
Student. Werknemer. Zanger. In de eerste ronde van The Voice van Vlaanderen blies David maar liefst twee juryleden van hun stoel. Vandaag valt hij te bewonderen in een battle op VTM. opnemen voor de volgende stap: de liveshow.
</p>
</a>
<a href="#" class="rd-article rd-col-1-3">
<div class="rd-article-thumb">
<img src="img/layout/default-thumb.jpg" />
</div>
<div class="rd-article-header">
<h4>VUB'er David trekt alle registers open in The Voice van Vlaanderen </h4>
</div>
<p>
Student. Werknemer. Zanger. In de eerste ronde van The Voice van Vlaanderen blies David maar liefst twee juryleden van hun stoel. Vandaag valt hij te bewonderen in een battle op VTM. opnemen voor de volgende stap: de liveshow.
</p>
</a>
<a href="#" class="rd-article rd-col-1-3">
<div class="rd-article-thumb">
<img src="img/layout/default-thumb.jpg" />
</div>
<div class="rd-article-header">
<h4>VUB'er David trekt alle registers open in The Voice van Vlaanderen </h4>
</div>
<p>
Student. Werknemer. Zanger. In de eerste ronde van The Voice van Vlaanderen blies David maar liefst twee juryleden van hun stoel. Vandaag valt hij te bewonderen in een battle op VTM. opnemen voor de volgende stap: de liveshow.
</p>
</a>
</div>
</div>
</section>
Opleidingen
/sass/components/_opleidingen.scss
The opleidingen module consists of an optional dividing image, and a combination of several opleidingen-components, displayed in a 3 column grid.
<section class="rd-events">
<div class="rd-container">
<div class="rd-section-header">
<h2>Evenementen</h2>
<a href="#" class="rd-section-more">Kalender<span></span></a>
</div>
<div class="rd-section-content rd-has-default-margins">
<a href="#" class="rd-article rd-col-1-2">
<div class="rd-article-thumb">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<div class="rd-article-header">
<h5>Woensdag 4 mei, 18 u – 20 u</h5>
<h4>De VUB komt naar je toe: International Master Congress Amsterdam</h4>
</div>
<p>
Bezoek ons op het International Master Congress in Amsterdam en kom alles te weten over de moge-lijkheden om verder te studeren aan de VUB.
</p>
</a>
<a href="#" class="rd-article rd-col-1-2">
<div class="rd-article-thumb">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<div class="rd-article-header">
<h5>Woensdag 4 mei, 18 u – 20 u</h5>
<h4>De VUB komt naar je toe: International Master Congress Amsterdam</h4>
</div>
<p>
Bezoek ons op het International Master Congress in Amsterdam en kom alles te weten over de moge-lijkheden om verder te studeren aan de VUB.
</p>
</a>
<a href="#" class="rd-article rd-col-1-2">
<div class="rd-article-thumb">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<div class="rd-article-header">
<h5>Woensdag 4 mei, 18 u – 20 u</h5>
<h4>De VUB komt naar je toe: International Master Congress Amsterdam</h4>
</div>
<p>
Bezoek ons op het International Master Congress in Amsterdam en kom alles te weten over de moge-lijkheden om verder te studeren aan de VUB.
</p>
</a>
<a href="#" class="rd-article rd-col-1-2">
<div class="rd-article-thumb">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<div class="rd-article-header">
<h5>Woensdag 4 mei, 18 u – 20 u</h5>
<h4>De VUB komt naar je toe: International Master Congress Amsterdam</h4>
</div>
<p>
Bezoek ons op het International Master Congress in Amsterdam en kom alles te weten over de moge-lijkheden om verder te studeren aan de VUB.
</p>
</a>
</div>
</div>
</section>
Contact section
/sass/components/_contact.scss
The contact section sits at the bottom of the page and holds the all the contact information of a certain faculty.
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
<section class="rd-content">
<div class="rd-container">
<div class="rd-content-holder">
<h2>Studenten aan het woord</h2>
<div class="rd-testimonials">
<div class="rd-testimonials-header">
<a href="#" class="rd-js-show-testimonial rd-is-active" data-ref="testimonial-1">
<div class="rd-headshot">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<h5>Arlene</h5>
<h6>1<sup>e</sup> bachelor</h6>
</a>
<a href="#" class="rd-headshot rd-js-show-testimonial" data-ref="testimonial-2">
<div class="rd-headshot">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<h5>Arlene</h5>
<h6>1<sup>e</sup> bachelor</h6>
</a>
<a href="#" class="rd-headshot rd-js-show-testimonial" data-ref="testimonial-3">
<div class="rd-headshot">
<img src="img/layout/default-square-thumb.jpg" />
</div>
<h5>Arlene</h5>
<h6>1<sup>e</sup> bachelor</h6>
</a>
</div>
<div class="rd-testimonials-content">
<div class="rd-testimonial rd-is-visible" id="testimonial-1">
<p>
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
</div>
<div class="rd-testimonial" id="testimonial-2">
<p>
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
<p>
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
<p>
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
</div>
<div class="rd-testimonial" id="testimonial-3">
<p>
Curabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
Team Module
/sass/components/_team.scss
This section contains a unlimited amount of team members, splits them in sets of 7 and adds a pagination.
Mathieu Vinken
Prof. Dr. Pharm
Vrije Universiteit Brussel
Cras mattis consectetur purus sit amet fermentum. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.