@nuvoui/core 1.3.5 → 1.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 (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/dist/nuvoui.css +878 -646
  4. package/dist/nuvoui.css.map +1 -1
  5. package/dist/nuvoui.min.css +23 -1
  6. package/dist/nuvoui.min.css.map +1 -1
  7. package/package.json +1 -1
  8. package/src/styles/base/_base.scss +148 -147
  9. package/src/styles/base/_reset.scss +41 -49
  10. package/src/styles/build.scss +25 -1
  11. package/src/styles/components/_tooltips.scss +271 -0
  12. package/src/styles/config/_borders.scss +15 -0
  13. package/src/styles/config/_breakpoints.scss +11 -0
  14. package/src/styles/config/_colors.scss +192 -0
  15. package/src/styles/config/_constants.scss +1 -0
  16. package/src/styles/config/_container-queries.scss +1 -0
  17. package/src/styles/config/_feature-flags.scss +33 -0
  18. package/src/styles/config/_layouts.scss +13 -0
  19. package/src/styles/config/_shadows.scss +9 -0
  20. package/src/styles/config/_spacing.scss +41 -0
  21. package/src/styles/config/_theme-validation.scss +59 -0
  22. package/src/styles/config/_typography.scss +45 -0
  23. package/src/styles/functions/_breakpoints.scss +15 -0
  24. package/src/styles/functions/_colors.scss +280 -0
  25. package/src/styles/functions/_css-vars.scss +33 -0
  26. package/src/styles/functions/_feature-flags.scss +20 -0
  27. package/src/styles/functions/_math.scss +72 -0
  28. package/src/styles/functions/_strings.scss +68 -0
  29. package/src/styles/functions/_types.scss +104 -0
  30. package/src/styles/functions/_units.scss +83 -0
  31. package/src/styles/index.scss +26 -5
  32. package/src/styles/layouts/_container.scss +28 -27
  33. package/src/styles/layouts/_flex.scss +343 -337
  34. package/src/styles/layouts/_grid.scss +131 -128
  35. package/src/styles/mixins-map.json +486 -479
  36. package/src/styles/mixins-map.scss +1 -1
  37. package/src/styles/themes/_theme.scss +230 -211
  38. package/src/styles/tools/_accessibility.scss +50 -0
  39. package/src/styles/tools/_container-queries.scss +98 -0
  40. package/src/styles/tools/_feature-support.scss +46 -0
  41. package/src/styles/tools/_media-queries.scss +70 -0
  42. package/src/styles/tools/_modern-layout.scss +49 -0
  43. package/src/styles/utilities/_alignment.scss +35 -34
  44. package/src/styles/utilities/_animations.scss +312 -311
  45. package/src/styles/utilities/_backdrop-filters.scss +194 -193
  46. package/src/styles/utilities/_borders.scss +243 -237
  47. package/src/styles/utilities/_colors.scss +16 -136
  48. package/src/styles/utilities/_cursor.scss +10 -10
  49. package/src/styles/utilities/_display.scss +192 -191
  50. package/src/styles/utilities/_helpers.scss +106 -106
  51. package/src/styles/utilities/_opacity.scss +27 -25
  52. package/src/styles/utilities/_position.scss +124 -121
  53. package/src/styles/utilities/_shadows.scss +171 -169
  54. package/src/styles/utilities/_sizing.scss +197 -194
  55. package/src/styles/utilities/_spacing.scss +230 -227
  56. package/src/styles/utilities/_transforms.scss +235 -234
  57. package/src/styles/utilities/_transitions.scss +136 -135
  58. package/src/styles/utilities/_typography.scss +254 -239
  59. package/src/styles/utilities/_z-index.scss +69 -68
  60. package/src/styles/abstracts/_config.scss +0 -254
  61. package/src/styles/abstracts/_functions.scss +0 -626
  62. package/src/styles/themes/refactored_borders.ipynb +0 -37
  63. package/src/styles/utilities/_container-queries.scss +0 -95
  64. package/src/styles/utilities/_media-queries.scss +0 -189
  65. package/src/styles/utilities/_tooltips.scss +0 -258
@@ -2,393 +2,394 @@
2
2
  @use "sass:math";
3
3
  @use "sass:map";
4
4
 
5
- @use "../abstracts/functions" as FN;
6
- @use "../abstracts/config" as VAR;
7
-
5
+ @use "../config/feature-flags" as config-flags;
6
+ @use "../config/breakpoints" as config-breakpoint;
7
+ @use "../functions/feature-flags" as fn-flags;
8
+ @use "../functions/units" as fn-units;
8
9
  $generated-keyframes: ();
9
10
 
10
11
  @mixin ensure-keyframes($name) {
11
- @if not list.index($generated-keyframes, $name) {
12
- $generated-keyframes: list.append($generated-keyframes, $name) !global;
12
+ @if not list.index($generated-keyframes, $name) {
13
+ $generated-keyframes: list.append($generated-keyframes, $name) !global;
13
14
 
14
- @keyframes #{$name} {
15
- @content;
15
+ @keyframes #{$name} {
16
+ @content;
17
+ }
16
18
  }
17
- }
18
19
  }
