SASS Calc function with examples in CSS|SCSS
SASS is a pre-processor for CSS language. It is an advanced CSS for large applications. It provides a calc function to calculate athematic values for different CSS units.
This tutorial talks about calc function usage examples.
calc function in SASS
We already have a calc function in CSS that calculates the expression in the browser, Whereas calc in SASS is compile-time only. calc function accepts numeric values for addition, subtraction, division, and percentage. Numeric values are different units like 10px,20%, 1rem, etc.
Syntax:
calc(expression)
expression is evaluated to units like px, em, etc…
sitewidth:900px;
.container {
width: calc($sitewidth-20px);
margin-left: 10px;
margin-right: 10px;
}
Generated CSS would be
.container {
width: 880px;
margin-left: 10px;
margin-right: 10px;
}
How to use the sass variable in the calc function
The Calc function can also contain sass variables used. sass variable can be used in calc with interpolation syntax with spaces.
Interpolation syntax used here #{variablename}
$padding: 10px;
div {
padding-left: calc(#{$padding} + 10px);
background: gray;
}
calculate percentage with pixels
sometimes, We need to calculate percentages and addition with static numeric units. This will be generated as CSS calc function and calculates the percentage value at browser only
As sass runs at compile time and is not able to find the percentages of source value.
.header {
height: calc(10% + 10px);
}
Generated CSS is
.header {
height: calc(10% + 10px);
}
sass variable percentages minus pixel
sass variables can hold percentage values which can be used in the calc function subtracting pixel values.
Here calc function is accepting the percentage value and pixel value, using the minus symbol, It generates the CSS calc function and runs at the browser only.
$pageheight: 20%;
.header {
height: calc(#{$pageheight} - 5px);
}
Compiled css:
.header {
height: calc(#{$pageheight} - 5px);
}