3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
1
CSS Preprocessors
&IntrotoSassandLess
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
2
Mark Aplet
 @visual28
 mark@visual28.com
Senior UI/UX Designer at SymSoft Solution
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
3
CSSShortcomings
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
4
CSSShortcomings
 No Variables
You can wait…
But it might take a while.
A looonnng while…
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
5
CSSShortcomings
 Not DRY
• Less maintainable
• Duplicate code.
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
6
CSSShortcomings
 Difficult for distributed teams
 Separate files add extra http requests
• @import anyone?
 Frequent version control conflicts
 Separate build tool to concat
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
7
PreprocessorLanguages
 Less, Sass, Stylus
• It’s not a whole new language rather new features that you can
add to your css.
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
8
BenefitsofProcessedCSS
 Variables
 @imports (concatenation)
 Minification
 Nesting
 Extends
 Mixins (functions)
 Loops
 Math
 Color Manipulation
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
9
Misconceptions
 Sass is written in Ruby
 Less & Styles is JavaScript
• You need them on your
development machine only
I need node or ruby on my server - FALSE
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
10
Misconceptions
 But only for testing
 But why?
• Slow
• Better tools available
I can run Less client side – TRUE (Sort of)
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
11
Misconceptions
 Ruby and Node are easy to install on any platform
 Ruby pre-installed on macs
 Node installers makes it easy
• (*windows might not create the npm folder)
 Linux is easy with apt-get install
It’s hard to install - FALSE*
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
12
Lessvs Sass
 No short answer for that
 Bootstrap uses Less and Sass version
 Foundation uses Sass
 IMO Sass is more robust but less is easier to get started
with
 Sass has Compass - it is the bomb!
 Less was more performant, but now Sass has caching
Which is best?
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
13
DoI havetousethe cmdline?
 It is possible to avoid the command line
 Many well built GUI’s
 Command line tools = mo-betta!
• More power & flexibility
• Collaborate effectivly
No, but you will probably want to.
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
14
Avoidingthe CommandLine
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
15
GUITools
 CodeKit, PrePros, Crunchapp, Scout, Koala, Compassapp,
Lessapp, and more
Prepros KoalaCodekit
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
16
Why CommandLine?
 Ability to extend your workflow beyond just css
• JavaScript
• Image Optimization & Sprites sheets
• Web font creation
• Linting
• Live Reload
• FTP
• SVN & GIT
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
17
Why CommandLine?
 Even better with task runners like Grunt or Gulp
 Simplified Workflow
 Collaboration
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
18
Semanticsvs OOCSS
 OOCSS = CSS light but DOM heavy
 Semantic = DOM light but CSS heavy
 Mixins & Extends help narrow the gap
• Not perfect
• Future versions will get better
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
19
Installation
Lots of options depending on OS and tools
$npm install -g less
$gem install sass
$npm install
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
20
Variables
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
21
Variables
 Variable can hold variables
• @brand-primary: @color1;
 Variables can be many things
• @img-path: “../img”;
• @font-size: 1em;
• @link-hover: darken(@color1, 8%);
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
22
@Imports
 Partials allow you to break code up into manageable
