apex developers : do more with less !

37
Copyright © 2014 APEX Consulting APEX Developers - Do More With Less !! Roel Hartman

Upload: roel-hartman

Post on 04-Aug-2015

176 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: APEX Developers : Do More With LESS !

Copyright © 2014 APEX Consulting

APEX Developers - Do More With Less !!

Roel Hartman

Page 2: APEX Developers : Do More With LESS !

2

Page 3: APEX Developers : Do More With LESS !

LESS

Page 4: APEX Developers : Do More With LESS !

Leaner CSS

Page 5: APEX Developers : Do More With LESS !

SASS

Page 6: APEX Developers : Do More With LESS !

Syntactically Awesome StyleSheets

Page 7: APEX Developers : Do More With LESS !

SCSS

Page 8: APEX Developers : Do More With LESS !

Sassy CSS

Page 9: APEX Developers : Do More With LESS !

OOCSS

Page 10: APEX Developers : Do More With LESS !

Object Oriented CSS

Page 11: APEX Developers : Do More With LESS !

You need a CSS Expert

Issue 1

Page 12: APEX Developers : Do More With LESS !

Your CSS File(s) grows

Issue 2

Page 13: APEX Developers : Do More With LESS !

No CSS code re-use

Issue 3

Page 14: APEX Developers : Do More With LESS !

CSS is fragile

Issue 4

Page 15: APEX Developers : Do More With LESS !

CSS increases 1:1 with HTML

Result

Page 16: APEX Developers : Do More With LESS !

16

Your Solution …

Page 17: APEX Developers : Do More With LESS !

Separating Structure from Skin

Page 18: APEX Developers : Do More With LESS !

#button { width: 200px; height: 50px; padding: 10px; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

#box { width: 400px; overflow: hidden; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

#widget { width: 500px; min-height: 200px; overflow: auto; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

<html> <div id=“box”> <button id=“button” /> </div> <div id=“widget”></div> </html>

#button { width: 200px; height: 50px; padding: 10px; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

#box { width: 400px; overflow: hidden; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

#widget { width: 500px; min-height: 200px; overflow: auto; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

Page 19: APEX Developers : Do More With LESS !

#button { width: 200px; height: 50px; padding: 10px; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

#box { width: 400px; overflow: hidden; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

#widget { width: 500px; min-height: 200px; overflow: auto; border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

.button { width: 200px; height: 50px; }

.box { width: 400px; overflow: hidden; }

.widget { width: 500px; min-height: 200px; overflow: auto; }

