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