SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Compass
                      Et autres extensions ou «préprocesseurs CSS




lundi 16 juillet 12                                                 1
Convention d’écriture
                                 Texte
                                  Lien

                            Code / $ Command

                               Remarque

lundi 16 juillet 12                            2
Ce n’est pas :
                      Une amélioration du support de CSS
                            dans nos navigateurs




lundi 16 juillet 12                                        3
Pourquoi étendre CSS ?
                              CSS natif, plutôt se pendre.

                      • CSS est plat (Troll inside :),
                      • CSS est de plus en plus verbeux (prefix...),
                      • CSS devrait à l’avenir être bien plus orienté
                       interaction, mais ce n’est pas prêt de voir le jour...



lundi 16 juillet 12                                                             4
Principaux acteurs
                      • LESS : compilé en js
                       coté client via une lib
                       coté serveur en node ou via rhino, que du js :)
                      • SASS : en ruby via la gem ‘sass’
                      • COMPASS, Surcouche de SASS
                       En ruby également via la gem ‘compass’
                       Info : ‘compass’ encapsule déjà la gem ‘sass’




lundi 16 juillet 12                                                      5
Travailler Au quotidien
                      • LESS :
                       LESS app pour mac, gratuit
                       simpless window et mac, gratuit
                      • SASS : pas d’installer
                      • COMPASS :
                       Compass.app pour mac windows et linux, 10$
                       SCOUT pour mac et windows, gratuit



lundi 16 juillet 12                                                 6
Ou bien...

                      • en ligne de commande
                       Gratuit, compatible, et très facile à mettre en place :)




lundi 16 juillet 12                                                               7
UFC que choisir ?
                         Choix Cornelien, Ou pas...




lundi 16 juillet 12                                   8
Pourquoi Compass ?
                      • Sass offre nativement plus de possibilités que Less
                       (@extend, debug...)
                      • Compass est modulaire : ‘reusable paterns’
                       Téléchargement, gestion et création de modules...
                      • La documentation Compass est très (trop ?) riche
                      • Compass semble gagner le bras de fer de la
                       communauté


lundi 16 juillet 12                                                           9
Installation
                      • Ruby
                       Via RVM (ruby version manager) pour mac et linux
                       Via Ruby installer sous windows
                      • On lance :

                      $ sudo gem install compass




lundi 16 juillet 12                                                       10
Commande ‘create’
                      Permet de créer un projet Compass.

                      Ciblez un dossier, puis lancez la
                      commande create

                       $ cd path_to/project/build_folder
                       $ compass create nom_compass_folder



lundi 16 juillet 12                                          11
Parlons Organisation
                             /project_folder/
                             |-- .git
                             |-- Ressources
                                 |-- specs/
                                 |-- .../
                             |-- builds/
                                 |-- compass/
                                 |-- coffee/
                                 |-- .../
                             |-- www/
                                 |-- css/
                                 |-- .../



lundi 16 juillet 12                             12
Configurer Compass
                        Ouvrons le fichier config.rb




lundi 16 juillet 12                                  13
Commande ‘watch’

                      Permet convertir automatiquement des
                      fichiers détectés comme modifiés.


                       $ cd path_to/project/build_folder/compass_folder/
                       $ compass watch



lundi 16 juillet 12                                                        14
Enfin, le vif du sujet !
                            Quelques exemples




lundi 16 juillet 12                             15
Les commentaires
                       Commentaires en ligne disponible.




                         // Ceci est une révolution




lundi 16 juillet 12                                        16
Validation syntaxique
                       Avec output à l’intérieur du fichier html




lundi 16 juillet 12                                               17
Inclusion
                                              via @import

                                           modules Compass

                                      @import "compass/reset";




                                           fichiers personnels

                                      @import "lib/_variables";



                      Préfixer par ‘_’, le fichier sera ignoré lors de la transformation

lundi 16 juillet 12                                                                      18
Variables
                                 via $

                               Création

                      $red : #F00;




                               Référence

                      background-color : $red;




lundi 16 juillet 12                              19
fonctions
                                        Création

                      @function em($target, $context: $basefont) {
                          @return ($target / $context) * 1em;
                      }



                      Calcul la taille en em, sur une base de pixels.




lundi 16 juillet 12                                                     20
fonctions
                                             Référence


                      /* base 16, donc 14/16 = 0.875 pour 14px en base*/

                      body{
                        font-size: 87.5%;
                      }

                      h1{
                        font-size: em(22);
                      }




