-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path_numbers.scss
97 lines (87 loc) · 1.87 KB
/
_numbers.scss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
@use 'sass:meta';
@use 'sass:math';
@use './type-checking' as check;
/// Strip the unit from a number.
///
/// @param {Number} $number
/// @return {Number}
/// @group Number
/// @since v1.3.0
///
/// @example
/// @debug strip-unit(3rem);
/// //=> 3
///
@function strip-unit($number) {
@if not check.is-number($number) {
@error '❌ ===> #{$number} is not a number';
}
@return math.div($number, ($number * 0 + 1));
}
/// Invert a number.
///
/// @param {Number} $number
/// @return {Number}
/// @group Number
/// @author Felix Scholze
/// @since v1.3.0
///
/// @example
/// @debug number-invert(7);
/// //=> -7
///
@function number-invert($number) {
@if not check.is-number($number) {
@error '❌ ===> #{$number} is not a number';
}
@return $number * -1;
}
/// Generate a random number between min and max.
///
/// @param {Number} $min
/// @param {Number} $max
/// @return {Number}
/// @group Number
/// @author Felix Scholze
/// @since v1.6.0
///
/// @example
/// @debug random-num(3, 45);
/// //=> random number between 3 and 45
///
@function random-num($min, $max) {
@if not check.is-number($min) {
@error '❌ ===> $min: #{$min} is not a number';
}
@if not check.is-number($max) {
@error '❌ ===> $max: #{$max} is not a number';
}
$random-num: $min + math.floor(math.random() * (($max - $min) + 1));
@return $random-num;
}
/// Round a number to a specific number of decimal places.
///
/// @param {Number} $number
/// @param {Number} $decimals [0]
/// @group Number
/// @author Brecht De Ruyte
/// @since v2.3.0
///
/// @example
/// .test-round {
/// padding: fn.round(1.23456789, 2) + px;
/// }
///
/// //=>
/// .test-round {
/// padding: 1.23px;
/// }
@function round($number, $decimals: 0) {
$n: 1;
@if $decimals > 0 {
@for $i from 1 through $decimals {
$n: $n * 10;
}
}
@return math.div(math.round($number * $n), $n);
}