.skin { border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

Page 20: APEX Developers : Do More With LESS !

.button { width: 200px; height: 50px; }

.box { width: 400px; overflow: hidden; }

.widget { width: 500px; min-height: 200px; overflow: auto; }

.skin { border: solid 1px #ccc; background: linear-gradient(#ccc, #222); box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px; }

<html> <div class=“box skin”> <button id=“button skin” /> </div> <div id=“widget skin”></div> </html>

Page 21: APEX Developers : Do More With LESS !

Separating Structure from Skin

Page 22: APEX Developers : Do More With LESS !

Separating Container from Content

Page 23: APEX Developers : Do More With LESS !

div{ width: 200px; height: 50px; padding: 10px; border: solid 1px #ccc; }

div h3{ margin: 0px; overflow: hidden; border: solid 1px #ccc; }

div p{ margin: 3px; min-height: 200px; overflow: auto; border: solid 1px #ccc; }

<html> <div> <h3>Header</h3> </div> <div> <p>Paragraph</p> </div> </html>

Page 24: APEX Developers : Do More With LESS !

.bordered{ border: solid 1px #ccc; }

.container{ width: 200px; height: 50px; padding: 10px; }

.region-header{ margin: 0px; overflow: hidden; }

.flexbox{ margin: 3px; min-height: 200px; overflow: auto; }

<html> <div class=“bordered container”> <h3 class=“bordered region-header”> Header </h3> </div> <div class=“bordered container”> <p class=“bordered flexbox”>Paragraph</p> </div> </html>

Page 25: APEX Developers : Do More With LESS !

Separating Container from Content

Page 26: APEX Developers : Do More With LESS !

LESS does MORE

Page 27: APEX Developers : Do More With LESS !

preprocessor

.less file(s)

.css file

client server

Page 28: APEX Developers : Do More With LESS !

<link rel="stylesheet" type="text/css" href="/css/demo2.css"> <aside class="sidemenu"> <h2 class="menu-header">Side menu</h2> <ul class="menu-list"> <li class=“menu-list-item"> <a class="" href="page1.html">item 1</a> </li> <li class=“menu-list-item"> <a class="" href="page2.html">item 1</a> </li> </ul> </aside>

<link rel="stylesheet" type="text/css" href="/css/demo2.css"> <aside id="sidemenu"> <h2>Side menu</h2> <ul> <li> <a href="page1.html">item 1</a> </li> <li> <a href="page2.html">item 1</a> </li> </ul> </aside>

#sidemenu h2{ color: black; font-size: 16px; } #sidemenu ul li a{ text-decoration: none; color: green; }

.sidemenu .menu-header{ color: black; font-size: 16px; } .sidemenu .menu-link{ text-decoration: none; color: green; }

Page 29: APEX Developers : Do More With LESS !

.sidemenu .menu-header{ color: black; font-size: 16px; } .sidemenu .menu-link{ text-decoration: none; color: green; }

.sidemenu{ .menu-header{ color: black; font-size: 16px; } .menu-link{ text-decoration: none; color: green; } }

Nesting

Page 30: APEX Developers : Do More With LESS !

.sidemenu{ .menu-header{ color: black; font-size: 16px; } .menu-link{ text-decoration: none; color: green; } }

@menu-header-color : black; @menu-link-color : green; @menu-font-size : 16px;

.sidemenu{ .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; } }

.sidemenu .menu-header { color: #000000; font-size: 16px; } .sidemenu .menu-link { text-decoration: none; color: #008000; }

Variables

Page 31: APEX Developers : Do More With LESS !

Calculations

@menu-header-color : black; @menu-link-color : green; @menu-font-size : 16px; @delta-font-size : @menu-font-size / 4;

.sidemenu{ .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; font-size: @menu-font-size - @delta-font-size; } }

@menu-header-color : black; @menu-link-color : green; @menu-font-size : 16px;

.sidemenu{ .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; } }

@menu-header-color : black; @menu-link-color : green; @menu-font-size : 16px;

.sidemenu{ .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; font-size: 12px; } }

.sidemenu .menu-header { color: #000000; font-size: 16px; } .sidemenu .menu-link { text-decoration: none; color: #008000; font-size: 12px; }

Page 32: APEX Developers : Do More With LESS !

Built-ins

@menu-header-color : black; @menu-link-color : green; @menu-font-size : 16px; @delta-font-size : @menu-font-size / 4;

.sidemenu{ .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; font-size: @menu-font-size - @delta-font-size; } }

.sidemenu { background-color: #404040; } .sidemenu .menu-header { color: #008000; font-size: 16px; } .sidemenu .menu-link { text-decoration: none; color: #00e600; font-size: 12px; } .sidemenu ul { color: #00e600; }

@menu-header-color : green; @menu-link-color : lighten(@menu-header-color, 20%); @menu-font-size : 16px; @delta-font-size : @menu-font-size / 4;

.sidemenu{ background-color : greyscale(@menu-header-color,@menu-link-color); .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; font-size: @menu-font-size - @delta-font-size; } ul{ color: @menu-link-color; } }

Page 33: APEX Developers : Do More With LESS !

Mixins

.roundedcorners{ -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; }

.roundedcorners( @rad : 10px ){ -webkit-border-radius: @rad; -moz-border-radius: @rad; border-radius: @rad; }

Page 34: APEX Developers : Do More With LESS !

@menu-header-color : green; @menu-link-color : lighten(@menu-header-color, 20%); @menu-font-size : 16px; @delta-font-size : @menu-font-size / 4;

.roundedcorners( @rad : 10px ){ -webkit-border-radius: @rad; -moz-border-radius: @rad; border-radius: @rad; }

.sidemenu{ background-color : greyscale(@menu-header-color,@menu-link-color); .roundedcorners( 25px ); .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; font-size: @menu-font-size - @delta-font-size; } ul{ color: @menu-link-color; } }

@import "library.less";

.sidemenu{ background-color : greyscale(@menu-header-color,@menu-link-color); .roundedcorners( 25px ); .menu-header{ color: @menu-header-color; font-size: @menu-font-size; } .menu-link{ text-decoration: none; color: @menu-link-color; font-size: @menu-font-size - @delta-font-size; } ul{ color: @menu-link-color; } }

Use Building Blocks

Page 35: APEX Developers : Do More With LESS !

Use Building BlocksOther People’s

http://cl.ly/image/2S0k1q3Q2y2L

Page 36: APEX Developers : Do More With LESS !

Copyright © 2014 APEX Consulting

Q & A [email protected]

http://www.apexconsulting.nl

36

Page 37: APEX Developers : Do More With LESS !

[email protected]://www.apexconsulting.nl

Copyright © 2014 APEX Consulting37