Le 'sub-theming' avec LESS, SASS et COMPASS



Documents pareils
.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

{less} Guide de démarrage

Zen, SASS, responsive design

Formation HTML / CSS. ar dionoea

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

WEB page builder and server for SCADA applications usable from a WEB navigator

Celui qui vous parle. Yann Vigara

Once the installation is complete, you can delete the temporary Zip files..

HTML, CSS, JS et CGI. Elanore Elessar Dimar

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

TP JAVASCRIPT OMI4 TP5 SRC

Atelier Progress Rollbase

DOCUMENTATION - FRANCAIS... 2

Prototyper un site web avec Awestruct et Boostrap

VTP. LAN Switching and Wireless Chapitre 4

Instructions Mozilla Thunderbird Page 1

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Tutoriel : Feuille de style externe

Présentation du Framework BootstrapTwitter

How to Login to Career Page

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Responsive Design. Technologies du web. Stéphane Bouvry, 2014

Media queries : gérer différentes zones de visualisation

DOCUMENTATION - FRANCAIS... 2

Exercices sur SQL server 2000

DOCUMENTATION - FRANCAIS... 2

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Our recommendation engine has come up with some personalized suggestions for you.

UN SITE WEB RESPONSIVE EN UNE HEURE?

SERVEUR DÉDIÉ DOCUMENTATION

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Nouveautés printemps 2013

Travaux dirigés n 10

HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

Title Text. Gestion de données de mobilité Mobility data management

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

ENVOI EN NOMBRE DE Mails PERSONNALISES

DOCUMENTATION - FRANCAIS... 2

INDIVIDUALS AND LEGAL ENTITIES: If the dividends have not been paid yet, you may be eligible for the simplified procedure.

RAPID Prenez le contrôle sur vos données

Contents Windows

CEST POUR MIEUX PLACER MES PDF

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

Utiliser un proxy sous linux

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

ANGULAR JS AVEC GDE GOOGLE

APPENDIX 6 BONUS RING FORMAT

sshgate Patrick Guiran Chef de projet support

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

STID 2ème année : TP Web/PHP

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

THE EVOLUTION OF CONTENT CONSUMPTION ON MOBILE AND TABLETS

Stéphane Lefebvre. CAE s Chief Financial Officer. CAE announces Government of Canada participation in Project Innovate.

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Comment créer son propre monitoring. (Version simple PHP)

Le piratage informatique. Rapport de projet. Spécialité Informatique 1 re année. DEJOUR Kévin SOUVILLE Jean-François. Suivi : Mokhtari-Brun Myriam

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Luc Brun. Création de pages Web Dynamiques p.1/75

Cedric Dumoulin (C) The Java EE 7 Tutorial

OUTIL DE TRAVAIL COLLABORATIF

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

Sommaire. Introduction. Nouveautés d Adobe InDesign CS3. Visite guidée d Adobe InDesign

Gestion des certificats en Internet Explorer

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Spécial Catégorie 6 Patch Cords

ARCHOS Activity Tracker

FICHE TECHNIQUE. Linux Tutoriel. Installer une imprimante multifonction HP PSC 1315 sous Linux. TUTORIEL Starinux Imprimante multifonction HP PSC 1315

Natixis Asset Management Response to the European Commission Green Paper on shadow banking

Discours de Eric Lemieux Sommet Aéro Financement Palais des congrès, 4 décembre 2013

Bienvenue au séminaire HP Service Anywhere Mardi 11 février 2014

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

CREATION d UN SITE WEB (INTRODUCTION)

Guide pour l Installation des Disques Durs SATA et Configuration RAID

Votre premier projet Android

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Tutoriel de formation SurveyMonkey

PACKZ System Requirements. Version: Version: Copyright 2015, PACKZ Software GmbH. 1

SHAREPOINT PORTAL SERVER 2013

Comment Créer une Base de Données Ab Initio

Exemple PLS avec SAS

Vanilla : Virtual Box

Plan. Department of Informatics

MANUEL MARKETING ET SURVIE PDF

Fiche produit ifinance v4

Institut français des sciences et technologies des transports, de l aménagement

Guide d installation Deco Drain inc. DD200

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Transcription:

