58
Mieux travailler le CSS Les bases de SASS/Compass FOIRE DU SAVOIR . 2014.08.22

Mieux travailler le css avec sass:compass

Embed Size (px)

DESCRIPTION

Écrire une feuille de style peut parfois devenir un processus long et compliqué. Le but de la présentation est d'introduire une méthode de travail basée sur le préprocesseur SASS. La beauté de cette méthode est qu'elle n'est pas liée à un système d'exploitation donné (Windows, Mac ou Linux). Cette formation peut être utile tant au niveau du/de la graphiste, de l'intégrateur/trice que du/de la programmeur/e. Le/la graphiste y verra une façon de présenter aux programmeurs et intégrateurs ses balises et styles. L'intégrateur/trice pourra travailler plus rapidement et le/la programmeur/e pourra apprécier les capacités de ce préprocesseur à bâtir des canevas de styles ou à comprendre comment modifier des paramètres propres à ses projets. Cette formation pourra également intéresser les chargés de projets dans leur quête du respect du cahier des charges. Pour ceux et celles qui connaissent ou utilisent un préprocesseur, voilà l'occasion de partager votre expérience. L'objectif ultime est de proposer une méthode de travail commune chez Innobec en matière de feuilles de style CSS en regard de la production et de l'intégration des maquettes. Parler le même langage syntaxique facilitera la tâche de tous.

Citation preview

Page 1: Mieux travailler le css avec sass:compass

Mieux travailler le CSSLes bases de SASS/Compass

F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 2 2

Page 2: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Avant de commencer

• Offrir une solution de travail pour l’ensemble de la compagnie en regard de la production du CSS.

• Nous sommes ici pour amorcer une réflexion à ce sujet.

• Je ne suis pas seul à décider…

• … mais j’aimerais bien qu’on me suive ;-)

• Ceci n’est pas une introduction au CSS.

• À la fin de cette présentation vous saurez utiliser préprocesseur, car le tout est vraiment très simple et tourne autour de quatre concepts.

Page 3: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Sommaire

• Qui suis-je ?

• Du bon usage de la paresse

• La lourdeur (et le bordel) CSS

• Les préprocesseurs à la rescousse

• Pourquoi SASS ?

• Les bases de SASS (Syntactically Awesome Style Sheets):a) l’inclusion b) les variables c) les mixins d) les opérations mathématiques

• L’apport de Compass

• L’installation

• Conclusion

Page 4: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Qui suis-je ?

• Intégrateur web chez Innobec depuis octobre 2013

• Dix-sept ans en tant que travailleur autonome (graphisme, mise en pages, rapports techniques, intégration Web, assistance)

• Ai bourlingué dans pas mal de technologies (homme à tout faire, donc bon à rien)

• Mes clients précédents : maison d’éditions, Hydro-Québec, Contractuelle, CARTV, etc.

• Écrivain (cinq romans publiés, le sixième, Falaise, paraîtra en octobre 2014, chez l’Hexagone.)

• www.guyverville.com

Page 5: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

NVRP« De la paresse, tu useras intelligemment. »

0

Page 6: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

DRYNe vous répétez pas (Don’t Repeat Yourself en anglais,

aussi désigné par l’acronyme DRY) est une philosophie en programmation informatique consistant à éviter la

redondance de code au travers de l’ensemble d’une application afin de faciliter la maintenance, le test, le

déboguage et les évolutions de cette dernière.http://fr.wikipedia.org/wiki/Ne_vous_répétez_pas

Page 7: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

1Le constat

Ce qu’on se répète en CSS…

Page 8: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

La lourdeur (et le bordel) CSS

Qu’est-ce qui cloche ?

• Rien…• Long à faire • Beaucoup d’écriture• Source d’erreurs• Avec de très gros

projets, la gestion devient ardue.

• On se cherche beaucoup.

Page 9: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Le préprocesseur à la rescousse• Organisation hiérarchique • Emploi de variables • Emploi de fonctions • Simplicité du code • Compréhension syntaxique

Page 10: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Le préprocesseur à la rescousse• Organisation du code • Réutilisation • Base de travail commune • Collaboration améliorée • Grande compatibilité entre les

fureteurs • Le préprocesseur avertit des

erreurs, ce qui permet de produire instantanément du code sûr

• Une certain niveau de programmation est possible, grâce aux opérations mathématiques

Page 11: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les préprocesseurs2

Page 12: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les préprocesseurs populaires

http://sass-lang.com/

http://lesscss.org/

http://learnboost.github.io/stylus/

Page 13: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Pourquoi SASS ?

