SlideShare une entreprise Scribd logo
1  sur  18
Css: more or Less ?




Julien Roche
Human Talks Grenoble – 12/03/2013
Speaker


     Julien Roche                    @rochejul


     Ingénieur d’étude et formateur sur Java, Web et Web Mobile pour
      Objet Direct

     Ancien commiter du projet OpenSource “wiQuery”




     Expérience Web Mobile depuis 2 ans

     Auteur de formations sur HTML5 et le Web Mobile
     Référent HTML5 et Web Mobile

2
Et pour faire la présentation …




                         … racontons une jolie histoire

                                                          3
3
Il était une fois




                        … un site Web
                                        4
4
Sur ce site Web




                      … j’ai rencontré du CSS (… entre autre …)

                                                            5
5
Je suis content car …


                               ■ Le CSS permet de définir des styles au
                                 DOM

                               ■ Le CSS permet de définir des styles
                                 selon le média

                               ■ Le CSS permet de l’héritage des styles



    ■   Le CSS possède un moteur de sélecteur CSS puissant

    ■   Et Le CSS a connu enormément d’amélioration depuis CSS3
                                                                          6
6
Mais soudain …




                     … le drame
                                  7
7
On doit faire face à …


    … une structuration complexe                    … du code difficile à maintenir



… du code en quantité                                      … un manque d’outils




                                             … l’absence de méthodes utilitaires
    … l’absence de variables, de fonctions
                                                                                8
8
Mais une lueur d’espoir …




    http://lesscss.org/              https://github.com/cloudhead/less.js
                                                                            9
9
J’ai enfin un outil ! (1)


         ■ Vous devez créer des fichiers avec l’extension
           “.less”




         ■ Ensuite, Less nous offre la possiblité de l’utilisé
           de deux façons différentes




                                                                 10
10
J’ai enfin un outil ! (2)


      Importer le fichier JavaScript “less.js” dans votre page, qui va
       compiler à la volée vos fichiers Less
             <!DOCTYPE HTML>
             <html lang="fr">
                 <head>
                     <!-- Metas basic -->
                     <meta name="viewport" content="width=device-width, initial-scale=1">
                     <meta charset="utf-8">
                     <meta http-equiv="Content-Language" content="fr">

                     <!-- StyleSheets -->
                     <link rel="stylesheet/less" type="text/css" href="styles.less" />

                     <!-- JavaScripts -->
                     <script src="less.js" type="text/javascript"></script>

                     <!-- Title & others -->
                     <title>Exemple très simple</title>
                 </head>

                 <body>
                     <!-- ... -->
                 </body>
             </html>


11
J’ai enfin un outil ! (3)


     ■ utiliser RhinoJS / NodeJs pour compiler les fichiers Less en CSS
       directement !!




12
J’ai enfin des variables !




     @black:                 #000;
     @gray:                  rgba(85, 85, 85);
     @white:                 rgb(0, 0, 0);
                                                 Less nous offre la possibilité d’utiliser des variables !!
     body {
       background-color: @gray;
     }
                                                 Cela est d’autant plus utile pour les sites à marque
                                                 blanche (et de pouvoir ainsi changer facilement et
     img {                                       rapidement les couleurs, la taille des éléments …)
       border: 2px dotted @black;
     }




                                                                                                              13
13
J’ai enfin des méthodes !

.text-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) {
  box-shadow: @arguments;                                                                            Less permet de génèrer des portions de
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;                                                                    code en fonction de paramètres (en leur
                                                                                                     plaçant des valeurs par défaut)
     filter: progid:DXImageTransform.Microsoft.Shadow(Strength=@blur, Direction=90, Color= @color)
}
                                                                                                     Cela permet de faire du refactoring de
p.shadow {                                                                                           code et d’avoir une maintenance accrue de
  .text-shadow();                                                                                    nos styles
}




.mixin (@a) when (lightness(@a) >= 50%) {
  background-color: @Black;
}
.mixin (@a) when (lightness(@a) < 50%) {
  background-color: @White;                           Less offre également la possibilité de
}                                                     mettre des conditions sur les méthodes
                                                      (afin de savoir si elle s’applique ou non)
.mixin (@a) {
  color: @a;
}


                                                                                                                                               14
