Skip to content

Instantly share code, notes, and snippets.

@chrisengelsma
Created September 10, 2016 04:21
Show Gist options
  • Save chrisengelsma/1b9ff7b5e12ae5a8ff324985041e0d58 to your computer and use it in GitHub Desktop.
Save chrisengelsma/1b9ff7b5e12ae5a8ff324985041e0d58 to your computer and use it in GitHub Desktop.
Basic sass math functions
// If for some reason you don't / can't use Compass...
@function pow($number, $exp) {
$value: 1;
@if $exp > 0 {
@for $i from 1 through $exp {
$value: $value * $number;
}
}
@else if $exp < 0 {
@for $i from 1 through -$exp {
$value: $value / $number;
}
}
@return $value;
}
@function fact($number) {
$value: 1;
@if $number > 0 {
@for $i from 1 through $number {
$value: $value * $i;
}
}
@return $value;
}
@function pi() {
@return 3.14159265359;
}
@function rad($angle) {
$unit: unit($angle);
$unitless: $angle/($angle*0+1);
@if $unit == deg {
$unitless: $unitless / 180 * pi();
}
@return $unitless;
}
@function sin($angle) {
$sin: 0;
$angle: rad($angle);
@for $i from 0 through 10 {
$sin: $sin + pow(-1,$i) * pow($angle, (2*$i+1)) / fact(2 * $i + 1);
}
@return $sin;
}
@function cos($angle) {
$cos: 0;
$angle: rad($angle);
@for $i from 0 through 10 {
$cos: $cos + pow(-1,$i) * pow($angle, 2*$i) / fact(2 * $i);
}
@return $cos;
}
@function tan($angle) {
@return sin($angle) / cos($angle);
}
@function sec($angle) {
@return 1 / sin($angle);
}
@function csc($angle) {
@return 1 / cos($angle);
}
@function cot($angle) {
@return 1 / tan($angle);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment