Windows: http://rubyinstaller.org/
eller sök på ruby installer
gem install sass
superset
av CSSSASS kan allt som CSS kan
variabler
,funktioner
, loopar
etc. i CSS
sass
konverteras till vanlig css
preprocessor
.container{
background: hsl(330, 50%, 55%);
}
Även fast vi använder sass behöver vi inte använda dess funktioner..
...men vi ska använda dem
Standard filändelse: .scss
Kan förekomma: .sass
.container
background: hsl(330, 50%, 55%)
Indenteringbaserad
.container{
background: hsl(330, 50%, 55%);
}
"Vanlig syntax"
.scss-filer
Sass-filerna är enbart för utvecklingsbruk. Vi länkar fortfarande till vår .css-fil
Vi konverterar alltid till .css
/* Deklarera med $ */
$primary-color: hsl(330, 50%, 55%);
.container{
background: $primary-color;
}
/* main.scss */
$full-width: 100%;
.container{
width: $full-width;
}
/* Doesn't have to be kebab-case */
$main-margin: 2rem;
.container{
margin: 0 0 $main-margin $main-margin;
}
$main-padding: 2rem;
$super-padding: main-padding * 2;
nav a{
color: #fff;
}
Väljer alla a
-element i nav
nav{ /* i .scss-filen */
a{
color: #fff;
}
}
nav a{ /* i vår konverterade css-fil */
color: #fff;
}
/* main.scss */
a{
color: marine;
&:hover {
color: #fff;
}
}
}
&
ersätter föräldern
/* main.scss */
.box{
color: marine;
&-article{
color: #fff;
}
}
}
nav{
li{
a{
em{
span{
}
}
}
}
}
.css
-fil
sass
/* i main.scss */
@import "shame";
body{
/* Style goes here */
}
Partials börjar med _
: _shame.scss
Vi behöver inte inkludera varken _
eller .scss
när vi använder @import
Keep it DRY
/* i main.scss */
@mixin flex-center(){
display: flex;
align-items: center;
justify-content: center;
}
/* i main.scss */
.container{
@include flex-center;
}
/* i main.css */
.container{
display: flex;
align-items: center;
justify-content: center;
}
@mixin flex($align){
display: flex;
align-items: $align;
justify-content: center;
}
@mixin flex($align: center){
display: flex;
align-items: $align;
justify-content: center;
}
@mixin flex($align: center, $justify: center){
display: flex;
align-items: $align;
justify-content: $justify;
}
Vendor prefix
@mixin border-radius($radius){
-webkit-border-radius: $radius;
border-radius: $radius;
}
-webkit-
: Chrome-moz-
: Firefox-ms-
: IE-o-
OperaBourbon.io
Färdiga mixins för vanliga problem
@function advancedMath($a, $b){
@return $a * $b;
}
/* main.scss */
$colors: red green blue;
/* Det är skillnad på dessa två */
$colors: "red green blue";
/* main.scss */
$colors:(
"red": "#ff0000",
"green": "#00ff00",
"blue": "#0000ff"
);
/* main.scss */
@mixin color($color){
@if $color == white{
background: black;
} @else{
background: teal;
}
}
http://www.sass-lang.com/documentation/file.SASS_REFERENCE.html
$variabel
Gör en mixin
default parameters
_mixins.scss
och importera i main.scss