@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.
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/dist/nuvoui.css +878 -646
- package/dist/nuvoui.css.map +1 -1
- package/dist/nuvoui.min.css +23 -1
- package/dist/nuvoui.min.css.map +1 -1
- package/package.json +1 -1
- package/src/styles/base/_base.scss +148 -147
- package/src/styles/base/_reset.scss +41 -49
- package/src/styles/build.scss +25 -1
- package/src/styles/components/_tooltips.scss +271 -0
- package/src/styles/config/_borders.scss +15 -0
- package/src/styles/config/_breakpoints.scss +11 -0
- package/src/styles/config/_colors.scss +192 -0
- package/src/styles/config/_constants.scss +1 -0
- package/src/styles/config/_container-queries.scss +1 -0
- package/src/styles/config/_feature-flags.scss +33 -0
- package/src/styles/config/_layouts.scss +13 -0
- package/src/styles/config/_shadows.scss +9 -0
- package/src/styles/config/_spacing.scss +41 -0
- package/src/styles/config/_theme-validation.scss +59 -0
- package/src/styles/config/_typography.scss +45 -0
- package/src/styles/functions/_breakpoints.scss +15 -0
- package/src/styles/functions/_colors.scss +280 -0
- package/src/styles/functions/_css-vars.scss +33 -0
- package/src/styles/functions/_feature-flags.scss +20 -0
- package/src/styles/functions/_math.scss +72 -0
- package/src/styles/functions/_strings.scss +68 -0
- package/src/styles/functions/_types.scss +104 -0
- package/src/styles/functions/_units.scss +83 -0
- package/src/styles/index.scss +26 -5
- package/src/styles/layouts/_container.scss +28 -27
- package/src/styles/layouts/_flex.scss +343 -337
- package/src/styles/layouts/_grid.scss +131 -128
- package/src/styles/mixins-map.json +486 -479
- package/src/styles/mixins-map.scss +1 -1
- package/src/styles/themes/_theme.scss +230 -211
- package/src/styles/tools/_accessibility.scss +50 -0
- package/src/styles/tools/_container-queries.scss +98 -0
- package/src/styles/tools/_feature-support.scss +46 -0
- package/src/styles/tools/_media-queries.scss +70 -0
- package/src/styles/tools/_modern-layout.scss +49 -0
- package/src/styles/utilities/_alignment.scss +35 -34
- package/src/styles/utilities/_animations.scss +312 -311
- package/src/styles/utilities/_backdrop-filters.scss +194 -193
- package/src/styles/utilities/_borders.scss +243 -237
- package/src/styles/utilities/_colors.scss +16 -136
- package/src/styles/utilities/_cursor.scss +10 -10
- package/src/styles/utilities/_display.scss +192 -191
- package/src/styles/utilities/_helpers.scss +106 -106
- package/src/styles/utilities/_opacity.scss +27 -25
- package/src/styles/utilities/_position.scss +124 -121
- package/src/styles/utilities/_shadows.scss +171 -169
- package/src/styles/utilities/_sizing.scss +197 -194
- package/src/styles/utilities/_spacing.scss +230 -227
- package/src/styles/utilities/_transforms.scss +235 -234
- package/src/styles/utilities/_transitions.scss +136 -135
- package/src/styles/utilities/_typography.scss +254 -239
- package/src/styles/utilities/_z-index.scss +69 -68
- package/src/styles/abstracts/_config.scss +0 -254
- package/src/styles/abstracts/_functions.scss +0 -626
- package/src/styles/themes/refactored_borders.ipynb +0 -37
- package/src/styles/utilities/_container-queries.scss +0 -95
- package/src/styles/utilities/_media-queries.scss +0 -189
- 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 "../
|
|
6
|
-
@use "../
|
|
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
|
-
|
|
12
|
-
|
|
12
|
+
@if not list.index($generated-keyframes, $name) {
|
|
13
|
+
$generated-keyframes: list.append($generated-keyframes, $name) !global;
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
105
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
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
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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
|
|
288
|
-
|
|
288
|
+
@if fn-flags.feature-enabled("animations") {
|
|
289
|
+
// Add to your existing animation utilities
|
|
289
290
|
|
|
290
|
-
|
|
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
|
-
|
|
295
|
+
#{config-flags.$parent-selector} .animate-spin {
|
|
346
296
|
@include animate-spin;
|
|
347
|
-
|
|
297
|
+
}
|
|
348
298
|
|
|
349
|
-
|
|
299
|
+
#{config-flags.$parent-selector} .animate-ping {
|
|
350
300
|
@include animate-ping;
|
|
351
|
-
|
|
301
|
+
}
|
|
352
302
|
|
|
353
|
-
|
|
303
|
+
#{config-flags.$parent-selector} .animate-fade-in {
|
|
354
304
|
@include animate-fade(
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
305
|
+
(
|
|
306
|
+
type: in,
|
|
307
|
+
)
|
|
358
308
|
);
|
|
359
|
-
|
|
309
|
+
}
|
|
360
310
|
|
|
361
|
-
|
|
311
|
+
#{config-flags.$parent-selector} .animate-fade-out {
|
|
362
312
|
@include animate-fade(
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
313
|
+
(
|
|
314
|
+
type: out,
|
|
315
|
+
)
|
|
366
316
|
);
|
|
367
|
-
|
|
317
|
+
}
|
|
368
318
|
|
|
369
|
-
|
|
319
|
+
#{config-flags.$parent-selector} .animate-fade-in-up {
|
|
370
320
|
@include animate-fade(
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
321
|
+
(
|
|
322
|
+
type: in-up,
|
|
323
|
+
)
|
|
374
324
|
);
|
|
375
|
-
|
|
325
|
+
}
|
|
376
326
|
|
|
377
|
-
|
|
327
|
+
#{config-flags.$parent-selector} .animate-fade-in-down {
|
|
378
328
|
@include animate-fade(
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
329
|
+
(
|
|
330
|
+
type: in-down,
|
|
331
|
+
)
|
|
382
332
|
);
|
|
383
|
-
|
|
333
|
+
}
|
|
384
334
|
|
|
385
|
-
|
|
335
|
+
#{config-flags.$parent-selector} .animate-shake {
|
|
386
336
|
@include animate-shake;
|
|
387
|
-
}
|
|
388
337
|
}
|
|
389
|
-
}
|
|
390
338
|
|
|
391
|
-
|
|
392
|
-
@
|
|
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
|
}
|