• Parce que je le connais…

• Peut-être le plus populaire.

• Vous n’avez pas à me croire sur parole :http://fr.slideshare.net/patricka1/css-preprocessors-sass-less-and-stylus.

• 80 % de ces préprocesseurs sont identiques.

• Les 20 % restants font généralement peser la balance du côté de SASS.

Page 14: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Foundation, Bootstrap, Suzy, Gumby, etc.

Ils aiment tous SASS !

Page 15: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

SASS en quatre étapes

• Inclusion (mise en contexte)

• Variables

• Mixins (déjà tout cuits : Compass, Compass-Recipes, Bourbon)

• Opérations mathématiques

http://sass-lang.com/

Page 16: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

SASS ou SCSS ?

• Les fichiers SASS se terminent par .SCSS.

• C’est pour les distinguer de la première version de SASS (les fichiers se terminaient en… .SASS).

• On peut toujours utiliser l’ancienne syntaxe, mais vous serez tout seul(e) dans votre coin.

Page 17: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Démonstration3

Page 18: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

SASS par l’exemple

Page 19: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

<div id="infoCegeps"> <div id=« cadreBlanc"> <h2> (6) cégeps au Québec offrent ce programme.</h2> <div id=« listeCegeps"> <div class="boiteCegeps"> <ul> <li class="cegepOffre"><span>Collège de Shawinigan</span></li> <li class="cegepOffre"><span>Cégep de Lévis-Lauzon</span></li> <li class="cegepOffre"><span>Collège Ahuntsic</span></li> <li class="cegepOffre"><span>Cégep de l'Outaouais</span></li> <li class="cegepOffre"><span>Cégep de Saint-Hyacinthe</span</li> <li class="cegepOffre"><span>Cégep de Sherbrooke</span></li> </ul> </div> </div> </div> </div>

SASS par l’exemple

Page 20: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

#infoCegeps { width: 323px; float: right; margin-right: 0; padding-left: 85px; margin-top: 20px; } #infoCegeps #cadreBlanc { position: relative; padding: 10px; height: 380px; margin-right: 5px; background-color: white; -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); margin-bottom: 15px; } #infoCegeps h2 { font-size: 16px; line-height: 1.3em; border-bottom: 1px solid #c8c8c8; margin: 5px 0 15px 0; padding: 0 0 10px; letter-spacing: -.025em; } #infoCegeps ul { margin: 0; padding: 0; } #infoCegeps ul li { line-height: 1.2em; list-style-type: none; etc.

SASS par l’exemple

Page 21: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

#infoCegeps { width: 323px; float: right; margin-right: 0; padding-left: 85px; margin-top: 20px; }

SASS par l’exemple

<div id="infoCegeps"> <div id="cadreBlanc"> <h2> (6) cégeps au Québec offrent ce programme.</h2> <div id="listeCegeps"> <div class="boiteCegeps"> <ul> <li class="cegepOffre"><span>Collège de Shawinigan</span></li> <li class="cegepOffre"><span>Cégep de Lévis-Lauzon</span></li> <li class="cegepOffre"><span>Collège Ahuntsic</span></li> <li class="cegepOffre"><span>Cégep de l'Outaouais</span></li> <li class="cegepOffre"><span>Cégep de Saint-Hyacinthe</span</li> <li class="cegepOffre"><span>Cégep de Sherbrooke</span></li> </ul> </div> </div> </div> </div>

Page 22: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

#infoCegeps { @include span(4 of 12 last); @include prefix(1 of 12); margin-top: 20px; }

SASS par l’exemple (les commandes)

<div id="infoCegeps"> <div id="cadreBlanc"> <h2> (6) cégeps au Québec offrent ce programme.</h2> <div id="listeCegeps"> <div class="boiteCegeps"> <ul> <li class="cegepOffre"><span>Collège de Shawinigan</span></li> <li class="cegepOffre"><span>Cégep de Lévis-Lauzon</span></li> <li class="cegepOffre"><span>Collège Ahuntsic</span></li> <li class="cegepOffre"><span>Cégep de l'Outaouais</span></li> <li class="cegepOffre"><span>Cégep de Saint-Hyacinthe</span</li> <li class="cegepOffre"><span>Cégep de Sherbrooke</span></li> </ul> </div> </div> </div> </div>

Les commandes @include span() et @include prefix() sont propres à Susy, un cadre de développement comme Boostrap, Foundation, Unsemantic, Gumby, etc.). !Les commandes appellent des mixins. !Dans cet exemple, la commande appelle span et transmet les paramètres de colonnes. Par la suite, une seconde commande appelle prefix (une largeur de colonne sur la gauche). !Nous y reviendrons.

