CSS is a fantastic language for making beautiful websites, but sometimes it can be a bit, well, clunky. Sassy CSS (SCSS) makes it fun again by extending CSS and adding great features such as variables, mixins, nesting and much more. In this talk I run through a beginner's guide to SCSS, show you how to get started and explain the basic features with lots of code examples. You'll be able to build faster, experiment more, and spend less time typing and more time creating.
1. An Introduction to
Sassy CSS
Stewart Curry
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
2. Who is
This Guy?
Web Designer for 15 years or so
Table-based layouts & spacer gifs
CSS changed all that
SCSS is CSS only better
woop.ie - iteration, modules, themes, templates
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
3. past
simple
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
4. @IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
5. now
complicated
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
6. 💬
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
8.
📱 💻
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
9. SASS MAKES
CSS FUN AGAIN
www.sass-lang.com
Basically, CSS made flexible
& awesome by adding in
cool features.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
10. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
11. There
Will
be Code
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
12. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
13. Sass Style with attitude
“ Sass is an extension of CSS3, adding
nested rules, variables, mixins,
selector inheritance, and more. It’s
translated to well-formatted, standard
CSS using the command line tool or a
web-framework plugin. www.sass-lang.com
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
14. it looks like CSS
$blue: #3bbfce;
$margin: 16px;
.content-navigation {
border-color: $blue;
color: darken($blue, 9%);
}
.border {
padding: $margin / 2;
margin: $margin / 2;
border-color: $blue;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
15. it looks like CSS but
• it’s neater
• it’s faster to write
• it allows for more experimentation
• it’s more flexible
• it’s more manageable
• it’s got variables!
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
16. so you can
• experiment more
• make global changes quickly
• make reusable modules
• use frameworks more effectively
• handle RWD neatly
• have less cluttered code
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
17. workflow
📁 css
📁 images
📁 scripts
📄 index.html
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
18. workflow
📁 css
📁 images
📁 sass
📁 scripts
📄 index.html
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
19. workflow
📁 css
📁 images
📁 sass
📄 style.scss
scripts
📁
📄 index.html
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
20. workflow
📄 ⚙ 📄
style.scss processor style.css
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
21. workflow
📁 css
📄 style.css
📁 images
📁 sass
📄 style.scss
📁 scripts
📄 index.html
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
22. all you do is...
• make a .scss file
• write to it, just like normal CSS
• translate it to a CSS file/folder:
• sass --watch style.scss:style.css
• sass --watch stylesheets/ ↵
sass:stylesheets/compiled
• and any changes you make to your SCSS
file(s) will be complied to your CSS file(s).
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
23. Y U NO
USE LESS.JS?
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
24. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
25. @IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
26. @IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
27. Install Ruby rubyinstaller.org
$ sudo gem install sass
$ sass --watch style.scss:style.css
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
29. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
30. $variables
“ variables allow you to use the
same value in multiple places, as
well as perform basic maths and
functions.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
31. why variables rock
Change one variable and you change
it everywhere. Save hours of search &
replacing. Experiment with small
changes in margins & gutters. Reskin
with different colours...
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
32. $variables
• begin with a dollar sign $
• assign a value with a colon separator :
• end with semi-colon ;
$red : #ff0000;
$font : "Open Sans", Arial, Sans-Serif;
$margin : 16px;
$column : 40px;
$type : 1em;
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
33. $primarycolor : red
$mainfont : “Open Sans...
$basetypesize : 1em
$variables
$margin : 16px
• use instead of a value
SCSS
h1 {
color: $primarycolor;
font-family: $mainfont;
font-size: $basetypesize;
margin: 0 0 $margin 0;
}
h1 {
color: red;
font-family: "Open Sans", Arial, Sans-Serif;
font-size: 1em;
margin: 0 0 16px 0;
}
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
34. operations
• maths: + - / *
• color: darken, lighten, saturation, opacity
• http://sass-lang.com/docs/yardoc/Sass/
Script/Functions.html
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
36. $basetypesize : 1em
escaping
• wrap with #{ }
• useful for paths
SCSS
p {
font: #{$basetypesize}/#{$basetypesize*1.5} $mainfont;
}
p {
font: 1em/1.5em "Open Sans", Arial, Sans-Serif;
}
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
37. $margin : 16px
negatives
• minus symbols
• -64px -32px 0 16px
• top: -96px; right , left are 0; bottom is 16px
SCSS
.moveup {
margin:-$margin*4 -$margin*2 0 $margin;
}
.moveup {
margin: -96px 0 16px;
}
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
38. $margin : 16px
negatives
• wrap in brackets
• (-$variable*value)
SCSS
.moveup {
margin:(-$margin*4) (-$margin*2) 0 $margin;
}
.moveup {
margin: -64px -32px 0 16px;
}
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
39. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
40. nesting
“ Sass avoids repetition by
nesting selectors within one
another. The same thing works
with properties. www.sass-lang.com
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
41. why nesting rocks
Write a hell of a lot less CSS. Avoid
repetion. Use indentation to quickly
scan and see relationships. Use
ampersands for awesomeness.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
42. write html as normal
HTML
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</nav>
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
43. $mainfont : “Open Sans...
$margin : 16px
nest & indent
SCSS
nav {
font-family: $mainfont;
ul {
margin: 0;
padding: 0;
li {
list-style: none;
a {
background: #222;
color: #fff;
display: block;
float: left;
padding: $margin $margin*1.5;
text-decoration: none;
}
}
}
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
44. $mainfont : “Open Sans...
$margin : 16px
nest & indent
CSS
nav {
font-family: "Open Sans", Arial, Sans-Serif;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
list-style: none;
}
nav ul li a {
background: #222;
border-right: 1px solid #666;
color: #fff;
display: block;
float: left;
padding: 16px 24px;
text-decoration: none;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
45. selectors
SCSS
em {
font: {
family: Georgia, Serif;
style: normal;
weight: bold;
variant: small-caps;
}
}
em {
font-family: Georgia, Serif;
font-style: normal;
font-weight: bold;
font-variant: small-caps;
}
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
46. &
@IRISHSTU
ampersand
AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
47. $primarycolor : #993333
& ampersand
• pulls the parent selector into the &
SCSS
#fancybox {
li a.fancy {
&:link { color: $primarycolor; }
&:visited { color: darken($primarycolor,20%); }
&:hover { color: lighten($primarycolor,10%); }
}
}
#fancybox li a.fancy:link { color: #993333; }
#fancybox li a.fancy:visited { color: #4d1919; }
#fancybox li a.fancy:hover { color: #bf4040; }
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
48. $primarycolor : #993333
ampersand &
• prepends before parent selector
SCSS
#fancybox {
li a.fancy {
&:link { color: $primarycolor; }
&:hover { color: lighten($primarycolor,10%); }
body#checkout & { border:1px solid $primarycolor; }
}
}
#fancybox li a.fancy:link { color: #993333; }
#fancybox li a.fancy:hover { color: #bf4040; }
body#checkout #fancybox li a.fancy { border: 1px solid #993333; }
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
49. ampersand &
• use with HTML body classes
SCSS
#browserwars {
border: 1px solid red;
.ie8 &, .ie9 & {
border: 1px solid blue;
}
.ie10 & {
border: 1px solid green;
}
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
50. ampersand &
• use with HTML body classes
CSS
#browserwars {
border: 1px solid red;
}
.ie8 #browserwars, .ie9 #browserwars {
border: 1px solid blue;
}
.ie10 #browserwars {
border: 1px solid green;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
51. $size : 16px
ampersand &
• use with HTML body classes
SCSS
$size :16px;
h1 {
font: {
family: Arial, sans-serif;
size: $size;
}
.wf-active & {
font: {
family: "proxima-nova-extra-condensed", Arial, sans-serif;
size: $size*1.5;
}
}
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
52. $size : 16px
ampersand &
• use with HTML body classes
CSS
h1 {
font-family: Arial, sans-serif;
font-size: 16px;
}
.wf-active h1 {
font-family: "proxima-nova-extra-condensed", Arial, sans-serif;
font-size: 24px;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
53. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
54. @mixins
“ mixins allow you to re-use whole
chunks of CSS, properties or
selectors. You can even give
them arguments. www.sass-lang.com
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
55. why mixins rock
Reduce massive chunks of CSS into
reusable includes that you can use
over and over again.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
57. @mixin
• begin with @mixin
• give it a name
• add your $variable(s)
• give (an) optional default value(s)
@mixin roundcorner ($radius: 4px) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
58. @mixin
• call it with @include
SCSS
.fancybox {
width: 100px;
@include roundcorner(10);
}
.fancybox {
width: 100px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
CSS
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
61. transitions
@mixin transanim ($time) {
-webkit-transition: all #{$time}s ease-in-out;
-moz-transition: all #{$time} s ease-in-out;
-o-transition: all #{$time}s ease-in-out;
-ms-transition: all #{$time}s ease-in-out;
transition: all all #{$time}s ease-in-out;
}
* {
@include transanim(0.5);
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
62. $grid : 20px
$lineheight : 1em
type
@mixin type ($size, $lineheight, $marginbottom: 1 1.5 1) {
font-size: $grid*$size;
font-size: $grid*$size / 16px + rem;
line-height: $grid*$lineheight;
line-height: $grid*$lineheight / 16px + rem;
margin:0 0 $grid*$marginbottom 0;
}
h1 {
@include type
(1.75, 2, 1);
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
63. $grid : 20px
$lineheight : 1em
type
CSS
h1 {
font-size: 35px;
font-size: 2.188rem;
line-height: 40px;
line-height: 2.5rem;
margin: 0 0 20px 0;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
64. @each
SCSS
$social: twitter facebook linkedin;
@mixin social-icons {
@each $icon in $social {
.social-#{$icon} {
background: url("images/#{$icon}.png") no-repeat;
}
}
}
.social {
@include social-icons;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
65. it’s a loop!
CSS
.social .social-twitter {
background: url("images/twitter.png") no-repeat;
}
.social .social-facebook {
background: url("images/facebook.png") no-repeat;
}
.social .social-linkedin {
background: url("images/linkedin.png") no-repeat;
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
67. retina
CSS
#responsivetest {
width: 400px;
height: 400px;
background-image: url("bgimage.png");
background-size: cover;
background-repeat: no-repeat; }
@media screen and (-webkit-min-device-pixel-ratio: 2) {
#responsivetest {
background-image: url("bgimage@2x.png"); }
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
68. ampersand &
• make it a mixin to reuse
SCSS
@mixin webfonts ($fallback, $shinytype, $size) {
font: {
family: #{$fallback};
size: $size;
}
.wf-active & {
font: {
family: "#{$shinytype}", #{$fallback};
size: $size*1.5;
}
}
}
h1 {
@include webfonts("Arial, sans-serif", "proxima-nova-extra-condensed", 16px);
}
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
69. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
70. @media
“ @media directives in Sass
behave just like they do in plain
CSS, with one extra capability:
they can be nested in CSS rules.
www.sass-lang.com
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
71. why
media queries rock
Make responsive layouts. Associate
media queries more closley with the
element you are changeing.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
72. @media
• begin with @media
• write media queries as normal
• if it appears within a rule, it will ‘bubble up’
and put the selectors within the rule.
• media queries can be nested
• combined with the and rule
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
78. 2 #menu 1
1 #logo 2
#content
4 3
3 #leftnav 4
5 #footer 5
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
79. 3.2
@IRISHSTU
coming soon
AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
80. @media
You can’t use this yet - watch https://github.com/nex3/sass/
• variables in queries
• Sass 3.2 alpha
• other cool stuff
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
81. @media
You can’t use this yet - watch https://github.com/nex3/sass/
SCSS
@mixin respond-to($media) {
@if $media == handhelds {
@media only screen and (max-width: 320px) { @content; }
}
@else if $media == medium-screens {
@media only screen and (min-width: 321px) and (max-width: 1024px) { @content; }
}
@else if $media == wide-screens {
@media only screen and (min-width: 1024px) { @content; }
}
}
.profile-pic {
float: left;
width: 250px;
@include respond-to(handhelds) { width: 100% ;}
@include respond-to(medium-screens) { width: 125px; }
@include respond-to(wide-screens) { float: none; }
}
http://thesassway.com/intermediate/responsive-web-design-part-2#the_future_of_media_queries_in_sass
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
82. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
83. _partials
“ partials are snippets of scss
that are saved into files meant
to be imported. They begin
with an underscore and don’t
get compiled.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
84. why partials rock
Include files for CSS. Make your files
more managable by breaking them
into discreet external modules.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
85. _partials
• filename starts with an underscore
• e.g. “_grid.scss”
• import it into your .scss file
• @import "grid";
• save on HTTP requests
• better structure
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
86. workflow
📄 ⚙ 📄
style.scss processor style.css
📄 📄 📄
_reset.scss _grid.scss _type.scss
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
87. @IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
88. @IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
89. examples
• Separate partials for:
• grids, typography, colours, forms, tables
• mixins & variables
• different post types for blogs
• adverts
• media queries
• site sub-sections
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
90. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
91. @extend
“ The @extend directive (tells) Sass
that one selector should inherit
the styles of another selector.
http://nex-3.com/posts/99-selector-inheritance-the-easy-way-introducing-extend
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
92. why extend rocks
Lets you add styles from one selector
to another, as well as its own styles.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
93. @extend
• nest @extend .classname;
• goes inside another class
• don’t have to use multiple classes
• association is in CSS not HTML
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
95. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
96. gotchas!
A few things to watch out for when
working with SCSS.
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
97. @IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
98. /facepalm
• make sure you’re running your compiler
• make sure it’s not CSS
• watch out for escaping #{values}
• be aware of inheritance
• when you go back to CSS, don’t forget your
inheritance
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
99. codekit
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012
100. TOPICS
• What’s Sass/SCSS?
• Installing Sass
• Variables
• Nesting
• Mixins
• Media Queries
• Partials
• Inheritance
• Gotchas
• Links
@IRISHSTU AN INTRODUCTION TO SASSY CSS #REFRESHDUBLIN 18 JULY 2012