SlideShare a Scribd company logo
1 of 21
Download to read offline
LESS, moins de CSS
  plus de fun !


       Corinne Schillinger
    @schillinger - www.inseo.fr
Corinne Schillinger
KeSAKO

variables                  règles imbriquées



  LESS = CSS + 4 fonctionnalités majeures



héritage                          opérations
Comment Ca Marche


fichier.less



              compilateur



                            fichier.css
LES Compilateurs
JS : version officielle - http://lesscss.org/

PHP : lessphp - http://leafo.net/lessphp/

Mac : less.app - http://incident57.com/less/

.Net : dotlesscss - http://www.dotlesscss.org/

WordPress : wp-less - https://wordpress.org/extend/plugins/wp-less/

Symfony : sgLESSPlugin - http://www.symfony-project.org/plugins/
sgLESSPlugin

Ruby : less - http://rubygems.org/gems/less

Rails : more - https://github.com/cloudhead/more
Mon 1er fichier less


  Un fichier .css est un fichier .less valide



     Modifiez : styles.css en styles.less

        Et vous avez un fichier .less

                    o/
LES VARIABLES



  @color: #7f7f7f;
  @path: MonTheme;
  @margin : 15px 0;
//code less
@color: #404040;
@bg-color: #c9c9c9;
@path: MonTheme;
@margin : 15px 0;

.MonTheme {
  margin: @margin;
  color: @color;
  background: @bg-color url("../img/@path/h2.jpg") 0 0 repeat-x;
}



//code css
.MonTheme {
  margin: 15px 0;
  color: #404040;
  background: #c9c9c9   url("../img/MonTheme/h2.jpg") 0 0 repeat-x;
}
LES declarations
       imbriquees


//code less
ul#main-nav {   //code css
    li {        ul#main-nav {}
        a {}    ul#main-nav li {}
    }           ul#main-nav li a {}
}
//code less
ul#main-nav {
  margin: 20px 0 0 20px;
  list-style: none;
  li {
    padding: 3px 0;
    a { text-decoration: none }
  }
}



//code css
ul#main-nav {
  margin: 20px 0 0 20px;
  list-style: none;
}
ul#main-nav li { padding: 3px 0 }
ul#main-nav li a { text-decoration: none }
/!

       trop d’imbrication = surcharge inutile


//code less
ul#main-nav {
  li {
    padding: 3px 0;
    a { text-decoration: none }
  }
}



                           //code less
                           ul#main-nav {
                             li { padding: 3px 0 }
                             a { text-decoration: none }
                           }
‘‘&’’ permet la concaténation à l’élément parent

//code less
@grey: #7f7f7f;
@turquoise: #00bc96;
#main-nav a {
  &:link, &:visited { color: @grey }
  &.active, &:focus, &:hover, &:active { color: @turquoise }
}



//code css
#main-nav a:link, #main-nav a:visited { color: #7f7f7f }
#main-nav a.active, #main-nav a:focus,
#main-nav a:hover, #main-nav a:active {
  color: #00bc96;
}
L’heritage
//code less
.border-radius {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}
.box { .border-radius }


                                  //code css
                                  .box {
                                      -webkit-border-radius: 5px;
                                      -moz-border-radius: 5px;
                                      border-radius: 5px;
                                  }
//code less
.border-radius(@radius: 5px){
  -webkit-border-radius: @radius;
  -moz-border-radius: @radius;
  border-radius: @radius;
}
.box { .border-radius }
.circle { .border-radius(30px) }


//code css
.box {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}
.circle {
  -webkit-border-radius: 30px;
  -moz-border-radius: 30px;
  border-radius: 30px;
}
.border-radius(@tr: 5px, @br: 5px, @bl: 5px, @tl: 5px){
  -webkit-border-top-right-radius: @tr;
  -webkit-border-bottom-right-radius: @br;
  -webkit-border-bottom-left-radius: @bl;
  -webkit-border-top-left-radius: @tl;
  -moz-border-top-right-radius: @tr;
  -moz-border-bottom-right-radius: @br;
  -moz-border-bottom-left-radius: @bl;
  -moz-border-top-left-radius: @tl;
  border-top-right-radius: @tr;
  border-bottom-right-radius: @br;
  border-bottom-left-radius: @bl;
  border-top-left-radius: @tl;
}
.box { .border-radius }
.semi-circle { .border-radius(30px, 0, 0, 30px) }



//code css
...
Les operations
//code less
@margin: 30px;
@color: #404040;

h2 {
    margin: @margin 0 @margin/2;
    color: @color + #404040;
}
                               //code css
                               h2 {
                                   margin: 30px 0 15px;
                                   color: #808080;
                               }
//code less
 @margin-left: 10px;
 @color: #404040;

 .n2 {
   margin-left: @margin-left*2;
   color: @color*2;
 }
 .n3 {
   margin-left: @margin-left*3;
   color: @color*3;
 }