lundi 16 juillet 12                                                        21
mixin
                                             Création

                        // border radius
                        @mixin set_radius($size:5px, $name:border-radius){
                      	   // firefox
                          -moz-#{$name}: $size;
                          // Safari, Chrome
                          -webkit-#{$name}: $size;
                      	   // CSS3
                          border-#{$name}: $size;
                        }




lundi 16 juillet 12                                                          22
mixin
                       Référence via @include


                      button{
                        @include set_radius(5px);
                      }




lundi 16 juillet 12                                 23
extend
                                    modules Compass

                      .blackAndWhite{
                        border: solid 1px #000;
                        background-color: #fff;
                      }


                                    fichiers personnels

                      button{
                        @extend .blackAndWhite;
                      }




lundi 16 juillet 12                                      24
Structures de contrôle
                        Comme partout ailleurs, sauf en CSS natif




lundi 16 juillet 12                                                 25
Sources et liens

                      • Compass, liste des modules
                      • Sass Reference




lundi 16 juillet 12                                  26

Contenu connexe

En vedette

S8 el trabajo en casa es teletrabajo
S8 el trabajo en casa es teletrabajoS8 el trabajo en casa es teletrabajo
S8 el trabajo en casa es teletrabajoUSET
 
Comunidades practica final
Comunidades practica finalComunidades practica final
Comunidades practica finalAgustin Rosety
 
Contenido Elementos del Diseño gráfico
Contenido Elementos del Diseño gráficoContenido Elementos del Diseño gráfico
Contenido Elementos del Diseño gráficoflerysa
 
Présentation du projet d’échange 2012 2013
Présentation du projet d’échange 2012 2013Présentation du projet d’échange 2012 2013
Présentation du projet d’échange 2012 2013idejol
 
02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje
02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje
02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizajeUSET
 
Mercredis des Tice - réaliser un diaporama
Mercredis des Tice - réaliser un diaporama Mercredis des Tice - réaliser un diaporama
Mercredis des Tice - réaliser un diaporama annemariemichaud
 
Campamento para conmemorar la restauracion del sacerdocio
Campamento para conmemorar  la restauracion del sacerdocioCampamento para conmemorar  la restauracion del sacerdocio
Campamento para conmemorar la restauracion del sacerdocioUSET
 
Tilkee cas client Consultation K
Tilkee cas client Consultation KTilkee cas client Consultation K
Tilkee cas client Consultation KSylvain Tillon
 
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...Oeko-Institut
 
Evid.2 sintesis delforo
Evid.2 sintesis delforoEvid.2 sintesis delforo
Evid.2 sintesis delforoM Mónica Cruz
 
Von Subskription zu Open Access
Von Subskription zu Open AccessVon Subskription zu Open Access
Von Subskription zu Open AccessHeinz Pampel
 
Olivier Besancenot et le NPA
Olivier Besancenot et le NPAOlivier Besancenot et le NPA
Olivier Besancenot et le NPADélits d'Opinion
 
Demandez aux Oies
Demandez aux OiesDemandez aux Oies
Demandez aux OiesLouis97659
 
Job positions
Job positionsJob positions
Job positionsvwadycki
 
Mehr Inhalt, weniger Werbung
Mehr Inhalt, weniger WerbungMehr Inhalt, weniger Werbung
Mehr Inhalt, weniger Werbungmenze+koch gbr
 
Septembre octobre2009
Septembre octobre2009Septembre octobre2009
Septembre octobre2009kergoet
 

En vedette (20)

S8 el trabajo en casa es teletrabajo
S8 el trabajo en casa es teletrabajoS8 el trabajo en casa es teletrabajo
S8 el trabajo en casa es teletrabajo
 
Comunidades practica final
Comunidades practica finalComunidades practica final
Comunidades practica final
 
Guia activitats pedagogiques_2012-13
Guia activitats pedagogiques_2012-13Guia activitats pedagogiques_2012-13
Guia activitats pedagogiques_2012-13
 
Danny
DannyDanny
Danny
 
Contenido Elementos del Diseño gráfico
Contenido Elementos del Diseño gráficoContenido Elementos del Diseño gráfico
Contenido Elementos del Diseño gráfico
 
Présentation du projet d’échange 2012 2013
Présentation du projet d’échange 2012 2013Présentation du projet d’échange 2012 2013
Présentation du projet d’échange 2012 2013
 
02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje
02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje
02 teorías del aprendizaje y su aplicación en el proceso enseñaanza aprendizaje
 
