beathers 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,372 +1,372 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
- @use "sass:math";
4
- @use "../functions/mediaQueries" as mQ;
5
- @use "../settings/configs" as configs;
6
- @use "../functions/validations" as val;
7
- @use "../settings/index" as settings;
8
- @use "../functions/others" as func;
9
-
10
- @if settings.$useWrappers {
11
- @each $wSize, $properties in configs.$wrappers {
12
- $mainWSize: if($wSize, "#{$wSize}#{\:}wrapper", "wrapper");
13
-
14
- $size: list.nth($properties, 1);
15
- $padding: if(list.nth($properties, 2), list.nth($properties, 2), 0);
16
-
17
- // Validate parameters
18
- $checkedSize: val.notNull($size, "Wrappers.size");
19
-
20
- .#{$mainWSize} {
21
- width: 100%;
22
-
23
- @if ($padding != 0) {
24
- padding-inline: $padding;
25
- }
26
-
27
- @include mQ.mQ(min, md) {
28
- padding-inline: calc((100% - #{$size}) / 2 + $padding);
29
- }
30
- }
31
- }
32
- }
33
-
34
- @if settings.$useShadows {
35
- @include mQ.multiSizes() using ($size, $divider) {
36
- @each $class, $values in configs.$shadows {
37
- $x: map.get($values, x);
38
- $y: map.get($values, y);
39
- $blur: map.get($values, blur);
40
- $spread: map.get($values, spread);
41
- $opacity: map.get($values, opacity);
42
-
43
- // Validate parameters
44
- $checkedX: val.number($x, "Shadows.x");
45
- $checkedY: val.number($y, "Shadows.y");
46
- $checkedBlur: val.number($blur, "Shadows.blur");
47
- $checkedSpread: val.number($spread, "Shadows.spread");
48
- $checkedOpacity: val.opacity($opacity, "Shadows.opacity");
49
-
50
- $mainClass: if($size, "#{$size}#{$divider}divider-#{$class}", "divider-#{$class}");
51
-
52
- .#{$mainClass} {
53
- box-shadow: func.shadowValue($x)
54
- func.shadowValue($y)
55
- func.shadowValue($blur)
56
- func.shadowValue($spread)
57
- rgba(0, 0, 0, $opacity);
58
- }
59
- }
60
- }
61
- }
62
-
63
- @if settings.$useDisplays {
64
- @include mQ.multiSizes() using ($size, $divider) {
65
- @each $display in configs.$displays {
66
- // Validate parameters
67
- $checkedDisplay: val.listItem(configs.$displays, $display, "Shaping.displays");
68
-
69
- $mainClass: if($size, "#{$size}#{$divider}d-#{$display}", "d-#{$display}");
70
-
71
- .#{$mainClass} {
72
- display: if($size, $display !important, $display);
73
- }
74
- }
75
- }
76
- }
77
-
78
- @if settings.$useOverflows {
79
- @include mQ.multiSizes() using ($size, $divider) {
80
- @each $dir in configs.$overflowsDirections {
81
- // Validate parameters
82
- @if $dir {
83
- $checkedDir: val.listItem(("x", "y"), $dir, "Shaping.overflow.direction");
84
- }
85
-
86
- $dirClass: if($dir, "#{$dir}#{\:}overflow", "overflow");
87
- $mainClass: if($size, "#{$size}#{$divider}#{$dirClass}", $dirClass);
88
- $property: if($dir, "overflow-#{$dir}", "overflow");
89
-
90
- .#{$mainClass} {
91
- @each $value in configs.$overflows {
92
- // Validate parameters
93
- $checkedClass: val.listItem(configs.$overflows, $value, "Shaping.overflow.value");
94
-
95
- &-#{$value} {
96
- #{$property}: if($size, $value !important, $value);
97
- }
98
- }
99
- }
100
- }
101
- }
102
- }
103
-
104
- @if settings.$useOpacities {
105
- @include mQ.multiSizes() using ($size, $divider) {
106
- @each $value in configs.$opacities {
107
- $checkedValue: val.opacity(math.div($value, 100), "Shaping.opacity");
108
-
109
- $mainClass: if($size, "#{$size}#{$divider}op", "op");
110
-
111
- .#{$mainClass}#{\:}#{$value} {
112
- opacity: if($size, $checkedValue !important, $checkedValue);
113
-
114
- &#{\:}hover:hover {
115
- opacity: if($size, $checkedValue !important, $checkedValue);
116
- }
117
- }
118
- }
119
- }
120
- }
121
-
122
- @if settings.$useBlur {
123
- @include mQ.multiSizes() using ($size, $divider) {
124
- @each $value in configs.$blurValues {
125
- $checkedValue: val.listItem(configs.$blurValues, $value, "Shaping.blur");
126
-
127
- $mainClass: if($size, "#{$size}#{$divider}bg#{\:}blur", "bg#{\:}blur");
128
- $calcValue: blur(#{$checkedValue}#{px});
129
-
130
- .#{$mainClass}#{\:}#{$value} {
131
- backdrop-filter: if($size, $calcValue !important, $calcValue);
132
-
133
- &#{\:}hover:hover {
134
- backdrop-filter: if($size, $calcValue !important, $calcValue);
135
- }
136
- }
137
- }
138
- }
139
- }
140
-
141
- @if settings.$useObjectFits {
142
- @include mQ.multiSizes() using ($size, $divider) {
143
- @each $fit in configs.$objectsFits {
144
- // Validate parameters
145
- $checkedFit: val.listItem(configs.$objectsFits, $fit, "Shaping.objectFit");
146
-
147
- $mainClass: if($size, "#{$size}#{$divider}object-fit", "object-fit");
148
-
149
- .#{$mainClass}#{\:}#{$fit} {
150
- object-fit: if($size, $fit !important, $fit);
151
- }
152
- }
153
- }
154
- }
155
-
156
- @if settings.$usePositions {
157
- @include mQ.multiSizes() using ($size, $divider) {
158
- @each $position in configs.$positions {
159
- // Validate parameters
160
- $checkedPosition: val.listItem(configs.$positions, $position, "Shaping.position");
161
-
162
- $mainClass: if($size, "#{$size}#{$divider}p-", "p-");
163
-
164
- .#{$mainClass}#{$position} {
165
- position: if($size, $position !important, $position);
166
- }
167
- }
168
- }
169
- }
170
-
171
- @if settings.$useInsets {
172
- @include mQ.multiSizes() using ($size, $divider) {
173
- @each $value in configs.$insetValues {
174
- @each $position in configs.$insetPositions {
175
- // Validate parameters
176
- $checkedPosition: val.listItem(configs.$insetPositions, $position, "Shaping.inset");
177
-
178
- $mainClass: if($size, "#{$size}#{$divider}inset", "inset");
179
- $posClass: if($position, "#{$mainClass}-#{$position}", "#{$mainClass}");
180
- $property: if($position, "inset-#{$position}", "inset");
181
- $val: if($value == 0, "full", $value);
182
-
183
- .#{$posClass}#{\:}#{$val} {
184
- #{$property}: $value;
185
- }
186
- }
187
- }
188
- }
189
- }
190
-
191
- @if settings.$useSizes {
192
- @include mQ.multiSizes() using ($size, $divider) {
193
- @each $dir, $direction in configs.$spacesDirections {
194
- // Validate parameters
195
- $checkedDir: val.listItem(
196
- ("w", "min#{\:}w", "max#{\:}w", "h", "min#{\:}h", "max#{\:}h"),
197
- $dir,
198
- "Shaping.space.direction"
199
- );
200
- $checkedDirection: val.listItem(
201
- ("width", "min-width", "max-width", "height", "min-height", "max-height"),
202
- $direction,
203
- "Shaping.space.direction"
204
- );
205
- $checkedStep: val.number(configs.$spacesStep, "Shaping.space.step");
206
-
207
- $mainClass: if($size, #{$size}#{$divider}#{$dir}, $dir);
208
-
209
- .#{$mainClass} {
210
- @for $i from 0 through 100 {
211
- $value: $i * $checkedStep;
212
-
213
- @if ($value != 0) and ($value % $checkedStep == 0) and ($value <= 100) {
214
- &#{\:}#{$value} {
215
- #{$direction}: if($size, #{$value}#{"%"} !important, #{$value}#{"%"});
216
- }
217
- }
218
- }
219
- }
220
- }
221
- }
222
- }
223
-
224
- @if settings.$useGutters {
225
- @include mQ.multiSizes() using ($size, $divider) {
226
- @each $class, $property in configs.$gutters {
227
- // Validate parameters
228
- $checkedClass: val.listItem(
229
- (p, px, py, ps, pe, pt, pb, m, mx, my, ms, me, mt, mb, g, gx, gy),
230
- $class,
231
- "Shaping.gutter.class"
232
- );
233
- $checkedProperty: val.listItem(
234
- (
235
- padding,
236
- padding-inline,
237
- padding-block,
238
- padding-inline-start,
239
- padding-inline-end,
240
- padding-block-start,
241
- padding-block-end,
242
- margin,
243
- margin-inline,
244
- margin-block,
245
- margin-inline-start,
246
- margin-inline-end,
247
- margin-block-start,
248
- margin-block-end,
249
- gap,
250
- column-gap,
251
- row-gap
252
- ),
253
- $property,
254
- "Shaping.gutter.property"
255
- );
256
-
257
- $mainClass: if($size, #{$size}#{$divider}#{$class}, $class);
258
-
259
- .#{$mainClass} {
260
- @each $vClass, $value in configs.$guttersValues {
261
- &-#{$vClass} {
262
- @if $size {
263
- #{$property}: if($size, $value !important, $value);
264
- } @else {
265
- #{$property}: $value;
266
-
267
- &\:i {
268
- #{$property}: $value !important;
269
- }
270
- }
271
- }
272
- }
273
- }
274
- }
275
- }
276
- }
277
-
278
- @if settings.$useBorders {
279
- @include mQ.multiSizes() using ($size, $divider) {
280
- @for $i from 1 through configs.$bordersValue {
281
- @each $dir, $property in configs.$bordersDirections {
282
- // Validate parameters
283
- $checkedDir: val.listItem((null, "top", "bottom", "start", "end"), $dir, "Shaping.borders");
284
- $checkedProperty: val.listItem(
285
- (border, border-block-start, border-block-end, border-inline-start, border-inline-end),
286
- $property,
287
- "Shaping.borders"
288
- );
289
-
290
- $mainClass: if($size, "#{$size}#{$divider}border", "border");
291
- $dirClass: if($dir, "#{$dir}#{\:}", $dir);
292
-
293
- .#{$mainClass}#{\:}#{$dirClass}#{$i} {
294
- #{$property}-width: if($size, #{$i}#{px} !important, #{$i}#{px});
295
-
296
- @if not $size {
297
- #{$property}-style: if($size, solid !important, solid);
298
- }
299
- }
300
- }
301
- }
302
- }
303
- }
304
-
305
- @if settings.$useTextBorders {
306
- @include mQ.multiSizes() using ($size, $divider) {
307
- @for $i from 1 through configs.$bordersValue {
308
- $mainClass: if($size, "#{$size}#{$divider}stroke", "stroke");
309
- $value: math.div($i, 10);
310
-
311
- // Validate parameters
312
- $checkedValue: val.number($value, "Shaping.textBorder");
313
-
314
- .#{$mainClass}#{\:}#{$i} {
315
- -webkit-text-stroke-width: if($size, #{$value}#{px} !important, #{$value}#{px});
316
- }
317
- }
318
- }
319
- }
320
-
321
- @if settings.$useRadius {
322
- @include mQ.multiSizes() using ($size, $divider) {
323
- @each $dir, $properties in configs.$radiusDirection {
324
- // Validate parameters
325
- $checkedDir: val.listItem(
326
- (
327
- null,
328
- "top",
329
- "bottom",
330
- "start",
331
- "end",
332
- "top-start",
333
- "top-end",
334
- "bottom-start",
335
- "bottom-end"
336
- ),
337
- $dir,
338
- "Shaping.radius.direction"
339
- );
340
-
341
- $mainClass: if($size, "#{$size}#{$divider}radius", "radius");
342
- $dirClass: if($dir, "#{$dir}#{\:}", $dir);
343
-
344
- @each $property in $properties {
345
- .#{$mainClass}#{\:}#{$dirClass} {
346
- &full {
347
- #{$property}: if($size, 100vw !important, 100vw);
348
- }
349
-
350
- @each $value in configs.$radiuses {
351
- // Validate parameters
352
- $checkedProperty: val.listItem(
353
- (
354
- border-radius,
355
- border-start-start-radius,
356
- border-start-end-radius,
357
- border-end-start-radius,
358
- border-end-end-radius
359
- ),
360
- $property,
361
- "Shaping.radius.property"
362
- );
363
-
364
- &#{$value} {
365
- #{$property}: if($size, #{$value}#{px} !important, #{$value}#{"px"});
366
- }
367
- }
368
- }
369
- }
370
- }
371
- }
372
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+ @use "sass:math";
4
+ @use "../functions/mediaQueries" as mQ;
5
+ @use "../settings/configs" as configs;
6
+ @use "../functions/validations" as val;
7
+ @use "../settings/index" as settings;
8
+ @use "../functions/others" as func;
9
+
10
+ @if settings.$useWrappers {
11
+ @each $wSize, $properties in configs.$wrappers {
12
+ $mainWSize: if($wSize, "#{$wSize}#{\:}wrapper", "wrapper");
13
+
14
+ $size: list.nth($properties, 1);
15
+ $padding: if(list.nth($properties, 2), list.nth($properties, 2), 0);
16
+
17
+ // Validate parameters
18
+ $checkedSize: val.notNull($size, "Wrappers.size");
19
+
20
+ .#{$mainWSize} {
21
+ width: 100%;
22
+
23
+ @if ($padding != 0) {
24
+ padding-inline: $padding;
25
+ }
26
+
27
+ @include mQ.mQ(min, md) {
28
+ padding-inline: calc((100% - #{$size}) / 2 + $padding);
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ @if settings.$useShadows {
35
+ @include mQ.multiSizes() using ($size, $divider) {
36
+ @each $class, $values in configs.$shadows {
37
+ $x: map.get($values, x);
38
+ $y: map.get($values, y);
39
+ $blur: map.get($values, blur);
40
+ $spread: map.get($values, spread);
41
+ $opacity: map.get($values, opacity);
42
+
43
+ // Validate parameters
44
+ $checkedX: val.number($x, "Shadows.x");
45
+ $checkedY: val.number($y, "Shadows.y");
46
+ $checkedBlur: val.number($blur, "Shadows.blur");
47
+ $checkedSpread: val.number($spread, "Shadows.spread");
48
+ $checkedOpacity: val.opacity($opacity, "Shadows.opacity");
49
+
50
+ $mainClass: if($size, "#{$size}#{$divider}divider-#{$class}", "divider-#{$class}");
51
+
52
+ .#{$mainClass} {
53
+ box-shadow: func.shadowValue($x)
54
+ func.shadowValue($y)
55
+ func.shadowValue($blur)
56
+ func.shadowValue($spread)
57
+ rgba(0, 0, 0, $opacity);
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ @if settings.$useDisplays {
64
+ @include mQ.multiSizes() using ($size, $divider) {
65
+ @each $display in configs.$displays {
66
+ // Validate parameters
67
+ $checkedDisplay: val.listItem(configs.$displays, $display, "Shaping.displays");
68
+
69
+ $mainClass: if($size, "#{$size}#{$divider}d-#{$display}", "d-#{$display}");
70
+
71
+ .#{$mainClass} {
72
+ display: if($size, $display !important, $display);
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+ @if settings.$useOverflows {
79
+ @include mQ.multiSizes() using ($size, $divider) {
80
+ @each $dir in configs.$overflowsDirections {
81
+ // Validate parameters
82
+ @if $dir {
83
+ $checkedDir: val.listItem(("x", "y"), $dir, "Shaping.overflow.direction");
84
+ }
85
+
86
+ $dirClass: if($dir, "#{$dir}#{\:}overflow", "overflow");
87
+ $mainClass: if($size, "#{$size}#{$divider}#{$dirClass}", $dirClass);
88
+ $property: if($dir, "overflow-#{$dir}", "overflow");
89
+
90
+ .#{$mainClass} {
91
+ @each $value in configs.$overflows {
92
+ // Validate parameters
93
+ $checkedClass: val.listItem(configs.$overflows, $value, "Shaping.overflow.value");
94
+
95
+ &-#{$value} {
96
+ #{$property}: if($size, $value !important, $value);
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ @if settings.$useOpacities {
105
+ @include mQ.multiSizes() using ($size, $divider) {
106
+ @each $value in configs.$opacities {
107
+ $checkedValue: val.opacity(math.div($value, 100), "Shaping.opacity");
108
+
109
+ $mainClass: if($size, "#{$size}#{$divider}op", "op");
110
+
111
+ .#{$mainClass}#{\:}#{$value} {
112
+ opacity: if($size, $checkedValue !important, $checkedValue);
113
+
114
+ &#{\:}hover:hover {
115
+ opacity: if($size, $checkedValue !important, $checkedValue);
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ @if settings.$useBlur {
123
+ @include mQ.multiSizes() using ($size, $divider) {
124
+ @each $value in configs.$blurValues {
125
+ $checkedValue: val.listItem(configs.$blurValues, $value, "Shaping.blur");
126
+
127
+ $mainClass: if($size, "#{$size}#{$divider}bg#{\:}blur", "bg#{\:}blur");
128
+ $calcValue: blur(#{$checkedValue}#{px});
129
+
130
+ .#{$mainClass}#{\:}#{$value} {
131
+ backdrop-filter: if($size, $calcValue !important, $calcValue);
132
+
133
+ &#{\:}hover:hover {
134
+ backdrop-filter: if($size, $calcValue !important, $calcValue);
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ @if settings.$useObjectFits {
142
+ @include mQ.multiSizes() using ($size, $divider) {
143
+ @each $fit in configs.$objectsFits {
144
+ // Validate parameters
145
+ $checkedFit: val.listItem(configs.$objectsFits, $fit, "Shaping.objectFit");
146
+
147
+ $mainClass: if($size, "#{$size}#{$divider}object-fit", "object-fit");
148
+
149
+ .#{$mainClass}#{\:}#{$fit} {
150
+ object-fit: if($size, $fit !important, $fit);
151
+ }
152
+ }
153
+ }
154
+ }
155
+
156
+ @if settings.$usePositions {
157
+ @include mQ.multiSizes() using ($size, $divider) {
158
+ @each $position in configs.$positions {
159
+ // Validate parameters
160
+ $checkedPosition: val.listItem(configs.$positions, $position, "Shaping.position");
161
+
162
+ $mainClass: if($size, "#{$size}#{$divider}p-", "p-");
163
+
164
+ .#{$mainClass}#{$position} {
165
+ position: if($size, $position !important, $position);
166
+ }
167
+ }
168
+ }
169
+ }
170
+
171
+ @if settings.$useInsets {
172
+ @include mQ.multiSizes() using ($size, $divider) {
173
+ @each $value in configs.$insetValues {
174
+ @each $position in configs.$insetPositions {
175
+ // Validate parameters
176
+ $checkedPosition: val.listItem(configs.$insetPositions, $position, "Shaping.inset");
177
+
178
+ $mainClass: if($size, "#{$size}#{$divider}inset", "inset");
179
+ $posClass: if($position, "#{$mainClass}-#{$position}", "#{$mainClass}");
180
+ $property: if($position, "inset-#{$position}", "inset");
181
+ $val: if($value == 0, "full", $value);
182
+
183
+ .#{$posClass}#{\:}#{$val} {
184
+ #{$property}: $value;
185
+ }
186
+ }
187
+ }
188
+ }
189
+ }
190
+
191
+ @if settings.$useSizes {
192
+ @include mQ.multiSizes() using ($size, $divider) {
193
+ @each $dir, $direction in configs.$spacesDirections {
194
+ // Validate parameters
195
+ $checkedDir: val.listItem(
196
+ ("w", "min#{\:}w", "max#{\:}w", "h", "min#{\:}h", "max#{\:}h"),
197
+ $dir,
198
+ "Shaping.space.direction"
199
+ );
200
+ $checkedDirection: val.listItem(
201
+ ("width", "min-width", "max-width", "height", "min-height", "max-height"),
202
+ $direction,
203
+ "Shaping.space.direction"
204
+ );
205
+ $checkedStep: val.number(configs.$spacesStep, "Shaping.space.step");
206
+
207
+ $mainClass: if($size, #{$size}#{$divider}#{$dir}, $dir);
208
+
209
+ .#{$mainClass} {
210
+ @for $i from 0 through 100 {
211
+ $value: $i * $checkedStep;
212
+
213
+ @if ($value != 0) and ($value % $checkedStep == 0) and ($value <= 100) {
214
+ &#{\:}#{$value} {
215
+ #{$direction}: if($size, #{$value}#{"%"} !important, #{$value}#{"%"});
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ @if settings.$useGutters {
225
+ @include mQ.multiSizes() using ($size, $divider) {
226
+ @each $class, $property in configs.$gutters {
227
+ // Validate parameters
228
+ $checkedClass: val.listItem(
229
+ (p, px, py, ps, pe, pt, pb, m, mx, my, ms, me, mt, mb, g, gx, gy),
230
+ $class,
231
+ "Shaping.gutter.class"
232
+ );
233
+ $checkedProperty: val.listItem(
234
+ (
235
+ padding,
236
+ padding-inline,
237
+ padding-block,
238
+ padding-inline-start,
239
+ padding-inline-end,
240
+ padding-block-start,
241
+ padding-block-end,
242
+ margin,
243
+ margin-inline,
244
+ margin-block,
245
+ margin-inline-start,
246
+ margin-inline-end,
247
+ margin-block-start,
248
+ margin-block-end,
249
+ gap,
250
+ column-gap,
251
+ row-gap
252
+ ),
253
+ $property,
254
+ "Shaping.gutter.property"
255
+ );
256
+
257
+ $mainClass: if($size, #{$size}#{$divider}#{$class}, $class);
258
+
259
+ .#{$mainClass} {
260
+ @each $vClass, $value in configs.$guttersValues {
261
+ &-#{$vClass} {
262
+ @if $size {
263
+ #{$property}: if($size, $value !important, $value);
264
+ } @else {
265
+ #{$property}: $value;
266
+
267
+ &\:i {
268
+ #{$property}: $value !important;
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+
278
+ @if settings.$useBorders {
279
+ @include mQ.multiSizes() using ($size, $divider) {
280
+ @for $i from 1 through configs.$bordersValue {
281
+ @each $dir, $property in configs.$bordersDirections {
282
+ // Validate parameters
283
+ $checkedDir: val.listItem((null, "top", "bottom", "start", "end"), $dir, "Shaping.borders");
284
+ $checkedProperty: val.listItem(
285
+ (border, border-block-start, border-block-end, border-inline-start, border-inline-end),
286
+ $property,
287
+ "Shaping.borders"
288
+ );
289
+
290
+ $mainClass: if($size, "#{$size}#{$divider}border", "border");
291
+ $dirClass: if($dir, "#{$dir}#{\:}", $dir);
292
+
293
+ .#{$mainClass}#{\:}#{$dirClass}#{$i} {
294
+ #{$property}-width: if($size, #{$i}#{px} !important, #{$i}#{px});
295
+
296
+ @if not $size {
297
+ #{$property}-style: if($size, solid !important, solid);
298
+ }
299
+ }
300
+ }
301
+ }
302
+ }
303
+ }
304
+
305
+ @if settings.$useTextBorders {
306
+ @include mQ.multiSizes() using ($size, $divider) {
307
+ @for $i from 1 through configs.$bordersValue {
308
+ $mainClass: if($size, "#{$size}#{$divider}stroke", "stroke");
309
+ $value: math.div($i, 10);
310
+
311
+ // Validate parameters
312
+ $checkedValue: val.number($value, "Shaping.textBorder");
313
+
314
+ .#{$mainClass}#{\:}#{$i} {
315
+ -webkit-text-stroke-width: if($size, #{$value}#{px} !important, #{$value}#{px});
316
+ }
317
+ }
318
+ }
319
+ }
320
+
321
+ @if settings.$useRadius {
322
+ @include mQ.multiSizes() using ($size, $divider) {
323
+ @each $dir, $properties in configs.$radiusDirection {
324
+ // Validate parameters
325
+ $checkedDir: val.listItem(
326
+ (
327
+ null,
328
+ "top",
329
+ "bottom",
330
+ "start",
331
+ "end",
332
+ "top-start",
333
+ "top-end",
334
+ "bottom-start",
335
+ "bottom-end"
336
+ ),
337
+ $dir,
338
+ "Shaping.radius.direction"
339
+ );
340
+
341
+ $mainClass: if($size, "#{$size}#{$divider}radius", "radius");
342
+ $dirClass: if($dir, "#{$dir}#{\:}", $dir);
343
+
344
+ @each $property in $properties {
345
+ .#{$mainClass}#{\:}#{$dirClass} {
346
+ &full {
347
+ #{$property}: if($size, 100vw !important, 100vw);
348
+ }
349
+
350
+ @each $value in configs.$radiuses {
351
+ // Validate parameters
352
+ $checkedProperty: val.listItem(
353
+ (
354
+ border-radius,
355
+ border-start-start-radius,
356
+ border-start-end-radius,
357
+ border-end-start-radius,
358
+ border-end-end-radius
359
+ ),
360
+ $property,
361
+ "Shaping.radius.property"
362
+ );
363
+
364
+ &#{$value} {
365
+ #{$property}: if($size, #{$value}#{px} !important, #{$value}#{"px"});
366
+ }
367
+ }
368
+ }
369
+ }
370
+ }
371
+ }
372
+ }