19
20
 
20
21
  // @mixin animate-bounce
21
22
  // @description Creates a bouncing animation
22
23
  // @param {Map} $props - Animation properties
23
24
  @mixin animate-bounce($props: ()) {
24
- $defaults: (
25
- vertical: 0.5rem,
26
- horizontal: 0,
27
- duration: 1s,
28
- timing: ease-in-out,
29
- iteration: infinite,
30
- );
31
-
32
- // Merge with defaults
33
- $props: map.merge($defaults, $props);
34
- $x: map.get($props, "horizontal");
35
- $y: map.get($props, "vertical");
36
- $duration: map.get($props, "duration");
37
- $easing: map.get($props, "timing");
38
- $iteration: map.get($props, "iteration");
39
-
40
- // Handle units
41
- $x-unit: if($x, safe-unit-name(math.unit($x)), "-");
42
- $y-unit: if($y, safe-unit-name(math.unit($y)), "-");
43
-
44
- // Clean values (remove units)
45
- $clean-x: if($x, strip-unit($x), 0);
46
- $clean-y: if($y, strip-unit($y), 0);
47
-
48
- $animation-name: anim-bounce-#{$clean-x}#{$x-unit}-#{$clean-y}#{$y-unit};
49
-
50
- // Apply the animation
51
- animation: #{$animation-name} $duration $easing $iteration;
52
-
53
- // Generate keyframes with ensure-keyframes pattern
54
- @include ensure-keyframes($animation-name) {
55
- 0%,
56
- 100% {
57
- transform: translate(0, 0);
58
- animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
59
- }
25
+ $defaults: (
26
+ vertical: 0.5rem,
27
+ horizontal: 0,
28
+ duration: 1s,
29
+ timing: ease-in-out,
30
+ iteration: infinite,
31
+ );
60
32
 
61
- 50% {
62
- transform: translate($x, $y);
63
- animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
33
+ // Merge with defaults
34
+ $props: map.merge($defaults, $props);
35
+ $x: map.get($props, "horizontal");
36
+ $y: map.get($props, "vertical");
37
+ $duration: map.get($props, "duration");
38
+ $easing: map.get($props, "timing");
39
+ $iteration: map.get($props, "iteration");
40
+
41
+ // Handle units
42
+ $x-unit: if($x, fn-units.safe-unit-name(math.unit($x)), "-");
43
+ $y-unit: if($y, fn-units.safe-unit-name(math.unit($y)), "-");
44
+
45
+ // Clean values (remove units)
46
+ $clean-x: if($x, fn-units.strip-unit($x), 0);
47
+ $clean-y: if($y, fn-units.strip-unit($y), 0);
48
+
49
+ $animation-name: anim-bounce-#{$clean-x}#{$x-unit}-#{$clean-y}#{$y-unit};
50
+
51
+ // Apply the animation
52
+ animation: #{$animation-name} $duration $easing $iteration;
53
+
54
+ // Generate keyframes with ensure-keyframes pattern
55
+ @include ensure-keyframes($animation-name) {
56
+ 0%,
57
+ 100% {
58
+ transform: translate(0, 0);
59
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
60
+ }
61
+
62
+ 50% {
63
+ transform: translate($x, $y);
64
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
65
+ }
64
66
  }
65
- }
66
67
  }
67
68
 
68
69
  @mixin hover-ready {
69
- transition-property: all;
70
- transition-duration: 0.2s;
71
- transition-timing-function: ease-in-out;
70
+ transition-property: all;
71
+ transition-duration: 0.2s;
72
+ transition-timing-function: ease-in-out;
72
73
  }
73
74
 
74
75
  // @mixin animate-pulse
75
76
  // @description Creates a pulsing opacity animation
76
77
  // @param {Map} $props - Animation properties
77
78
  @mixin animate-pulse($props: ()) {
78
- $defaults: (
79
- min-opacity: 0.5,
80
- max-opacity: 1,
81
- duration: 1s,
82
- timing: ease-in-out,
83
- iteration: infinite,
84
- );
85
-
86
- // Merge with defaults
87
- $props: map.merge($defaults, $props);
88
- $min-opacity: map.get($props, "min-opacity");
89
- $max-opacity: map.get($props, "max-opacity");
90
- $duration: map.get($props, "duration");
91
- $timing: map.get($props, "timing");
92
- $iteration: map.get($props, "iteration");
93
-
94
- $animation-name: anim-pulse-#{$min-opacity * 100}-#{$max-opacity * 100};
95
-
96
- animation: #{$animation-name} $duration $timing $iteration;
97
-
98
- @include ensure-keyframes($animation-name) {
99
- 0%,
100
- 100% {
101
- opacity: $max-opacity;
102
- }
79
+ $defaults: (
80
+ min-opacity: 0.5,
81
+ max-opacity: 1,
82
+ duration: 1s,
83
+ timing: ease-in-out,
84
+ iteration: infinite,
85
+ );
86
+
87
+ // Merge with defaults
88
+ $props: map.merge($defaults, $props);
89
+ $min-opacity: map.get($props, "min-opacity");
90
+ $max-opacity: map.get($props, "max-opacity");
91
+ $duration: map.get($props, "duration");
92
+ $timing: map.get($props, "timing");
93
+ $iteration: map.get($props, "iteration");
103
94
 
104
- 50% {
105
- opacity: $min-opacity;
95
+ $animation-name: anim-pulse-#{$min-opacity * 100}-#{$max-opacity * 100};
96
+
97
+ animation: #{$animation-name} $duration $timing $iteration;
98
+
99
+ @include ensure-keyframes($animation-name) {
100
+ 0%,
101
+ 100% {
102
+ opacity: $max-opacity;
103
+ }
104
+
105
+ 50% {
106
+ opacity: $min-opacity;
107
+ }
106
108
  }
107
- }
108
109
  }
109
110
 
110
111
  // @mixin animate-spin
111
112
  // @description Creates a spinning animation
112
113
  // @param {Map} $props - Animation properties
113
114
  @mixin animate-spin($props: ()) {
114
- $defaults: (
115
- direction: normal,
116
- duration: 1s,
117
- timing: linear,
118
- iteration: infinite,
119
- );
120
-
121
- // Merge with defaults
122
- $props: map.merge($defaults, $props);
123
- $direction: map.get($props, "direction");
124
- $duration: map.get($props, "duration");
125
- $timing: map.get($props, "timing");
126
- $iteration: map.get($props, "iteration");
127
-
128
- $animation-name: anim-spin-#{$direction};
129
-
130
- animation: #{$animation-name} $duration $timing $iteration;
131
-
132
- @include ensure-keyframes($animation-name) {
133
- from {
134
- transform: rotate(0deg);
135
- }
115
+ $defaults: (
116
+ direction: normal,
117
+ duration: 1s,
118
+ timing: linear,
119
+ iteration: infinite,
120
+ );
136
121
 
137
- to {
138
- @if $direction == "normal" {
139
- transform: rotate(360deg);
140
- } @else {
141
- transform: rotate(-360deg);
142
- }
122
+ // Merge with defaults
123
+ $props: map.merge($defaults, $props);
124
+ $direction: map.get($props, "direction");
125
+ $duration: map.get($props, "duration");
126
+ $timing: map.get($props, "timing");
127
+ $iteration: map.get($props, "iteration");
128
+
129
+ $animation-name: anim-spin-#{$direction};
130
+
131
+ animation: #{$animation-name} $duration $timing $iteration;
132
+
133
+ @include ensure-keyframes($animation-name) {
134
+ from {
135
+ transform: rotate(0deg);
136
+ }
137
+
138
+ to {
139
+ @if $direction == "normal" {
140
+ transform: rotate(360deg);
141
+ } @else {
142
+ transform: rotate(-360deg);
143
+ }
144
+ }
143
145
  }
144
- }
145
146
  }
146
147
 
147
148
  // @mixin animate-ping
148
149
  // @description Creates a ping animation (scale + fade)
149
150
  // @param {Map} $props - Animation properties
150
151
  @mixin animate-ping($props: ()) {
151
- $defaults: (
152
- scale: 2,
153
- duration: 1s,
154
- timing: cubic-bezier(0, 0, 0.2, 1),
155
- iteration: infinite,
156
- );
157
-
158
- // Merge with defaults
159
- $props: map.merge($defaults, $props);
160
- $scale: map.get($props, "scale");
161
- $duration: map.get($props, "duration");
162
- $timing: map.get($props, "timing");
163
- $iteration: map.get($props, "iteration");
164
-
165
- $animation-name: anim-ping-#{$scale * 10};
166
-
167
- animation: #{$animation-name} $duration $timing $iteration;
168
-
169
- @include ensure-keyframes($animation-name) {
170
- 75%,
171
- 100% {
172
- transform: scale($scale);
173
- opacity: 0;
152
+ $defaults: (
153
+ scale: 2,
154
+ duration: 1s,
155
+ timing: cubic-bezier(0, 0, 0.2, 1),
156
+ iteration: infinite,
157
+ );
158
+
159
+ // Merge with defaults
160
+ $props: map.merge($defaults, $props);
161
+ $scale: map.get($props, "scale");
162
+ $duration: map.get($props, "duration");
163
+ $timing: map.get($props, "timing");
164
+ $iteration: map.get($props, "iteration");
165
+
166
+ $animation-name: anim-ping-#{$scale * 10};
167
+
168
+ animation: #{$animation-name} $duration $timing $iteration;
169
+
170
+ @include ensure-keyframes($animation-name) {
171
+ 75%,
172
+ 100% {
173
+ transform: scale($scale);
174
+ opacity: 0;
175
+ }
174
176
  }
175
- }
176
177
  }
177
178
 
178
179
  // @mixin animate-fade
179
180
  // @description Creates fade in/out animation
180
181
  // @param {Map} $props - Animation properties
181
182
  @mixin animate-fade($props: ()) {
182
- $defaults: (
183
- type: in,
184
- duration: 0.5s,
185
- timing: ease-in-out,
186
- iteration: 1 forwards,
187
- );
188
-
189
- // Merge with defaults
190
- $props: map.merge($defaults, $props);
191
- $type: map.get($props, "type");
192
- $duration: map.get($props, "duration");
193
- $timing: map.get($props, "timing");
194
- $iteration: map.get($props, "iteration");
195
-
196
- $animation-name: anim-fade-#{$type};
197
-
198
- animation: #{$animation-name} $duration $timing $iteration;
199
-
200
- @include ensure-keyframes($animation-name) {
201
- @if $type == "in" {
202
- from {
203
- opacity: 0;
204
- }
205
-
206
- to {
207
- opacity: 1;
208
- }
209
- } @else if $type == "out" {
210
- from {
211
- opacity: 1;
212
- }
213
-
214
- to {
215
- opacity: 0;
216
- }
217
- } @else if $type == "in-up" {
218
- from {
219
- opacity: 0;
220
- transform: translateY(20px);
221
- }
222
-
223
- to {
224
- opacity: 1;
225
- transform: translateY(0);
226
- }
227
- } @else if $type == "in-down" {
228
- from {
229
- opacity: 0;
230
- transform: translateY(-20px);
231
- }
232
-
233
- to {
234
- opacity: 1;
235
- transform: translateY(0);
236
- }
183
+ $defaults: (
184
+ type: in,
185
+ duration: 0.5s,
186
+ timing: ease-in-out,
187
+ iteration: 1 forwards,
188
+ );
189
+
190
+ // Merge with defaults
191
+ $props: map.merge($defaults, $props);
192
+ $type: map.get($props, "type");
193
+ $duration: map.get($props, "duration");
194
+ $timing: map.get($props, "timing");
195
+ $iteration: map.get($props, "iteration");
196
+
197
+ $animation-name: anim-fade-#{$type};
198
+
199
+ animation: #{$animation-name} $duration $timing $iteration;
200
+
201
+ @include ensure-keyframes($animation-name) {
202
+ @if $type == "in" {
203
+ from {
204
+ opacity: 0;
205
+ }
206
+
207
+ to {
208
+ opacity: 1;
209
+ }
210
+ } @else if $type == "out" {
211
+ from {
212
+ opacity: 1;
213
+ }
214
+
215
+ to {
216
+ opacity: 0;
217
+ }
218
+ } @else if $type == "in-up" {
219
+ from {
220
+ opacity: 0;
221
+ transform: translateY(20px);
222
+ }
223
+
224
+ to {
225
+ opacity: 1;
226
+ transform: translateY(0);
227
+ }
228
+ } @else if $type == "in-down" {
229
+ from {
230
+ opacity: 0;
231
+ transform: translateY(-20px);
232
+ }
233
+
234
+ to {
235
+ opacity: 1;
236
+ transform: translateY(0);
237
+ }
238
+ }
237
239
  }
238
- }
239
240
  }
240
241
 
241
242
  // @mixin animate-shake
242
243
  // @description Creates a shake animation
243
244
  // @param {Map} $props - Animation properties
244
245
  @mixin animate-shake($props: ()) {
245
- $defaults: (
246
- intensity: 5px,
247
- duration: 0.5s,
248
- timing: ease-in-out,
249
- iteration: 1,
250
- );
251
-
252
- // Merge with defaults
253
- $props: map.merge($defaults, $props);
254
- $intensity: map.get($props, "intensity");
255
- $duration: map.get($props, "duration");
256
- $timing: map.get($props, "timing");
257
- $iteration: map.get($props, "iteration");
258
-
259
- $intensity-val: strip-unit($intensity);
260
- $animation-name: anim-shake-#{$intensity-val};
261
-
262
- animation: #{$animation-name} $duration $timing $iteration;
263
-
264
- @include ensure-keyframes($animation-name) {
265
- 0%,
266
- 100% {
267
- transform: translateX(0);
268
- }
269
-
270
- 10%,
271
- 30%,
272
- 50%,
273
- 70%,
274
- 90% {
275
- transform: translateX(-$intensity);
276
- }
246
+ $defaults: (
247
+ intensity: 5px,
248
+ duration: 0.5s,
249
+ timing: ease-in-out,
250
+ iteration: 1,
251
+ );
277
252
 
278
- 20%,
279
- 40%,
280
- 60%,
281
- 80% {
282
- transform: translateX($intensity);
253
+ // Merge with defaults
254
+ $props: map.merge($defaults, $props);
255
+ $intensity: map.get($props, "intensity");
256
+ $duration: map.get($props, "duration");
257
+ $timing: map.get($props, "timing");
258
+ $iteration: map.get($props, "iteration");
259
+
260
+ $intensity-val: fn-units.strip-unit($intensity);
261
+ $animation-name: anim-shake-#{$intensity-val};
262
+
263
+ animation: #{$animation-name} $duration $timing $iteration;
264
+
265
+ @include ensure-keyframes($animation-name) {
266
+ 0%,
267
+ 100% {
268
+ transform: translateX(0);
269
+ }
270
+
271
+ 10%,
272
+ 30%,
273
+ 50%,
274
+ 70%,
275
+ 90% {
276
+ transform: translateX(-$intensity);
277
+ }
278
+
279
+ 20%,
280
+ 40%,
281
+ 60%,
282
+ 80% {
283
+ transform: translateX($intensity);
284
+ }
283
285
  }
284
- }
285
286
  }
286
287
 
287
- @if FN.feature-enabled("animations") {
288
- // Add to your existing animation utilities
288
+ @if fn-flags.feature-enabled("animations") {
289
+ // Add to your existing animation utilities
289
290
 
290
- #{VAR.$parent-selector} .animate-pulse {
291
- @include animate-pulse;
292
- }
293
-
294
- #{VAR.$parent-selector} .animate-spin {
295
- @include animate-spin;
296
- }
297
-
298
- #{VAR.$parent-selector} .animate-ping {
299
- @include animate-ping;
300
- }
301
-
302
- #{VAR.$parent-selector} .animate-fade-in {
303
- @include animate-fade(
304
- (
305
- type: in,
306
- )
307
- );
308
- }
309
-
310
- #{VAR.$parent-selector} .animate-fade-out {
311
- @include animate-fade(
312
- (
313
- type: out,
314
- )
315
- );
316
- }
317
-
318
- #{VAR.$parent-selector} .animate-fade-in-up {
319
- @include animate-fade(
320
- (
321
- type: in-up,
322
- )
323
- );
324
- }
325
-
326
- #{VAR.$parent-selector} .animate-fade-in-down {
327
- @include animate-fade(
328
- (
329
- type: in-down,
330
- )
331
- );
332
- }
333
-
334
- #{VAR.$parent-selector} .animate-shake {
335
- @include animate-shake;
336
- }
337
-
338
- // Add responsive variants if needed
339
- @each $breakpoint, $width in VAR.$breakpoints {
340
- @media (min-width: #{$width}) {
341
- #{VAR.$parent-selector} .animate-pulse\@#{$breakpoint} {
291
+ #{config-flags.$parent-selector} .animate-pulse {
342
292
  @include animate-pulse;
343
- }
293
+ }
344
294
 
