sass - mit 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfwhat is sass? ! sass is...

21
SASS Mark Zhang

Upload: others

Post on 30-Sep-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

SASS

Mark Zhang

Page 2: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

What is SASS?

¨  SASS is an extension of CSS. ¨  It provides useful functionality to CSS such as

nesting, variables, and functions. ¨  Allows you to reuse your CSS and keeps your CSS

modular. ¨  It’s very easy to learn and use.

Page 3: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Installation

¨  You first have to install Ruby. ¨  Specific instructions on the SASS website.

¤ http://sass-lang.com/

Page 4: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Using SASS

¨  sass –watch style.sass:style.css

Page 5: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Two Syntaxes

¨  SASS – uses indentation to specify blocks ¨  SCSS – uses braces and semicolons

¨  SASS is more terse and less like normal CSS.

Page 6: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Questions?

Page 7: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Essential SASS Features

¨  Nesting ¨  Variables ¨  Built-in Functions ¨  Mixins ¨  Selector Inheritance ¨  Importing Partials

Page 8: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Nesting

CSS: table tr.foo { padding: 0; } table .h1 { margin: 2em 0; } li { font-family: serif; font-weight: bold; font-size: 15px; }

SASS: table tr.foo padding: 0 h1 margin: 2em 0 li font family: serif weight: bold size: 15px

Page 9: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

The & symbol

CSS: a { color: #ce4dd6; } a:hover { color: #ffb3ff; } a:visited { color: #c458cb; }

SASS: a color: #ce4dd6 &:hover color: #ffb3ff; &:visited color: #c458cb;

Page 10: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Variables

CSS: .wrapper {

border-color: #3bbfce;

padding: 8px

}

.nav { color: #3bbfce;

margin-bottom: 16px;

}

SASS: $accent: #3bbfce $spacing: 16px .wrapper border-color: $accent padding: $spacing/2 .nav color: $accent margin-bottom: $spacing

Page 11: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Built-in Functions

¨  standard math operations (+, -, *, /, and %) ¨  color functions like “lighten” and “darken”

SASS: $navbar-color:

#ce4dd6 background-color:

lighten($navbar-color, 10%)

CSS: background-color:

#d976e0;

Page 12: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Mixins

¨  Are reusable style blocks ¨  They can take variables! ¨  @mixin and @include

Page 13: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Mixins

CSS: .nav { box-shadow: 1px 1px 4px 2px #ccc -webkit-box-shadow: 1px 1px 4px 2px #ccc -moz-shadow: 1px 1px 4px 2px #ccc -o-shadow: 1px 1px 4px 2px #ccc } .wrapper { box-shadow: -1px -1px 2px 0 #ccc -webkit-box-shadow: -1px -1px 2px 0 #ccc -moz-box-shadow: -1px -1px 2px 0 #ccc -o-box-shadow: -1px -1px 2px 0 #ccc }

Page 14: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Mixins

SASS: @mixin box-shadow($blur, $spread, $h, $v, $color) -moz-box-shadow: $h $v $blur $spread $color -webkit-box-shadow: $h $v $blur $spread $color -o-box-shadow: $h $v $blur $spread $color box-shadow: $h $v $blur $spread $color .nav @include box-shadow(1px, 1px, 4px, 2px, #ccc) .wrapper @include box-shadow(-1px, -1px, 2px, 0, #ccc)

Page 15: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Mixins

¨  Can even take variable numbers of arguments or default arguments.

Page 16: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Selector Inheritance

¨  Uses “@extend” ¨  Allows one selector to inherit all styles of another

selector (included styles within nested selectors).

Page 17: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Selector Inheritance

SASS .error

border: 1px #f00 background: #fdd .intrusion font-size: 1.3em font-weight: bold

.badError @extend .error border-width: 3px

CSS .error, .badError

{ border: 1px #f00; background: #fdd; }

.error.intrusion, .badError.intrusion { font-size: 1.3em; font-weight: bold; }

.badError { border-width: 3px; }

Page 18: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Partials and Importing

¨  You can separate your SASS into files. ¨  Files that are “incomplete” and meant to loaded

into other SASS files are called partials. ¨  Naming convention: _colors.scss

¨  @import "colors“ would include all the styles in _colors.scss during compilation

Page 19: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Essential SASS Features

¨  Nesting ¨  Variables ¨  Built-in Functions ¨  Mixins ¨  Selector Inheritance ¨  Importing Partials

Page 20: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Summary

¨  SASS is an extension of CSS. ¨  It provides features that allow you to easily reuse

and tweak your styling. ¨  It reduces repetition in your styling.

Page 21: SASS - MIT 6.4706.470.scripts.mit.edu/2013/assets/resources/sass_lecture.pdfWhat is SASS? ! SASS is an extension of CSS. ! It provides useful functionality to CSS such as nesting,

Mark Zhang

SASS