Bonjour à tous et bienvenue dans cette présentation autour des préprocesseurs CSS.
Tout d’abord, cette présenter est réalisé dans cadre du veille technologique au sein de Proxym
Je vais dans cette présentation de vous proposer de découvrir ensembles
· Qu’est ce qu’un préprocesseur CSS
· Les principales fonctionnalités
· à quoi elles servent
· en quoi peuvent être utile dans votre code
Et finaliser par un petit workshop afin d’appliquer avec des exemples réels ce qu’on va apprendre durant la présentation.
Donc, avant de démarrer avec les préprocesseurs, je veux présenter rapidement le langage CSS.
[ SLIDE ]
À la base CSS a été créé pour séparer la structure d’une page web de son habillage graphique, c’est grâce au CSS qu’aujourd’hui qu’on peut parler des thèmes.
Jour après jour, le CSS vient de s’évoluer et de prendre une place plus importante dans le développement des sites Web.
Il nous offre plein plein de fonctionnalités qui nous aide à bien définir (et bien mettre en place) la mise en forme de nos pages web
Même l’importance de son évolution, il reste comme toujours un système purement déclaratif textuel pour indiquer les présentations, qui se repose toujours sur « sélecteurs - propriétés et valeurs ».
La chose qui nous amène à rencontrer des problèmes, non lier aux fonctionnalités du CSS mais plutôt au fondement du CSS ou au langage lui-même.
Il n’est pas prévu pour limiter la duplication de code. Ainsi un thème qui se base sur quatre couleurs principales devra répéter le code couleur à de multiples endroits. Évidemment, le jour où on voudra modifier une couleur par exemple, il faudra parcourir 1000 lignes de code.
En CSS:
On ne peut pas réutiliser une partie d’un style pour l’appliquer à un autre.
On ne peut pas paramétrer des styles semblables.
On ne peut pas déclarer de constantes et les réutiliser.
On ne peut pas faire d’opérations simples sur des tailles, des couleurs, ect
Ce n’est qu’un exemple de Less.
Manque de souplesse, on peut se retrouver face à des fichiers CSS qui contient plusieurs millier de lignes.
Ici j’ai mis un exemple d’un fichier qui contient plus que 6000 lignes.
Ça arrive souvent de rencontrer des grands fichiers, dans lesquels on peut avoir du mal à naviguer, surtout si vous n’êtes pas l’auteur du fichier, ou si le fichier n’est pas bien organisé.
Manque de lisibilité : certaine règles ou propriétés peuvent être totalement perdu une des définitions sans fin
Par exemple ici il n’est pas évident de voir que ces propriétés sont appliqué sur le lien a son état hover qui se trouve directement sous une balise dont la classe .active qui se trouve elle même
Redevance du code: la répétions d’ailleurs c’est un autre problème lié CSS (plustôt au logique de construction du CSS), du coup ici vous voulez modifier par exemple la couleur d’un lien au survole du souri, vous êtes obligé de répéter le sélecteur.
De même avec les nouvelles propriétés CSS qui ne sont pas supporter par tous les navigateurs, on est obligé de les redéfinir avec les différents prefix.
Travaille avec plusieurs fichiers : on va avoir un fichier dédié au IE, un autre dedié au responsive… on peut utiliser la fonction @import du CSS, mais le soucie ici (c’est un grand souci) que va se poser, que est à chaque fois on va faire un appel HTTP qui va encombrer le réseau d’une manière inutile. Notre site va répondre plus rapidement si nous avons un seul fichier.
Les préprocesseurs CSS nous propose un langage de présentation qui étend CSS pour lui apporter ce qu’il manque en ajoutant des nouvelles fonctionnalités et nomenclatures à votre feuille de style en apportant une plus grande lisibilité des informations.
Les PP vous permet plein de choses :
Concaténer plusieurs fichiers : avoir une seule fichier qui serve tout le site, et qui augmente du coup la performance de vos apps
l’utilisation de variables : avancer plus vite qu’on avoir des variables. Et faciliter la maintenance.
Utiliser les mixines qui vous permet d’organiser votre code et de regrouper les règles réutilisables.
Fct, opérateur mathématiques, méthodes prédéfinies
utilisation des nestings qui va vraiment vous permettre d’organiser votre code
Quel PP je dois choisir
Tous les PP se rassemble un petit peu avec quelques différances ( dans syntaxe )
On va se concentrer aujourd’hui sur les deux PP les plus connue et les plus utilisés
Après avoir chargé la feuille de styles (fichier .less) avec la méthode classique, il faut également charger le script less.js, qui va « traduire » la syntaxe LESS, en syntaxe CSS standard, compréhensible par le navigateur.
Cette technique consiste à traduire le fichier LESS en CSS au niveau du serveur, puis à envoyer le fichier CSS résultant vers le navigateur. Cette méthode se base sur Node.js, qui permet de faire tourner Javascript sur un serveur, comme on peut le faire avec d’autres langages, comme PHP.
Cette méthode utilise explicitement un outil, qui peut être en ligne de commande, ou un logiciel sous Windows ou Mac. Contrairement aux autres méthodes, celle-ci est statique. La feuille de styles CSS n’est générée qu’une seule fois, au lancement de la commande.
Après avoir chargé la feuille de styles (fichier .less) avec la méthode classique, il faut également charger le script less.js, qui va « traduire » la syntaxe LESS, en syntaxe CSS standard, compréhensible par le navigateur.
Cette technique consiste à traduire le fichier LESS en CSS au niveau du serveur, puis à envoyer le fichier CSS résultant vers le navigateur. Cette méthode se base sur Node.js, qui permet de faire tourner Javascript sur un serveur, comme on peut le faire avec d’autres langages, comme PHP.
Cette méthode utilise explicitement un outil, qui peut être en ligne de commande, ou un logiciel sous Windows ou Mac. Contrairement aux autres méthodes, celle-ci est statique. La feuille de styles CSS n’est générée qu’une seule fois, au lancement de la commande.
Je vous conseil d’adopter une structure du projet, voila un exemple
Entrons maintenant dans le vif du sujet, en regardant ce que nous pouvons faire avec les PP.Les PP, quel qu’ils font, la 1er chose qui permet de le faire c’est la concaténation des fichiers.
La commande Import va permet d’appeler d’autre fichiers qui vont être compiler avec notre fichier princpale.
L’avantage, que au final, la concaténation des fichiers va nous permettre de générer un seul fichier qui sera éventuellement minifier, mais que se nous permettre de se faire une seule requête auprès de serveur
N’est obligatoirement au début du fichier de style. (responsive.less à la fin du fichier)
Import non compilé
Si on préfixe le nom du fichier à importé par un _ on donne l’ordre au SASS de ne pas compiler ce fichier
Import non compilé
Si on préfixe le nom du fichier à importé par un _ on donne l’ordre au SASS de ne pas compiler ce fichier
Ensuite, on peut les réutiliser dans les propriétés CSS de nos déclarations
En appelant chaque variable n’importe ou dans ce fichiers, je peux aussi le rappeler dans n’importe quelle autre fichier dans mon projet.
Au lieu d’écrire #nav li a, tu peux faire #nav { li { a {…} } }. Et tu peux écrire du code entre chaque niveau de l’arbo !La chose que vous permettre d’organiser votre code, et d’avoir un code vraiment de qualité.
Le nesting c’est tout simplement la capacité du PP a réécrire du code d’une façon très simple et très lisible.
On va retourver on plus un pseudo-sélecteur qui présente le sélecteur parent.
Il est possible aussi d’utiliser les pseudo sélecteur de la façon suivante. en suffixant par une chaine à concaténer par le nom de la classe parente.
Que vous donner une grande flexibilité dans réutilisation du code
On SASS on va voir une autre type de définition des mixins en utlisant @mixin pour la définition et @include pour les appels
Ça permet d’appliquer tous les propriétés une classe sur des autres classe
Ça permet d’appliquer tous les propriétés une classe sur des autres classe
En SASS sa rassemble à la même chose mais avec un syntaxe tout petit différent.
SASS gère les opérations arithmétiques et mathématiques de base. Nous pouvons donc avoir des règles du type: …
Les mixins : avec les définitions conditionnelles Tout cela devient très intéressant, mais il y a mieux, avec les définitions conditionnelles des mixins:
Ces règles nous montrent tous le potentiel d’un tel langage, avec notamment la capacité de générer des feuilles de styles différentes à partir d’un même fichier LESS.
Tout cela devient très intéressant, mais il y a mieux, avec les définitions conditionnelles des mixins:
Ces règles nous montrent tous le potentiel d’un tel langage, avec notamment la capacité de générer des feuilles de styles différentes à partir d’un même fichier LESS.
Tout cela devient très intéressant, mais il y a mieux, avec les définitions conditionnelles des mixins:
Ces règles nous montrent tous le potentiel d’un tel langage, avec notamment la capacité de générer des feuilles de styles différentes à partir d’un même fichier LESS.
Tout cela devient très intéressant, mais il y a mieux, avec les définitions conditionnelles des mixins:
Ces règles nous montrent tous le potentiel d’un tel langage, avec notamment la capacité de générer des feuilles de styles différentes à partir d’un même fichier LESS.
vous n’avez donc plus besoin d’utiliser sass –watch scss:css.