345
- #{VAR.$parent-selector} .animate-spin\@#{$breakpoint} {
295
+ #{config-flags.$parent-selector} .animate-spin {
346
296
  @include animate-spin;
347
- }
297
+ }
348
298
 
349
- #{VAR.$parent-selector} .animate-ping\@#{$breakpoint} {
299
+ #{config-flags.$parent-selector} .animate-ping {
350
300
  @include animate-ping;
351
- }
301
+ }
352
302
 
353
- #{VAR.$parent-selector} .animate-fade-in\@#{$breakpoint} {
303
+ #{config-flags.$parent-selector} .animate-fade-in {
354
304
  @include animate-fade(
355
- (
356
- type: in,
357
- )
305
+ (
306
+ type: in,
307
+ )
358
308
  );
359
- }
309
+ }
360
310
 
361
- #{VAR.$parent-selector} .animate-fade-out\@#{$breakpoint} {
311
+ #{config-flags.$parent-selector} .animate-fade-out {
362
312
  @include animate-fade(
363
- (
364
- type: out,
365
- )
313
+ (
314
+ type: out,
315
+ )
366
316
  );
367
- }
317
+ }
368
318
 
369
- #{VAR.$parent-selector} .animate-fade-in-up\@#{$breakpoint} {
319
+ #{config-flags.$parent-selector} .animate-fade-in-up {
370
320
  @include animate-fade(
371
- (
372
- type: in-up,
373
- )
321
+ (
322
+ type: in-up,
323
+ )
374
324
  );
