beathers 5.7.6 → 5.9.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 (48) hide show
  1. package/.prettierrc.js +10 -8
  2. package/CHANGELOG +305 -274
  3. package/css/beathers.min.css +2 -2
  4. package/css/beathers.min.css.map +1 -1
  5. package/docs/colors.md +250 -250
  6. package/docs/grid-system.md +130 -130
  7. package/docs/shaping.md +272 -272
  8. package/docs/typography.md +124 -124
  9. package/package.json +107 -105
  10. package/readme.md +301 -301
  11. package/scripts/commands/build.js +4 -4
  12. package/scripts/commands/clean.d.ts +2 -0
  13. package/scripts/commands/clean.d.ts.map +1 -0
  14. package/scripts/commands/clean.js +22 -0
  15. package/scripts/commands/fonts.d.ts.map +1 -1
  16. package/scripts/commands/fonts.js +4 -3
  17. package/scripts/commands/index.js +8 -8
  18. package/scripts/commands/init.js +1 -1
  19. package/scripts/commands/version-update.d.ts +2 -0
  20. package/scripts/commands/version-update.d.ts.map +1 -0
  21. package/scripts/commands/version-update.js +122 -0
  22. package/scripts/commands/version.js +1 -1
  23. package/scripts/helpers/BuildScssVariables.d.ts +1 -1
  24. package/scripts/helpers/BuildScssVariables.d.ts.map +1 -1
  25. package/scripts/helpers/BuildScssVariables.js +20 -10
  26. package/scripts/helpers/LoadUserConfigs.js +1 -1
  27. package/scripts/helpers/ReadDefaultValues.js +20 -20
  28. package/scripts/types.d.ts +1 -1
  29. package/scripts/types.d.ts.map +1 -1
  30. package/scss/_variables.scss +19 -19
  31. package/scss/beathers.min.scss +15 -14
  32. package/scss/functions/_colors.scss +242 -230
  33. package/scss/functions/_mediaQueries.scss +140 -136
  34. package/scss/functions/_others.scss +113 -79
  35. package/scss/functions/_typographic.scss +133 -129
  36. package/scss/functions/_validations.scss +293 -251
  37. package/scss/settings/_configs.scss +270 -270
  38. package/scss/settings/_defaults.scss +209 -214
  39. package/scss/settings/_index.scss +90 -90
  40. package/scss/style/_button.scss +103 -101
  41. package/scss/style/_colors.scss +156 -146
  42. package/scss/style/_dialog.scss +147 -146
  43. package/scss/style/_glass.scss +98 -80
  44. package/scss/style/_grid.scss +121 -95
  45. package/scss/style/_loader.scss +74 -62
  46. package/scss/style/_resets.scss +176 -168
  47. package/scss/style/_shaping.scss +561 -439
  48. package/scss/style/_typographic.scss +400 -345
