Sass is a powerful CSS preprocessor that provides developers with the necessary tools to write DRY (Don’t Repeat Yourself) and maintainable CSS. It introduces several useful features not available in plain CSS, including variables, mixins, and nested rules, to name a few. In this article, we’ll explore the various data types supported by Sass, how to perform operations on them, and the use of import directives.
Data Types in Sass
Sass supports seven primary data types:
1. Numbers
These can be whole or decimal numbers, and they may or may not have units. Examples include margin: 100px;
where 100
is a number and px
is a unit, line-height: 1.5;
, a decimal number without units, and padding: 1%;
, which is a percentage.
2. Strings
Strings in Sass can be quoted or unquoted. For example, font-family: "Helvetica", Arial, sans-serif;
.
3. Colors
Sass supports various color specifications, including Hex, RGB, RGBA, HSL, and named colors. Check the Sass documentation for the full list of supported named colors.
4. Booleans
Boolean values are either true
or false
.
5. Nulls
The null
value represents the absence of a value.
6. Lists
Sass lists are series of values separated by spaces or commas.
7. Maps
Maps in Sass are key-value pairs, much like objects in JavaScript. They are represented by parentheses instead of curly braces:
sassCopy code$colors: (
1: #ccc,
2:#333,
'color-3':red
);
Both the keys and values can be either numbers or strings. To use the maps, a function called map.get
is used:
sassCopy codefooter {
background-color: map-get($colors, 2);
margin: map-get($margins, large);
};
Operations in Sass
Sass allows operations with numbers, colors, strings, booleans, and lists.
Numbers
With numbers, you can use standard arithmetic operations, equalities, and inequalities. But you need to consider the rules of arithmetic operations in Sass. For example, addition and subtraction only work with values of the same unit type, and you can’t multiply two values with units.
For division, you can’t simply divide two numbers. You have to wrap the operation in parenthesis, like {margin: (20px / 2);}
.
Strings
The most common string operation in Sass is concatenation. You can also use interpolation with strings.
@import Directives
The @import
directive in Sass is used to import Sass and SCSS files. Imported files are merged together in the CSS output file. The compiler will import the files into the CSS document and output one CSS file with all styles in the document.
The @import
directive can also be used to import multiple files at once:
sassCopy code@import "folderLevel/example", "otherExample";
If you’re importing a CSS file instead of a Sass or SCSS file, the @import
will compile to a CSS @import
.
Media Queries
Media queries can also be included in the @import
directive:
sassCopy code@import "layout" print;
Partial Files
Partial files in Sass are SCSS or SASS files that can be imported but are not compiled. They start with an underscore. Be careful with the order of placing your partials, as the same specificity and order effects are used for partials as for all other CSS files.
Sass brings a lot of power to CSS development, with its support for variables, nesting, partials, and more. It truly takes CSS to the next level, making it a valuable tool for any developer’s toolbox.