17
LESS & SASS Jed Willard http://go.illinois.edu/less_slides

LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Embed Size (px)

Citation preview

Page 1: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

LESS & SASS

Jed Willard

http://go.illinois.edu/less_slides

Page 2: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

SASS

●SASS = Syntactically Awesome Stylesheets

● Extension of CSS

●Two syntaxes (SCSS & SASS)

●Must install Ruby & Sass

● http://sass-lang.com/

Page 3: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

LESS

● LESS != cool acronym

● Extension of CSS, similar to SASS

● Runs client-side (javascript) or server-side (node.js)

● http://lesscss.org/

Page 4: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Why use these extensions?

MORE POWER!!!

Page 5: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Powerful Additions

● Variables

●Mixins

●Nested Rules

● Functions & Operations

●Namespaces

Page 6: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Key Areas of Usage

Variables● Fonts (all aspects: family, size, etc)● Colors

Mixins● Repetitive CSS properties (border-radius, borders, etc)

Nested Rules● Mimics DOM tree, much leaner CSS

Functions, Operations, Namespaces● Anywhere applicable, create reusable blocks of CSS, font-size

operations, responsive grid calculations

Page 7: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Get Started

●Use same software tools you currently use.

●Use your current CSS skills.

● Pick one: LESS or SASS

Page 8: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Recommended Workflow

●Write your CSS the SASS/LESS way during development

● Compile LESS/SASS to CSS

● Link to compiled CSS instead of relying on JS or server-side processing

Page 9: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Variables

@color: #4D926F;

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

Page 10: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Mixins

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

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

Page 11: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Nested Rules

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

Page 12: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Functions & Operations

@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: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Namespaces

#bundle {  .button () {    display: block;    border: 1px solid black;    background-color: grey;    &:hover { background-color: white }  }  .tab { ... }  .citation { ... }}

#header a {  color: orange;  #bundle > .button;}

Page 14: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Pros

●Added power from extensions

● Lighter CSS

● Efficiency

Page 15: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Cons

● Potentially more processing time

● LESS = client-side usage requires another JS call

●Dumps generated CSS into document head

All of these cons are alleviated by using LESS/SASS only during development.

Page 16: LESS & SASS - publish.illinois.edupublish.illinois.edu/webmasters/files/2011/10/LESS_SASS.pdf · LESS SASS An Introduction to LESS, and Comparison to SASS SASS/LESS Comparison Getting

Examples

●Awesome Demo File

●A more realistic example

●Drupal's Zen theme (7.x-5.x-dev files)