@@ -1,439 +1,561 @@
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 != (), vars.$wrappers, defs.$wrappers);
15
- $useShadows: if(vars.$useShadows != null, vars.$useShadows, settings.$useShadows);
16
- $useShadowsMediaQueries: if(
17
- vars.$useShadowsMediaQueries != null,
18
- vars.$useShadowsMediaQueries,
19
- settings.$useShadowsMediaQueries
20
- );
21
- $useDisplays: if(vars.$useDisplays != null, vars.$useDisplays, settings.$useDisplays);
22
- $useDisplaysMediaQueries: if(
23
- vars.$useDisplaysMediaQueries != null,
24
- vars.$useDisplaysMediaQueries,
25
- settings.$useDisplaysMediaQueries
26
- );
27
- $useOverflows: if(vars.$useOverflows != null, vars.$useOverflows, settings.$useOverflows);
28
- $useOverflowsMediaQueries: if(
29
- vars.$useOverflowsMediaQueries != null,
30
- vars.$useOverflowsMediaQueries,
31
- settings.$useOverflowsMediaQueries
32
- );
33
- $useOpacities: if(vars.$useOpacities != null, vars.$useOpacities, settings.$useOpacities);
34
- $useOpacitiesMediaQueries: if(
35
- vars.$useOpacitiesMediaQueries != null,
36
- vars.$useOpacitiesMediaQueries,
37
- settings.$useOpacitiesMediaQueries
38
- );
39
- $opacities: if(vars.$opacities != null, vars.$opacities, defs.$opacities);
40
- $useBlur: if(vars.$useBlur != null, vars.$useBlur, settings.$useBlur);
41
- $useBlurMediaQueries: if(vars.$useBlurMediaQueries != null, vars.$useBlurMediaQueries, settings.$useBlurMediaQueries);
42
- $blurValues: if(vars.$blurValues != null, vars.$blurValues, defs.$blurValues);
43
- $useObjectFits: if(vars.$useObjectFits != null, vars.$useObjectFits, settings.$useObjectFits);
44
- $useObjectFitsMediaQueries: if(
45
- vars.$useObjectFitsMediaQueries != null,
46
- vars.$useObjectFitsMediaQueries,
47
- settings.$useObjectFitsMediaQueries
48
- );
49
- $usePositions: if(vars.$usePositions != null, vars.$usePositions, settings.$usePositions);
50
- $usePositionsMediaQueries: if(
51
- vars.$usePositionsMediaQueries != null,
52
- vars.$usePositionsMediaQueries,
53
- settings.$usePositionsMediaQueries
54
- );
55
- $useInsets: if(vars.$useInsets != null, vars.$useInsets, settings.$useInsets);
56
- $useInsetsMediaQueries: if(
57
- vars.$useInsetsMediaQueries != null,
58
- vars.$useInsetsMediaQueries,
59
- settings.$useInsetsMediaQueries
60
- );
61
- $insetValues: if(vars.$insetValues != null, vars.$insetValues, defs.$insetValues);
62
- $useSizes: if(vars.$useSizes != null, vars.$useSizes, settings.$useSizes);
63
- $useSizesMediaQueries: if(
64
- vars.$useSizesMediaQueries != null,
65
- vars.$useSizesMediaQueries,
66
- settings.$useSizesMediaQueries
67
- );
68
- $useGutters: if(vars.$useGutters != null, vars.$useGutters, settings.$useGutters);
69
- $useGuttersMediaQueries: if(
70
- vars.$useGuttersMediaQueries != null,
71
- vars.$useGuttersMediaQueries,
72
- settings.$useGuttersMediaQueries
73
- );
74
- $guttersValues: if(vars.$guttersValues != null, vars.$guttersValues, defs.$guttersValues);
75
- $useBorders: if(vars.$useBorders != null, vars.$useBorders, settings.$useBorders);
76
- $useBordersMediaQueries: if(
77
- vars.$useBordersMediaQueries != null,
78
- vars.$useBordersMediaQueries,
79
- settings.$useBordersMediaQueries
80
- );
81
- $bordersValue: if(vars.$bordersValue != null, vars.$bordersValue, defs.$bordersValue);
82
- $useTextBorders: if(vars.$useTextBorders != null, vars.$useTextBorders, settings.$useTextBorders);
83
- $useTextBordersMediaQueries: if(
84
- vars.$useTextBordersMediaQueries != null,
85
- vars.$useTextBordersMediaQueries,
86
- settings.$useTextBordersMediaQueries
87
- );
88
- $useRadius: if(vars.$useRadius != null, vars.$useRadius, settings.$useRadius);
89
- $useRadiusMediaQueries: if(
90
- vars.$useRadiusMediaQueries != null,
91
- vars.$useRadiusMediaQueries,
92
- settings.$useRadiusMediaQueries
93
- );
94
- $radiuses: if(vars.$radiuses != null, vars.$radiuses, defs.$radiuses);
95
-
96
- @if $useWrappers {
97
- @each $wSize, $properties in $wrappers {
98
- $mainWSize: if($wSize, '#{$wSize}#{\:}wrapper', 'wrapper');
99
-
100
- $padding: if(list.nth($properties, 2), list.nth($properties, 2), 0);
101
-
102
- .#{$mainWSize} {
103
- width: 100%;
104
-
105
- @if ($padding != 0) {
106
- padding-inline: $padding;
107
- }
108
- }
109
- }
110
- @include mQ.mQ(min, md) {
111
- @each $wSize, $properties in $wrappers {
112
- $mainWSize: if($wSize, '#{$wSize}#{\:}wrapper', 'wrapper');
113
-
114
- $size: list.nth($properties, 1);
115
- $padding: if(list.nth($properties, 2), list.nth($properties, 2), 0);
116
-
117
- // Validate parameters
118
- $checkedSize: val.notNull($size, 'Wrappers.size');
119
-
120
- .#{$mainWSize} {
121
- padding-inline: calc((100% - #{$checkedSize}) / 2 + $padding);
122
- }
123
- }
124
- }
125
- }
126
-
127
- @if $useShadows {
128
- @include mQ.multiSizes($useShadowsMediaQueries) using ($size, $divider) {
129
- @each $class, $values in configs.$shadows {
130
- $mainClass: if($size, '#{$size}#{$divider}shadow#{\:}#{$class}', 'shadow#{\:}#{$class}');
131
-
132
- .#{$mainClass} {
133
- box-shadow: $values;
134
- }
135
- }
136
- }
137
- }
138
-
139
- @if $useDisplays {
140
- @include mQ.multiSizes($useDisplaysMediaQueries) using ($size, $divider) {
141
- @each $display in configs.$displays {
142
- // Validate parameters
143
- $checkedDisplay: val.listItem(configs.$displays, $display, 'Shaping.displays');
144
-
145
- $mainClass: if($size, '#{$size}#{$divider}d-#{$display}', 'd-#{$display}');
146
-
147
- .#{$mainClass} {
148
- display: if($size, $display !important, $display);
149
- }
150
- }
151
- }
152
- }
153
-
154
- @if $useOverflows {
155
- @include mQ.multiSizes($useOverflowsMediaQueries) using ($size, $divider) {
156
- @each $dir in configs.$overflowsDirections {
157
- // Validate parameters
158
- @if $dir {
159
- $checkedDir: val.listItem(('x', 'y'), $dir, 'Shaping.overflow.direction');
160
- }
161
-
162
- $dirClass: if($dir, '#{$dir}#{\:}overflow', 'overflow');
163
- $mainClass: if($size, '#{$size}#{$divider}#{$dirClass}', $dirClass);
164
- $property: if($dir, 'overflow-#{$dir}', 'overflow');
165
-
166
- .#{$mainClass} {
167
- @each $value in configs.$overflows {
168
- // Validate parameters
169
- $checkedClass: val.listItem(configs.$overflows, $value, 'Shaping.overflow.value');
170
-
171
- &-#{$value} {
172
- #{$property}: if($size, $value !important, $value);
173
- }
174
- }
175
- }
176
- }
177
- }
178
- }
179
-
180
- @if $useOpacities {
181
- @include mQ.multiSizes($useOpacitiesMediaQueries) using ($size, $divider) {
182
- @each $value in $opacities {
183
- $checkedValue: val.opacity(math.div($value, 100), 'Shaping.opacity');
184
-
185
- $mainClass: if($size, '#{$size}#{$divider}op', 'op');
186
-
187
- .#{$mainClass}#{\:}#{$value} {
188
- opacity: if($size, $checkedValue !important, $checkedValue);
189
-
190
- &#{\:}hover:hover {
191
- opacity: if($size, $checkedValue !important, $checkedValue);
192
- }
193
- }
194
- }
195
- }
196
- }
197
-
198
- @if $useBlur {
199
- @include mQ.multiSizes($useBlurMediaQueries) using ($size, $divider) {
200
- @each $value in $blurValues {
201
- $checkedValue: val.listItem($blurValues, $value, 'Shaping.blur');
202
-
203
- $mainClass: if($size, '#{$size}#{$divider}bg#{\:}blur', 'bg#{\:}blur');
204
- $calcValue: blur(#{$checkedValue}#{px});
205
-
206
- .#{$mainClass}#{\:}#{$value} {
207
- backdrop-filter: if($size, $calcValue !important, $calcValue);
208
-
209
- &#{\:}hover:hover {
210
- backdrop-filter: if($size, $calcValue !important, $calcValue);
211
- }
212
- }
213
- }
214
- }
215
- }
216
-
217
- @if $useObjectFits {
218
- @include mQ.multiSizes($useObjectFitsMediaQueries) using ($size, $divider) {
219
- @each $fit in configs.$objectsFits {
220
- // Validate parameters
221
- $checkedFit: val.listItem(configs.$objectsFits, $fit, 'Shaping.objectFit');
222
-
223
- $mainClass: if($size, '#{$size}#{$divider}object-fit', 'object-fit');
224
-
225
- .#{$mainClass}#{\:}#{$fit} {
226
- object-fit: if($size, $fit !important, $fit);
227
- }
228
- }
229
- }
230
- }
231
-
232
- @if $usePositions {
233
- @include mQ.multiSizes($usePositionsMediaQueries) using ($size, $divider) {
234
- @each $position in configs.$positions {
235
- // Validate parameters
236
- $checkedPosition: val.listItem(configs.$positions, $position, 'Shaping.position');
237
-
238
- $mainClass: if($size, '#{$size}#{$divider}p-', 'p-');
239
-
240
- .#{$mainClass}#{$position} {
241
- position: if($size, $position !important, $position);
242
- }
243
- }
244
- }
245
- }
246
-
247
- @if $useInsets {
248
- @include mQ.multiSizes($useInsetsMediaQueries) using ($size, $divider) {
249
- @each $value in $insetValues {
250
- @each $position in configs.$insetPositions {
251
- // Validate parameters
252
- $checkedPosition: val.listItem(configs.$insetPositions, $position, 'Shaping.inset');
253
-
254
- $mainClass: if($size, '#{$size}#{$divider}inset', 'inset');
255
- $posClass: if($position, '#{$mainClass}-#{$position}', '#{$mainClass}');
256
- $property: if($position, 'inset-#{$position}', 'inset');
257
- $val: if($value == 0, 'full', $value);
258
-
259
- .#{$posClass}#{\:}#{$val} {
260
- #{$property}: $value;
261
- }
262
- }
263
- }
264
- }
265
- }
266
-
267
- @if $useSizes {
268
- @include mQ.multiSizes($useSizesMediaQueries) using ($size, $divider) {
269
- @each $dir, $direction in configs.$spacesDirections {
270
- // Validate parameters
271
- $checkedDir: val.listItem(
272
- ('w', 'min#{\:}w', 'max#{\:}w', 'h', 'min#{\:}h', 'max#{\:}h'),
273
- $dir,
274
- 'Shaping.space.direction'
275
- );
276
- $checkedDirection: val.listItem(
277
- ('width', 'min-width', 'max-width', 'height', 'min-height', 'max-height'),
278
- $direction,
279
- 'Shaping.space.direction'
280
- );
281
- $checkedStep: val.number(configs.$spacesStep, 'Shaping.space.step');
282
-
283
- $mainClass: if($size, #{$size}#{$divider}#{$dir}, $dir);
284
-
285
- .#{$mainClass} {
286
- @for $i from 0 through 100 {
287
- $value: $i * $checkedStep;
288
-
289
- @if ($value != 0) and ($value % $checkedStep == 0) and ($value <= 100) {
290
- &#{\:}#{$value} {
291
- #{$direction}: if($size, #{$value}#{'%'} !important, #{$value}#{'%'});
292
- }
293
- }
294
- }
295
- }
296
- }
297
- }
298
- }
299
-
300
- @if $useGutters {
301
- @include mQ.multiSizes($useGuttersMediaQueries) using ($size, $divider) {
302
- @each $class, $property in configs.$gutters {
303
- // Validate parameters
304
- $checkedClass: val.listItem(
305
- (p, px, py, ps, pe, pt, pb, m, mx, my, ms, me, mt, mb, g, gx, gy),
306
- $class,
307
- 'Shaping.gutter.class'
308
- );
309
- $checkedProperty: val.listItem(
310
- (
311
- padding,
312
- padding-inline,
313
- padding-block,
314
- padding-inline-start,
315
- padding-inline-end,
316
- padding-block-start,
317
- padding-block-end,
318
- margin,
319
- margin-inline,
320
- margin-block,
321
- margin-inline-start,
322
- margin-inline-end,
323
- margin-block-start,
324
- margin-block-end,
325
- gap,
326
- column-gap,
327
- row-gap
328
- ),
329
- $property,
330
- 'Shaping.gutter.property'
331
- );
332
-
333
- $mainClass: if($size, #{$size}#{$divider}#{$class}, $class);
334
-
335
- .#{$mainClass} {
336
- @each $vClass, $value in $guttersValues {
337
- &-#{$vClass} {
338
- @if $size {
339
- #{$property}: if($size, $value !important, $value);
340
- } @else {
341
- #{$property}: $value;
342
-
343
- &\:i {
344
- /* stylelint-disable declaration-no-important */
345
- #{$property}: $value !important;
346
- }
347
- }
348
- }
349
- }
350
- }
351
- }
352
- }
353
- }
354
-
355
- @if $useBorders {
356
- @include mQ.multiSizes($useBordersMediaQueries) using ($size, $divider) {
357
- @each $i in $bordersValue {
358
- @each $dir, $property in configs.$bordersDirections {
359
- // Validate parameters
360
- $checkedDir: val.listItem((null, 'top', 'bottom', 'start', 'end'), $dir, 'Shaping.borders');
361
- $checkedProperty: val.listItem(
362
- (border, border-block-start, border-block-end, border-inline-start, border-inline-end),
363
- $property,
364
- 'Shaping.borders'
365
- );
366
-
367
- $mainClass: if($size, '#{$size}#{$divider}border', 'border');
368
- $dirClass: if($dir, '#{$dir}#{\:}', $dir);
369
-
370
- .#{$mainClass}#{\:}#{$dirClass}#{$i} {
371
- #{$property}-width: if($size, #{$i}#{px} !important, #{$i}#{px});
372
-
373
- @if not $size {
374
- #{$property}-style: if($size, solid !important, solid);
375
- }
376
- }
377
- }
378
- }
379
- }
380
- }
381
-
382
- @if $useTextBorders {
383
- @include mQ.multiSizes($useTextBordersMediaQueries) using ($size, $divider) {
384
- @each $i in $bordersValue {
385
- $mainClass: if($size, '#{$size}#{$divider}stroke', 'stroke');
386
- $value: math.div($i, 10);
387
-
388
- // Validate parameters
389
- $checkedValue: val.number($value, 'Shaping.textBorder');
390
-
391
- .#{$mainClass}#{\:}#{$i} {
392
- -webkit-text-stroke-width: if($size, #{$value}#{px} !important, #{$value}#{px});
393
- }
394
- }
395
- }
396
- }
397
-
398
- @if $useRadius {
399
- @include mQ.multiSizes($useRadiusMediaQueries) using ($size, $divider) {
400
- @each $dir, $properties in configs.$radiusDirection {
401
- // Validate parameters
402
- $checkedDir: val.listItem(
403
- (null, 'top', 'bottom', 'start', 'end', 'top-start', 'top-end', 'bottom-start', 'bottom-end'),
404
- $dir,
405
- 'Shaping.radius.direction'
406
- );
407
-
408
- $mainClass: if($size, '#{$size}#{$divider}radius', 'radius');
409
- $dirClass: if($dir, '#{$dir}#{\:}', $dir);
410
-
411
- @each $property in $properties {
412
- .#{$mainClass}#{\:}#{$dirClass} {
413
- &full {
414
- #{$property}: if($size, 100vw !important, 100vw);
415
- }
416
-
417
- @each $value in $radiuses {
418
- // Validate parameters
419
- $checkedProperty: val.listItem(
420
- (
421
- border-radius,
422
- border-start-start-radius,
423
- border-start-end-radius,
424
- border-end-start-radius,
425
- border-end-end-radius
426
- ),
427
- $property,
428
- 'Shaping.radius.property'
429
- );
430
-
431
- &#{$value} {
432
- #{$property}: if($size, #{$value}#{px} !important, #{$value}#{'px'});
433
- }
434
- }
435
- }
436
- }
437
- }
438
- }
439
- }
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
+
14
+ $useWrappers: if(
15
+ sass(vars.$useWrappers != null): vars.$useWrappers; else: settings.$useWrappers
16
+ );
17
+ $wrappers: if(
18
+ sass(vars.$wrappers != null): vars.$wrappers; else: defs.$wrappers
19
+ );
20
+ $useShadows: if(
21
+ sass(vars.$useShadows != null): vars.$useShadows; else: settings.$useShadows
22
+ );
23
+ $useShadowsMediaQueries: if(
24
+ sass(vars.$useShadowsMediaQueries != null): vars.$useShadowsMediaQueries; else: settings.$useShadowsMediaQueries
25
+ );
26
+ $useDisplays: if(
27
+ sass(vars.$useDisplays != null): vars.$useDisplays; else: settings.$useDisplays
28
+ );
29
+ $useDisplaysMediaQueries: if(
30
+ sass(vars.$useDisplaysMediaQueries != null): vars.$useDisplaysMediaQueries; else: settings.$useDisplaysMediaQueries
31
+ );
32
+ $useOverflows: if(
33
+ sass(vars.$useOverflows != null): vars.$useOverflows; else: settings.$useOverflows
34
+ );
35
+ $useOverflowsMediaQueries: if(
36
+ sass(vars.$useOverflowsMediaQueries != null): vars.$useOverflowsMediaQueries; else: settings.$useOverflowsMediaQueries
37
+ );
38
+ $useOpacities: if(
39
+ sass(vars.$useOpacities != null): vars.$useOpacities; else: settings.$useOpacities
40
+ );
41
+ $useOpacitiesMediaQueries: if(
42
+ sass(vars.$useOpacitiesMediaQueries != null): vars.$useOpacitiesMediaQueries; else: settings.$useOpacitiesMediaQueries
43
+ );
44
+ $opacities: if(
45
+ sass(vars.$opacities != null): vars.$opacities; else: defs.$opacities
46
+ );
47
+ $useBlur: if(
48
+ sass(vars.$useBlur != null): vars.$useBlur; else: settings.$useBlur
49
+ );
50
+ $useBlurMediaQueries: if(
51
+ sass(vars.$useBlurMediaQueries != null): vars.$useBlurMediaQueries; else: settings.$useBlurMediaQueries
52
+ );
53
+ $blurValues: if(
54
+ sass(vars.$blurValues != null): vars.$blurValues; else: defs.$blurValues
55
+ );
56
+ $useObjectFits: if(
57
+ sass(vars.$useObjectFits != null): vars.$useObjectFits; else: settings.$useObjectFits
58
+ );
59
+ $useObjectFitsMediaQueries: if(
60
+ sass(vars.$useObjectFitsMediaQueries != null): vars.$useObjectFitsMediaQueries;
61
+ else: settings.$useObjectFitsMediaQueries
62
+ );
63
+ $usePositions: if(
64
+ sass(vars.$usePositions != null): vars.$usePositions; else: settings.$usePositions
65
+ );
66
+ $usePositionsMediaQueries: if(
67
+ sass(vars.$usePositionsMediaQueries != null): vars.$usePositionsMediaQueries; else: settings.$usePositionsMediaQueries
68
+ );
69
+ $useInsets: if(
70
+ sass(vars.$useInsets != null): vars.$useInsets; else: settings.$useInsets
71
+ );
72
+ $useInsetsMediaQueries: if(
73
+ sass(vars.$useInsetsMediaQueries != null): vars.$useInsetsMediaQueries; else: settings.$useInsetsMediaQueries
74
+ );
75
+ $insetValues: if(
76
+ sass(vars.$insetValues != null): vars.$insetValues; else: defs.$insetValues
77
+ );
78
+ $useSizes: if(
79
+ sass(vars.$useSizes != null): vars.$useSizes; else: settings.$useSizes
80
+ );
81
+ $useSizesMediaQueries: if(
82
+ sass(vars.$useSizesMediaQueries != null): vars.$useSizesMediaQueries; else: settings.$useSizesMediaQueries
83
+ );
84
+ $useGutters: if(
85
+ sass(vars.$useGutters != null): vars.$useGutters; else: settings.$useGutters
86
+ );
87
+ $useGuttersMediaQueries: if(
88
+ sass(vars.$useGuttersMediaQueries != null): vars.$useGuttersMediaQueries; else: settings.$useGuttersMediaQueries
89
+ );
90
+ $guttersValues: if(
91
+ sass(vars.$guttersValues != null): vars.$guttersValues; else: defs.$guttersValues
92
+ );
93
+ $useBorders: if(
94
+ sass(vars.$useBorders != null): vars.$useBorders; else: settings.$useBorders
95
+ );
96
+ $useBordersMediaQueries: if(
97
+ sass(vars.$useBordersMediaQueries != null): vars.$useBordersMediaQueries; else: settings.$useBordersMediaQueries
98
+ );
99
+ $bordersValue: if(
100
+ sass(vars.$bordersValue != null): vars.$bordersValue; else: defs.$bordersValue
101
+ );
102
+ $useTextBorders: if(
103
+ sass(vars.$useTextBorders != null): vars.$useTextBorders; else: settings.$useTextBorders
104
+ );
105
+ $useTextBordersMediaQueries: if(
106
+ sass(vars.$useTextBordersMediaQueries != null): vars.$useTextBordersMediaQueries;
107
+ else: settings.$useTextBordersMediaQueries
108
+ );
109
+ $useRadius: if(
110
+ sass(vars.$useRadius != null): vars.$useRadius; else: settings.$useRadius
111
+ );
112
+ $useRadiusMediaQueries: if(
113
+ sass(vars.$useRadiusMediaQueries != null): vars.$useRadiusMediaQueries; else: settings.$useRadiusMediaQueries
114
+ );
115
+ $radiuses: if(
116
+ sass(vars.$radiuses != null): vars.$radiuses; else: defs.$radiuses
117
+ );
118
+
119
+ @if $useWrappers {
120
+ @each $wSize, $properties in $wrappers {
121
+ $mainWSize: if(
122
+ sass($wSize): '#{$wSize}#{\:}wrapper' ; else: 'wrapper'
123
+ );
124
+
125
+ $padding: if(
126
+ sass(list.nth($properties, 2)): list.nth($properties, 2) ; else: 0
127
+ );
128
+
129
+ .#{$mainWSize} {
130
+ width: 100%;
131
+
132
+ @if ($padding != 0) {
133
+ padding-inline: $padding;
134
+ }
135
+ }
136
+ }
137
+ @include mQ.mQ(min, md) {
138
+ @each $wSize, $properties in $wrappers {
139
+ $mainWSize: if(
140
+ sass($wSize): '#{$wSize}#{\:}wrapper' ; else: 'wrapper'
141
+ );
142
+
143
+ $size: list.nth($properties, 1);
144
+ $padding: if(
145
+ sass(list.nth($properties, 2)): list.nth($properties, 2) ; else: 0
146
+ );
147
+
148
+ // Validate parameters
149
+ $checkedSize: val.notNull($size, 'Wrappers.size');
150
+
151
+ .#{$mainWSize} {
152
+ padding-inline: calc((100% - #{$checkedSize}) / 2 + $padding);
153
+ }
154
+ }
155
+ }
156
+ }
157
+
158
+ @if $useShadows {
159
+ @include mQ.multiSizes($useShadowsMediaQueries) using ($size, $divider) {
160
+ @each $class, $values in configs.$shadows {
161
+ $mainClass: if(
162
+ sass($size): '#{$size}#{$divider}shadow#{\:}#{$class}' ; else: 'shadow#{\:}#{$class}'
163
+ );
164
+
165
+ .#{$mainClass} {
166
+ box-shadow: $values;
167
+ }
168
+ }
169
+ }
170
+ }
171
+
172
+ @if $useDisplays {
173
+ @include mQ.multiSizes($useDisplaysMediaQueries) using ($size, $divider) {
174
+ @each $display in configs.$displays {
175
+ // Validate parameters
176
+ $checkedDisplay: val.listItem(configs.$displays, $display, 'Shaping.displays');
177
+
178
+ $mainClass: if(
179
+ sass($size): '#{$size}#{$divider}d-#{$display}' ; else: 'd-#{$display}'
180
+ );
181
+
182
+ .#{$mainClass} {
183
+ @if ($size) {
184
+ display: $display !important;
185
+ } @else {
186
+ display: $display;
187
+ }
188
+ }
189
+ }
190
+ }
191
+ }
192
+
193
+ @if $useOverflows {
194
+ @include mQ.multiSizes($useOverflowsMediaQueries) using ($size, $divider) {
195
+ @each $dir in configs.$overflowsDirections {
196
+ // Validate parameters
197
+ @if $dir {
198
+ $checkedDir: val.listItem(('x', 'y'), $dir, 'Shaping.overflow.direction');
199
+ }
200
+
201
+ $dirClass: if(
202
+ sass($dir): '#{$dir}#{\:}overflow' ; else: 'overflow'
203
+ );
204
+ $mainClass: if(
205
+ sass($size): '#{$size}#{$divider}#{$dirClass}' ; else: $dirClass
206
+ );
207
+ $property: if(
208
+ sass($dir): 'overflow-#{$dir}' ; else: 'overflow'
209
+ );
210
+
211
+ .#{$mainClass} {
212
+ @each $value in configs.$overflows {
213
+ // Validate parameters
214
+ $checkedClass: val.listItem(configs.$overflows, $value, 'Shaping.overflow.value');
215
+
216
+ &-#{$value} {
217
+ @if ($size) {
218
+ #{$property}: $value !important;
219
+ } @else {
220
+ #{$property}: $value;
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ }
228
+
229
+ @if $useOpacities {
230
+ @include mQ.multiSizes($useOpacitiesMediaQueries) using ($size, $divider) {
231
+ @each $value in $opacities {
232
+ $checkedValue: val.opacity(math.div($value, 100), 'Shaping.opacity');
233
+
234
+ $mainClass: if(
235
+ sass($size): '#{$size}#{$divider}op' ; else: 'op'
236
+ );
237
+
238
+ .#{$mainClass}#{\:}#{$value} {
239
+ @if ($size) {
240
+ opacity: $checkedValue !important;
241
+ } @else {
242
+ opacity: $checkedValue;
243
+ }
244
+
245
+ &#{\:}hover:hover {
246
+ @if ($size) {
247
+ opacity: $checkedValue !important;
248
+ } @else {
249
+ opacity: $checkedValue;
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+
257
+ @if $useBlur {
258
+ @include mQ.multiSizes($useBlurMediaQueries) using ($size, $divider) {
259
+ @each $value in $blurValues {
260
+ $checkedValue: val.listItem($blurValues, $value, 'Shaping.blur');
261
+
262
+ $mainClass: if(
263
+ sass($size): '#{$size}#{$divider}bg#{\:}blur' ; else: 'bg#{\:}blur'
264
+ );
265
+ $calcValue: blur(#{$checkedValue}#{px});
266
+
267
+ .#{$mainClass}#{\:}#{$value} {
268
+ @if ($size) {
269
+ backdrop-filter: $calcValue !important;
270
+ } @else {
271
+ backdrop-filter: $calcValue;
272
+ }
273
+
274
+ &#{\:}hover:hover {
275
+ @if ($size) {
276
+ backdrop-filter: $calcValue !important;
277
+ } @else {
278
+ backdrop-filter: $calcValue;
279
+ }
280
+ }
281
+ }
282
+ }
283
+ }
284
+ }
285
+
286
+ @if $useObjectFits {
287
+ @include mQ.multiSizes($useObjectFitsMediaQueries) using ($size, $divider) {
288
+ @each $fit in configs.$objectsFits {
289
+ // Validate parameters
290
+ $checkedFit: val.listItem(configs.$objectsFits, $fit, 'Shaping.objectFit');
291
+
292
+ $mainClass: if(
293
+ sass($size): '#{$size}#{$divider}object-fit' ; else: 'object-fit'
294
+ );
295
+
296
+ .#{$mainClass}#{\:}#{$fit} {
297
+ @if ($size) {
298
+ object-fit: $fit !important;
299
+ } @else {
300
+ object-fit: $fit;
301
+ }
302
+ }
303
+ }
304
+ }
305
+ }
306
+
307
+ @if $usePositions {
308
+ @include mQ.multiSizes($usePositionsMediaQueries) using ($size, $divider) {
309
+ @each $position in configs.$positions {
310
+ // Validate parameters
311
+ $checkedPosition: val.listItem(configs.$positions, $position, 'Shaping.position');
312
+
313
+ $mainClass: if(
314
+ sass($size): '#{$size}#{$divider}p-' ; else: 'p-'
315
+ );
316
+
317
+ .#{$mainClass}#{$position} {
318
+ @if ($size) {
319
+ position: $position !important;
320
+ } @else {
321
+ position: $position;
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }
327
+
328
+ @if $useInsets {
329
+ @include mQ.multiSizes($useInsetsMediaQueries) using ($size, $divider) {
330
+ @each $value in $insetValues {
331
+ @each $position in configs.$insetPositions {
332
+ // Validate parameters
333
+ $checkedPosition: val.listItem(configs.$insetPositions, $position, 'Shaping.inset');
334
+
335
+ $mainClass: if(
336
+ sass($size): '#{$size}#{$divider}inset' ; else: 'inset'
337
+ );
338
+ $posClass: if(
339
+ sass($position): '#{$mainClass}-#{$position}' ; else: '#{$mainClass}'
340
+ );
341
+ $property: if(
342
+ sass($position): 'inset-#{$position}' ; else: 'inset'
343
+ );
344
+ $val: if(
345
+ sass($value == 0): 'full' ; else: $value
346
+ );
347
+
348
+ .#{$posClass}#{\:}#{$val} {
349
+ #{$property}: $value;
350
+ }
351
+ }
352
+ }
353
+ }
354
+ }
355
+
356
+ @if $useSizes {
357
+ @include mQ.multiSizes($useSizesMediaQueries) using ($size, $divider) {
358
+ @each $dir, $direction in configs.$spacesDirections {
359
+ // Validate parameters
360
+ $checkedDir: val.listItem(
361
+ ('w', 'min#{\:}w', 'max#{\:}w', 'h', 'min#{\:}h', 'max#{\:}h'),
362
+ $dir,
363
+ 'Shaping.space.direction'
364
+ );
365
+ $checkedDirection: val.listItem(
366
+ ('width', 'min-width', 'max-width', 'height', 'min-height', 'max-height'),
367
+ $direction,
368
+ 'Shaping.space.direction'
369
+ );
370
+ $checkedStep: val.number(configs.$spacesStep, 'Shaping.space.step');
371
+
372
+ $mainClass: if(
373
+ sass($size): #{$size}#{$divider}#{$dir}; else: $dir
374
+ );
375
+
376
+ .#{$mainClass} {
377
+ @for $i from 0 through 100 {
378
+ $value: $i * $checkedStep;
379
+
380
+ @if ($value != 0) and ($value % $checkedStep == 0) and ($value <= 100) {
381
+ &#{\:}#{$value} {
382
+ @if ($size) {
383
+ #{$direction}: #{$value}#{'%'} !important;
384
+ } @else {
385
+ #{$direction}: #{$value}#{'%'};
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
391
+ }
392
+ }
393
+ }
394
+
395
+ @if $useGutters {
396
+ @include mQ.multiSizes($useGuttersMediaQueries) using ($size, $divider) {
397
+ @each $class, $property in configs.$gutters {
398
+ // Validate parameters
399
+ $checkedClass: val.listItem(
400
+ (p, px, py, ps, pe, pt, pb, m, mx, my, ms, me, mt, mb, g, gx, gy),
401
+ $class,
402
+ 'Shaping.gutter.class'
403
+ );
404
+ $checkedProperty: val.listItem(
405
+ (
406
+ padding,
407
+ padding-inline,
408
+ padding-block,
409
+ padding-inline-start,
410
+ padding-inline-end,
411
+ padding-block-start,
412
+ padding-block-end,
413
+ margin,
414
+ margin-inline,
415
+ margin-block,
416
+ margin-inline-start,
417
+ margin-inline-end,
418
+ margin-block-start,
419
+ margin-block-end,
420
+ gap,
421
+ column-gap,
422
+ row-gap
423
+ ),
424
+ $property,
425
+ 'Shaping.gutter.property'
426
+ );
427
+
428
+ $mainClass: if(
429
+ sass($size): #{$size}#{$divider}#{$class}; else: $class
430
+ );
431
+
432
+ .#{$mainClass} {
433
+ @each $vClass, $value in $guttersValues {
434
+ &-#{$vClass} {
435
+ @if $size {
436
+ #{$property}: #{$value} !important;
437
+ } @else {
438
+ #{$property}: $value;
439
+ }
440
+
441
+ &\:i {
442
+ #{$property}: $value !important;
443
+ }
444
+ }
445
+ }
446
+ }
447
+ }
448
+ }
449
+ }
450
+
451
+ @if $useBorders {
452
+ @include mQ.multiSizes($useBordersMediaQueries) using ($size, $divider) {
453
+ @each $i in $bordersValue {
454
+ @each $dir, $property in configs.$bordersDirections {
455
+ // Validate parameters
456
+ $checkedDir: val.listItem((null, 'top', 'bottom', 'start', 'end'), $dir, 'Shaping.borders');
457
+ $checkedProperty: val.listItem(
458
+ (border, border-block-start, border-block-end, border-inline-start, border-inline-end),
459
+ $property,
460
+ 'Shaping.borders'
461
+ );
462
+
463
+ $mainClass: if(
464
+ sass($size): '#{$size}#{$divider}border' ; else: 'border'
465
+ );
466
+ $dirClass: if(
467
+ sass($dir): '#{$dir}#{\:}' ; else: $dir
468
+ );
469
+
470
+ .#{$mainClass}#{\:}#{$dirClass}#{$i} {
471
+ @if ($size) {
472
+ #{$property}-width: #{$i}px !important;
473
+ } @else {
474
+ #{$property}-width: #{$i}px;
475
+ }
476
+
477
+ @if not $size {
478
+ #{$property}-style: solid;
479
+ }
480
+ }
481
+ }
482
+ }
483
+ }
484
+ }
485
+
486
+ @if $useTextBorders {
487
+ @include mQ.multiSizes($useTextBordersMediaQueries) using ($size, $divider) {
488
+ @each $i in $bordersValue {
489
+ $mainClass: if(
490
+ sass($size): '#{$size}#{$divider}stroke' ; else: 'stroke'
491
+ );
492
+ $value: math.div($i, 10);
493
+
494
+ // Validate parameters
495
+ $checkedValue: val.number($value, 'Shaping.textBorder');
496
+
497
+ .#{$mainClass}#{\:}#{$i} {
498
+ @if ($size) {
499
+ -webkit-text-stroke-width: #{$value}px !important;
500
+ } @else {
501
+ -webkit-text-stroke-width: #{$value}px;
502
+ }
503
+ }
504
+ }
505
+ }
506
+ }
507
+
508
+ @if $useRadius {
509
+ @include mQ.multiSizes($useRadiusMediaQueries) using ($size, $divider) {
510
+ @each $dir, $properties in configs.$radiusDirection {
511
+ // Validate parameters
512
+ $checkedDir: val.listItem(
513
+ (null, 'top', 'bottom', 'start', 'end', 'top-start', 'top-end', 'bottom-start', 'bottom-end'),
514
+ $dir,
515
+ 'Shaping.radius.direction'
516
+ );
517
+
518
+ $mainClass: if(
519
+ sass($size): '#{$size}#{$divider}radius' ; else: 'radius'
520
+ );
521
+ $dirClass: if(
522
+ sass($dir): '#{$dir}#{\:}' ; else: $dir
523
+ );
524
+
525
+ @each $property in $properties {
526
+ .#{$mainClass}#{\:}#{$dirClass} {
527
+ &full {
528
+ @if ($size) {
529
+ #{$property}: 100vw !important;
530
+ } @else {
531
+ #{$property}: 100vw;
532
+ }
533
+ }
534
+
535
+ @each $value in $radiuses {
536
+ // Validate parameters
537
+ $checkedProperty: val.listItem(
538
+ (
539
+ border-radius,
540
+ border-start-start-radius,
541
+ border-start-end-radius,
542
+ border-end-start-radius,
543
+ border-end-end-radius
544
+ ),
545
+ $property,
546
+ 'Shaping.radius.property'
547
+ );
548
+
549
+ &#{$value} {
550
+ @if ($size) {
551
+ #{$property}: #{$value}px !important;
552
+ } @else {
553
+ #{$property}: #{$value}px;
554
+ }
555
+ }
556
+ }
557
+ }
558
+ }
559
+ }
560
+ }
561
+ }