Sass et Compass ont embelli mon quotidien, Sud Web 2013

30
Sass et Compass ont embelli mon quotidien

description

Ce n'est un secret pour personne : le travail d'intégrateur peut rapidement tourner au cauchemar. Entre le support des navigateurs obsolètes, la prise en charge des nouveaux devices numériques et la disparité des niveaux technologiques disponible sur le marché, l'intégrateur (ou développeur front-end) doit jongler entre de multiples langages et connaître une liste interminable de hacks a appliquer pour satisfaire tout ce petit monde. Que diriez-vous de vous simplifier la vie avec CSS grâce à Sass/Compass ? Dans cette conférence SudWeb de 20 minutes, j'explique comment l'usage du préprocesseur CSS et de son framework CSS3 ont su embellir mon quotidien et m'ont incités à penser objet, documenter mes projets. Tout n'étant jamais rose, j'aborde quelques pièges en mesure de nuire à l'avancement d'un projet.

Transcript of Sass et Compass ont embelli mon quotidien, Sud Web 2013

Page 1: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Sass et Compassont embelli mon quotidien

Page 2: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Compass

Sass

CSS

Page 3: Sass et Compass ont embelli mon quotidien, Sud Web 2013

• d’organisation modulaire

• de documentation

• de compatibilité multi-navigateurs

• de pièges à éviter

Nous parlerons

Page 4: Sass et Compass ont embelli mon quotidien, Sud Web 2013

• de la syntaxe Sass

• de plugins (Susy, 960gs, etc)

• de la Grande question sur la vie, l’univers et le reste

Mais pas

Page 5: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Mehdi Kabab

@piouPiouM

mehdikabab

Développeur Web

Page 6: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Mehdi Kabab

@piouPiouM

mehdikabab

Auteur

Sass & Compass avancéOptimiser ses feuilles de style CSS(2013)

Page 7: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Organisation modulaire

Page 8: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Avant Sass

• un unique document CSS à rallonge

• chaque intervenant ajoute sa pierre à l’édifice, en bas du document

• à l’opposé du principe KISS (Keep It Simple, Stupid)

Page 9: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Intervenir sur ce projet ?Plus jamais !

Page 10: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Avec Sass

• un document structuré

• des rôles identifiables

• un regroupement naturel par composants graphiques

Page 11: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Avec Sass

• un document structuré

• des rôles identifiables

• un regroupement naturel par composants graphiques

• une organisation efficace

Page 12: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Incite à penser objet

Page 13: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Un code réutilisable

Page 14: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Documentersans crainte

Page 15: Sass et Compass ont embelli mon quotidien, Sud Web 2013

CSS, un triste constat

• rares sont les projets CSS pourvus de vrais commentaires utiles, comme :

• les motivations d’un décalage de 10px

• des rappels sur la structure du document

• la raison de la présence d’un préfixe mob- sur certaines classes

Page 16: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Commentaires Sass// Une classe préfixée par `mob-` permet de cibler spécifiquement la version// mobile du contenu. Ainsi, depuis une contribution initialement destinée à la// version desktop du site, ces classes n'auront d'effet que dans l'affichage// mobile. En effet, certains jeux de classes existent dans les thèmes desktop// et mobile. Le webmaster souhaitant masquer un élément uniquement dans la version// mobile préférera appliquer la classe `mob-h` que la classe `h` qui impacterait// également l'affiche desktop.

// Masquer un texte..h, .mob-h { @include hide-text; display: none;}

// Empêcher iOS d'effectuer un zoom sur un élément de formulaire.// Cet helper est donc uniquement destiné a être étendu depuis des éléments// de formulaire !%helper-fx-select_nozoom { @include rem('font-size', 16px);}

Page 17: Sass et Compass ont embelli mon quotidien, Sud Web 2013

• non générés dans la sortie CSS

• visibles uniquement par les intervenants du projets

• fini la concession entre le poids de fichier final et le poids des commentaires

Commentaires Sass

Page 18: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Être compatible

Page 19: Sass et Compass ont embelli mon quotidien, Sud Web 2013

CSS3 facile

Page 20: Sass et Compass ont embelli mon quotidien, Sud Web 2013

$experimental-support-for-svg: true; // IE9.linear-gradient { @include filter-gradient(#a9e4f7, #0fb4e7); // IE6-8 @include background-image(linear-gradient(#a9e4f7, #0fb4e7));}

.linear-gradient { *zoom: 1; filter: progid:DXImageTransform.Microsoft.gradient(gradientType=0, startColorstr='#FFA9E4F7', endColorstr='#FF0FB4E7'); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2E5ZTRmNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzBmYjRlNyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #a9e4f7), color-stop(100%, #0fb4e7)); background-image: -webkit-linear-gradient(#a9e4f7, #0fb4e7); background-image: -moz-linear-gradient(#a9e4f7, #0fb4e7); background-image: -o-linear-gradient(#a9e4f7, #0fb4e7); background-image: -ms-linear-gradient(#a9e4f7, #0fb4e7); background-image: linear-gradient(#a9e4f7, #0fb4e7);}

SCSS

CSS

Page 21: Sass et Compass ont embelli mon quotidien, Sud Web 2013

21

Même IE ?

Page 22: Sass et Compass ont embelli mon quotidien, Sud Web 2013

22

• seulement 9 règles communes à IE 8 et IE 7

• aux-quelles s’ajoutent 19 règles correctrices pour IE 7

• un gain de temps considérable !

Pour une CSS de727 règles

Page 23: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Pièges à éviter

Page 24: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Ordre de déclaration des variables

$content-width: 960px !default;$sidebar-width: 250px !default;$main-width: $content-width - $sidebar-width !default; // Soit 710px par défaut.

@import "partials/grid";

// La variable $sidebar-width est re-définie.// $main-width vaudra toujours 710px au lieu de 660px.$sidebar-width: 300px;

_grid.scss

_base.scss

Page 25: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Ordre de déclaration des variables

$content-width: 960px !default;$sidebar-width: 250px !default;$main-width: $content-width - $sidebar-width !default; // Soit 710px par défaut.

// La variable $sidebar-width est re-définie selon nos besoins.$sidebar-width: 300px;

// Puis le fichier partiel est chargé.// La variable $main-width est correctement calculée (960px - 300px = 660px).@import "partials/grid";

_grid.scss

_base.scss

Page 26: Sass et Compass ont embelli mon quotidien, Sud Web 2013

CSS non compressé

• une tierce personne peut aisément éditer la feuille de style non compressé

• sans forcément reporter les éditions dans la source Sass

Conseil : commitez une version compressée de vos feuilles de style en plus du projet Sass.

Page 27: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Déléguer la compilation• exit la délégation d’une unique compilation sur le

serveur

• développeurs, vous commiteriez un code non testé ?

• je ne pense pas ;-)

• faîtes en de même avec vos CSS !

Conseil : compilez sur votre poste de travail avant de commiter. Ne pas se contenter d’une compilation serveur.

Page 28: Sass et Compass ont embelli mon quotidien, Sud Web 2013

Questions ?