Sass et compass

26
Compass Et autres extensions ou «préprocesseurs CSS 1 lundi 16 juillet 12

description

les bases de l'intégration sass et compass

Transcript of Sass et compass

Page 1: Sass et compass

CompassEt autres extensions ou «préprocesseurs CSS

1lundi 16 juillet 12

Page 2: Sass et compass

Convention d’écriture

Texte

Lien

Remarque

Code / $ Command

2lundi 16 juillet 12

Page 3: Sass et compass

Une amélioration du support de CSS dans nos navigateurs

Ce n’est pas :

3lundi 16 juillet 12

Page 4: Sass et compass

CSS natif, plutôt se pendre.

Pourquoi étendre CSS ?

• 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...

4lundi 16 juillet 12

Page 5: Sass et compass

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’

5lundi 16 juillet 12

Page 6: Sass et compass

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

6lundi 16 juillet 12

Page 7: Sass et compass

Ou bien...

• en ligne de commande

Gratuit, compatible, et très facile à mettre en place :)

7lundi 16 juillet 12

Page 8: Sass et compass

UFC que choisir ?Choix Cornelien, Ou pas...

8lundi 16 juillet 12

Page 9: Sass et compass

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é

9lundi 16 juillet 12

Page 10: Sass et compass

Installation

• Ruby

Via RVM (ruby version manager) pour mac et linux

Via Ruby installer sous windows

• On lance :

$ sudo gem install compass

10lundi 16 juillet 12

Page 11: Sass et compass

Permet de créer un projet Compass.

Ciblez un dossier, puis lancez la commande create

Commande ‘create’

$ cd path_to/project/build_folder

$ compass create nom_compass_folder

11lundi 16 juillet 12

Page 12: Sass et compass

Parlons Organisation/project_folder/

|-- .git

|-- Ressources

|-- specs/

|-- .../

|-- builds/

|-- compass/

|-- coffee/

|-- .../

|-- www/

|-- css/

|-- .../

12lundi 16 juillet 12

Page 13: Sass et compass

Ouvrons le fichier config.rb

Configurer Compass

13lundi 16 juillet 12

Page 14: Sass et compass

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

Commande ‘watch’

$ cd path_to/project/build_folder/compass_folder/

$ compass watch

14lundi 16 juillet 12

Page 15: Sass et compass

Enfin, le vif du sujet !Quelques exemples

15lundi 16 juillet 12

Page 16: Sass et compass

Les commentairesCommentaires en ligne disponible.

// Ceci est une révolution

16lundi 16 juillet 12

Page 17: Sass et compass

Validation syntaxiqueAvec output à l’intérieur du fichier html

17lundi 16 juillet 12

Page 18: Sass et compass

Inclusionvia @import

@import "compass/reset";

modules Compass

fichiers personnels

@import "lib/_variables";

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

18lundi 16 juillet 12

Page 19: Sass et compass

Variablesvia $

$red : #F00;

Création

background-color : $red;

Référence

19lundi 16 juillet 12

Page 20: Sass et compass

fonctionsCréation

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

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

20lundi 16 juillet 12

Page 21: Sass et compass

fonctions

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

body{ font-size: 87.5%;}

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

Référence

21lundi 16 juillet 12

Page 22: Sass et compass

mixinCréation

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

22lundi 16 juillet 12

Page 23: Sass et compass

mixinRéférence via @include

button{ @include set_radius(5px); }

23lundi 16 juillet 12

Page 24: Sass et compass

extend

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

modules Compass

fichiers personnels

button{ @extend .blackAndWhite;}

24lundi 16 juillet 12

Page 25: Sass et compass

Structures de contrôleComme partout ailleurs, sauf en CSS natif

25lundi 16 juillet 12