+ All Categories
Home > Technology > CSS preprocesory

CSS preprocesory

Date post: 25-Dec-2014
Category:
Upload: martin-michalek
View: 591 times
Download: 0 times
Share this document with a friend
Description:
1. Jak to funguje? 2. Co to umí? 3. Přínos pro mě? 4. Debugování 5. Který vybrat?
32
CSS preprocesory 22. února 2014 WordCamp Prague Martin Michálek @machal
Transcript
Page 1: CSS preprocesory

CSS preprocesory

22. února 2014WordCamp Prague

Martin Michálek @machal

Page 2: CSS preprocesory
Page 3: CSS preprocesory

Program

1. Jak to funguje? 2. Co to umí? 3. Přínos pro mě? 4. Debugování 5. Který vybrat?

Page 4: CSS preprocesory

Zkuste si to!LESS2CSS, SassMeister, Try Stylus

Page 5: CSS preprocesory

Jak to funguje?

Page 6: CSS preprocesory

Kompilace v GUIPrepros, Koala, CodeKit…

Page 7: CSS preprocesory

Grunt.JSPreprocesory, sprity, concat, Autoprefixer…

Page 8: CSS preprocesory

Příkazová řádka

npm  install  less  lessc  style.less  style.css

npm  install  stylus  stylus  -­‐-­‐watch  style.styl  >  style.css

Page 9: CSS preprocesory

V prohlížeči

<script  src="less.js"></script>  <script>less.watch();</script>

Page 10: CSS preprocesory

Co to umí?

Page 11: CSS preprocesory

Proměnné

@brand-­‐primary:  #428bca;  !@import  "bootstrap/bootstrap";

$medium-­‐up:  "only  screen  and  (min-­‐width:  600px)";  !@media  #{$medium-­‐up}  {      //  …  }

Page 12: CSS preprocesory

Mixiny

.ellipsis  {     text-­‐overflow:  ellipsis;     overflow:  hidden;     white-­‐space:  nowrap;  }  !.el  {     .ellipsis;     margin-­‐bottom:  1.5em;  }

.ellipsis  {     text-­‐overflow:  ellipsis;     overflow:  hidden;     white-­‐space:  nowrap;  }  !.el  {     text-­‐overflow:  ellipsis;     overflow:  hidden;     white-­‐space:  nowrap;     margin-­‐bottom:  1.5em;  }

CSS

Page 13: CSS preprocesory

Parametrické mixiny@mixin  transition($par)  {      -­‐webkit-­‐transition:  $par;    //  Chrome  1-­‐25,  Safari  3.2+        -­‐moz-­‐transition:  $par;    //  Firefox  4-­‐15        -­‐o-­‐transition:  $par;    //  Opera  10.50–12.00      transition:  $par;    //  Chrome  26,  Firefox  16+,  IE  10+,  Opera  12.10+  }  !.el  {      @include  transition(all  100ms  ease-­‐out);  }

.el  {      -­‐webkit-­‐transition:  all  100ms  ease-­‐out;      -­‐moz-­‐transition:  all  100ms  ease-­‐out;        -­‐o-­‐transition:  all  100ms  ease-­‐out;        transition:  all  100ms  ease-­‐out;    }

CSS

Page 14: CSS preprocesory

Extend

.pel  {      color:  white;  }  !.mel  {      @extend  .pel;      background:  black;  }

.pel,  .mel  {      color:  white;  }  !.mel  {      background:  black;  }

CSS

Page 15: CSS preprocesory

Zanořování a selektor rodiče

.nav  {      margin:  0;            .nav-­‐item  {          display:  inline-­‐block;      }  !    &.nav-­‐hidden  {          display:  none;      }  }

.nav  {      margin:  0;  }  !.nav  .nav-­‐item  {      display:  inline-­‐block;  }  !.nav.nav-­‐hidden  {      display:  none;  }

CSS

Page 16: CSS preprocesory

Zanořování Media Queries

.nav  {      width:  25%;  !    @media  only  screen  and  (min-­‐width:  768px)  {          width:  100%;      }  }

.nav  {      width:  25%;  }  !@media  only  screen  and  (min-­‐width:  768px)  {      .nav  {          width:  100%;      }  }

CSS

Page 17: CSS preprocesory

Matematika

width:  66.326530612%;  /*  650  /  980  *  100  */  CSS

Page 18: CSS preprocesory

Matematika

width:  66.326530612%;  /*  650  /  980  *  100  */  

width:  percentage(650  /  @container-­‐width);  

//  !  width:  66.326530612%;

CSS

Page 19: CSS preprocesory

Podmínky

$type:  monster;  !.el  {      @if  $type  ==  ocean  {          color:  blue;      }  @else  if  $type  ==  monster  {          color:  green;      }  @else  {          color:  black;      }  }

CSS

.el  {          color:  green;  }

Page 20: CSS preprocesory

Cykly

icons  =  facebook,  twitter,  google-­‐plus;  !for  icon  in  icons  {      .{icon}-­‐icon  {          background-­‐image:  url('/images/'+icon+'-­‐icon.png');      }  }

.facebook-­‐icon  {      background-­‐image:  url("/images/facebook-­‐icon.png");  }  .twitter-­‐icon  {      background-­‐image:  url("/images/twitter-­‐icon.png");  }  .google-­‐plus-­‐icon  {      background-­‐image:  url("/images/google-­‐plus-­‐icon.png");  }  

CSS

Page 21: CSS preprocesory

Import

//  Knihovny  @import  "lib/bourbon";  @import  “lib/foundation";  @import  (less)  “lib/fancybox.css”;  !//  Zakladna,  layout  @import  "core/vd-­‐fonts";  @import  "core/vd-­‐base";  @import  "core/vd-­‐layout";  !//  UI  moduly  @import  "modules/vd-­‐ad";  @import  "modules/vd-­‐box";  @import  "modules/vd-­‐alert";  @import  "modules/vd-­‐article";

Page 22: CSS preprocesory

Ekosystém

Bourbon, LESSHat, nib, Compass, Susy…

Page 23: CSS preprocesory

Debugování

Page 24: CSS preprocesory

Kde jsou moje čísla řádků?

index.css

Page 25: CSS preprocesory

FirebugFireLESS, FireSASS, FireStylus

Page 26: CSS preprocesory

Source Maps

/*#  sourceMappingURL=/test/less-­‐source-­‐maps/css/index.css.map  */

layout.less

Page 27: CSS preprocesory

Přínos pro mě?

Page 28: CSS preprocesory

Kvalita kódu • Spravovatelnost kódu • Organizace codebase !

Rychlost vývoje • Rychlejší psaní a změny • Hotové knihovny • Vlastní knihovny

Page 29: CSS preprocesory

Který vybrat?

Page 30: CSS preprocesory

Porovnání

Designér → programátor ★☆☆ ★★☆ ★★★

Komunita ★★★ ★★☆ ★☆☆

Knihovny, frameworky ★★☆ ★★★ ★☆☆

Page 31: CSS preprocesory

Případové studie

• Designér? • Programátor? • Snadné učení? • Technická pokročilost? • Velikost komunity? • Bootstrap? • Foundation?

LESS SASS, Stylus LESS Stylus LESS LESS, SASS SASS


Recommended