chunks
@import "variables.less";
Same syntax for Sass
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
23
Concatenation& Minification
 Combines all the partials into a single file
 Can remove excess whitespace
 Can remove comments
 Grunt can make this process even simpler
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
24
Nesting
 Good for creating specificity
 Bad for creating specificity
 Keep it flat!
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
25
Nesting
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
26
Mixins
 Similar to a function
 Many built in mixins
 Create your own custom mixins
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
27
Builtin Mixins
 lighten (@color1, 8%) — darken(@color1, 8%)
 image-size("file.png");
 data-uri(‘image.jpg');
 screen(@color1, @color2)
• multiply, hardlight, softlight, difference, overlay, mix, fade, spin,
grayscale, saturate, etc
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
28
CustomMixins
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
29
Mixinsvs Extends
 Mixins duplicate css
 Extends merge selectors
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
30
Sass Extend
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
31
LessExtend
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
32
Loops
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
33
FlowControl
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
34
Any Questions?
In-depth discussion at a future meeting
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
36
Mo-betta
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
37
Grunt.js
 Helps to automate repetitive tasks
 Workflow tool
 Not Required – Is helpful
 Helps you collaborate with teams
What the heck is it?
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
38
InstallingGrunt.js
 $ npm install -g grunt-cli
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
39
GruntTasks
 It’s just JavaScript
 User created tasks
 Multiple tasks for different scenarios
• Watch, Production, Development, Build, Optimize
 A task may run several sub-tasks
3835 North Freeway Blvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com
40
LiveDemo

CSS Preprocessors with an introduction to LESS/SASS

  • 1.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 1 CSS Preprocessors &IntrotoSassandLess
  • 2.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 2 Mark Aplet  @visual28  mark@visual28.com Senior UI/UX Designer at SymSoft Solution
  • 3.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 3 CSSShortcomings
  • 4.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 4 CSSShortcomings  No Variables You can wait… But it might take a while. A looonnng while…
  • 5.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 5 CSSShortcomings  Not DRY • Less maintainable • Duplicate code.
  • 6.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 6 CSSShortcomings  Difficult for distributed teams  Separate files add extra http requests • @import anyone?  Frequent version control conflicts  Separate build tool to concat
  • 7.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 7 PreprocessorLanguages  Less, Sass, Stylus • It’s not a whole new language rather new features that you can add to your css.
  • 8.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 8 BenefitsofProcessedCSS  Variables  @imports (concatenation)  Minification  Nesting  Extends  Mixins (functions)  Loops  Math  Color Manipulation
  • 9.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 9 Misconceptions  Sass is written in Ruby  Less & Styles is JavaScript • You need them on your development machine only I need node or ruby on my server - FALSE
  • 10.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 10 Misconceptions  But only for testing  But why? • Slow • Better tools available I can run Less client side – TRUE (Sort of)
  • 11.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 11 Misconceptions  Ruby and Node are easy to install on any platform  Ruby pre-installed on macs  Node installers makes it easy • (*windows might not create the npm folder)  Linux is easy with apt-get install It’s hard to install - FALSE*
  • 12.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 12 Lessvs Sass  No short answer for that  Bootstrap uses Less and Sass version  Foundation uses Sass  IMO Sass is more robust but less is easier to get started with  Sass has Compass - it is the bomb!  Less was more performant, but now Sass has caching Which is best?
  • 13.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 13 DoI havetousethe cmdline?  It is possible to avoid the command line  Many well built GUI’s  Command line tools = mo-betta! • More power & flexibility • Collaborate effectivly No, but you will probably want to.
  • 14.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 14 Avoidingthe CommandLine
  • 15.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 15 GUITools  CodeKit, PrePros, Crunchapp, Scout, Koala, Compassapp, Lessapp, and more Prepros KoalaCodekit
  • 16.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 16 Why CommandLine?  Ability to extend your workflow beyond just css • JavaScript • Image Optimization & Sprites sheets • Web font creation • Linting • Live Reload • FTP • SVN & GIT
  • 17.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 17 Why CommandLine?  Even better with task runners like Grunt or Gulp  Simplified Workflow  Collaboration
  • 18.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 18 Semanticsvs OOCSS  OOCSS = CSS light but DOM heavy  Semantic = DOM light but CSS heavy  Mixins & Extends help narrow the gap • Not perfect • Future versions will get better
  • 19.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 19 Installation Lots of options depending on OS and tools $npm install -g less $gem install sass $npm install
  • 20.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 20 Variables
  • 21.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 21 Variables  Variable can hold variables • @brand-primary: @color1;  Variables can be many things • @img-path: “../img”; • @font-size: 1em; • @link-hover: darken(@color1, 8%);
  • 22.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 22 @Imports  Partials allow you to break code up into manageable chunks @import "variables.less"; Same syntax for Sass
  • 23.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 23 Concatenation& Minification  Combines all the partials into a single file  Can remove excess whitespace  Can remove comments  Grunt can make this process even simpler
  • 24.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 24 Nesting  Good for creating specificity  Bad for creating specificity  Keep it flat!
  • 25.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 25 Nesting
  • 26.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 26 Mixins  Similar to a function  Many built in mixins  Create your own custom mixins
  • 27.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 27 Builtin Mixins  lighten (@color1, 8%) — darken(@color1, 8%)  image-size("file.png");  data-uri(‘image.jpg');  screen(@color1, @color2) • multiply, hardlight, softlight, difference, overlay, mix, fade, spin, grayscale, saturate, etc
  • 28.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 28 CustomMixins
  • 29.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 29 Mixinsvs Extends  Mixins duplicate css  Extends merge selectors
  • 30.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 30 Sass Extend
  • 31.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 31 LessExtend
  • 32.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 32 Loops
  • 33.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 33 FlowControl
  • 34.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 34 Any Questions? In-depth discussion at a future meeting
  • 35.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 36 Mo-betta
  • 36.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 37 Grunt.js  Helps to automate repetitive tasks  Workflow tool  Not Required – Is helpful  Helps you collaborate with teams What the heck is it?
  • 37.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 38 InstallingGrunt.js  $ npm install -g grunt-cli
  • 38.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 39 GruntTasks  It’s just JavaScript  User created tasks  Multiple tasks for different scenarios • Watch, Production, Development, Build, Optimize  A task may run several sub-tasks
  • 39.
    3835 North FreewayBlvd., Suite 110 • Sacramento, CA 95834 • Phone: (916) 567-1740 • Fax: (916) 290-9067 • symsoftsolutions.com 40 LiveDemo