beathers 5.4.0 → 5.4.1

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