Page 23: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

#infoCegeps { @include span(4 of 12 last); @include prefix(1 of 12); margin-top: 20px; #cadreBlanc { position: relative; padding: 10px; height: 380px; margin-right: 5px; background-color: white; @include box-shadow; margin-bottom: 15px; }

} !La commande @include box-shadow appartient à Compass, une librairie de mixins. Sass et Compass sont intimement liés. Il existe d’autres librairies, telle Bourbon.

SASS par l’exemple (l’inclusion)

<div id="infoCegeps"> <div id="cadreBlanc">! <h2> (6) cégeps au Québec offrent ce programme.</h2> <div id="listeCegeps"> <div class="boiteCegeps"> <ul> <li class="cegepOffre"><span>Collège de Shawinigan</span></li> <li class="cegepOffre"><span>Cégep de Lévis-Lauzon</span></li> <li class="cegepOffre"><span>Collège Ahuntsic</span></li> <li class="cegepOffre"><span>Cégep de l'Outaouais</span></li> <li class="cegepOffre"><span>Cégep de Saint-Hyacinthe</span</li> <li class="cegepOffre"><span>Cégep de Sherbrooke</span></li> </ul> </div> </div> </div> </div>

#infoCegeps #cadreBlanc { position: relative; padding: 10px; height: 380px; margin-right: 5px; background-color: white; -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); margin-bottom: 15px; }

Page 24: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

#infoCegeps { @include span(4 of 12 last); @include prefix(1 of 12); margin-top: 20px; #cadreBlanc { position: relative; padding: 10px; height: 380px; margin-right: 5px; background-color: white; @include box-shadow;! margin-bottom: 15px; } h2 { font-size: 16px; line-height: 1.3em; border-bottom: 1px solid $beigeBordureFonce; margin: 5px 0 15px 0; padding: 0 0 10px; letter-spacing: -.025em; } ul { margin: 0; padding: 0; li { line-height: 1.2em; list-style-type: none; margin-bottom: 8px; padding: 0; cursor: pointer; span { border-bottom: 1px dotted $texte; &:hover, &:focus {

Variable

SASS par l’exemple

<div id="infoCegeps"> <div id="cadreBlanc"> <h2> (6) cégeps au Québec offrent ce programme.</h2> <div id="listeCegeps"> <div class="boiteCegeps"> <ul> <li class="cegepOffre"><span>Collège de Shawinigan</span></li> <li class="cegepOffre"><span>Cégep de Lévis-Lauzon</span></li> <li class="cegepOffre"><span>Collège Ahuntsic</span></li> <li class="cegepOffre"><span>Cégep de l'Outaouais</span></li> <li class="cegepOffre"><span>Cégep de Saint-Hyacinthe</span</li> <li class="cegepOffre"><span>Cégep de Sherbrooke</span></li> </ul> </div> </div> </div> </div>

Page 25: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Variables

SASS$rouge: #900000;

CSS

a{… color: #900000 }

.avertissement{… color: #900000; border-left: 1px solid #900000}

La variable sera aussi déplacée dans un autre fichier afin de mieux la repérer.

a{color: $rouge}

.avertissement{ color: $rouge ! border-left: 1px solid $rouge}…

Page 26: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les graphistes aimeront les variables.

• Fini les ombres portées trop grosses ou trop foncées !

• Fini les arcs-en-ciel de nuances !

• {presque} Adieu les incohérences !

• Adieu la pipette !

• Bonjour la flexibilité pour tout le monde.

• Un meilleur respect du cahier des charges.

Page 27: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Esperluétons (&)

Dans SASS

a{

color: $rouge;

&:hover{

opacity: .5}

}

Dans CSS

a{

color: #900000;

}

a:hover{!

! opacity: .5!

}

Esperluette, perluette, perluète, « et commercial », les quatre se disent, comme l’affirma, autrefois, Vaugelas.

Fermeté ! Apprendre à la France à bien parler

et à bien écrire, telle est ma devise.

Page 28: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Tant qu’à esperluéter (&)

Dans SASS

a{

color: $rouge;

&:hover{

@include opacity (.5);

#container &{

color: $bleu}

}}

Les deux perluettes ne possèdent pas la même identité. Dans le premier cas & = a, tandis que dans l’autre, & = a:hover.

Dans CSS

a{

color: #900000;

}

a:hover{!

! opacity: .5!

}!

#container a:hover{!

! color: #c8c8c8}

Page 29: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Tant qu’à esperluéter (&)

Dans SASS

a{

color: $rouge;

&:hover{

@include opacity (.5);

#container &{

color: $bleu}

}}

