SaSS Datatypes

Program languages provide data types to hold the different types of the value that variable holds. SASS language provides the following data types -

  • Strings
  • Numbers
  • null
  • Boolean
  • colors
  • Lists
  • Maps

Numbers type

In Sass, Number types are real numeric values with or without unit values. Numeric values can be integers - 10 or -10 or floating - 11.23 or -5.21 values These types support basic arithmetic operations like adding, subtracting dividing, multiplying and, modus operators.

example sass number types

$height: 1024px;
$width: 100%;

column1 {  
 width:$width/3 ;
 margin: 5px+5px;
} 
.column2 {  
  width: $width/3;
  padding: (4px/2px);

 }
.column3{
  width:$width/3  ;

}

compiled css result

column1 {
  width: 33.3333333333%;
  margin: 10px;
}

.column2 {
  width: 33.3333333333%;
  padding: 2;
}

.column3 {
  width: 33.3333333333%;
}

Following are rules about numbers

  • Numbers can be integer or floats of same units (px,em etc), so you can divide 20px/10px but not 20px/10EM.

  • Multiplication of numbers should result in valid CSS types, for example, 4px*2px outputs an error, The reason is resulting in 8px squared, squared units are not supported in CSS.

Invalid numbers

String type

The string is a group of characters like “test value”.

Rules for String types

  • String can enclosed with double quotes("") or single quotes('') or without quotes. Accept spaces
  • can append other data types

Example SCSS

$secondary-color: green;          
$secondary-color1: "blue";          
$secondary-color2: 'red';          

p{
color:$secondary-color;
}
h1{
color:$secondary-color1;
}
h2{
color:$secondary-color2;
}

compiled to css is

p {
  color: green;
}

h1 {
  color: "blue";
}

h2 {
  color: "red";
}

The above example covert the string as this to CSS string. And also interpolation syntax is a different syntax we need to consider if you have used variables inside interpolation syntax #{variable}, strings without quotes are considered.

Interpolation string syntax example:

$name: "franc";          
$name1: john;          
$name2: tom;          
$secondary-color: green;          
$secondary-color1: "blue";          
$secondary-color2: 'red';    
p .#{$name}{
color:$secondary-color;
}
h1 .#{$name1}{
color:$secondary-color1;
}
h2 .#{$name2}{
color:$secondary-color2;
}

output is

p .franc {
  color: green;
}

h1 .john {
  color: "blue";
}

h2 .tom {
  color: "red";
}

Color types

colors in css can be created using hexa code values -#00fb0,functions - rgb(),rgba(),hsl() and hsla() or native color names codes - red,green SCSS has inbuilt color expression same as CSS color syntax expression
It has support for creating new colors using manipulation functions for lighter, saturated, and mixed colors Color manipulation should be with compatible color expressions only

SCSS example

output is

$color: red;
$color1: #0000;
$color2: #ff00;
$color3: blue;



h1 {
color:lighten($color, 50%);
}
h2{
 background: mix($color1 , $color2);

}
p {
color: fade-out($color3, 0.2)
}

h1 {
  color: white;
}

h2 {
  background: rgba(128, 128, 0, 0);
}

p {
  color: rgba(0, 0, 255, 0.8);
}