Skip to content

Instantly share code, notes, and snippets.

@garystorey
Last active November 9, 2023 16:34
Show Gist options
  • Star 30 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save garystorey/5920051 to your computer and use it in GitHub Desktop.
Save garystorey/5920051 to your computer and use it in GitHub Desktop.
Sass to convert px to rem
/**
* Convert font-size from px to rem with px fallback
*
* @param $size - the value in pixel you want to convert
*
* e.g. p {@include fontSize(12px);}
*
*/
@use "sass:math";
// Function for converting a px based font-size to rem.
@function calculateRem($size) {
@return math.div($size, 16px) * 1rem;
}
// Mixin that will include the fall back px declaration as well as the calculated rem value.
@mixin fontSize($size) {
font-size: $size;
font-size: calculateRem($size);
}
@sarutole
Copy link

sarutole commented Mar 6, 2020

The problem with the above function is that it returns a string which can not be used in further numerical calculations.

This works better:

@function rem($size) {
  @return $size / 16px * 1rem;
}

@garystorey
Copy link
Author

@sarutole nice. will update

@sh4rov
Copy link

sh4rov commented Jun 13, 2021

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.
Recommendation: math.div($size, 16px)
More info and automated migrator: https://sass-lang.com/d/slash-div
@return $size / 16px * 1rem;

@garystorey
Copy link
Author

@sh4rov Thanks! Updated.

@nickeledfox
Copy link

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.
Recommendation: math.div($size, 16px)
More info and automated migrator: https://sass-lang.com/d/slash-div
@return $size / 16px * 1rem;

What do you use for compilation? I just realized that It doesn't compile properly with gulp so I returned to "/" and got this deprecation warning again but it's works

@dev0652
Copy link

dev0652 commented Dec 7, 2022

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.
Recommendation: math.div($size, 16px)
More info and automated migrator: https://sass-lang.com/d/slash-div
@return $size / 16px * 1rem;

What do you use for compilation? I just realized that It doesn't compile properly with gulp so I returned to "/" and got this deprecation warning again but it's works

Type @use "sass:math"; at the top of the file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment