Frontend on steroids!
FRONT-END ON STEROIDSRobin Poort - PFCongres 2016
“ Een gemiddelde pagina in
2015 is 150x groter dan in 1995 ”
Front-end on Steroids PFCongres 2016
14KBin 1995
Front-end on Steroids PFCongres 2016
2MBin 2015
Front-end on Steroids PFCongres 2016
2.15MBholland.com
Front-end on Steroids PFCongres 2016
6MBvlaanderen.be
Front-end on Steroids PFCongres 2016
927KBfrance.fr
Front-end on Steroids PFCongres 2016
4.73MBdeutschland.de
Front-end on Steroids PFCongres 2016
1.1MBbelastingdienst.nl
Front-end on Steroids PFCongres 2016
1MBklm.com
Front-end on Steroids PFCongres 2016
1.38MBbooking.com
Front-end on Steroids PFCongres 2016
4MBairbnb.com
Front-end on Steroids PFCongres 2016
tweakers.net
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
1MBtweakers.net
Front-end on Steroids PFCongres 2016
2.48MBin 2016
Front-end on Steroids PFCongres 2016
Now what ?!
Front-end on Steroids PFCongres 2016
No JavaScript for 1 in 93 people
https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
booking.com
Verkeerde meta-data op Facebook
Front-end on Steroids PFCongres 2016
Verkeerde meta-data op Facebook
Onnavigeerbare menus voor screenreaders
Front-end on Steroids PFCongres 2016
Verkeerde meta-data op Facebook
Onnavigeerbare menus voor screenreaders
Nieuwe styling voor bestaande classes
Front-end on Steroids PFCongres 2016
Verkeerde meta-data op Facebook
Onnavigeerbare menus voor screenreaders
Nieuwe styling voor bestaande classes
Elk project andere naming
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
It’s costing money
Mobile First
https://flic.kr/p/gTH5oL
Front-end on Steroids PFCongres 2016
goo.gl/9AFDSigoo.gl/9AFDSi
Front-end on Steroids PFCongres 2016
DON’T:
@media (max-width: ...) { …
}
DO:
@media (min-width: ...) { …
}
Front-end on Steroids PFCongres 2016
goo.gl/9AFDSigoo.gl/9AFDSi
Front-end on Steroids PFCongres 2016
// Set max-width for old browsers
body {max-width: 600px;
}
// Reset the max-width on capable browsers
@media (min-width: 600px) {body {
max-width: none;}
}
Front-end on Steroids PFCongres 2016
goo.gl/9AFDSi
Front-end on Steroids PFCongres 2016
Future-proof
Front-end on Steroids PFCongres 2016
www.lokalepolitie.be/leuven
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
Device Mode in Chrome
Progressive Enhancement
https://flic.kr/p/4bcAb6
Front-end on Steroids PFCongres 2016
Wait… what ?!
Front-end on Steroids PFCongres 2016
Better.. But still
Front-end on Steroids PFCongres 2016
Javascript enabled
Front-end on Steroids PFCongres 2016
Javascript disabled
Front-end on Steroids PFCongres 2016
Javascript enabled
Front-end on Steroids PFCongres 2016
Javascript disabled
Front-end on Steroids PFCongres 2016
Open Graphhttps://flic.kr/p/2SvT9M
Front-end on Steroids PFCongres 2016
ogp.me
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
Linked Data
https://www.ted.com/talks/tim_berners_lee_on_the_next_web
Front-end on Steroids PFCongres 2016
schema.org
Microdata
Front-end on Steroids PFCongres 2016
schema.org
JSON Linked Data
Front-end on Steroids PFCongres 2016
webmasters.googleblog.com/2016/05/introducing-rich-cards.html
Google introduced rich cards
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
Accessibility
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
SassSyntactically Awesome Style Sheets
Front-end on Steroids PFCongres 2016
Front-end on Steroids PFCongres 2016
BEMBlock Element Modifier
Front-end on Steroids PFCongres 2016
www.smashingmagazine.com/2012/04/16/a-new-front-end-methodology-bem
Front-end on Steroids PFCongres 2016
Atomic Design
Front-end on Steroids PFCongres 2016
bradfrost.com/blog/post/atomic-web-design
Front-end on Steroids PFCongres 2016
DRY code
// Media object
.media { … }
.media__body { … }
.media__image { … }
.media__image img { … }
.media--flipped { … }
Front-end on Steroids PFCongres 2016
Split JS from CSS
<button class="toggle-button">One</button>
<button class="toggle-button">Two</button>
<button class="toggle-button">Three</button>
Front-end on Steroids PFCongres 2016
Split JS from CSS
jQuery(".toggle-button").on("click",function(){…
});
Front-end on Steroids PFCongres 2016
Split JS from CSS
<button class="toggle-button js-toggle-button">One
</button>
<button class="toggle-button js-toggle-button">Two
</button>
Front-end on Steroids PFCongres 2016
Split JS from CSS
.js-toggle-button { … }
.toggle-button { … }
.main-button { … }
.active { … }
.is-active { … }
.has-children { … }
Front-end on Steroids PFCongres 2016
_shame.scss
Front-end on Steroids PFCongres 2016
Grunt
Front-end on Steroids PFCongres 2016
$ grunt
Front-end on Steroids PFCongres 2016
Yellow Lab Tools
Front-end on Steroids PFCongres 2016
www.vlaanderen.be
Front-end on Steroids PFCongres 2016
www.vlaanderen.be
Front-end on Steroids PFCongres 2016
www.vlaanderen.be
Front-end on Steroids PFCongres 2016
BrowserStack
Front-end on Steroids PFCongres 2016
ngrok
Front-end on Steroids PFCongres 2016
One last thing ...
https://flic.kr/p/2SvT9M
Front-end on Steroids PFCongres 2016
BrowserSync
Front-end on Steroids PFCongres 2016
Demo
Let’s build a device lab
Disclaimer: live demos are a recipe for disaster
Front-end on Steroids PFCongres 2016
<1MBin 2017
Front-end on Steroids PFCongres 2016
// Thank you//// Author: Robin Poort// Twitter: @rhcpoort//// PFCongres 2016
Front-end on Steroids PFCongres 2016