a:hover{ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=5); opacity: .5 }

Page 30: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les cousins.boiteCegeps { ul { margin: 0; padding: 0; li { line-height: 1.2em; list-style-type: none; margin-bottom: 8px; padding: 0; cursor: pointer; }}}

.boiteCegeps, .autreListe { ul { margin: 0; padding: 0; li { line-height: 1.2em; list-style-type: none; margin-bottom: 8px; padding: 0; cursor: pointer; }}}

.boiteCegeps ul {margin: 0; padding: 0;}

.boiteCegeps ul li { line-height: 1.2em; list-style-type: none; margin-bottom: 8px; padding: 0; cursor: pointer;}}}

.boiteCegeps ul, .autreListe ul {margin: 0; padding: 0;}

.boiteCegeps ul li, .autreListe ul li { line-height: 1.2em; list-style-type: none; margin-bottom: 8px; padding: 0; cursor: pointer;}}}

.autreListe { @extend .boiteCegeps; autre code…. }

Page 31: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Faudrait quand même pas exagérer…

• Tout comme durant l’écriture normale du CSS, l’inclusion a ses limites, car les déclarations finales peuvent devenir trop complexes.

• L’utilisation de la perluette à l’intérieur de trop de niveaux pourrait confondre le préprocesseur.

• N’inclure que 4 niveaux.

• Au-delà, la modération a bien meilleur goût. Le code pourrait sans doute être plus simple.

• L’usage efficace des identités et des classes peut régler cette multiplication gourmande.

• Vous demeurez responsable de la qualité de votre code.

Page 32: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les partials

• Des fichiers SCSS dont le nom débute par « _ »…

• … qu’on peut inclure dans d’autres fichiers avec la commande @import.!

• …et qui seront, lors du traitement, rassemblés en un fichier (ou le nombre de fichiers voulus).!

• L’ordre d’introduction est important.

Page 33: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Mix[in]ons!

Vous savez ce qu’est une fonction ; vous savez ce qu’est un mixin*.

@mixin texteRegulier(){ font-family: 'quicksandregular', Arial, Helvetica, sans-serif; font-weight: normal; }.boiteCegep{ @include texteRegulier() }.boiteCegep{ font-family: 'quicksandregular', Arial, Helvetica, sans-serif;!! font-weight: normal; }

* Un mixin est une supervariable. Sass possède également une directive @function.

Page 34: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Mixons et varions