Cloud-basiertes ERP-System für Filial-Gastronomie
Cloud-basiertes ERP-System für Filial-GastronomieCloud-basiertes ERP-System für Filial-Gastronomie
Cloud-basiertes ERP-System für Filial-Gastronomie
 
Mercredis des Tice - réaliser un diaporama
Mercredis des Tice - réaliser un diaporama Mercredis des Tice - réaliser un diaporama
Mercredis des Tice - réaliser un diaporama
 
Campamento para conmemorar la restauracion del sacerdocio
Campamento para conmemorar  la restauracion del sacerdocioCampamento para conmemorar  la restauracion del sacerdocio
Campamento para conmemorar la restauracion del sacerdocio
 
Tilkee cas client Consultation K
Tilkee cas client Consultation KTilkee cas client Consultation K
Tilkee cas client Consultation K
 
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Bedür...
 
Evid.2 sintesis delforo
Evid.2 sintesis delforoEvid.2 sintesis delforo
Evid.2 sintesis delforo
 
Von Subskription zu Open Access
Von Subskription zu Open AccessVon Subskription zu Open Access
Von Subskription zu Open Access
 
Olivier Besancenot et le NPA
Olivier Besancenot et le NPAOlivier Besancenot et le NPA
Olivier Besancenot et le NPA
 
Demandez aux Oies
Demandez aux OiesDemandez aux Oies
Demandez aux Oies
 
Job positions
Job positionsJob positions
Job positions
 
Mehr Inhalt, weniger Werbung
Mehr Inhalt, weniger WerbungMehr Inhalt, weniger Werbung
Mehr Inhalt, weniger Werbung
 
Septembre octobre2009
Septembre octobre2009Septembre octobre2009
Septembre octobre2009
 
5603226-de-DE
5603226-de-DE5603226-de-DE
5603226-de-DE
 

Similaire à Sass et compass

Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.lessVISEO
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web MobileWilly Leloutre
 
Rapport d’installation et configuration du serveur OpenLDAP
Rapport d’installation et configuration du serveur OpenLDAPRapport d’installation et configuration du serveur OpenLDAP
Rapport d’installation et configuration du serveur OpenLDAPBalla Moussa Doumbouya
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
 
Comment reprendre un (gros) projet Ruby on Rails
Comment reprendre un (gros) projet Ruby on RailsComment reprendre un (gros) projet Ruby on Rails
Comment reprendre un (gros) projet Ruby on RailsNovelys
 
Accès concurrents et scalabilité
Accès concurrents et scalabilitéAccès concurrents et scalabilité
Accès concurrents et scalabilitéJérôme Vieilledent
 
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
 
Le Web Offline & les APIs de contrôle Javascript
Le Web Offline & les APIs de contrôle JavascriptLe Web Offline & les APIs de contrôle Javascript
Le Web Offline & les APIs de contrôle JavascriptWilly Leloutre
 
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
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous deliveryPatrice Ferlet
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
Morning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMorning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMongoDB
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Publier en ligne via un CMS
Publier en ligne via un CMS Publier en ligne via un CMS
Publier en ligne via un CMS CRDPRouen
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ? haricot
 

Similaire à Sass et compass (20)

Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.less
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web Mobile
 
Xamarin notes- en français
Xamarin notes- en françaisXamarin notes- en français
Xamarin notes- en français
 
Rapport d’installation et configuration du serveur OpenLDAP
Rapport d’installation et configuration du serveur OpenLDAPRapport d’installation et configuration du serveur OpenLDAP
Rapport d’installation et configuration du serveur OpenLDAP
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
 
Comment reprendre un (gros) projet Ruby on Rails
Comment reprendre un (gros) projet Ruby on RailsComment reprendre un (gros) projet Ruby on Rails
Comment reprendre un (gros) projet Ruby on Rails
 
Accès concurrents et scalabilité
Accès concurrents et scalabilitéAccès concurrents et scalabilité
Accès concurrents et scalabilité
 
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
 
Le Web Offline & les APIs de contrôle Javascript
Le Web Offline & les APIs de contrôle JavascriptLe Web Offline & les APIs de contrôle Javascript
Le Web Offline & les APIs de contrôle Javascript
 
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 !
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Morning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMorning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast Connect
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Publier en ligne via un CMS
Publier en ligne via un CMS Publier en ligne via un CMS
Publier en ligne via un CMS
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ?
 

