Top Banner
CSS preprocessor LESS is more or look SASS-y trying
19

CSS Preprocessors: LESS is more or look SASS-y trying

Jan 27, 2015

Download

Technology

James Cryer

Introduction to CSS Preprocessors, exploring RWD approach and tools to help optimise developer workflow
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CSS Preprocessors: LESS is more or look SASS-y trying

CSS preprocessorLESS is more or look SASS-y trying

Page 2: CSS Preprocessors: LESS is more or look SASS-y trying

Intro

• Web Developer

• Mobile Developer

• .net magazine

• @jrcryer

Page 3: CSS Preprocessors: LESS is more or look SASS-y trying

Definition

CSS preprocessors extend CSS, allowing designers and developers create

dynamic, module and re-usable CSS

Page 4: CSS Preprocessors: LESS is more or look SASS-y trying

So...

Page 5: CSS Preprocessors: LESS is more or look SASS-y trying

Benefits

• Reduces complexity

• Increase maintainability

• Frameworks

• Optimized CSS output

• Simplifies RWD implementation

Page 6: CSS Preprocessors: LESS is more or look SASS-y trying

Key Features

• Variables

• Mixins

• Nesting

• Operations

• Modular

Page 7: CSS Preprocessors: LESS is more or look SASS-y trying

LESS

• Inspired by original SASS

• Firstly written in Ruby, converted to JavaScript

• Client side (via less.js)

• Server side with NodeJs

<link rel="stylesheet/less" type="text/css" href="styles.less" />

<script src="less.js" type="text/javascript"></script>

npm install -g less

lessc styles.less

Page 8: CSS Preprocessors: LESS is more or look SASS-y trying

SASS / SCSS

• Implemented in Ruby

• Two Syntaxes

• SASS - Indent based, similar to HAML

• SCSS - CSS block

• Installationgem install sass

sass --watch style.scss:style.css

Page 9: CSS Preprocessors: LESS is more or look SASS-y trying

Variables

/* style.scss */

$color: #4D926F;

#header { color: $color;}h2 { color: $color;}

/* style.less */

@color: #4D926F;

#header { color: @color;}h2 { color: @color;}

Page 10: CSS Preprocessors: LESS is more or look SASS-y trying

MIXINS

/** style.scss **/

@mixin rounded-corners ($radius: 5px) { -webkit-border-radius: $radius; -moz-border-radius: $radius; -ms-border-radius: $radius; -o-border-radius: $radius; border-radius: $radius;}

#header { @include rounded-corners;}#footer { @include rounded-corners(10px);}

/** style.less **/

.rounded-corners (@radius: 5px) { -webkit-border-radius: @radius; -moz-border-radius: @radius; -ms-border-radius: @radius; -o-border-radius: @radius; border-radius: @radius;}

#header { .rounded-corners;}#footer { .rounded-corners(10px);}

Page 11: CSS Preprocessors: LESS is more or look SASS-y trying

Nesting

/** style.scss **/

#header { h1 { font-size: 26px; font-weight: bold; } p { font-size: 12px; a { text-decoration: none; &:hover { border-width: 1px } } }}

/** style.less **/

#header { h1 { font-size: 26px; font-weight: bold; } p { font-size: 12px; a { text-decoration: none; &:hover { border-width: 1px } } }}

Page 12: CSS Preprocessors: LESS is more or look SASS-y trying

Operations

/** style.scss **/

$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($red, 10%);}

/** style.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(@red, 10%);}

Page 13: CSS Preprocessors: LESS is more or look SASS-y trying

Modules

/** _variables.scss **/

@base-color: #111;

/** style.scss **/

@import “variables”

#header { color: @base-color;}

/** variables.less **/

@base-color: #111;

/** style.less **/

@import-once ‘variables.less’

#header { color: @base-color;}

Page 14: CSS Preprocessors: LESS is more or look SASS-y trying

Responsive Patternmodules/ header/ _base.scss _responsive-320px-min.scss _responsive-768px-min.scss _responsive-1024px-min.scss_variables.scss_mixins.scss_responsive.scssapp.scss

/** app.less **/

@import “variables”;@import-once “mixins”;@import-once “modules/header/base”;@import-once “responsive”;

/** _responsive.less **/

@media (min-width:320px) { @import-once “modules/header/responsive-320px-min”;}

modules/ header/ _base.less _responsive-320px-min.less _responsive-768px-min.less _responsive-1024px-min.less_variables.less_mixins.less_responsive.lessapp.less

/** app.less **/

@import-once “_variables.less”;@import-once “_mixins.less”;@import-once “modules/header/_base.less”;@import-once “_responsive.less”;

/** _responsive.less **/

@media (min-width:320px) { @import-once “modules/header/_responsive-320px-min.less”;}

Page 15: CSS Preprocessors: LESS is more or look SASS-y trying

CSS Frameworks

Page 16: CSS Preprocessors: LESS is more or look SASS-y trying

Other tools

Page 17: CSS Preprocessors: LESS is more or look SASS-y trying

Features Not Covered...

• GUARDED MIXINS

• NAMESPACES & SCOPE

• CONTROL DIRECTIVES

• DEBUGGING

• SOURCE MAPS

Page 18: CSS Preprocessors: LESS is more or look SASS-y trying

Demo Time!

Page 19: CSS Preprocessors: LESS is more or look SASS-y trying

Fin!