SASS (Syntactically Awesome Style Sheets) is a powerful and popular CSS preprocessor that extends the capabilities of standard CSS. It offers numerous features such as variables, nested rules, mixins, and functions, making CSS more maintainable, reusable, and easier to write. Sass files are compiled into standard CSS for browser interpretation. SASS helps streamline your workflow and keeps your stylesheets organized and efficient.
Since browsers are unable to read a SASS file, so, we are required to use a SASS compiler that converts its file to a normal CSS file. It also helps reduce the overall length of the code by discarding the repeated CSS code and therefore saves time. It was designed by Hampton Catlin and developed by Natalie Weizenbaum in 2006.
What is SASS?
SASS (Syntactically Awesome Style Sheets) is a powerful and popular CSS preprocessor that extends the capabilities of standard CSS. It offers numerous features such as variables, nested rules, mixins, and functions, making CSS more maintainable, reusable, and easier to write. SASS helps streamline your workflow and keeps your stylesheets organized and efficient.
Why Use SASS?
- Variables: SASS allows the use of variables to store values such as colors, fonts, or any CSS value you need to reuse. This makes it easy to maintain and update styles across a project.
- Nesting: SASS supports nesting of CSS rules, which follows the same visual hierarchy of HTML. This makes your CSS more readable and maintainable.
- Partials and Imports: You can break down your CSS into smaller, modular pieces using partials and import them into a main stylesheet. This modular approach keeps your code organized.
- Mixins: Mixins allow you to create reusable chunks of CSS, avoiding repetitive code. You can pass variables to mixins for dynamic styling.
- Functions and Operations: SASS provides built-in functions and the ability to define your own, enabling complex calculations and transformations directly within your stylesheet.
- Inheritance: The @extend directive allows you to share a set of CSS properties from one selector to another, promoting DRY (Don't Repeat Yourself) principles.
The conversion of one syntax to another can automatically be done using the sass-convert command-line tool in the file. SASS can be implemented in 5 ways:
- Using the import statement
- Using the node & npm
- Using the Command-line tool
- Using the Standalone-Ruby module
- Using installing the Plugin
SASS Tutorial
Installation Step
We will follow the below steps to install the SASS through Package Manager.
Step 1: To install SASS, first make sure that node and npm are already installed in the system. If not, then install them using the instructions given below.
- First, download the latest version of a node in the system and install it.
- Now go to the command prompt and address the folder where you want to install SASS.
- After that, you have to create a package.json file. It manages the dependencies of our project.
- Use the command written below that will ask for the package name of the user’s choice and the description. Some more formalities are there, just press enter for that and your package.json file will be created.
npm init
Step 2: Now to install SASS one simple command is used:
npm install node-sass --save
Note: – –save in the above command is used to save the SASS in dependencies of JSON file. Now SASS has been installed in your system successfully.
Step 3: To work with SASS, go to the package.json file in your project, i.e. if you are working with VSC, open your project there and then open the package.json file.
You will get a package.json file like:
{
"name": "sass-ex",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
},
"author": "",
"license": "ISC"
}
Remove the “test” script and add your own script of name compile: sass (any other name can be chosen), give the link of your sass file as a target. package.json should look like this:
{
"name": "sass-ex",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"compile:sass": "node-sass scss/style.scss css/style.css"
},
"author": "",
"license": "ISC"
}
Now go back to the command prompt and run the command:
npm rum compile:sass
Or just add a node-sass script like this:
Open the package.json file in your text editor of choice, and add the following line inside the “scripts” object:
"scss": "node-sass --watch assets/scss -o assets/css"
package.json file looks like this:
{
"name": "sass-ex",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"scss": "node-sass --watch assets/scss -o assets/css"
},
"author": "",
"license": "ISC"
}
Save the file and close it. Now, in the root of the project directory, run the command (as given below) to start watching for any changes to your .scss files.
npm run scss
Approach
- Write the SASS code.
- Compile the SASS code into CSS code using the command sass style.scss result.css . The first filename (style.scss) is the scss file that is to be compiled and the second file name (result.css) is the processed CSS file, to be included/attached in the HTML document.
- Include the compiled CSS file in the Html file.
Now see how to make effective use of the important features of SCSS like variables, nesting, mixins, and operators.
- The main HTML file is named index.html
- SCSS file is style.scss and the CSS file is result.css
- Command to compile the SCSS file: sass style.scss result.css
Example: The below example describe the SASS code which is converted to a CSS file, which is then utilized in the index.html file.
index.html
<!DOCTYPE html>
<html>
<head>
<title>SASS Tutorial</title>
<link rel="stylesheet" href="result.css">
</head>
<body>
<h1>GeeksforGeeks</h1>
<h3>SASS</h3>
<p>This example illustates the use of
<a href="https://www.geeksforgeeks.org/css/sass-introduction/">SASS
</a>
</p>
<p>
<a href="https://www.geeksforgeeks.org/">
GeeksforGeeks
</a>
- A Computer Science portal for geeks.
</p>
</body>
</html>
style.scss
$bg: #909290;
$textColor: #ffffff;
$align: center;
$font: sans-serif;
$decoration: none;
$text: green;
body {
background: $bg;
color: $textColor;
text-align: $align;
font-family: $font;
}
h1 {
color: $text;
}
a {
text-decoration: $decoration;
color: $text;
}
result.css
body {
background: #454745;
color: #ffffff;
text-align: center;
font-family: sans-serif;
}
h1 {
color: green;
}
a {
text-decoration: none;
color: green;
}
Output:
Advantages of SASS
- Using SASS, we can write clean, well-structured & organized having less CSS in a programming construct.
- It is more powerful, stable & elegant which helps the developer to design & work efficiently, as it is compatible with all the CSS versions.
Similar Reads
CSS Tutorial CSS stands for Cascading Style Sheets. It is a stylesheet language used to style and enhance website presentation. CSS is one of the three main components of a webpage, along with HTML and JavaScript.HTML adds Structure to a web page.JavaScript adds logic to it and CSS makes it visually appealing or
7 min read
CSS Introduction CSS (Cascading Style Sheets) is a language designed to simplify the process of making web pages presentable.It allows you to apply styles to HTML documents by prescribing colors, fonts, spacing, and positioning.The main advantages are the separation of content (in HTML) and styling (in CSS) and the
4 min read
CSS Syntax CSS is written as a rule set, which consists of a selector and a declaration block. The basic syntax of CSS is as follows:The selector is a targeted HTML element or elements to which we have to apply styling.The Declaration Block or " { } " is a block in which we write our CSS.HTML<html> <h
2 min read
CSS Selectors CSS Selectors are used to target HTML elements on your pages, allowing you to apply styles based on their ID, class, type attributes, and more. There are mainly 5 types of selectors.Basic CSS Selectors: These are used to target elements by tag, .class, or # ID for fundamental styling needs.Combinato
7 min read
CSS Comments CSS comments are used to add notes or explanations to your code, helping you and others understand it better. They start with /* and end with */ and can be used for both single-line and multi-line comments. Note: Comments are ignored by browsers, so they wonât affect how your webpage looks or works.
2 min read
CSS Colors CSS colors are used to set the color of different parts of a webpage, like text, background, and borders. This helps make the page look more attractive and easier to read. You can define colors using names, hex codes, RGB values, and more.You can try different formats of colors here- #content-iframe
5 min read
CSS Borders Borders in CSS are used to create a visible outline around an element. They can be customized in terms ofWidth: The thickness of the border.Style: The appearance of the border (solid, dashed, dotted, etc.).Color: The color of the border.You can try different types of borders here- #custom-iframe{ he
5 min read
CSS Margins CSS margins are used to create space around an element, separating it from neighboring elements and the edges of the webpage. They control the layout by adjusting the distance between elements, providing better organization and readability.Syntax:body { margin: value;}HTML<html> <head>
4 min read
CSS Height and Width Height and Width in CSS are used to set the height and width of boxes. Their values can be set using length, percentage, or auto.Width and HeightThe width and height properties in CSS are used to define the dimensions of an element. The values can be set in various units, such as pixels (px), centim
4 min read
CSS Outline CSS outline is a property used to draw a line around an element's border. It does not affect the layout, unlike borders. It's often used to highlight elements, providing a visual emphasis without altering the dimensions of the element.Syntaxselector{ outline: outline-width outline-type outline-color
4 min read