L’emploi de variables est permis. Abusez-en.@mixin texteRegulier($grosseur:12px, $couleur:#000){ font-family: 'quicksandregular', Arial, Helvetica, sans-serif; font-weight: normal; font-size: $grosseur; color: $couleur; }.boiteCegep{ @include texteRegulier() }.boiteCegep{ font-family: 'quicksandregular', Arial, Helvetica, sans-serif; font-weight: normal;!! font-size: 12px;!! color: #000 }

Page 35: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Mixons et varions

L’emploi de variables est permis. Abusez-en.@mixin texteRegulier($grosseur:12px, $couleur:#000){ font-family: 'quicksandregular', Arial, Helvetica, sans-serif; font-weight: normal; font-size: $grosseur; color: $couleur; }.boiteCegep{ @include texteRegulier(24px,$rouge) }.boiteCegep{ font-family: 'quicksandregular', Arial, Helvetica, sans-serif; font-weight: normal; ! font-size: 24px;!! color: #900000 }

Page 36: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les librairies Compass, Bourbon, etc.

Ces librairies sont essentiellement de vastes collections de mixins, parfois gonflées en framework.

Page 37: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Les opérations mathématiques

Les opérations mathématiques permettent une programmation avancée. Elles ont permis la conception de plusieurs framework CSS.SASS .container { width: 100%; } !article[role="main"] { float: left; width: 600px / 960px * 100%; } !aside[role="complimentary"] { float: right; width: 300px / 960px * 100%; }

CSS .container { width: 100%; } !article[role="main"] { float: left; width: 62.5%; } !aside[role="complimentary"] { float: right; width: 31.25%; }

Page 38: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Un cas hot. Les sprites

Page 39: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Un cas hot. Les sprites

Page 40: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Un cas hot. Les sprites

Page 41: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Un cas hot. Les sprites CAS EXTRÊME

Page 42: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Un cas hot. Les sprites CAS EXTRÊME

Page 43: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

SASS et plus encore

Plusieurs aspects de SASS ne sont pas couverts dans cette présentation.

L’ensemble des opérations possibles avec SASS est documenté ici:

http://sass-lang.com/documentation/file.SASS_REFERENCE.html

ex. : @at-root, @media,@extend%Only Selectors, @function @if,@else, @while, @warn, @debug

Page 44: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Comment on installe ça ?

• Ça dépend de votre OS. Sur un Mac, c’est facile. Sur un PC, ça dépend… (mais c’est quand même facile)

• SASS roule sous Ruby (Ruby est intégré au Mac, on doit l’installer sous Windows).

• Roule maintenant sous C/C++ (LibSass).

• Après, on passe en mode commandegem install sass -- pre.

• Installons tout de suite Compass:gem install compass -- pre.

Page 45: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Pour lancer

• On reste dans le terminal

• On navigue à l’endroit de notre projet

• sass watch!

• après ça, c’est magique

Si on a installé Compass, c’est la même chose, mais on peut faire davantage, comme créer de nouveaux projets.

• On navigue à l’endroit de notre projet

• compass watch !

• après ça, c’est tout aussi magique

Page 46: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Pour lancer

compass watch

Page 47: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Gestion des erreurs

Page 48: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Si vous n’aimez pas le terminal…

• Des applications existent autant pour Windows, Linux que pour Mac (livereload, compass.app, scout, etc.)

• Des greffons existent également pour plusieurs environnements tels Visual Studio, PHPStorm, Dreamweaver, SublimeText, etc.

• Google est votre ami(e).

• Quelques bonnes adresses.

Page 49: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

Convertissez-les !

• Inutile de recommencer son code CSS. On peut le convertir en SASS

• dans le terminal : sass-convert [options] [INPUT] [OUTPUT] sass-convert [— from css -- to scss] -- fichier.css - - fichier.scss sass-convert fichier.css fichier.scss!

• un équivalent récursif existe : sass convert -- r -- from css -- to scss

pour de l’aide : sass-convert -h

Page 50: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

4Compass

http://compass-style.org/

Page 51: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

COMPASS : Le fichier config.rb• L’utilisation de Compass permet

de structurer un projet avec le fichier config.rb qui sera lu au départ de la compilation.

• Dans cet exemple, SASS prendra en compte les mixins de Susy, intégrera une librairie particulière de Compass, indiquera où se trouvent les différents répertoires utilisés et, au final, déplacera le fichier CSS résultant (contexte Wordpress).

• La commande compass create [chemin/du/projet/] permet de bâtir automatiquement ce fichier.

Page 52: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

COMPASS : image-url• Compass possède de nombreux mixins

pratiques dont : image-url

SASS .container { background-image : image-url(‘image.jpg’}; background-repeat : no-repeat; }

CSS .container { background-image : url(‘visuels/image.jpg’}; background-repeat : no-repeat; }

Page 53: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

COMPASS : @font-face• Pour les polices, choix du chemin avec @font-face.

SASS @mixin texteLeger($grosseur : 14px){ @include font-face("PacificoRegular", font-files("pacifico/Pacifico- webfont.woff", "pacifico/Pacifico-webfont.ttf", "pacifico/Pacifico-webfont.svg"), "pacifico/Pacifico-webfont.eot"); font-size: $grosseur }

CSS @font-face { font-family: "PacificoRegular"; src: url(‘polices/pacifico/Pacifico-webfont.eot’); src: url('polices/pacifico/Pacifico-webfont.eot?#iefix') format('eot'), url('polices/pacifico/Pacifico-webfont.woff') format('woff'), url('polices/pacifico/Pacifico-webfont.ttf') format('truetype'), url('policespacifico/Pacifico-webfont.svg') format('svg'); }

http://blog.grayghostvisuals.com/compass/font-face-helper/

Page 54: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

COMPASS : Le format de sortie

Le fichier config.rb permet également de déterminer le format CSS final.output_style = :expanded / line_comments = true output_style = :compressed / line_comments = false

Page 55: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

?Questions Commentaires

Page 56: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

!Conclusion

Page 57: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

!Conclusion

On est tous devenus « DRY » On optimise son code On s’organise On se fait comprendre On lègue à la pérennité un code intelligible On respecte plus rapidement le cahier des charges Le département de l’Assurance qualité a moins de boulot On aime ça d’même

Page 58: Mieux travailler le css avec sass:compass

L E S B A S E S D E S A S S / C O M P A S S • F O I R E D U S A V O I R . 2 0 1 4 . 0 8 . 1 4 / 2 2

!Bon code