375
- }
325
+ }
376
326
 
377
- #{VAR.$parent-selector} .animate-fade-in-down\@#{$breakpoint} {
327
+ #{config-flags.$parent-selector} .animate-fade-in-down {
378
328
  @include animate-fade(
379
- (
380
- type: in-down,
381
- )
329
+ (
330
+ type: in-down,
331
+ )
382
332
  );
383
- }
333
+ }
384
334
 
385
- #{VAR.$parent-selector} .animate-shake\@#{$breakpoint} {
335
+ #{config-flags.$parent-selector} .animate-shake {
386
336
  @include animate-shake;
387
- }
388
337
  }
389
- }
390
338
 
391
- #{VAR.$parent-selector} .hover-ready {
392
- @include hover-ready;
393
- }
339
+ // Add responsive variants if needed
340
+ @each $breakpoint, $width in config-breakpoint.$breakpoints {
341
+ @media (min-width: #{$width}) {
342
+ #{config-flags.$parent-selector} .animate-pulse\@#{$breakpoint} {
343
+ @include animate-pulse;
344
+ }
345
+
346
+ #{config-flags.$parent-selector} .animate-spin\@#{$breakpoint} {
347
+ @include animate-spin;
348
+ }
349
+
350
+ #{config-flags.$parent-selector} .animate-ping\@#{$breakpoint} {
351
+ @include animate-ping;
352
+ }
353
+
354
+ #{config-flags.$parent-selector} .animate-fade-in\@#{$breakpoint} {
355
+ @include animate-fade(
356
+ (
357
+ type: in,
358
+ )
359
+ );
360
+ }
361
+
362
+ #{config-flags.$parent-selector} .animate-fade-out\@#{$breakpoint} {
363
+ @include animate-fade(
364
+ (
365
+ type: out,
366
+ )
367
+ );
368
+ }
369
+
370
+ #{config-flags.$parent-selector} .animate-fade-in-up\@#{$breakpoint} {
371
+ @include animate-fade(
372
+ (
373
+ type: in-up,
374
+ )
375
+ );
376
+ }
377
+
378
+ #{config-flags.$parent-selector} .animate-fade-in-down\@#{$breakpoint} {
379
+ @include animate-fade(
380
+ (
381
+ type: in-down,
382
+ )
383
+ );
384
+ }
385
+
386
+ #{config-flags.$parent-selector} .animate-shake\@#{$breakpoint} {
387
+ @include animate-shake;
388
+ }
389
+ }
390
+ }
391
+
392
+ #{config-flags.$parent-selector} .hover-ready {
393
+ @include hover-ready;
394
+ }
394
395
  }