Le 'sub-theming' avec LESS, SASS et COMPASS Par Sylvain Aubé Intégrateur Web, Whisky Echo Bravo Track : Design/Usability Niveau : débutant www.drupalcampmontreal.com

À propos du présentateur twitter.com/sylvainaube Organisateur de Drupal BBQs! Perspective d'un «Themer» Drupal Expérience récente avec les préprocesseurs

Qu'allons-nous apprendre? Distinguer LESS de SASS et Compass Installer ces outils sur votre plateforme Comprendre les concepts de base Intégrer à notre workflow Drupal (incluant le subtheming)

Ce que nous ne verrons pas Ruby HAML LESS/SASS intermédiaire et avancé Le futur ; )

Pourquoi? Des feuilles de style de 3000 lignes? Différents éditeurs pour un même projet Pour utiliser CSS3 maintenant Pour avoir du support sur les navigateurs Pour ne pas repartir à zéro (Design patterns pour les tâches courantes)

Préprocesseurs CSS SASS et LESS ne sont que deux préprocesseurs parmi une multitude. bit.ly/csspreprocessors

Pseudo-code.awesome { @include yeah(1);

Pseudo-code -webkit-yeah: 1!; -moz-yeah: 1; -o-yeah: 1; -ms-yeah: 1; -khtml-yeah: 1; yeah: 1; (merci à john albin)

Less ou SASS???

LESS ou SASS??? Facilité d'installation? Serveur en production? Auto-compilation? Grammaire? Communauté? Librairies et extensions?

LESS http://lesscss.org/

LESS install <link rel="stylesheet/less" type="text/css" href="styles.less"> <script src="less.js" type="text/javascript"></script>

More Yay!, less BOF!.box-shadow (@x: 0, @y: 0, @blur: 1px, @alpha) { @val: @x @y @blur rgba(0, 0, 0, @alpha); box-shadow: @val; -webkit-box-shadow: @val; -moz-box-shadow: @val;.box { @base: #f938ab; color: saturate(@base, 5%); border-color: lighten(@base, 30%); div {.box-shadow(0, 0, 5px, 0.4) Source : http://lesscss.org/

SASS http://sass-lang.com/

SASS - Originaire de l'environnement Ruby - Jumelé à HAML, mais pas nécessairement - Grammaire SASS - Grammaire SCSS, métissage avec LESS et CSS. - Compatible avec la librairie COMPASS

Différences entre SASS et LESS https://gist.github.com/674726

Différences entre SASS et LESS Sass $color: red; div { color: $color; Less @color: red; div { color: @color;

Différences entre SASS et LESS SASS @mixin bordered($width: 2px) { border $width solid black; #menu a { @include bordered(4px) LESS.bordered(@width: 2px) { border: @width solid black; #menu a {.bordered(4px);

SASS seulement Structures conditionelles: @if lightness($color) > 30% { background-color: black; @else { background-color: white; Loops: @for $i from 1px to 10px {.border-#{i { border: $i solid blue;

LESS seulement #bundle { @color: red; color: @color; span { width: 200px;.foo { #bundle > span; border: 1px solid #bundle[@color]; color: #bundle['color'];

Install fest!

Linux $ sudo apt-get install ruby $ sudo apt-get install rubygems1.8 $ sudo gem update --system Dans ~/.bashrc: "export PATH=$PATH:/var/lib/gems/1.8/bin" $ sass -v $ sudo gem install compass

Compass App

Demo Time! Préalables : - ligne de commande - SASS installé - Compass installé - copie récente de Drupal (7.8)

Demo Time Option 1 : Dans sites/all/themes/nomdutheme «$ compass create nomdutheme»

Mon premier SASS $ compass create <myproject> --sass-dir "sass" --css-dir "css" --javascripts-dir "js" --images-dir "images" config.rb : css_dir : css javascripts_dir : js images_dir : images

Compass Watch $ Compass watch $ Sass - - compass - -watch nomdutheme:css -r

Tronc commun Principes communs à SASS et LESS

- «Mixins» - Variables - «Nested Rules» - Fonctions et +

Variables // LESS @color: #4D926F; #header { color: @color; h2 { color: @color; /* Compiled CSS */ #header { color: #4D926F; h2 { color: #4D926F;

Variables + Fonctions lighten(@color, 10%); darken(@color, 10%); // return a color which is 10% *lighter* than @color // return a color which is 10% *darker* than @color saturate(@color, 10%); // return a color 10% *more* saturated than @color desaturate(@color, 10%); // return a color 10% *less* saturated than @color @base: #f04615; (...).class { color: saturate(@base, 5%); background-color: lighten(@base, 25%);

Fonctions / Operations // LESS @the-border: 1px; @base-color: #111; @red: #842210; #header { color: @base-color * 3; border-left: @the-border; border-right: @the-border * 2; #footer { color: @base-color + #003300; border-color: desaturate(@base, 5%); /* Compiled CSS */ #header { color: #333; border-left: 1px; border-right: 2px; #footer { color: #114411; border-color: #7d2717;

«Mixins» «Mixins allow you to embed all the properties of a class into another class by simply including the class name as one of its properties. It s just like variables, but for whole classes. Mixins can also behave like functions, and take arguments, as seen in the example bellow.»

«Mixins» // LESS /* Compiled CSS */.rounded-corners (@radius: 5px) { border-radius: @radius; -webkit-border-radius: @radius; -moz-border-radius: @radius; #header {.rounded-corners; #footer {.rounded-corners(@radius : 10px) #header { border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; #footer { border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;

«Parametric mixins» «LESS has a special type of ruleset which can be mixed in like classes, but accepts parameters. Here s the canonical example:».border-radius (@radius) { border-radius: @radius; -moz-border-radius: @radius; -webkit-border-radius: @radius;

«Nested rules» // LESS #header { h1 { font-size: 26px; font-weight: bold; p { font-size: 12px; a { text-decoration: none; &:hover { border-width: 1px /* Compiled CSS */ #header h1 { font-size: 26px; font-weight: bold; #header p { font-size: 12px; #header p a { text-decoration: none; #header p a:hover { border-width: 1px;

CSS2SASS http://css2sass.heroku.com/

Compass

3e partie : créer et étendre son framework avec Compass - Compass est une librairie - Avec Compass, vos 20 premiers mixins sont écrits (+ optimisé par la communauté)

Compass : Stylesheet Framework «Compass is a stylesheet authoring tool that uses the Sass stylesheet language to make your stylesheets smaller and your web site easier to maintain». «Compass provides ports of the best of breed css frameworks that you can use without forcing you to use their presentational class names*».

Exemples de patterns - border-radius (Boutons à coins ronds) - box-shadow (ombres) - font-face (webfonts) - text-replacement - clearfix - dégradés sur les boutons - @inline-list - tables - liens - etc...

CSS3

Compass : définir @mixin replace-text($img, $x = 50%, $y = 50%) { text-indent: -9999em; overflow: hidden; background: { image: image_url($img); repeat: no-repeat; position: $x $y;

Compass : appeller /* Compass Libraries */ @import "compass/css3"; h1 { @include replace-text(/images/logo.png); font: { size: 120%; weight: bold;

Compass : Résultat CSS h1 { text-indent: -9999em; overflow: hidden; background-image: image_url(/images/logo.png); background-repeat: no-repeat; background-position: 50% 50%; font-size: 120%; font-weight: bold;

Compass

Compass comme framework (thème parent) Quelles possibilités les préprocesseurs nous offrent-ils pour l'avenir de nos thèmes?

Quoi mettre dans le theme parent? - «reset» - «grids» - «design patterns» - éléments qui reviennent dans chacun des sites - attention aux valeurs par défaut trop contraignantes

Quoi mettre dans le thème enfant? Charte graphique unique au site SASS, mixins supplémentaires Styles imbriqués Module Styleguide

Qu'avons-nous appris? Distinguer LESS de SASS et Compass Installer ces outils sur votre plateforme Comprendre les concepts de base Intégrer à notre workflow Drupal (incluant le subtheming)

Merci! twitter.com/sylvainaube

Le 'sub-theming' avec LESS, SASS et COMPASS Par Sylvain Aubé Intégrateur Web, Whisky Echo Bravo Track : Design/Usability Niveau : débutant www.drupalcampmontreal.com