Sass et compass

  • 1. Compass Et autres extensions ou «préprocesseurs CSS lundi 16 juillet 12 1
  • 2. Convention d’écriture Texte Lien Code / $ Command Remarque lundi 16 juillet 12 2
  • 3. Ce n’est pas : Une amélioration du support de CSS dans nos navigateurs lundi 16 juillet 12 3
  • 4. Pourquoi étendre CSS ? CSS natif, plutôt se pendre. • CSS est plat (Troll inside :), • CSS est de plus en plus verbeux (prefix...), • CSS devrait à l’avenir être bien plus orienté interaction, mais ce n’est pas prêt de voir le jour... lundi 16 juillet 12 4
  • 5. Principaux acteurs • LESS : compilé en js coté client via une lib coté serveur en node ou via rhino, que du js :) • SASS : en ruby via la gem ‘sass’ • COMPASS, Surcouche de SASS En ruby également via la gem ‘compass’ Info : ‘compass’ encapsule déjà la gem ‘sass’ lundi 16 juillet 12 5
  • 6. Travailler Au quotidien • LESS : LESS app pour mac, gratuit simpless window et mac, gratuit • SASS : pas d’installer • COMPASS : Compass.app pour mac windows et linux, 10$ SCOUT pour mac et windows, gratuit lundi 16 juillet 12 6
  • 7. Ou bien... • en ligne de commande Gratuit, compatible, et très facile à mettre en place :) lundi 16 juillet 12 7
  • 8. UFC que choisir ? Choix Cornelien, Ou pas... lundi 16 juillet 12 8
  • 9. Pourquoi Compass ? • Sass offre nativement plus de possibilités que Less (@extend, debug...) • Compass est modulaire : ‘reusable paterns’ Téléchargement, gestion et création de modules... • La documentation Compass est très (trop ?) riche • Compass semble gagner le bras de fer de la communauté lundi 16 juillet 12 9
  • 10. Installation • Ruby Via RVM (ruby version manager) pour mac et linux Via Ruby installer sous windows • On lance : $ sudo gem install compass lundi 16 juillet 12 10
  • 11. Commande ‘create’ Permet de créer un projet Compass. Ciblez un dossier, puis lancez la commande create $ cd path_to/project/build_folder $ compass create nom_compass_folder lundi 16 juillet 12 11
  • 12. Parlons Organisation /project_folder/ |-- .git |-- Ressources |-- specs/ |-- .../ |-- builds/ |-- compass/ |-- coffee/ |-- .../ |-- www/ |-- css/ |-- .../ lundi 16 juillet 12 12
  • 13. Configurer Compass Ouvrons le fichier config.rb lundi 16 juillet 12 13
  • 14. Commande ‘watch’ Permet convertir automatiquement des fichiers détectés comme modifiés. $ cd path_to/project/build_folder/compass_folder/ $ compass watch lundi 16 juillet 12 14
  • 15. Enfin, le vif du sujet ! Quelques exemples lundi 16 juillet 12 15
  • 16. Les commentaires Commentaires en ligne disponible. // Ceci est une révolution lundi 16 juillet 12 16
  • 17. Validation syntaxique Avec output à l’intérieur du fichier html lundi 16 juillet 12 17
  • 18. Inclusion via @import modules Compass @import "compass/reset"; fichiers personnels @import "lib/_variables"; Préfixer par ‘_’, le fichier sera ignoré lors de la transformation lundi 16 juillet 12 18
  • 19. Variables via $ Création $red : #F00; Référence background-color : $red; lundi 16 juillet 12 19
  • 20. fonctions Création @function em($target, $context: $basefont) { @return ($target / $context) * 1em; } Calcul la taille en em, sur une base de pixels. lundi 16 juillet 12 20
  • 21. fonctions Référence /* base 16, donc 14/16 = 0.875 pour 14px en base*/ body{ font-size: 87.5%; } h1{ font-size: em(22); } lundi 16 juillet 12 21
  • 22. mixin Création // border radius @mixin set_radius($size:5px, $name:border-radius){ // firefox -moz-#{$name}: $size; // Safari, Chrome -webkit-#{$name}: $size; // CSS3 border-#{$name}: $size; } lundi 16 juillet 12 22
  • 23. mixin Référence via @include button{ @include set_radius(5px); } lundi 16 juillet 12 23
  • 24. extend modules Compass .blackAndWhite{ border: solid 1px #000; background-color: #fff; } fichiers personnels button{ @extend .blackAndWhite; } lundi 16 juillet 12 24
  • 25. Structures de contrôle Comme partout ailleurs, sauf en CSS natif lundi 16 juillet 12 25
  • 26. Sources et liens • Compass, liste des modules • Sass Reference lundi 16 juillet 12 26