Bird
Raised Fist0
SASSmarkup~5 mins

sass:math module

Choose your learning style10 modes available
Introduction

The sass:math module gives you ready-to-use math functions to do calculations in your stylesheets. It helps you keep your CSS neat and powerful.

When you want to calculate sizes like widths or heights based on other values.
When you need to round numbers or find the maximum or minimum of values.
When you want to convert angles or do trigonometry for animations or shapes.
When you want to keep your CSS flexible and avoid hardcoding numbers.
When you want to do math operations that CSS alone can't do easily.
Syntax
SASS
@use 'sass:math';

// Example usage:
$half: math.div(100px, 2);
$rounded: math.round(2.7);
$maxValue: math.max(10, 20, 15);

You must @use 'sass:math'; at the top of your Sass file to access math functions.

Functions are called with the prefix math. like math.div() or math.round().

Examples
This divides 200 pixels by 2 to get 100 pixels.
SASS
@use 'sass:math';

$half-width: math.div(200px, 2);
This rounds 3.6 to 4.
SASS
@use 'sass:math';

$rounded-number: math.round(3.6);
This finds the largest number, which is 10.
SASS
@use 'sass:math';

$max-value: math.max(5, 10, 7);
This converts 180 degrees to radians (about 3.14159).
SASS
@use 'sass:math';

$angle-in-radians: math.radians(180);
Sample Program

This Sass code uses the sass:math module to calculate sizes for a box. It doubles a base size, rounds a size, and divides for border radius. The box will have a blue background, white text, and centered content.

SASS
@use 'sass:math';

$base-size: 16px;
$double-size: math.mul($base-size, 2);
$rounded-size: math.round(12.7);

.box {
  width: $double-size;
  height: $rounded-size;
  background-color: #4a90e2;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: $base-size;
  border-radius: math.div($base-size, 2);
}
OutputSuccess
Important Notes

Always use @use 'sass:math'; once per file to access math functions.

Use math.div() instead of the slash / for division to avoid confusion with CSS slash syntax.

These functions help keep your styles dynamic and easy to update.

Summary

The sass:math module provides useful math functions for Sass.

Use it to do calculations like division, rounding, max/min, and angle conversions.

It helps make your CSS flexible and easier to maintain.

Practice

(1/5)
1. What is the main purpose of the sass:math module in Sass?
easy
A. To provide useful math functions like rounding and max/min.
B. To add color manipulation functions.
C. To create animations in Sass.
D. To handle file imports automatically.

Solution

  1. Step 1: Understand the module's role

    The sass:math module offers math functions such as rounding, max, min, and angle conversions.
  2. Step 2: Compare options with module features

    Only To provide useful math functions like rounding and max/min. correctly describes these math functions; others mention unrelated features.
  3. Final Answer:

    To provide useful math functions like rounding and max/min. -> Option A
  4. Quick Check:

    sass:math = math functions [OK]
Hint: Remember sass:math is for math functions only [OK]
Common Mistakes:
  • Confusing sass:math with color or animation modules
  • Thinking sass:math handles file imports
  • Assuming sass:math adds new CSS properties
2. Which of the following is the correct way to import the sass:math module in a Sass file?
easy
A. @import 'sass:math';
B. @include 'sass:math';
C. @require 'sass:math';
D. @use 'sass:math';

Solution

  1. Step 1: Recall Sass module import syntax

    Sass uses @use to import modules like sass:math.
  2. Step 2: Check each option's validity

    @import is deprecated for modules, @require and @include are invalid for imports.
  3. Final Answer:

    @use 'sass:math'; -> Option D
  4. Quick Check:

    Module import = @use [OK]
Hint: Use @use for modules, not @import [OK]
Common Mistakes:
  • Using @import instead of @use
  • Trying @include or @require for modules
  • Forgetting quotes around module name
3. What will be the output of this Sass code?
@use 'sass:math';

$val: math.round(4.7);
.result {
  width: $val * 1rem;
}
medium
A. .result { width: 5rem; }
B. .result { width: 4.7rem; }
C. .result { width: 4rem; }
D. Syntax error

Solution

  1. Step 1: Understand math.round function

    math.round(4.7) rounds 4.7 to the nearest whole number, which is 5.
  2. Step 2: Calculate the width value

    The width becomes 5 * 1rem = 5rem, so the CSS is .result { width: 5rem; }.
  3. Final Answer:

    .result { width: 5rem; } -> Option A
  4. Quick Check:

    round(4.7) = 5rem [OK]
Hint: math.round rounds to nearest integer [OK]
Common Mistakes:
  • Assuming math.round truncates instead of rounds
  • Confusing multiplication with string concatenation
  • Expecting syntax error due to module usage
4. Identify the error in this Sass code using sass:math:
@use 'sass:math';

$angle: 90deg;
$rad: math.deg($angle);
medium
A. No error; code is correct.
B. Using math.deg instead of math.rad to convert degrees to radians.
C. Cannot assign units like deg to variables.
D. Missing semicolon after $angle declaration.

Solution

  1. Step 1: Understand math.deg and math.rad functions

    math.deg() converts radians to degrees; math.rad() converts degrees to radians.
  2. Step 2: Check code's intent and function used

    The variable $angle is in degrees, but math.deg() is used, which expects radians. The correct function is math.rad().
  3. Final Answer:

    Using math.deg instead of math.rad to convert degrees to radians. -> Option B
  4. Quick Check:

    Degrees to radians = math.rad [OK]
Hint: Use math.rad for degrees to radians, math.deg for reverse [OK]
Common Mistakes:
  • Mixing up math.deg and math.rad functions
  • Thinking units like deg can't be assigned
  • Assuming missing semicolon causes error
5. You want to create a Sass variable $max-width that is the maximum of three values: 300px, 25rem, and 400px. Which code correctly uses sass:math to find this maximum, assuming 1rem = 16px?
hard
A. @use 'sass:math'; $max-width: math.max(300px, 25rem, 400px);
B. @use 'sass:math'; $max-width: math.max(300px, 400px, 25rem);
C. @use 'sass:math'; $max-width: math.max(300px, 25 * 16px, 400px);
D. @use 'sass:math'; $max-width: math.max(300px, math.div(25 * 16, 1), 400px);

Solution

  1. Step 1: Understand unit conversion for comparison

    To compare 25rem with px, convert 25rem to px: 25 * 16px = 400px.
  2. Step 2: Use math.max with consistent units

    @use 'sass:math'; $max-width: math.max(300px, 25 * 16px, 400px); converts 25rem to 400px by multiplying 25 * 16px, then finds max among 300px, 400px, 400px.
  3. Final Answer:

    @use 'sass:math'; $max-width: math.max(300px, 25 * 16px, 400px); -> Option C
  4. Quick Check:

    Convert units before max [OK]
Hint: Convert all units to same type before math.max [OK]
Common Mistakes:
  • Passing mixed units without conversion
  • Using math.div incorrectly for unit conversion
  • Assuming math.max auto-converts units
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard