Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Discovering CSS preprocessor

Discovering CSS preprocessor

Maxime Thirouin

September 19, 2012
Tweet

More Decks by Maxime Thirouin

Other Decks in Technology

Transcript

  1. C'EST QUOI UN PRÉ PROCESSEUR CSS ? Un pré-processeur CSS...

    Ben, c'est comme si tu mets des petites roues à ton vélo, sauf que quand tu les mets, ben ça transforme ton vélo en Poney. Donc du coup, tes stylesheets elles roxent grâve sa maman. - / Maxime Thirouin @MoOx 2
  2. POURQUOI ? ... Réutilisation assez difficile. Suffit de voir les

    "frameworks" CSS Twitter Bootstrap utilise un pré-processeur 3 . 1
  3. C'EST TOUT ? ... Sensation d'être bridé d'un point de

    vue de la syntaxe ? Pas de math Pas de variable ... 3 . 2
  4. PRÉ PROCESSEUR ? Souplesse avec les $variables Vive les Maths

    Réutilisation: @mixin et @function Organisation: partials et @import évolué Optimisation: @extend pour rester DRY ! 4
  5. LEQUEL CHOISIR ? 1. Less est vieillissant et a peu

    de features 2. Stylus n'est pas assez mature 3. Sass a du bouchon et Compass ! 6
  6. CODE ? SCSS - SASSY CSS (.SCSS) .hentry { margin­left:

    2em; .title { font: { size: 2em; weight: bold; } } } 8
  7. NESTING .parent { property: value; .child { property: value }

    } .parent { property: value } .parent .child { property: value } 10
  8. PARENT SELECTOR .class { &:hover { } .modernizr­class & {}

    } .class { } .class:hover { } .modernizr­class .class { } 11
  9. MEDIA BUBBLING $widthGap: 600px; // variable ! .sidebar { @media

    (min­width: $widthGap) { float: left; background: url(image.png); @media (min­resolution: 2ddpx) { background: url([email protected]); } } } 12
  10. @EXTEND + %PLACEHOLDER : C'EST D'LA BOMB' %button { }

    .button­info { @extend %button } .button­delete { @extend %button } .button­valid { @extend %button } <a class="button­XXXX">... .button­info, .button­delete, .button­valid { } .button­info { } .button­delete { } .button­valid { } 14
  11. LES MATHS DIVISION, CAS SPÉCIAL 1em + 1em; // 2em

    1em ­ 1em; // 0em 1in + 72pt; // 2in 6px * 4; // 24px 18 % 5; // 3 font : 18px / 1.45em; // 18px/1.45em font : (20px / 5); // 4px font : 20px / 5 + 1; // 5px font : $base / 5; // 4px $size : 20px / 5; // 4px 16
  12. LES FONCTIONS percentage(13/25) // 52% round(2.4) // 2 ceil(2.2) //

    3 floor(2.6) // 2 abs(­24) // 24 Listes des Fonctions Sass 17
  13. CONDITIONS RELATIONAL OPERATORS (<,>, <=,>=) COMPARISON OPERATORS (==, !=) 1

    < 20 // true 10 <= 20 // true 4 > 1 // true 4 >= 1 // true 1 + 1 == 2 // true small != big // true #000 == black // true 18
  14. CONDITIONS DIRECTIVES @IF, @ELSE MAIS AUSSI @WHILE, @EACH, @FOR $theme:

    ocean; div { @if $theme == dusty { background: #c6bba9; color: $color; } @else if $theme == ocean { background: blue; color: white; } box­shadow: 0 2px 0 if($theme == ocean, #c6bba9, #000); // i } 19
  15. TOUJOURS PLUS DE FONCTIONS Functions pour manipulers les couleurs, sortir

    des valeurs Functions custom en Sass ou Ruby 20
  16. LES MIXINS Produisent de la sortie CSS ex: - @mixin

    position($position, $top: null, $right: null, $bottom: { position: $position; top: $top; right: $right; bottom: $bottom; left: $left; } .fixed­header { @include position(absolute, 0, $left: 0, $right: 0); } gradient tooltip 21
  17. COMPASS MIXINS ELEMENT STYLES Links, Lists, Float, Tables, Text GENERAL

    UTILITIES Browser Hacks, Clearfixes, Resets DESIGN PATTERNS Tag Cloud, Sticky footer, Vertical rhythm CSS3 24
  18. PLUGINS & EXTENSIONS › Fancy Buttons, Sassy Buttons - easy

    CSS3 buttons › Animate - CSS3 animation library › RGBApng - Generate alpha pngs from Sass › Compass Magick - Render CSS3 Gradients to png › Many more... 25
  19. COMPASS RECIPES Layouts, Vertical centering and box layout shortcuts. Media

    Queries, Shortcuts for media queries. Shadows, A wide collection of shadows which use pseudo elements to create fold effects, etc. Shapes, Geometric and iconic shapes, created only with CSS UI components, Lots of element styling for loader, menu, overlay, separator, tooltip, etc. Utilities, Very usefull utilities, trick, hacks 27 . 2