//code css
.n2 {
  margin-left: 20px;
  color: #808080;
}
.n3 {
  margin-left: 30px;
  color: #c0c0c0;
}
La Methode daisy
              http://romy.tetue.net/methode-daisy
                  - Romy Duhem-Verdière -



    Scinder la feuille de style en plusieurs fichiers :

       reset.css - typo.css - grid.css - pages.css


         Gain de lisibilité, maintenance facilitée


Concaténer en un seul fichier pour la mise en production
Appliquee A less
   variables.less - reset.less - typo.less

           grid.less - pages.less


@import



                styles.less


                                 compilateur



                styles.css
Pour aller plus loin
               LESS Elements

          http://lesselements.com



           ensemble de class .less

              prêtes à l’emploi



  .border-radius, .box-shadow, .opacity, ...
Merci pour votre attention



         Corinne Schillinger
      @schillinger - www.inseo.fr

More Related Content

Similar to LESS : moins de CSS, plus de fun ! (KiwiParty 2011)

Gagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs cssGagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs csspefringant
 
CSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de styleCSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de styleKaelig Deloumeau-Prigent
 
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013Mehdi Kabab
 
Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.lessVISEO
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à SinatraRémi Prévost
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
 
vue j'avais pas vu !!
vue j'avais pas vu !!vue j'avais pas vu !!
vue j'avais pas vu !!Manuel Adele
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !Bruno Bonnin
 
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...VISEO
 
Faire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianFaire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianKaelig Deloumeau-Prigent
 
Alphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec LessAlphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec LessAlphorm
 
Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !Jonathan Levaillant
 
OpenCode beta : Haml & Sass
OpenCode beta : Haml & SassOpenCode beta : Haml & Sass
OpenCode beta : Haml & SassRémi Prévost
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Renoir Boulanger
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
 
Web Components & Shadow DOM
Web Components & Shadow DOMWeb Components & Shadow DOM
Web Components & Shadow DOMThomas Bassetto
 

Similar to LESS : moins de CSS, plus de fun ! (KiwiParty 2011) (20)

Gagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs cssGagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs css
 
CSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de styleCSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de style
 
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
 
Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.less
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à Sinatra
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
vue j'avais pas vu !!
vue j'avais pas vu !!vue j'avais pas vu !!
vue j'avais pas vu !!
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !
 
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
 
Html
HtmlHtml
Html
 
Faire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianFaire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au Guardian
 
Alphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec LessAlphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec Less
 
Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !
 
HTML5, le nouveau buzzword
HTML5, le nouveau buzzwordHTML5, le nouveau buzzword
HTML5, le nouveau buzzword
 
OpenCode beta : Haml & Sass
OpenCode beta : Haml & SassOpenCode beta : Haml & Sass
OpenCode beta : Haml & Sass
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
 
CSS 3
CSS 3CSS 3
CSS 3
 
Association 2 0
Association 2 0Association 2 0
Association 2 0
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Web Components & Shadow DOM
Web Components & Shadow DOMWeb Components & Shadow DOM
Web Components & Shadow DOM
 

More from Corinne Schillinger

Integration web : qualite & productivite FTW
Integration web  : qualite & productivite FTWIntegration web  : qualite & productivite FTW
Integration web : qualite & productivite FTWCorinne Schillinger
 
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Corinne Schillinger
 
Et si j’écrivais un livre ? (Sud Web 2013)
Et si j’écrivais un livre ? (Sud Web 2013)Et si j’écrivais un livre ? (Sud Web 2013)
Et si j’écrivais un livre ? (Sud Web 2013)Corinne Schillinger
 
Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)
Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)
Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)Corinne Schillinger
 
Introduction à LESS (Sud Web 2011)
Introduction à LESS (Sud Web 2011)Introduction à LESS (Sud Web 2011)
Introduction à LESS (Sud Web 2011)Corinne Schillinger
 
Comment intégrer une newsletter (KiwiParty 2010)
Comment intégrer une newsletter (KiwiParty 2010)Comment intégrer une newsletter (KiwiParty 2010)
Comment intégrer une newsletter (KiwiParty 2010)Corinne Schillinger
 
Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)
Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)
Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)Corinne Schillinger
 

More from Corinne Schillinger (7)

Integration web : qualite & productivite FTW
Integration web  : qualite & productivite FTWIntegration web  : qualite & productivite FTW
Integration web : qualite & productivite FTW
 
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
 
Et si j’écrivais un livre ? (Sud Web 2013)
Et si j’écrivais un livre ? (Sud Web 2013)Et si j’écrivais un livre ? (Sud Web 2013)
Et si j’écrivais un livre ? (Sud Web 2013)
 
Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)
Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)
Ajoutez du sens à vos pages avec les microdonnées (Sud Web 2012)
 
Introduction à LESS (Sud Web 2011)
Introduction à LESS (Sud Web 2011)Introduction à LESS (Sud Web 2011)
Introduction à LESS (Sud Web 2011)
 
Comment intégrer une newsletter (KiwiParty 2010)
Comment intégrer une newsletter (KiwiParty 2010)Comment intégrer une newsletter (KiwiParty 2010)
Comment intégrer une newsletter (KiwiParty 2010)
 
Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)
Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)
Comment convaincre un client de la qualité de votre prestation (Parsi Web 2010)
 

