7
7
// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
8
8
9
9
// Configuration
10
+ @use " sass:math" ;
10
11
11
12
// Base value
12
13
$rfs-base-value : 1.25rem !default ;
@@ -54,7 +55,7 @@ $rfs-base-value-unit: unit($rfs-base-value);
54
55
55
56
@function divide ($dividend , $divisor , $precision : 10 ) {
56
57
$sign : if ($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0 , 1 , -1 );
57
- $dividend : abs ($dividend );
58
+ $dividend : math . abs ($dividend );
58
59
$divisor : abs ($divisor );
59
60
@if $dividend == 0 {
60
61
@return 0 ;
@@ -72,7 +73,7 @@ $rfs-base-value-unit: unit($rfs-base-value);
72
73
$quotient : $quotient + 1 ;
73
74
}
74
75
$result : $result * 10 + $quotient ;
75
- $factor : $factor * .1 ;
76
+ $factor : $factor * 0 .1 ;
76
77
$remainder : $remainder * 10 ;
77
78
$precision : $precision - 1 ;
78
79
@if ($precision < 0 and $remainder >= $divisor * 5 ) {
@@ -86,7 +87,7 @@ $rfs-base-value-unit: unit($rfs-base-value);
86
87
" px" : 1px ,
87
88
" rem" : 1rem ,
88
89
" em" : 1em ,
89
- " %" : 1%
90
+ " %" : 1% ,
90
91
);
91
92
@if ($dividend-unit != $divisor-unit and map-has-key ($unit-map , $dividend-unit )) {
92
93
$result : $result * map-get ($unit-map , $dividend-unit );
@@ -97,8 +98,7 @@ $rfs-base-value-unit: unit($rfs-base-value);
97
98
// Remove px-unit from $rfs-base-value for calculations
98
99
@if $rfs-base-value-unit == px {
99
100
$rfs-base-value : divide ($rfs-base-value , $rfs-base-value * 0 + 1 );
100
- }
101
- @else if $rfs-base-value-unit == rem {
101
+ } @else if $rfs-base-value-unit == rem {
102
102
$rfs-base-value : divide ($rfs-base-value , divide ($rfs-base-value * 0 + 1 , $rfs-rem-value ));
103
103
}
104
104
@@ -108,8 +108,7 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
108
108
// Remove unit from $rfs-breakpoint for calculations
109
109
@if $rfs-breakpoint-unit-cache == px {
110
110
$rfs-breakpoint : divide ($rfs-breakpoint , $rfs-breakpoint * 0 + 1 );
111
- }
112
- @else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == " em" {
111
+ } @else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == " em" {
113
112
$rfs-breakpoint : divide ($rfs-breakpoint , divide ($rfs-breakpoint * 0 + 1 , $rfs-rem-value ));
114
113
}
115
114
@@ -125,14 +124,12 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
125
124
@media (#{$rfs-mq-property-width }: #{$rfs-mq-value } ), (#{$rfs-mq-property-height }: #{$rfs-mq-value } ) {
126
125
@content ;
127
126
}
128
- }
129
- @else {
127
+ } @else {
130
128
@media (#{$rfs-mq-property-width }: #{$rfs-mq-value } ) and (#{$rfs-mq-property-height }: #{$rfs-mq-value } ) {
131
129
@content ;
132
130
}
133
131
}
134
- }
135
- @else {
132
+ } @else {
136
133
@media (#{$rfs-mq-property-width }: #{$rfs-mq-value } ) {
137
134
@content ;
138
135
}
@@ -148,21 +145,18 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
148
145
& .disable-rfs {
149
146
@content ;
150
147
}
151
- }
152
- @else if $rfs-class == enable and $rfs-mode == min- media- query {
148
+ } @else if $rfs-class == enable and $rfs-mode == min- media- query {
153
149
.enable-rfs & ,
154
150
& .enable-rfs {
155
151
@content ;
156
152
}
157
- }
158
- @else {
153
+ } @else {
159
154
@content ;
160
155
}
161
156
}
162
157
163
158
// Internal mixin that adds enable classes to the selector if needed.
164
159
@mixin _rfs-media-query-rule {
165
-
166
160
@if $rfs-class == enable {
167
161
@if $rfs-mode == min- media- query {
168
162
@content ;
@@ -174,8 +168,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
174
168
@content ;
175
169
}
176
170
}
177
- }
178
- @else {
171
+ } @else {
179
172
@if $rfs-class == disable and $rfs-mode == min- media- query {
180
173
.disable-rfs & ,
181
174
& .disable-rfs {
@@ -191,30 +184,27 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
191
184
// Helper function to get the formatted non-responsive value
192
185
@function rfs-value ($values ) {
193
186
// Convert to list
194
- $values : if (type-of ($values ) != list , ($values , ), $values );
187
+ $values : if (type-of ($values ) != list , ($values ), $values );
195
188
196
- $val : ' ' ;
189
+ $val : " " ;
197
190
198
191
// Loop over each value and calculate value
199
192
@each $value in $values {
200
193
@if $value == 0 {
201
- $val : $val + ' 0' ;
202
- }
203
- @else {
194
+ $val : $val + " 0" ;
195
+ } @else {
204
196
// Cache $value unit
205
197
$unit : if (type-of ($value ) == " number" , unit ($value ), false );
206
198
207
199
@if $unit == px {
208
200
// Convert to rem if needed
209
- $val : $val + ' ' + if ($rfs-unit == rem , #{divide ($value , $value * 0 + $rfs-rem-value )} rem , $value );
210
- }
211
- @else if $unit == rem {
201
+ $val : $val + " " + if ($rfs-unit == rem , #{divide ($value , $value * 0 + $rfs-rem-value )} rem , $value );
202
+ } @else if $unit == rem {
212
203
// Convert to px if needed
213
- $val : $val + ' ' + if ($rfs-unit == px , #{divide ($value , $value * 0 + 1 ) * $rfs-rem-value } px , $value );
214
- }
215
- @else {
204
+ $val : $val + " " + if ($rfs-unit == px , #{divide ($value , $value * 0 + 1 ) * $rfs-rem-value } px , $value );
205
+ } @else {
216
206
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
217
- $val : $val + ' ' + $value ;
207
+ $val : $val + " " + $value ;
218
208
}
219
209
}
220
210
}
@@ -226,34 +216,29 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
226
216
// Helper function to get the responsive value calculated by RFS
227
217
@function rfs-fluid-value ($values ) {
228
218
// Convert to list
229
- $values : if (type-of ($values ) != list , ($values , ), $values );
219
+ $values : if (type-of ($values ) != list , ($values ), $values );
230
220
231
- $val : ' ' ;
221
+ $val : " " ;
232
222
233
223
// Loop over each value and calculate value
234
224
@each $value in $values {
235
225
@if $value == 0 {
236
- $val : $val + ' 0' ;
237
- }
238
-
239
- @else {
226
+ $val : $val + " 0" ;
227
+ } @else {
240
228
// Cache $value unit
241
229
$unit : if (type-of ($value ) == " number" , unit ($value ), false );
242
230
243
231
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
244
232
@if not $unit or $unit != px and $unit != rem {
245
- $val : $val + ' ' + $value ;
246
- }
247
-
248
- @else {
233
+ $val : $val + " " + $value ;
234
+ } @else {
249
235
// Remove unit from $value for calculations
250
236
$value : divide ($value , $value * 0 + if ($unit == px , 1 , divide (1 , $rfs-rem-value )));
251
237
252
238
// Only add the media query if the value is greater than the minimum value
253
239
@if abs ($value ) <= $rfs-base-value or not $enable-rfs {
254
- $val : $val + ' ' + if ($rfs-unit == rem , #{divide ($value , $rfs-rem-value )} rem , #{$value } px );
255
- }
256
- @else {
240
+ $val : $val + " " + if ($rfs-unit == rem , #{divide ($value , $rfs-rem-value )} rem , #{$value } px );
241
+ } @else {
257
242
// Calculate the minimum value
258
243
$value-min : $rfs-base-value + divide (abs ($value ) - $rfs-base-value , $rfs-factor );
259
244
@@ -273,7 +258,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
273
258
$variable-width : #{divide ($value-diff * 100 , $rfs-breakpoint )}#{$variable-unit } ;
274
259
275
260
// Return the calculated value
276
- $val : $val + ' calc(' + $min-width + if ($value < 0 , ' - ' , ' + ' ) + $variable-width + ' ) ' ;
261
+ $val : $val + " calc(" + $min-width + if ($value < 0 , " - " , " + " ) + $variable-width + " ) " ;
277
262
}
278
263
}
279
264
}
@@ -292,8 +277,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
292
277
// Do not print the media query if responsive & non-responsive values are the same
293
278
@if $val == $fluidVal {
294
279
#{$property } : $val ;
295
- }
296
- @else {
280
+ } @else {
297
281
@include _rfs-rule {
298
282
#{$property } : if ($rfs-mode == max-media-query , $val , $fluidVal );
299
283
0 commit comments