$map: (key1: value1, key2: value2, key3: value3);
map-get($map, key1)
Sass Cheat Sheet
This is a quick reference cheat sheet that lists the most useful features of SASS.
Sass Other features
Maps
Lists
$list: (a b c);
nth($list, 1) // starts with 1
length($list)
@each $item in $list { ... }
Interpolation
.#{$klass} { ... } // Class
call($function-name) // Functions
@media #{$tablet}
font: #{$size}/#{$line-height}
url("#{$background}.jpg")
Conditionals
@if $position == 'left' {
position: absolute;
left: 0;
}
@else if $position == 'right' {
position: absolute;
right: 0;
}
@else {
position: static;
}
Sass Loops
While loops
$i: 6;
@while $i > 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 2;
}
Each loops (nested)
$backgrounds: (home, 'home.jpg'),
(about, 'about.jpg');
@each $id, $image in $backgrounds {
.photo-#{$id} {
background: url($image);
}
}
Each loops (simple)
$menu-items: home about contact;
@each $item in $menu-items {
.photo-#{$item} {
background: url('#{$item}.jpg');
}
}
For loops
@for $i from 1 through 4 {
.item-#{$i} { left: 20px * $i; }
}
Sass Feature checks
Features
- global-variable-shadowing
- extend-selector-pseudoclass
- units-level-3
- at-error
Feature check
feature-exists(global-variable-shadowing)
Sass Other functions
Misc
variable-exists(red) // checks for $red
mixin-exists(red-text) // checks for @mixin red-text
function-exists(redify)
global-variable-exists(red)
selector-append('.menu', 'li', 'a') // .menu li a
selector-nest('.menu', '&:hover li') // .menu:hover li
selector-extend(...)
selector-parse(...)
selector-replace(...)
selector-unify(...)
Numbers
floor(3.5)
ceil(3.5)
round(3.5)
abs(3.5)
min(1, 2, 3)
max(1, 2, 3)
percentage(.5) // 50%
random(3) // 0..3
Units
unit(3em) // 'em'
unitless(100px) // false
Strings
unquote('hello')
quote(hello)
to-upper-case(hello)
to-lower-case(hello)
str-length(hello world)
str-slice(hello, 2, 5) // "ello" - it's 1-based, not 0-based
str-insert("abcd", "X", 1) // "Xabcd"
Sass Color functions
Adjustments
// Changes by fixed amounts
adjust-color($color, $blue: 5)
adjust-color($color, $lightness: -30%) // darken(\_, 30%)
adjust-color($color, $alpha: -0.4) // fade-out(\_, .4)
adjust-color($color, $hue: 30deg) // adjust-hue(\_, 15deg)
// Changes via percentage
scale-color($color, $lightness: 50%)
// Changes one property completely
change-color($color, $hue: 180deg)
change-color($color, $blue: 250)
Supported: $red
, $green
, $blue
, $hue
, $saturation
, $lightness
, $alpha
Modifying HSLA
darken($color, 5%)
lighten($color, 5%)
saturate($color, 5%)
desaturate($color, 5%)
grayscale($color)
adjust-hue($color, 15deg)
complement($color) // like adjust-hue(\_, 180deg)
invert($color)
fade-in($color, .5) // aka opacify()
fade-out($color, .5) // aka transparentize()
rgba($color, .5) // sets alpha to .5
Mixing
mix($a, $b, 10%) // 10% a, 90% b
rgba
rgb(100, 120, 140)
rgba(100, 120, 140, .5)
rgba($color, .5)
Sass Mixins
Default variable
$default-padding: 10px;
@mixin pad($n: $default-padding) {
padding: $n;
}
body {
@include pad(15px);
}
Default values
@mixin pad($n: 10px) {
padding: $n;
}
body {
@include pad(15px);
}
Parameters
@mixin font-size($n) {
font-size: $n * 1.2em;
}
body {
@include font-size(2);
}
Sass Basics
@import
@import './other\_sass\_file';
@import '/code', 'lists';
// Plain CSS @imports
@import "theme.css";
@import url(theme);
The .sass
or .sass
extension is optional.
Extend
.button {
···
}
.push-button {
@extend .button;
}
Comments
/\*
Block comments
Block comments
Block comments
\*/
// Line comments
String interpolation
$wk: -webkit-;
.rounded-box {
#{$wk}border-radius: 4px;
}
Variables
$defaultLinkColor: #46EAC2;
a {
color: $defaultLinkColor;
}
Introduction
- Documentation (sass-lang.com)
- Learn X in Y minutes (learnxinyminutes.com)