LESS : moins de CSS, plus de fun ! (KiwiParty 2011)

  • 1. LESS, moins de CSS plus de fun ! Corinne Schillinger @schillinger - www.inseo.fr
  • 3. KeSAKO variables règles imbriquées LESS = CSS + 4 fonctionnalités majeures héritage opérations
  • 4. Comment Ca Marche fichier.less compilateur fichier.css
  • 5. LES Compilateurs JS : version officielle - http://lesscss.org/ PHP : lessphp - http://leafo.net/lessphp/ Mac : less.app - http://incident57.com/less/ .Net : dotlesscss - http://www.dotlesscss.org/ WordPress : wp-less - https://wordpress.org/extend/plugins/wp-less/ Symfony : sgLESSPlugin - http://www.symfony-project.org/plugins/ sgLESSPlugin Ruby : less - http://rubygems.org/gems/less Rails : more - https://github.com/cloudhead/more
  • 6. Mon 1er fichier less Un fichier .css est un fichier .less valide Modifiez : styles.css en styles.less Et vous avez un fichier .less o/
  • 7. LES VARIABLES @color: #7f7f7f; @path: MonTheme; @margin : 15px 0;
  • 8. //code less @color: #404040; @bg-color: #c9c9c9; @path: MonTheme; @margin : 15px 0; .MonTheme { margin: @margin; color: @color; background: @bg-color url("../img/@path/h2.jpg") 0 0 repeat-x; } //code css .MonTheme { margin: 15px 0; color: #404040; background: #c9c9c9 url("../img/MonTheme/h2.jpg") 0 0 repeat-x; }
  • 9. LES declarations imbriquees //code less ul#main-nav { //code css li { ul#main-nav {} a {} ul#main-nav li {} } ul#main-nav li a {} }
  • 10. //code less ul#main-nav { margin: 20px 0 0 20px; list-style: none; li { padding: 3px 0; a { text-decoration: none } } } //code css ul#main-nav { margin: 20px 0 0 20px; list-style: none; } ul#main-nav li { padding: 3px 0 } ul#main-nav li a { text-decoration: none }
  • 11. /! trop d’imbrication = surcharge inutile //code less ul#main-nav { li { padding: 3px 0; a { text-decoration: none } } } //code less ul#main-nav { li { padding: 3px 0 } a { text-decoration: none } }
  • 12. ‘‘&’’ permet la concaténation à l’élément parent //code less @grey: #7f7f7f; @turquoise: #00bc96; #main-nav a { &:link, &:visited { color: @grey } &.active, &:focus, &:hover, &:active { color: @turquoise } } //code css #main-nav a:link, #main-nav a:visited { color: #7f7f7f } #main-nav a.active, #main-nav a:focus, #main-nav a:hover, #main-nav a:active { color: #00bc96; }
  • 13. L’heritage //code less .border-radius { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .box { .border-radius } //code css .box { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }
  • 14. //code less .border-radius(@radius: 5px){ -webkit-border-radius: @radius; -moz-border-radius: @radius; border-radius: @radius; } .box { .border-radius } .circle { .border-radius(30px) } //code css .box { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .circle { -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 30px; }
  • 15. .border-radius(@tr: 5px, @br: 5px, @bl: 5px, @tl: 5px){ -webkit-border-top-right-radius: @tr; -webkit-border-bottom-right-radius: @br; -webkit-border-bottom-left-radius: @bl; -webkit-border-top-left-radius: @tl; -moz-border-top-right-radius: @tr; -moz-border-bottom-right-radius: @br; -moz-border-bottom-left-radius: @bl; -moz-border-top-left-radius: @tl; border-top-right-radius: @tr; border-bottom-right-radius: @br; border-bottom-left-radius: @bl; border-top-left-radius: @tl; } .box { .border-radius } .semi-circle { .border-radius(30px, 0, 0, 30px) } //code css ...
  • 16. Les operations //code less @margin: 30px; @color: #404040; h2 { margin: @margin 0 @margin/2; color: @color + #404040; } //code css h2 { margin: 30px 0 15px; color: #808080; }
  • 17. //code less @margin-left: 10px; @color: #404040; .n2 { margin-left: @margin-left*2; color: @color*2; } .n3 { margin-left: @margin-left*3; color: @color*3; } //code css .n2 { margin-left: 20px; color: #808080; } .n3 { margin-left: 30px; color: #c0c0c0; }
  • 18. La Methode daisy http://romy.tetue.net/methode-daisy - Romy Duhem-Verdière - Scinder la feuille de style en plusieurs fichiers : reset.css - typo.css - grid.css - pages.css Gain de lisibilité, maintenance facilitée Concaténer en un seul fichier pour la mise en production
  • 19. Appliquee A less variables.less - reset.less - typo.less grid.less - pages.less @import styles.less compilateur styles.css
  • 20. Pour aller plus loin LESS Elements http://lesselements.com ensemble de class .less prêtes à l’emploi .border-radius, .box-shadow, .opacity, ...
  • 21. Merci pour votre attention Corinne Schillinger @schillinger - www.inseo.fr