Windows: http://rubyinstaller.org/ eller sök på ruby installer
gem install sasssuperset av CSSSASS kan allt som CSS kan
variabler,funktioner, loopar etc. i CSSsass konverteras till vanlig csspreprocessor
.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-filerSass-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.ioFä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
$variabelGör en mixindefault parameters_mixins.scss och importera i main.scss