2018-10-21 12:13:22 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								title: Sass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								---
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-05 23:25:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Sass (Syntactically awesome style sheets) is a preprocessor scripting language initially designed by Hampton Catlin that compiles CSS. It essentially brings the power of a standard programming language to your stylesheets. Sass files end with the `.scss`  file extension. 
							 
						 
					
						
							
								
									
										
										
										
											2018-12-19 20:44:23 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								With Sass, you can make your CSS considerably more efficient. Some of its key features include:
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								-  **nesting** which allows you to order child elements inside of their parents on your stylesheet
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  **mixins** which allow you to apply the same style to multiple elements without having to copy and paste 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  **for**, **if** , and **else**  statements which allow you to apply styles only in specific conditions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  **partials** which allow you to take chunks of your CSS and import them into other `.scss`  stylesheets
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  **extend** which allows you to take the style from one element into another
							 
						 
					
						
							
								
									
										
										
										
											2018-12-19 20:44:23 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Store data with Sass variables
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								One of the main features of Sass is its ability to define variables. You can define variables for almost anything such as color, font, units, etc.
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Variables can be defined in Sass by using the `$`  and variable name. (e.g., if I want my website's theme color to be blue. I can write:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$themeColor: blue; //defines theme color
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$baseFont: 14px; // defines font size
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Now I can use the variable to set color in my website:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								p {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: $themeColor;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-size: $baseFont;
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								And it also makes it easier to change the theme color of my website without having to change the color *blue*  in every element style. I can simply change the variable value:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$themeColor: red; //changed the color from blue to red
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Nest CSS within SASS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Another great feature of Sass is nesting. Nesting saves you from having to write too much code. If you have an element inside of another element, you don't have to write more lines of code to target the child element. It can be understood with and example.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Suppose you have a heading element inside of a div with a class of *parent* .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "parent" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  < h1 > The heading< / h1 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								In plain CSS, you have to write
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.parent {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  background: #e3e3e3 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border: 1px solid #c1c3c1 ;
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								.parent h1 {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: #333 ;
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								to style the *parent*  element and the heading inside of the *parent*  element. But in Sass, you can nest one selector inside of the other:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.parent {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  background: #e3e3e3 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border: 1px solid #c1c3c1 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   h1 {                       //nested inside .parent element
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     color: #333 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								which will compile as:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.parent {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  background: #e3e3e3 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border: 1px solid #c1c3c1 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.parent h1 {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: #333 ;
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								## MIXINS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Mixins are like functions for CSS.
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Example:
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```css
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@mixin  box-shadow($x,$y,$blur,$c) {
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  -webkit-box-shadow: $x,$y,$blur,$c;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  -moz-box-shadow: $x,$y,$blur,$c;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  -ms-box-shadow: $x,$y,$blur,$c;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   box-shadow: $x,$y,$blur,$c;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.mydiv {
							 
						 
					
						
							
								
									
										
										
										
											2018-10-24 08:57:08 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  @include  box-shadow(0px,0px,5px,#fff );
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-02-06 01:00:44 +05:45 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								## Additional Resources
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  [Official Sass website ](https://sass-lang.com/ )