14
Je peux facilement séparer mes fichiers !


     /* Fichier a.less */
     @a: red;
     @b: blue;
     @c: green;
                                                      @import de CSS3 pas encore bien
                                                      supporté.

                                                      Du coup, avec Less, nous pouvons
                                                      l’utiliser sans problèmes




                            /* Fichier b.less */
                            @import-once "a.less";

                            table {
                              background-color: @a;
                              border: 1px solid @b;
                              color: @c;
                            }




                                                                                         15
15
J’ai un code structurant !



     /* CSS */                                                      // Less
     table {                                                        table {
       border: 1px solid black;                                       border: 1px solid @borderColor;
     }                                                                &.dotted {
     table.dotted {                                                     border-style: dotted;
       border-style: dotted;                                          }
     }                                                                td {
     table td {                                                          background-color: @tdColor;
       background-color: #ffbbcc;                                      &:hover{
     }                                                                     background-color: @tdHoverColor;
     table td:hover {                                                   }
       background-color: #ccbbff;                                     }
     }                                                              }




                                    Code plus claire et structuré




                                                                                                              16
16
J’ai des méthodes supplémentaires !



                                                 // Commenter avec “//” !!

                                                 // Variabiliser les sélecteurs
                                                 @prefix: a-prefix;
                                                 .@{prefix}-style {
                                                   // va devenir .a-prefix-style
                                                 }
     Et tout un tas de fonctions pratiques que
     je vous invite à voir directement sur le    // Injection dans du texte
     site                                        @baseUrl: "http://somewhere.com";
                                                 background-image: url("@{baseUrl}/a.png");

                                                 // Opérations !!
                                                 @base: 5%;
                                                 @filler: (@base * 2);
                                                 @other: (@base + @filler);
                                                 @base-color: (#888 / 4);
                                                 background-color: (@base-color + #111);




                                                                                              17
17
Et plein d’autres choses encore !


     Documentation (officielle ou non)          Outils




     http://lesscss.org/#docs                       http://css2less.cc/
     http://lesscss.org/#reference                  http://crunchapp.net/
     http://coding.smashingmagazine.com/2011/
                                                    http://winless.org/
     09/09/an-introduction-to-less-and-
     comparison-to-sass/                            http://wearekiss.com/simpless


18

Contenu connexe

Tendances

Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !davrous
 
Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013bellesmanieres
 
Sass et Compass ont embelli mon quotidien, Sud Web 2013
Sass et Compass ont embelli mon quotidien, Sud Web 2013Sass et Compass ont embelli mon quotidien, Sud Web 2013
Sass et Compass ont embelli mon quotidien, Sud Web 2013Mehdi Kabab
 
DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingRomain Jarraud
 
Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Abdoulaye Dieng
 
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
 

Tendances (7)

Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Sass et Compass ont embelli mon quotidien, Sud Web 2013
Sass et Compass ont embelli mon quotidien, Sud Web 2013Sass et Compass ont embelli mon quotidien, Sud Web 2013
Sass et Compass ont embelli mon quotidien, Sud Web 2013
 
DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - Theming
 
Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015
 
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
 

En vedette (20)

Monopolio: Clarin
Monopolio: ClarinMonopolio: Clarin
Monopolio: Clarin
 
ÉTICA PROFESIONAL
ÉTICA PROFESIONALÉTICA PROFESIONAL
ÉTICA PROFESIONAL
 
10 expo reforma 2011 oganización
10 expo reforma 2011 oganización10 expo reforma 2011 oganización
10 expo reforma 2011 oganización
 
Proyecto extraescolar m.a.f.
Proyecto extraescolar m.a.f.Proyecto extraescolar m.a.f.
Proyecto extraescolar m.a.f.
 
Visit ancient india_
Visit ancient india_Visit ancient india_
Visit ancient india_
 
Robert doisneau
Robert doisneauRobert doisneau
Robert doisneau
 
Tutorial de google+corto
Tutorial de google+cortoTutorial de google+corto
Tutorial de google+corto
 
Fase de planificación
Fase de planificaciónFase de planificación
Fase de planificación
 
Seminario fahe
Seminario faheSeminario fahe
Seminario fahe
 
Fotos de la Cruz de Molino
Fotos de la Cruz de MolinoFotos de la Cruz de Molino
Fotos de la Cruz de Molino
 
Simon Lighting Ensembles - Long Line #
Simon Lighting Ensembles - Long Line #Simon Lighting Ensembles - Long Line #
Simon Lighting Ensembles - Long Line #
 
Intervention jessica viscart_crt
Intervention jessica viscart_crtIntervention jessica viscart_crt
Intervention jessica viscart_crt
 
Ayala mara elisa
Ayala mara elisaAyala mara elisa
Ayala mara elisa
 
Diapositivas de funda
Diapositivas de fundaDiapositivas de funda
Diapositivas de funda
 
Mapas Mentales curso OG 1
Mapas Mentales curso OG 1Mapas Mentales curso OG 1
Mapas Mentales curso OG 1
 
Hand hebdo officiel-spécial-coupe_du_monde - 3 fév 2015
Hand hebdo officiel-spécial-coupe_du_monde - 3 fév 2015Hand hebdo officiel-spécial-coupe_du_monde - 3 fév 2015
Hand hebdo officiel-spécial-coupe_du_monde - 3 fév 2015
 
Fotos -e[1]..
Fotos  -e[1]..Fotos  -e[1]..
Fotos -e[1]..
 
Clase1 matebasica2
Clase1 matebasica2Clase1 matebasica2
Clase1 matebasica2
 
C:\fakepath\informatica y medio ambiente
C:\fakepath\informatica y medio ambienteC:\fakepath\informatica y medio ambiente
C:\fakepath\informatica y medio ambiente
 
Musée de la Bande-dessinée
Musée de la Bande-dessinéeMusée de la Bande-dessinée
Musée de la Bande-dessinée
 

Similaire à Css.more.or.less

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
 
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)Corinne Schillinger
 
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & SassAlphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & SassAlphorm
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !matparisot
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousjwajsberg
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxFrédéric Harper
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Microsoft Technet France
 
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
 
cours Cascading style sheet developpement web
cours Cascading style sheet developpement webcours Cascading style sheet developpement web
cours Cascading style sheet developpement webYounesOuladSayad1
 
Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Aurélien Maury
 
Css maintenable - Morgane Hervé
Css maintenable - Morgane HervéCss maintenable - Morgane Hervé
Css maintenable - Morgane HervéWeb à Québec
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web MobileWilly Leloutre
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
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
 
Intégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesIntégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesRaphaël Goetter
 

Similaire à Css.more.or.less (20)

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
 
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
 
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & SassAlphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
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
 
cours Cascading style sheet developpement web
cours Cascading style sheet developpement webcours Cascading style sheet developpement web
cours Cascading style sheet developpement web
 
Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011
 
Css maintenable - Morgane Hervé
Css maintenable - Morgane HervéCss maintenable - Morgane Hervé
Css maintenable - Morgane Hervé
 
Sass presentation
Sass presentationSass presentation
Sass presentation
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web Mobile
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
CSS 3
CSS 3CSS 3
CSS 3
 
Systematic, toolchain JS
Systematic, toolchain JSSystematic, toolchain JS
Systematic, toolchain JS
 
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
 
Intégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesIntégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudes
 

Plus de VISEO

Tendances Mobile 2018
Tendances Mobile 2018Tendances Mobile 2018
Tendances Mobile 2018VISEO
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...VISEO
 
Phonegap
PhonegapPhonegap
PhonegapVISEO
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Faire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxFaire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxVISEO
 
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012   Gregory Weinbach - il n y a pas de bon modele metierDevoxx 2012   Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metierVISEO
 
Sexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileSexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileVISEO
 

Plus de VISEO (8)

Tendances Mobile 2018
Tendances Mobile 2018Tendances Mobile 2018
Tendances Mobile 2018
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
 
Phonegap
PhonegapPhonegap
Phonegap
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Faire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxFaire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxx
 
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012   Gregory Weinbach - il n y a pas de bon modele metierDevoxx 2012   Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
 
Sexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileSexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobile
 

Css.more.or.less

  • 1. Css: more or Less ? Julien Roche Human Talks Grenoble – 12/03/2013
  • 2. Speaker  Julien Roche @rochejul  Ingénieur d’étude et formateur sur Java, Web et Web Mobile pour Objet Direct  Ancien commiter du projet OpenSource “wiQuery”  Expérience Web Mobile depuis 2 ans  Auteur de formations sur HTML5 et le Web Mobile  Référent HTML5 et Web Mobile 2
  • 3. Et pour faire la présentation … … racontons une jolie histoire 3 3
  • 4. Il était une fois … un site Web 4 4
  • 5. Sur ce site Web … j’ai rencontré du CSS (… entre autre …) 5 5
  • 6. Je suis content car … ■ Le CSS permet de définir des styles au DOM ■ Le CSS permet de définir des styles selon le média ■ Le CSS permet de l’héritage des styles ■ Le CSS possède un moteur de sélecteur CSS puissant ■ Et Le CSS a connu enormément d’amélioration depuis CSS3 6 6
  • 7. Mais soudain … … le drame 7 7
  • 8. On doit faire face à … … une structuration complexe … du code difficile à maintenir … du code en quantité … un manque d’outils … l’absence de méthodes utilitaires … l’absence de variables, de fonctions 8 8
  • 9. Mais une lueur d’espoir … http://lesscss.org/ https://github.com/cloudhead/less.js 9 9
  • 10. J’ai enfin un outil ! (1) ■ Vous devez créer des fichiers avec l’extension “.less” ■ Ensuite, Less nous offre la possiblité de l’utilisé de deux façons différentes 10 10
  • 11. J’ai enfin un outil ! (2)  Importer le fichier JavaScript “less.js” dans votre page, qui va compiler à la volée vos fichiers Less <!DOCTYPE HTML> <html lang="fr"> <head> <!-- Metas basic --> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="utf-8"> <meta http-equiv="Content-Language" content="fr"> <!-- StyleSheets --> <link rel="stylesheet/less" type="text/css" href="styles.less" /> <!-- JavaScripts --> <script src="less.js" type="text/javascript"></script> <!-- Title & others --> <title>Exemple très simple</title> </head> <body> <!-- ... --> </body> </html> 11
  • 12. J’ai enfin un outil ! (3) ■ utiliser RhinoJS / NodeJs pour compiler les fichiers Less en CSS directement !! 12
  • 13. J’ai enfin des variables ! @black: #000; @gray: rgba(85, 85, 85); @white: rgb(0, 0, 0); Less nous offre la possibilité d’utiliser des variables !! body { background-color: @gray; } Cela est d’autant plus utile pour les sites à marque blanche (et de pouvoir ainsi changer facilement et img { rapidement les couleurs, la taille des éléments …) border: 2px dotted @black; } 13 13
  • 14. J’ai enfin des méthodes ! .text-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) { box-shadow: @arguments; Less permet de génèrer des portions de -moz-box-shadow: @arguments; -webkit-box-shadow: @arguments; code en fonction de paramètres (en leur plaçant des valeurs par défaut) filter: progid:DXImageTransform.Microsoft.Shadow(Strength=@blur, Direction=90, Color= @color) } Cela permet de faire du refactoring de p.shadow { code et d’avoir une maintenance accrue de .text-shadow(); nos styles } .mixin (@a) when (lightness(@a) >= 50%) { background-color: @Black; } .mixin (@a) when (lightness(@a) < 50%) { background-color: @White; Less offre également la possibilité de } mettre des conditions sur les méthodes (afin de savoir si elle s’applique ou non) .mixin (@a) { color: @a; } 14 14
  • 15. Je peux facilement séparer mes fichiers ! /* Fichier a.less */ @a: red; @b: blue; @c: green; @import de CSS3 pas encore bien supporté. Du coup, avec Less, nous pouvons l’utiliser sans problèmes /* Fichier b.less */ @import-once "a.less"; table { background-color: @a; border: 1px solid @b; color: @c; } 15 15
  • 16. J’ai un code structurant ! /* CSS */ // Less table { table { border: 1px solid black; border: 1px solid @borderColor; } &.dotted { table.dotted { border-style: dotted; border-style: dotted; } } td { table td { background-color: @tdColor; background-color: #ffbbcc; &:hover{ } background-color: @tdHoverColor; table td:hover { } background-color: #ccbbff; } } } Code plus claire et structuré 16 16
  • 17. J’ai des méthodes supplémentaires ! // Commenter avec “//” !! // Variabiliser les sélecteurs @prefix: a-prefix; .@{prefix}-style { // va devenir .a-prefix-style } Et tout un tas de fonctions pratiques que je vous invite à voir directement sur le // Injection dans du texte site @baseUrl: "http://somewhere.com"; background-image: url("@{baseUrl}/a.png"); // Opérations !! @base: 5%; @filler: (@base * 2); @other: (@base + @filler); @base-color: (#888 / 4); background-color: (@base-color + #111); 17 17
  • 18. Et plein d’autres choses encore ! Documentation (officielle ou non) Outils http://lesscss.org/#docs http://css2less.cc/ http://lesscss.org/#reference http://crunchapp.net/ http://coding.smashingmagazine.com/2011/ http://winless.org/ 09/09/an-introduction-to-less-and- comparison-to-sass/ http://wearekiss.com/simpless 18