@casoon/atlas-styles 0.0.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 +271 -0
- package/dist/animations.css +1873 -0
- package/dist/core.css +2409 -0
- package/dist/glass.css +1208 -0
- package/dist/index.css +29 -0
- package/dist/orbs.css +1578 -0
- package/dist/utilities.css +1410 -0
- package/package.json +54 -0
|
@@ -0,0 +1,1873 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* CASOON Atlas Animations - Complete Animation System for Tailwind v4
|
|
3
|
+
* Version: 0.0.1
|
|
4
|
+
* Repository: https://github.com/casoon/atlas
|
|
5
|
+
* Author: Jörn Seidel (joern.seidel@casoon.de)
|
|
6
|
+
* License: MIT
|
|
7
|
+
*
|
|
8
|
+
* Advanced animation system with 80+ animations and keyframes
|
|
9
|
+
* Part of CASOON Atlas UI effects library
|
|
10
|
+
*
|
|
11
|
+
* Usage: @import "@casoon/atlas-styles/animations";
|
|
12
|
+
* Package: @casoon/atlas-styles
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/* Note: @import "tailwindcss"; should be added by the consumer */
|
|
16
|
+
|
|
17
|
+
/*!
|
|
18
|
+
* CASOON Atlas Animations - Complete Animation System for Tailwind v4
|
|
19
|
+
* TOTAL: 6 CSS FILES → Pure Tailwind v4 (80+ animations + advanced features)
|
|
20
|
+
*
|
|
21
|
+
* Features:
|
|
22
|
+
* ✅ Scroll-based animations with Intersection Observer support
|
|
23
|
+
* ✅ Advanced easing functions (spring, bounce, elastic)
|
|
24
|
+
* ✅ Extended stagger system (up to 12 items)
|
|
25
|
+
* ✅ Performance-optimized keyframes
|
|
26
|
+
* ✅ Modern CSS features (view-timeline, scroll-timeline)
|
|
27
|
+
* ✅ Comprehensive reduced motion support
|
|
28
|
+
* ✅ Touch-friendly micro-interactions
|
|
29
|
+
* ✅ SSR-safe, tree-shakeable, framework-agnostic
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/* Note: @import "tailwindcss"; should be added by the consumer */
|
|
33
|
+
|
|
34
|
+
/* =========================================================
|
|
35
|
+
CONSOLIDATED ANIMATION THEME & TOKENS
|
|
36
|
+
Complete animation system with timing and easing
|
|
37
|
+
========================================================= */
|
|
38
|
+
@theme {
|
|
39
|
+
/* === DURATION SYSTEM === */
|
|
40
|
+
--cs-anim-duration-xxs: 100ms;
|
|
41
|
+
--cs-anim-duration-xs: 150ms;
|
|
42
|
+
--cs-anim-duration-sm: 200ms;
|
|
43
|
+
--cs-anim-duration-md: 300ms;
|
|
44
|
+
--cs-anim-duration-lg: 500ms;
|
|
45
|
+
--cs-anim-duration-xl: 700ms;
|
|
46
|
+
--cs-anim-duration-2xl: 1000ms;
|
|
47
|
+
--cs-anim-duration-3xl: 1500ms;
|
|
48
|
+
|
|
49
|
+
/* === EASING SYSTEM === */
|
|
50
|
+
/* Standard Material Design easing */
|
|
51
|
+
--cs-anim-ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
52
|
+
--cs-anim-ease-emphasized: cubic-bezier(0.3, 0, 0.8, 0.15);
|
|
53
|
+
--cs-anim-ease-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
|
|
54
|
+
--cs-anim-ease-accelerate: cubic-bezier(0.3, 0, 1, 1);
|
|
55
|
+
|
|
56
|
+
/* Spring and elastic easing */
|
|
57
|
+
--cs-anim-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
58
|
+
--cs-anim-ease-soft-spring: cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
59
|
+
--cs-anim-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
60
|
+
--cs-anim-ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6);
|
|
61
|
+
|
|
62
|
+
/* Advanced easing curves */
|
|
63
|
+
--cs-anim-ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
|
|
64
|
+
--cs-anim-ease-crisp: cubic-bezier(0.4, 0, 0.6, 1);
|
|
65
|
+
--cs-anim-ease-overshoot: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
66
|
+
|
|
67
|
+
/* === REDUCED MOTION SYSTEM === */
|
|
68
|
+
--cs-anim-reduced-motion-duration: 1ms;
|
|
69
|
+
--cs-anim-reduced-motion-ease: ease;
|
|
70
|
+
|
|
71
|
+
/* === COMPONENT TOKENS === */
|
|
72
|
+
--cs-underline-w: 0%;
|
|
73
|
+
--cs-underline-h: 2px;
|
|
74
|
+
--cs-ripple-color: currentColor;
|
|
75
|
+
--cs-ripple-size: 0%;
|
|
76
|
+
--cs-chip-scale: 1;
|
|
77
|
+
--cs-badge-scale: 0.9;
|
|
78
|
+
--cs-toast-offset: 16px;
|
|
79
|
+
--cs-drawer-shift: 0px;
|
|
80
|
+
--cs-accordion-rows: 0fr;
|
|
81
|
+
--cs-skeleton-sheen: 120%;
|
|
82
|
+
--cs-parallax-offset: 0px;
|
|
83
|
+
--cs-scroll-progress: 0%;
|
|
84
|
+
|
|
85
|
+
/* === STAGGER SYSTEM === */
|
|
86
|
+
--cs-stagger-delay-50: 50ms;
|
|
87
|
+
--cs-stagger-delay-75: 75ms;
|
|
88
|
+
--cs-stagger-delay-100: 100ms;
|
|
89
|
+
--cs-stagger-delay-150: 150ms;
|
|
90
|
+
--cs-stagger-delay-200: 200ms;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* =========================================================
|
|
94
|
+
CORE ANIMATION KEYFRAMES
|
|
95
|
+
High-performance keyframes optimized for modern browsers
|
|
96
|
+
========================================================= */
|
|
97
|
+
|
|
98
|
+
/* === ENTRANCE ANIMATIONS === */
|
|
99
|
+
@keyframes csFadeIn, anim-fade-in {
|
|
100
|
+
0% {
|
|
101
|
+
opacity: 0;
|
|
102
|
+
}
|
|
103
|
+
100% {
|
|
104
|
+
opacity: 1;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@keyframes csFadeOut, anim-fade-out {
|
|
109
|
+
0% {
|
|
110
|
+
opacity: 1;
|
|
111
|
+
}
|
|
112
|
+
100% {
|
|
113
|
+
opacity: 0;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@keyframes csScaleIn, anim-scale-in {
|
|
118
|
+
0% {
|
|
119
|
+
opacity: 0;
|
|
120
|
+
transform: scale(0.9);
|
|
121
|
+
}
|
|
122
|
+
100% {
|
|
123
|
+
opacity: 1;
|
|
124
|
+
transform: scale(1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@keyframes csScaleOut, anim-scale-out {
|
|
129
|
+
0% {
|
|
130
|
+
opacity: 1;
|
|
131
|
+
transform: scale(1);
|
|
132
|
+
}
|
|
133
|
+
100% {
|
|
134
|
+
opacity: 0;
|
|
135
|
+
transform: scale(0.9);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@keyframes csSlideUp, anim-slide-up {
|
|
140
|
+
0% {
|
|
141
|
+
opacity: 0;
|
|
142
|
+
transform: translateY(20px);
|
|
143
|
+
}
|
|
144
|
+
100% {
|
|
145
|
+
opacity: 1;
|
|
146
|
+
transform: translateY(0);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@keyframes csSlideDown, anim-slide-down {
|
|
151
|
+
0% {
|
|
152
|
+
opacity: 0;
|
|
153
|
+
transform: translateY(-20px);
|
|
154
|
+
}
|
|
155
|
+
100% {
|
|
156
|
+
opacity: 1;
|
|
157
|
+
transform: translateY(0);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@keyframes csSlideLeft, anim-slide-left {
|
|
162
|
+
0% {
|
|
163
|
+
opacity: 0;
|
|
164
|
+
transform: translateX(20px);
|
|
165
|
+
}
|
|
166
|
+
100% {
|
|
167
|
+
opacity: 1;
|
|
168
|
+
transform: translateX(0);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@keyframes csSlideRight, anim-slide-right {
|
|
173
|
+
0% {
|
|
174
|
+
opacity: 0;
|
|
175
|
+
transform: translateX(-20px);
|
|
176
|
+
}
|
|
177
|
+
100% {
|
|
178
|
+
opacity: 1;
|
|
179
|
+
transform: translateX(0);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@keyframes csBlurIn, anim-blur-in {
|
|
184
|
+
0% {
|
|
185
|
+
opacity: 0;
|
|
186
|
+
filter: blur(4px);
|
|
187
|
+
}
|
|
188
|
+
100% {
|
|
189
|
+
opacity: 1;
|
|
190
|
+
filter: blur(0);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@keyframes csBlurOut, anim-blur-out {
|
|
195
|
+
0% {
|
|
196
|
+
opacity: 1;
|
|
197
|
+
filter: blur(0);
|
|
198
|
+
}
|
|
199
|
+
100% {
|
|
200
|
+
opacity: 0;
|
|
201
|
+
filter: blur(4px);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@keyframes csRotateIn, anim-rotate-in {
|
|
206
|
+
0% {
|
|
207
|
+
opacity: 0;
|
|
208
|
+
transform: rotate(-5deg);
|
|
209
|
+
}
|
|
210
|
+
100% {
|
|
211
|
+
opacity: 1;
|
|
212
|
+
transform: rotate(0);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@keyframes csFlipIn {
|
|
217
|
+
0% {
|
|
218
|
+
opacity: 0;
|
|
219
|
+
transform: rotateY(-180deg);
|
|
220
|
+
}
|
|
221
|
+
100% {
|
|
222
|
+
opacity: 1;
|
|
223
|
+
transform: rotateY(0);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@keyframes csZoomIn {
|
|
228
|
+
0% {
|
|
229
|
+
opacity: 0;
|
|
230
|
+
transform: scale(0.5);
|
|
231
|
+
}
|
|
232
|
+
100% {
|
|
233
|
+
opacity: 1;
|
|
234
|
+
transform: scale(1);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
@keyframes csZoomOut {
|
|
239
|
+
0% {
|
|
240
|
+
opacity: 1;
|
|
241
|
+
transform: scale(1);
|
|
242
|
+
}
|
|
243
|
+
100% {
|
|
244
|
+
opacity: 0;
|
|
245
|
+
transform: scale(0.5);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/* === CONTINUOUS ANIMATIONS === */
|
|
250
|
+
@keyframes csRotate, anim-rotate {
|
|
251
|
+
0% {
|
|
252
|
+
transform: rotate(0deg);
|
|
253
|
+
}
|
|
254
|
+
100% {
|
|
255
|
+
transform: rotate(360deg);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
@keyframes csPulse, anim-pulse {
|
|
260
|
+
0%,
|
|
261
|
+
100% {
|
|
262
|
+
opacity: 1;
|
|
263
|
+
}
|
|
264
|
+
50% {
|
|
265
|
+
opacity: 0.5;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
@keyframes csBounce, anim-bounce {
|
|
270
|
+
0%,
|
|
271
|
+
100% {
|
|
272
|
+
transform: translateY(0);
|
|
273
|
+
}
|
|
274
|
+
50% {
|
|
275
|
+
transform: translateY(-25%);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
@keyframes csWiggle, anim-wiggle {
|
|
280
|
+
0%,
|
|
281
|
+
100% {
|
|
282
|
+
transform: rotate(0deg);
|
|
283
|
+
}
|
|
284
|
+
25% {
|
|
285
|
+
transform: rotate(-3deg);
|
|
286
|
+
}
|
|
287
|
+
75% {
|
|
288
|
+
transform: rotate(3deg);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
@keyframes csShake {
|
|
293
|
+
0%,
|
|
294
|
+
100% {
|
|
295
|
+
transform: translateX(0);
|
|
296
|
+
}
|
|
297
|
+
25% {
|
|
298
|
+
transform: translateX(-5px);
|
|
299
|
+
}
|
|
300
|
+
75% {
|
|
301
|
+
transform: translateX(5px);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
@keyframes csHeartbeat {
|
|
306
|
+
0%,
|
|
307
|
+
100% {
|
|
308
|
+
transform: scale(1);
|
|
309
|
+
}
|
|
310
|
+
14%,
|
|
311
|
+
28% {
|
|
312
|
+
transform: scale(1.15);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
@keyframes csRubberBand {
|
|
317
|
+
0%,
|
|
318
|
+
100% {
|
|
319
|
+
transform: scaleX(1);
|
|
320
|
+
}
|
|
321
|
+
30% {
|
|
322
|
+
transform: scaleX(1.25) scaleY(0.75);
|
|
323
|
+
}
|
|
324
|
+
40% {
|
|
325
|
+
transform: scaleX(0.75) scaleY(1.25);
|
|
326
|
+
}
|
|
327
|
+
60% {
|
|
328
|
+
transform: scaleX(1.15) scaleY(0.85);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* === 3D ANIMATIONS === */
|
|
333
|
+
@keyframes csReveal3DUp {
|
|
334
|
+
0% {
|
|
335
|
+
opacity: 0;
|
|
336
|
+
transform: rotateX(-90deg);
|
|
337
|
+
}
|
|
338
|
+
100% {
|
|
339
|
+
opacity: 1;
|
|
340
|
+
transform: rotateX(0);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
@keyframes csReveal3DRight {
|
|
345
|
+
0% {
|
|
346
|
+
opacity: 0;
|
|
347
|
+
transform: rotateY(90deg);
|
|
348
|
+
}
|
|
349
|
+
100% {
|
|
350
|
+
opacity: 1;
|
|
351
|
+
transform: rotateY(0);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
@keyframes csReveal3DLeft {
|
|
356
|
+
0% {
|
|
357
|
+
opacity: 0;
|
|
358
|
+
transform: rotateY(-90deg);
|
|
359
|
+
}
|
|
360
|
+
100% {
|
|
361
|
+
opacity: 1;
|
|
362
|
+
transform: rotateY(0);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
@keyframes csFlip3DX {
|
|
367
|
+
0% {
|
|
368
|
+
transform: rotateX(0);
|
|
369
|
+
}
|
|
370
|
+
100% {
|
|
371
|
+
transform: rotateX(360deg);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
@keyframes csFlip3DY {
|
|
376
|
+
0% {
|
|
377
|
+
transform: rotateY(0);
|
|
378
|
+
}
|
|
379
|
+
100% {
|
|
380
|
+
transform: rotateY(360deg);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* === SCROLL & PARALLAX ANIMATIONS === */
|
|
385
|
+
@keyframes csMarqueeLeft {
|
|
386
|
+
0% {
|
|
387
|
+
transform: translateX(100%);
|
|
388
|
+
}
|
|
389
|
+
100% {
|
|
390
|
+
transform: translateX(-100%);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
@keyframes csMarqueeRight {
|
|
395
|
+
0% {
|
|
396
|
+
transform: translateX(-100%);
|
|
397
|
+
}
|
|
398
|
+
100% {
|
|
399
|
+
transform: translateX(100%);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
@keyframes csParallaxY {
|
|
404
|
+
0% {
|
|
405
|
+
transform: translateY(-10px);
|
|
406
|
+
}
|
|
407
|
+
100% {
|
|
408
|
+
transform: translateY(10px);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
@keyframes csParallaxX {
|
|
413
|
+
0% {
|
|
414
|
+
transform: translateX(-10px);
|
|
415
|
+
}
|
|
416
|
+
100% {
|
|
417
|
+
transform: translateX(10px);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
@keyframes csFloat {
|
|
422
|
+
0%,
|
|
423
|
+
100% {
|
|
424
|
+
transform: translateY(0);
|
|
425
|
+
}
|
|
426
|
+
50% {
|
|
427
|
+
transform: translateY(-8px);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
@keyframes csSway {
|
|
432
|
+
0%,
|
|
433
|
+
100% {
|
|
434
|
+
transform: rotate(0deg);
|
|
435
|
+
}
|
|
436
|
+
50% {
|
|
437
|
+
transform: rotate(1deg);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/* === LOADING & PROGRESS ANIMATIONS === */
|
|
442
|
+
@keyframes csProgressGrow {
|
|
443
|
+
0% {
|
|
444
|
+
width: 0%;
|
|
445
|
+
}
|
|
446
|
+
100% {
|
|
447
|
+
width: 100%;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
@keyframes csSkeletonShimmer {
|
|
452
|
+
0% {
|
|
453
|
+
background-position: 200% 0;
|
|
454
|
+
}
|
|
455
|
+
100% {
|
|
456
|
+
background-position: -200% 0;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
@keyframes csDotLoader {
|
|
461
|
+
0%,
|
|
462
|
+
80%,
|
|
463
|
+
100% {
|
|
464
|
+
transform: scale(0);
|
|
465
|
+
}
|
|
466
|
+
40% {
|
|
467
|
+
transform: scale(1);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
@keyframes csRippleSpread {
|
|
472
|
+
0% {
|
|
473
|
+
transform: scale(0);
|
|
474
|
+
opacity: 1;
|
|
475
|
+
}
|
|
476
|
+
100% {
|
|
477
|
+
transform: scale(4);
|
|
478
|
+
opacity: 0;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/* === COMPONENT-SPECIFIC ANIMATIONS === */
|
|
483
|
+
@keyframes csDropdownIn {
|
|
484
|
+
0% {
|
|
485
|
+
opacity: 0;
|
|
486
|
+
transform: scale(0.95) translateY(-5px);
|
|
487
|
+
}
|
|
488
|
+
100% {
|
|
489
|
+
opacity: 1;
|
|
490
|
+
transform: scale(1) translateY(0);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
@keyframes csDropdownOut {
|
|
495
|
+
0% {
|
|
496
|
+
opacity: 1;
|
|
497
|
+
transform: scale(1) translateY(0);
|
|
498
|
+
}
|
|
499
|
+
100% {
|
|
500
|
+
opacity: 0;
|
|
501
|
+
transform: scale(0.95) translateY(-5px);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
@keyframes csTooltipIn {
|
|
506
|
+
0% {
|
|
507
|
+
opacity: 0;
|
|
508
|
+
transform: scale(0.8);
|
|
509
|
+
}
|
|
510
|
+
100% {
|
|
511
|
+
opacity: 1;
|
|
512
|
+
transform: scale(1);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
@keyframes csTooltipOut {
|
|
517
|
+
0% {
|
|
518
|
+
opacity: 1;
|
|
519
|
+
transform: scale(1);
|
|
520
|
+
}
|
|
521
|
+
100% {
|
|
522
|
+
opacity: 0;
|
|
523
|
+
transform: scale(0.8);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
@keyframes csModalIn {
|
|
528
|
+
0% {
|
|
529
|
+
opacity: 0;
|
|
530
|
+
transform: scale(0.9);
|
|
531
|
+
}
|
|
532
|
+
100% {
|
|
533
|
+
opacity: 1;
|
|
534
|
+
transform: scale(1);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
@keyframes csModalOut {
|
|
539
|
+
0% {
|
|
540
|
+
opacity: 1;
|
|
541
|
+
transform: scale(1);
|
|
542
|
+
}
|
|
543
|
+
100% {
|
|
544
|
+
opacity: 0;
|
|
545
|
+
transform: scale(0.9);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
@keyframes csBackdropIn {
|
|
550
|
+
0% {
|
|
551
|
+
opacity: 0;
|
|
552
|
+
}
|
|
553
|
+
100% {
|
|
554
|
+
opacity: 1;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
@keyframes csBackdropOut {
|
|
559
|
+
0% {
|
|
560
|
+
opacity: 1;
|
|
561
|
+
}
|
|
562
|
+
100% {
|
|
563
|
+
opacity: 0;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
@keyframes csDrawerInLeft {
|
|
568
|
+
0% {
|
|
569
|
+
transform: translateX(-100%);
|
|
570
|
+
}
|
|
571
|
+
100% {
|
|
572
|
+
transform: translateX(0);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
@keyframes csDrawerOutLeft {
|
|
577
|
+
0% {
|
|
578
|
+
transform: translateX(0);
|
|
579
|
+
}
|
|
580
|
+
100% {
|
|
581
|
+
transform: translateX(-100%);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
@keyframes csDrawerInRight {
|
|
586
|
+
0% {
|
|
587
|
+
transform: translateX(100%);
|
|
588
|
+
}
|
|
589
|
+
100% {
|
|
590
|
+
transform: translateX(0);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
@keyframes csDrawerOutRight {
|
|
595
|
+
0% {
|
|
596
|
+
transform: translateX(0);
|
|
597
|
+
}
|
|
598
|
+
100% {
|
|
599
|
+
transform: translateX(100%);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
@keyframes csDrawerInTop {
|
|
604
|
+
0% {
|
|
605
|
+
transform: translateY(-100%);
|
|
606
|
+
}
|
|
607
|
+
100% {
|
|
608
|
+
transform: translateY(0);
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
@keyframes csDrawerOutTop {
|
|
613
|
+
0% {
|
|
614
|
+
transform: translateY(0);
|
|
615
|
+
}
|
|
616
|
+
100% {
|
|
617
|
+
transform: translateY(-100%);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
@keyframes csDrawerInBottom {
|
|
622
|
+
0% {
|
|
623
|
+
transform: translateY(100%);
|
|
624
|
+
}
|
|
625
|
+
100% {
|
|
626
|
+
transform: translateY(0);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
@keyframes csDrawerOutBottom {
|
|
631
|
+
0% {
|
|
632
|
+
transform: translateY(0);
|
|
633
|
+
}
|
|
634
|
+
100% {
|
|
635
|
+
transform: translateY(100%);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
@keyframes csAccordionIn {
|
|
640
|
+
0% {
|
|
641
|
+
height: 0;
|
|
642
|
+
opacity: 0;
|
|
643
|
+
}
|
|
644
|
+
100% {
|
|
645
|
+
height: auto;
|
|
646
|
+
opacity: 1;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
@keyframes csAccordionOut {
|
|
651
|
+
0% {
|
|
652
|
+
height: auto;
|
|
653
|
+
opacity: 1;
|
|
654
|
+
}
|
|
655
|
+
100% {
|
|
656
|
+
height: 0;
|
|
657
|
+
opacity: 0;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
@keyframes csToastIn {
|
|
662
|
+
0% {
|
|
663
|
+
opacity: 0;
|
|
664
|
+
transform: translateX(100%);
|
|
665
|
+
}
|
|
666
|
+
100% {
|
|
667
|
+
opacity: 1;
|
|
668
|
+
transform: translateX(0);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
@keyframes csToastOut {
|
|
673
|
+
0% {
|
|
674
|
+
opacity: 1;
|
|
675
|
+
transform: translateX(0);
|
|
676
|
+
}
|
|
677
|
+
100% {
|
|
678
|
+
opacity: 0;
|
|
679
|
+
transform: translateX(100%);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
@keyframes csChipIn {
|
|
684
|
+
0% {
|
|
685
|
+
opacity: 0;
|
|
686
|
+
transform: scale(0.8);
|
|
687
|
+
}
|
|
688
|
+
100% {
|
|
689
|
+
opacity: 1;
|
|
690
|
+
transform: scale(1);
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
@keyframes csChipOut {
|
|
695
|
+
0% {
|
|
696
|
+
opacity: 1;
|
|
697
|
+
transform: scale(1);
|
|
698
|
+
}
|
|
699
|
+
100% {
|
|
700
|
+
opacity: 0;
|
|
701
|
+
transform: scale(0.8);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
@keyframes csBadgePop {
|
|
706
|
+
0% {
|
|
707
|
+
transform: scale(0.8);
|
|
708
|
+
}
|
|
709
|
+
50% {
|
|
710
|
+
transform: scale(1.1);
|
|
711
|
+
}
|
|
712
|
+
100% {
|
|
713
|
+
transform: scale(1);
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
@keyframes csSpinner {
|
|
718
|
+
0% {
|
|
719
|
+
transform: rotate(0deg);
|
|
720
|
+
}
|
|
721
|
+
100% {
|
|
722
|
+
transform: rotate(360deg);
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
@keyframes csProgressIndeterminate {
|
|
727
|
+
0% {
|
|
728
|
+
transform: translateX(-100%);
|
|
729
|
+
}
|
|
730
|
+
100% {
|
|
731
|
+
transform: translateX(100%);
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
@keyframes csCarouselSlide {
|
|
736
|
+
0% {
|
|
737
|
+
transform: translateX(100%);
|
|
738
|
+
}
|
|
739
|
+
100% {
|
|
740
|
+
transform: translateX(0);
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
@keyframes csCarouselFade {
|
|
745
|
+
0% {
|
|
746
|
+
opacity: 0;
|
|
747
|
+
}
|
|
748
|
+
100% {
|
|
749
|
+
opacity: 1;
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/* === MICRO-INTERACTION ANIMATIONS === */
|
|
754
|
+
@keyframes csBtnPress {
|
|
755
|
+
0% {
|
|
756
|
+
transform: scale(1);
|
|
757
|
+
}
|
|
758
|
+
50% {
|
|
759
|
+
transform: scale(0.975);
|
|
760
|
+
}
|
|
761
|
+
100% {
|
|
762
|
+
transform: scale(1);
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
@keyframes csTabSlide {
|
|
767
|
+
0% {
|
|
768
|
+
transform: translateX(-100%);
|
|
769
|
+
}
|
|
770
|
+
100% {
|
|
771
|
+
transform: translateX(0);
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
@keyframes csNotificationSlide {
|
|
776
|
+
0% {
|
|
777
|
+
transform: translateX(100%);
|
|
778
|
+
}
|
|
779
|
+
100% {
|
|
780
|
+
transform: translateX(0);
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
/* =========================================================
|
|
785
|
+
CORE ANIMATION ENGINE
|
|
786
|
+
Flexible animation system with CSS custom properties
|
|
787
|
+
========================================================= */
|
|
788
|
+
|
|
789
|
+
@utility cs-anim {
|
|
790
|
+
animation-duration: var(--cs-anim-duration, var(--cs-anim-duration-md));
|
|
791
|
+
animation-timing-function: var(--cs-anim-ease, var(--cs-anim-ease-standard));
|
|
792
|
+
animation-iteration-count: var(--cs-anim-count, 1);
|
|
793
|
+
animation-direction: var(--cs-anim-direction, normal);
|
|
794
|
+
animation-fill-mode: var(--cs-anim-fill, both);
|
|
795
|
+
animation-delay: var(--cs-anim-delay, 0ms);
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
/* =========================================================
|
|
799
|
+
DURATION UTILITIES
|
|
800
|
+
Complete timing scale for fine-tuned control
|
|
801
|
+
========================================================= */
|
|
802
|
+
|
|
803
|
+
@utility cs-anim-xxs {
|
|
804
|
+
--cs-anim-duration: var(--cs-anim-duration-xxs);
|
|
805
|
+
}
|
|
806
|
+
@utility cs-anim-xs {
|
|
807
|
+
--cs-anim-duration: var(--cs-anim-duration-xs);
|
|
808
|
+
}
|
|
809
|
+
@utility cs-anim-sm {
|
|
810
|
+
--cs-anim-duration: var(--cs-anim-duration-sm);
|
|
811
|
+
}
|
|
812
|
+
@utility cs-anim-md {
|
|
813
|
+
--cs-anim-duration: var(--cs-anim-duration-md);
|
|
814
|
+
}
|
|
815
|
+
@utility cs-anim-lg {
|
|
816
|
+
--cs-anim-duration: var(--cs-anim-duration-lg);
|
|
817
|
+
}
|
|
818
|
+
@utility cs-anim-xl {
|
|
819
|
+
--cs-anim-duration: var(--cs-anim-duration-xl);
|
|
820
|
+
}
|
|
821
|
+
@utility cs-anim-2xl {
|
|
822
|
+
--cs-anim-duration: var(--cs-anim-duration-2xl);
|
|
823
|
+
}
|
|
824
|
+
@utility cs-anim-3xl {
|
|
825
|
+
--cs-anim-duration: var(--cs-anim-duration-3xl);
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
/* =========================================================
|
|
829
|
+
EASING UTILITIES
|
|
830
|
+
Advanced easing functions for natural motion
|
|
831
|
+
========================================================= */
|
|
832
|
+
|
|
833
|
+
@utility cs-ease-standard {
|
|
834
|
+
--cs-anim-ease: var(--cs-anim-ease-standard);
|
|
835
|
+
}
|
|
836
|
+
@utility cs-ease-emphasized {
|
|
837
|
+
--cs-anim-ease: var(--cs-anim-ease-emphasized);
|
|
838
|
+
}
|
|
839
|
+
@utility cs-ease-decelerate {
|
|
840
|
+
--cs-anim-ease: var(--cs-anim-ease-decelerate);
|
|
841
|
+
}
|
|
842
|
+
@utility cs-ease-accelerate {
|
|
843
|
+
--cs-anim-ease: var(--cs-anim-ease-accelerate);
|
|
844
|
+
}
|
|
845
|
+
@utility cs-ease-spring {
|
|
846
|
+
--cs-anim-ease: var(--cs-anim-ease-spring);
|
|
847
|
+
}
|
|
848
|
+
@utility cs-ease-soft-spring {
|
|
849
|
+
--cs-anim-ease: var(--cs-anim-ease-soft-spring);
|
|
850
|
+
}
|
|
851
|
+
@utility cs-ease-bounce {
|
|
852
|
+
--cs-anim-ease: var(--cs-anim-ease-bounce);
|
|
853
|
+
}
|
|
854
|
+
@utility cs-ease-elastic {
|
|
855
|
+
--cs-anim-ease: var(--cs-anim-ease-elastic);
|
|
856
|
+
}
|
|
857
|
+
@utility cs-ease-smooth {
|
|
858
|
+
--cs-anim-ease: var(--cs-anim-ease-smooth);
|
|
859
|
+
}
|
|
860
|
+
@utility cs-ease-crisp {
|
|
861
|
+
--cs-anim-ease: var(--cs-anim-ease-crisp);
|
|
862
|
+
}
|
|
863
|
+
@utility cs-ease-overshoot {
|
|
864
|
+
--cs-anim-ease: var(--cs-anim-ease-overshoot);
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
/* =========================================================
|
|
868
|
+
DELAY UTILITIES
|
|
869
|
+
Precise timing control for orchestration
|
|
870
|
+
========================================================= */
|
|
871
|
+
|
|
872
|
+
@utility cs-delay-0 {
|
|
873
|
+
--cs-anim-delay: 0ms;
|
|
874
|
+
}
|
|
875
|
+
@utility cs-delay-50 {
|
|
876
|
+
--cs-anim-delay: 50ms;
|
|
877
|
+
}
|
|
878
|
+
@utility cs-delay-75 {
|
|
879
|
+
--cs-anim-delay: 75ms;
|
|
880
|
+
}
|
|
881
|
+
@utility cs-delay-100 {
|
|
882
|
+
--cs-anim-delay: 100ms;
|
|
883
|
+
}
|
|
884
|
+
@utility cs-delay-150 {
|
|
885
|
+
--cs-anim-delay: 150ms;
|
|
886
|
+
}
|
|
887
|
+
@utility cs-delay-200 {
|
|
888
|
+
--cs-anim-delay: 200ms;
|
|
889
|
+
}
|
|
890
|
+
@utility cs-delay-300 {
|
|
891
|
+
--cs-anim-delay: 300ms;
|
|
892
|
+
}
|
|
893
|
+
@utility cs-delay-500 {
|
|
894
|
+
--cs-anim-delay: 500ms;
|
|
895
|
+
}
|
|
896
|
+
@utility cs-delay-700 {
|
|
897
|
+
--cs-anim-delay: 700ms;
|
|
898
|
+
}
|
|
899
|
+
@utility cs-delay-1000 {
|
|
900
|
+
--cs-anim-delay: 1000ms;
|
|
901
|
+
}
|
|
902
|
+
@utility cs-delay-1500 {
|
|
903
|
+
--cs-anim-delay: 1500ms;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/* =========================================================
|
|
907
|
+
ANIMATION CONTROL UTILITIES
|
|
908
|
+
Direction, iteration, and fill mode controls
|
|
909
|
+
========================================================= */
|
|
910
|
+
|
|
911
|
+
@utility cs-anim-infinite {
|
|
912
|
+
--cs-anim-count: infinite;
|
|
913
|
+
}
|
|
914
|
+
@utility cs-anim-reverse {
|
|
915
|
+
--cs-anim-direction: reverse;
|
|
916
|
+
}
|
|
917
|
+
@utility cs-anim-alternate {
|
|
918
|
+
--cs-anim-direction: alternate;
|
|
919
|
+
}
|
|
920
|
+
@utility cs-anim-alternate-reverse {
|
|
921
|
+
--cs-anim-direction: alternate-reverse;
|
|
922
|
+
}
|
|
923
|
+
@utility cs-anim-both {
|
|
924
|
+
--cs-anim-fill: both;
|
|
925
|
+
}
|
|
926
|
+
@utility cs-anim-forwards {
|
|
927
|
+
--cs-anim-fill: forwards;
|
|
928
|
+
}
|
|
929
|
+
@utility cs-anim-backwards {
|
|
930
|
+
--cs-anim-fill: backwards;
|
|
931
|
+
}
|
|
932
|
+
@utility cs-anim-none {
|
|
933
|
+
--cs-anim-fill: none;
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
/* Iteration count utilities */
|
|
937
|
+
@utility cs-anim-once {
|
|
938
|
+
--cs-anim-count: 1;
|
|
939
|
+
}
|
|
940
|
+
@utility cs-anim-twice {
|
|
941
|
+
--cs-anim-count: 2;
|
|
942
|
+
}
|
|
943
|
+
@utility cs-anim-thrice {
|
|
944
|
+
--cs-anim-count: 3;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
/* =========================================================
|
|
948
|
+
ENTRANCE ANIMATION UTILITIES
|
|
949
|
+
Complete set of entrance animations
|
|
950
|
+
========================================================= */
|
|
951
|
+
|
|
952
|
+
@utility cs-fade-in {
|
|
953
|
+
animation-name: csFadeIn;
|
|
954
|
+
}
|
|
955
|
+
@utility cs-fade-out {
|
|
956
|
+
animation-name: csFadeOut;
|
|
957
|
+
}
|
|
958
|
+
@utility cs-scale-in {
|
|
959
|
+
animation-name: csScaleIn;
|
|
960
|
+
}
|
|
961
|
+
@utility cs-scale-out {
|
|
962
|
+
animation-name: csScaleOut;
|
|
963
|
+
}
|
|
964
|
+
@utility cs-zoom-in {
|
|
965
|
+
animation-name: csZoomIn;
|
|
966
|
+
}
|
|
967
|
+
@utility cs-zoom-out {
|
|
968
|
+
animation-name: csZoomOut;
|
|
969
|
+
}
|
|
970
|
+
@utility cs-slide-up {
|
|
971
|
+
animation-name: csSlideUp;
|
|
972
|
+
}
|
|
973
|
+
@utility cs-slide-down {
|
|
974
|
+
animation-name: csSlideDown;
|
|
975
|
+
}
|
|
976
|
+
@utility cs-slide-left {
|
|
977
|
+
animation-name: csSlideLeft;
|
|
978
|
+
}
|
|
979
|
+
@utility cs-slide-right {
|
|
980
|
+
animation-name: csSlideRight;
|
|
981
|
+
}
|
|
982
|
+
@utility cs-blur-in {
|
|
983
|
+
animation-name: csBlurIn;
|
|
984
|
+
}
|
|
985
|
+
@utility cs-blur-out {
|
|
986
|
+
animation-name: csBlurOut;
|
|
987
|
+
}
|
|
988
|
+
@utility cs-rotate-in {
|
|
989
|
+
animation-name: csRotateIn;
|
|
990
|
+
}
|
|
991
|
+
@utility cs-flip-in {
|
|
992
|
+
animation-name: csFlipIn;
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
/* v0.8.0-kompatible Aliase */
|
|
996
|
+
@utility cs-anim {
|
|
997
|
+
animation-duration: var(--cs-anim-duration, var(--cs-anim-duration-md));
|
|
998
|
+
animation-timing-function: var(--cs-anim-ease, var(--cs-anim-ease-standard));
|
|
999
|
+
animation-iteration-count: 1;
|
|
1000
|
+
animation-direction: var(--cs-anim-direction, normal);
|
|
1001
|
+
animation-fill-mode: var(--cs-anim-fill, both);
|
|
1002
|
+
animation-delay: var(--cs-anim-delay, 0ms);
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
/* Additional utility classes that match v0.8.0 */
|
|
1006
|
+
@utility cs-reveal-3d-up {
|
|
1007
|
+
animation-name: csReveal3DUp;
|
|
1008
|
+
}
|
|
1009
|
+
@utility cs-reveal-3d-right {
|
|
1010
|
+
animation-name: csReveal3DRight;
|
|
1011
|
+
}
|
|
1012
|
+
@utility cs-marquee {
|
|
1013
|
+
animation-name: csMarqueeLeft;
|
|
1014
|
+
animation-timing-function: linear;
|
|
1015
|
+
animation-iteration-count: infinite;
|
|
1016
|
+
}
|
|
1017
|
+
@utility cs-parallax-y {
|
|
1018
|
+
animation-name: csParallaxY;
|
|
1019
|
+
animation-direction: alternate;
|
|
1020
|
+
animation-iteration-count: infinite;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
/* =========================================================
|
|
1024
|
+
CONTINUOUS ANIMATION UTILITIES
|
|
1025
|
+
Looping and infinite animations
|
|
1026
|
+
========================================================= */
|
|
1027
|
+
|
|
1028
|
+
@utility cs-rotate {
|
|
1029
|
+
animation-name: csRotate;
|
|
1030
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1031
|
+
animation-iteration-count: infinite;
|
|
1032
|
+
animation-timing-function: linear;
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
@utility cs-pulse {
|
|
1036
|
+
animation-name: csPulse;
|
|
1037
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1038
|
+
animation-iteration-count: infinite;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
@utility cs-bounce {
|
|
1042
|
+
animation-name: csBounce;
|
|
1043
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1044
|
+
animation-iteration-count: infinite;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
@utility cs-wiggle {
|
|
1048
|
+
animation-name: csWiggle;
|
|
1049
|
+
}
|
|
1050
|
+
@utility cs-shake {
|
|
1051
|
+
animation-name: csShake;
|
|
1052
|
+
}
|
|
1053
|
+
@utility cs-heartbeat {
|
|
1054
|
+
animation-name: csHeartbeat;
|
|
1055
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1056
|
+
animation-iteration-count: infinite;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
@utility cs-rubber-band {
|
|
1060
|
+
animation-name: csRubberBand;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
/* =========================================================
|
|
1064
|
+
3D ANIMATION UTILITIES
|
|
1065
|
+
Perspective and 3D transform animations
|
|
1066
|
+
========================================================= */
|
|
1067
|
+
|
|
1068
|
+
@utility cs-reveal-3d-up {
|
|
1069
|
+
animation-name: csReveal3DUp;
|
|
1070
|
+
}
|
|
1071
|
+
@utility cs-reveal-3d-right {
|
|
1072
|
+
animation-name: csReveal3DRight;
|
|
1073
|
+
}
|
|
1074
|
+
@utility cs-reveal-3d-left {
|
|
1075
|
+
animation-name: csReveal3DLeft;
|
|
1076
|
+
}
|
|
1077
|
+
@utility cs-flip-3d-x {
|
|
1078
|
+
animation-name: csFlip3DX;
|
|
1079
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
@utility cs-flip-3d-y {
|
|
1083
|
+
animation-name: csFlip3DY;
|
|
1084
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
/* =========================================================
|
|
1088
|
+
SCROLL & PARALLAX UTILITIES
|
|
1089
|
+
Scroll-based and parallax animations
|
|
1090
|
+
========================================================= */
|
|
1091
|
+
|
|
1092
|
+
@utility cs-marquee-left {
|
|
1093
|
+
animation-name: csMarqueeLeft;
|
|
1094
|
+
animation-duration: 10s;
|
|
1095
|
+
animation-iteration-count: infinite;
|
|
1096
|
+
animation-timing-function: linear;
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
@utility cs-marquee-right {
|
|
1100
|
+
animation-name: csMarqueeRight;
|
|
1101
|
+
animation-duration: 10s;
|
|
1102
|
+
animation-iteration-count: infinite;
|
|
1103
|
+
animation-timing-function: linear;
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
@utility cs-parallax-y {
|
|
1107
|
+
animation-name: csParallaxY;
|
|
1108
|
+
animation-duration: 6s;
|
|
1109
|
+
animation-direction: alternate;
|
|
1110
|
+
animation-iteration-count: infinite;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
@utility cs-parallax-x {
|
|
1114
|
+
animation-name: csParallaxX;
|
|
1115
|
+
animation-duration: 6s;
|
|
1116
|
+
animation-direction: alternate;
|
|
1117
|
+
animation-iteration-count: infinite;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
@utility cs-float {
|
|
1121
|
+
animation-name: csFloat;
|
|
1122
|
+
animation-duration: 3s;
|
|
1123
|
+
animation-iteration-count: infinite;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
@utility cs-sway {
|
|
1127
|
+
animation-name: csSway;
|
|
1128
|
+
animation-duration: 4s;
|
|
1129
|
+
animation-iteration-count: infinite;
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
/* =========================================================
|
|
1133
|
+
COMPONENT ANIMATION UTILITIES
|
|
1134
|
+
Ready-to-use component animations
|
|
1135
|
+
========================================================= */
|
|
1136
|
+
|
|
1137
|
+
/* Button Press Animation */
|
|
1138
|
+
@utility cs-btn-press {
|
|
1139
|
+
animation-name: csBtnPress;
|
|
1140
|
+
animation-duration: var(--cs-anim-duration-xxs);
|
|
1141
|
+
animation-timing-function: var(--cs-anim-ease-soft-spring);
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
/* Dropdown Animations */
|
|
1145
|
+
@utility cs-dropdown-in {
|
|
1146
|
+
animation-name: csDropdownIn;
|
|
1147
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1148
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
@utility cs-dropdown-out {
|
|
1152
|
+
animation-name: csDropdownOut;
|
|
1153
|
+
animation-duration: var(--cs-anim-duration-xs);
|
|
1154
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
/* Tooltip Animations */
|
|
1158
|
+
@utility cs-tooltip-in {
|
|
1159
|
+
animation-name: csTooltipIn;
|
|
1160
|
+
animation-duration: var(--cs-anim-duration-xs);
|
|
1161
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
@utility cs-tooltip-out {
|
|
1165
|
+
animation-name: csTooltipOut;
|
|
1166
|
+
animation-duration: var(--cs-anim-duration-xxs);
|
|
1167
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
/* Modal Animations */
|
|
1171
|
+
@utility cs-modal-in {
|
|
1172
|
+
animation-name: csModalIn;
|
|
1173
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1174
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
@utility cs-modal-out {
|
|
1178
|
+
animation-name: csModalOut;
|
|
1179
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1180
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/* Backdrop Animations */
|
|
1184
|
+
@utility cs-backdrop-in {
|
|
1185
|
+
animation-name: csBackdropIn;
|
|
1186
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
@utility cs-backdrop-out {
|
|
1190
|
+
animation-name: csBackdropOut;
|
|
1191
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
/* Drawer Animations */
|
|
1195
|
+
@utility cs-drawer-in-left {
|
|
1196
|
+
animation-name: csDrawerInLeft;
|
|
1197
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1198
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
@utility cs-drawer-out-left {
|
|
1202
|
+
animation-name: csDrawerOutLeft;
|
|
1203
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1204
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
@utility cs-drawer-in-right {
|
|
1208
|
+
animation-name: csDrawerInRight;
|
|
1209
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1210
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
@utility cs-drawer-out-right {
|
|
1214
|
+
animation-name: csDrawerOutRight;
|
|
1215
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1216
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
@utility cs-drawer-in-top {
|
|
1220
|
+
animation-name: csDrawerInTop;
|
|
1221
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1222
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
@utility cs-drawer-out-top {
|
|
1226
|
+
animation-name: csDrawerOutTop;
|
|
1227
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1228
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
@utility cs-drawer-in-bottom {
|
|
1232
|
+
animation-name: csDrawerInBottom;
|
|
1233
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1234
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
@utility cs-drawer-out-bottom {
|
|
1238
|
+
animation-name: csDrawerOutBottom;
|
|
1239
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1240
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
/* Accordion Animations */
|
|
1244
|
+
@utility cs-accordion-in {
|
|
1245
|
+
animation-name: csAccordionIn;
|
|
1246
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1247
|
+
animation-timing-function: var(--cs-anim-ease-decelerate);
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
@utility cs-accordion-out {
|
|
1251
|
+
animation-name: csAccordionOut;
|
|
1252
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1253
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
@utility cs-accordion-fade {
|
|
1257
|
+
animation-name: csFadeIn;
|
|
1258
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1259
|
+
animation-timing-function: var(--cs-anim-ease-decelerate);
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
/* Toast Animations */
|
|
1263
|
+
@utility cs-toast-in {
|
|
1264
|
+
animation-name: csToastIn;
|
|
1265
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1266
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
@utility cs-toast-out {
|
|
1270
|
+
animation-name: csToastOut;
|
|
1271
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1272
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
/* Chip Animations */
|
|
1276
|
+
@utility cs-chip-in {
|
|
1277
|
+
animation-name: csChipIn;
|
|
1278
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1279
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
@utility cs-chip-out {
|
|
1283
|
+
animation-name: csChipOut;
|
|
1284
|
+
animation-duration: var(--cs-anim-duration-xs);
|
|
1285
|
+
animation-timing-function: var(--cs-anim-ease-accelerate);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
/* Badge Animation */
|
|
1289
|
+
@utility cs-badge-pop {
|
|
1290
|
+
animation-name: csBadgePop;
|
|
1291
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1292
|
+
animation-timing-function: var(--cs-anim-ease-bounce);
|
|
1293
|
+
}
|
|
1294
|
+
|
|
1295
|
+
/* Spinner Animation */
|
|
1296
|
+
@utility cs-spinner {
|
|
1297
|
+
animation-name: csSpinner;
|
|
1298
|
+
animation-duration: 1s;
|
|
1299
|
+
animation-iteration-count: infinite;
|
|
1300
|
+
animation-timing-function: linear;
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
/* Progress Animations */
|
|
1304
|
+
@utility cs-progress-indeterminate {
|
|
1305
|
+
animation-name: csProgressIndeterminate;
|
|
1306
|
+
animation-duration: 1.5s;
|
|
1307
|
+
animation-iteration-count: infinite;
|
|
1308
|
+
animation-timing-function: linear;
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
/* Carousel Animations */
|
|
1312
|
+
@utility cs-carousel-slide {
|
|
1313
|
+
animation-name: csCarouselSlide;
|
|
1314
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1315
|
+
animation-timing-function: var(--cs-anim-ease-decelerate);
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
@utility cs-carousel-fade {
|
|
1319
|
+
animation-name: csCarouselFade;
|
|
1320
|
+
animation-duration: var(--cs-anim-duration-lg);
|
|
1321
|
+
animation-timing-function: var(--cs-anim-ease-standard);
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
/* Ripple Effect */
|
|
1325
|
+
@utility cs-btn-ripple {
|
|
1326
|
+
position: relative;
|
|
1327
|
+
overflow: hidden;
|
|
1328
|
+
|
|
1329
|
+
&::after {
|
|
1330
|
+
content: '';
|
|
1331
|
+
position: absolute;
|
|
1332
|
+
top: 50%;
|
|
1333
|
+
left: 50%;
|
|
1334
|
+
width: 0;
|
|
1335
|
+
height: 0;
|
|
1336
|
+
border-radius: 50%;
|
|
1337
|
+
background: color-mix(
|
|
1338
|
+
in srgb,
|
|
1339
|
+
var(--cs-ripple-color, currentColor) 20%,
|
|
1340
|
+
transparent
|
|
1341
|
+
);
|
|
1342
|
+
transform: translate(-50%, -50%);
|
|
1343
|
+
animation: csRippleSpread 0.6s ease-out;
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
/* Navigation Underline */
|
|
1348
|
+
@utility cs-nav-underline-in {
|
|
1349
|
+
position: relative;
|
|
1350
|
+
|
|
1351
|
+
&::after {
|
|
1352
|
+
content: '';
|
|
1353
|
+
position: absolute;
|
|
1354
|
+
left: 50%;
|
|
1355
|
+
bottom: -2px;
|
|
1356
|
+
width: var(--cs-underline-w, 0%);
|
|
1357
|
+
height: var(--cs-underline-h, 2px);
|
|
1358
|
+
background: currentColor;
|
|
1359
|
+
border-radius: 999px;
|
|
1360
|
+
transform: translateX(-50%);
|
|
1361
|
+
transition: width var(--cs-anim-duration-sm) var(--cs-anim-ease-decelerate);
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
&:hover::after {
|
|
1365
|
+
--cs-underline-w: 100%;
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
/* Tab Slide Animation */
|
|
1370
|
+
@utility cs-tab-slide {
|
|
1371
|
+
animation-name: csTabSlide;
|
|
1372
|
+
animation-duration: var(--cs-anim-duration-sm);
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
/* Notification Slide */
|
|
1376
|
+
@utility cs-notification-slide {
|
|
1377
|
+
animation-name: csNotificationSlide;
|
|
1378
|
+
animation-duration: var(--cs-anim-duration-md);
|
|
1379
|
+
animation-timing-function: var(--cs-anim-ease-spring);
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
/* =========================================================
|
|
1383
|
+
LOADING & PROGRESS UTILITIES
|
|
1384
|
+
Loading states and progress indicators
|
|
1385
|
+
========================================================= */
|
|
1386
|
+
|
|
1387
|
+
@utility cs-skeleton-shimmer {
|
|
1388
|
+
position: relative;
|
|
1389
|
+
overflow: hidden;
|
|
1390
|
+
background: linear-gradient(
|
|
1391
|
+
90deg,
|
|
1392
|
+
transparent,
|
|
1393
|
+
color-mix(in srgb, currentColor 10%, transparent),
|
|
1394
|
+
transparent
|
|
1395
|
+
);
|
|
1396
|
+
background-size: 200% 100%;
|
|
1397
|
+
animation: csSkeletonShimmer 1.5s infinite;
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
@utility cs-progress-grow {
|
|
1401
|
+
animation-name: csProgressGrow;
|
|
1402
|
+
animation-timing-function: var(--cs-anim-ease-decelerate);
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
@utility cs-dot-loader {
|
|
1406
|
+
animation-name: csDotLoader;
|
|
1407
|
+
animation-duration: 1.4s;
|
|
1408
|
+
animation-iteration-count: infinite;
|
|
1409
|
+
animation-fill-mode: both;
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
/* =========================================================
|
|
1413
|
+
ADVANCED STAGGER SYSTEM
|
|
1414
|
+
Orchestrated animations with extended support
|
|
1415
|
+
========================================================= */
|
|
1416
|
+
|
|
1417
|
+
@utility cs-stagger-50 {
|
|
1418
|
+
> .cs-anim:nth-child(1) {
|
|
1419
|
+
--cs-anim-delay: 0ms;
|
|
1420
|
+
}
|
|
1421
|
+
> .cs-anim:nth-child(2) {
|
|
1422
|
+
--cs-anim-delay: 50ms;
|
|
1423
|
+
}
|
|
1424
|
+
> .cs-anim:nth-child(3) {
|
|
1425
|
+
--cs-anim-delay: 100ms;
|
|
1426
|
+
}
|
|
1427
|
+
> .cs-anim:nth-child(4) {
|
|
1428
|
+
--cs-anim-delay: 150ms;
|
|
1429
|
+
}
|
|
1430
|
+
> .cs-anim:nth-child(5) {
|
|
1431
|
+
--cs-anim-delay: 200ms;
|
|
1432
|
+
}
|
|
1433
|
+
> .cs-anim:nth-child(6) {
|
|
1434
|
+
--cs-anim-delay: 250ms;
|
|
1435
|
+
}
|
|
1436
|
+
> .cs-anim:nth-child(7) {
|
|
1437
|
+
--cs-anim-delay: 300ms;
|
|
1438
|
+
}
|
|
1439
|
+
> .cs-anim:nth-child(8) {
|
|
1440
|
+
--cs-anim-delay: 350ms;
|
|
1441
|
+
}
|
|
1442
|
+
> .cs-anim:nth-child(9) {
|
|
1443
|
+
--cs-anim-delay: 400ms;
|
|
1444
|
+
}
|
|
1445
|
+
> .cs-anim:nth-child(10) {
|
|
1446
|
+
--cs-anim-delay: 450ms;
|
|
1447
|
+
}
|
|
1448
|
+
> .cs-anim:nth-child(11) {
|
|
1449
|
+
--cs-anim-delay: 500ms;
|
|
1450
|
+
}
|
|
1451
|
+
> .cs-anim:nth-child(12) {
|
|
1452
|
+
--cs-anim-delay: 550ms;
|
|
1453
|
+
}
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
@utility cs-stagger-75 {
|
|
1457
|
+
> .cs-anim:nth-child(1) {
|
|
1458
|
+
--cs-anim-delay: 0ms;
|
|
1459
|
+
}
|
|
1460
|
+
> .cs-anim:nth-child(2) {
|
|
1461
|
+
--cs-anim-delay: 75ms;
|
|
1462
|
+
}
|
|
1463
|
+
> .cs-anim:nth-child(3) {
|
|
1464
|
+
--cs-anim-delay: 150ms;
|
|
1465
|
+
}
|
|
1466
|
+
> .cs-anim:nth-child(4) {
|
|
1467
|
+
--cs-anim-delay: 225ms;
|
|
1468
|
+
}
|
|
1469
|
+
> .cs-anim:nth-child(5) {
|
|
1470
|
+
--cs-anim-delay: 300ms;
|
|
1471
|
+
}
|
|
1472
|
+
> .cs-anim:nth-child(6) {
|
|
1473
|
+
--cs-anim-delay: 375ms;
|
|
1474
|
+
}
|
|
1475
|
+
> .cs-anim:nth-child(7) {
|
|
1476
|
+
--cs-anim-delay: 450ms;
|
|
1477
|
+
}
|
|
1478
|
+
> .cs-anim:nth-child(8) {
|
|
1479
|
+
--cs-anim-delay: 525ms;
|
|
1480
|
+
}
|
|
1481
|
+
> .cs-anim:nth-child(9) {
|
|
1482
|
+
--cs-anim-delay: 600ms;
|
|
1483
|
+
}
|
|
1484
|
+
> .cs-anim:nth-child(10) {
|
|
1485
|
+
--cs-anim-delay: 675ms;
|
|
1486
|
+
}
|
|
1487
|
+
> .cs-anim:nth-child(11) {
|
|
1488
|
+
--cs-anim-delay: 750ms;
|
|
1489
|
+
}
|
|
1490
|
+
> .cs-anim:nth-child(12) {
|
|
1491
|
+
--cs-anim-delay: 825ms;
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
@utility cs-stagger-100 {
|
|
1496
|
+
> .cs-anim:nth-child(1) {
|
|
1497
|
+
--cs-anim-delay: 0ms;
|
|
1498
|
+
}
|
|
1499
|
+
> .cs-anim:nth-child(2) {
|
|
1500
|
+
--cs-anim-delay: 100ms;
|
|
1501
|
+
}
|
|
1502
|
+
> .cs-anim:nth-child(3) {
|
|
1503
|
+
--cs-anim-delay: 200ms;
|
|
1504
|
+
}
|
|
1505
|
+
> .cs-anim:nth-child(4) {
|
|
1506
|
+
--cs-anim-delay: 300ms;
|
|
1507
|
+
}
|
|
1508
|
+
> .cs-anim:nth-child(5) {
|
|
1509
|
+
--cs-anim-delay: 400ms;
|
|
1510
|
+
}
|
|
1511
|
+
> .cs-anim:nth-child(6) {
|
|
1512
|
+
--cs-anim-delay: 500ms;
|
|
1513
|
+
}
|
|
1514
|
+
> .cs-anim:nth-child(7) {
|
|
1515
|
+
--cs-anim-delay: 600ms;
|
|
1516
|
+
}
|
|
1517
|
+
> .cs-anim:nth-child(8) {
|
|
1518
|
+
--cs-anim-delay: 700ms;
|
|
1519
|
+
}
|
|
1520
|
+
> .cs-anim:nth-child(9) {
|
|
1521
|
+
--cs-anim-delay: 800ms;
|
|
1522
|
+
}
|
|
1523
|
+
> .cs-anim:nth-child(10) {
|
|
1524
|
+
--cs-anim-delay: 900ms;
|
|
1525
|
+
}
|
|
1526
|
+
> .cs-anim:nth-child(11) {
|
|
1527
|
+
--cs-anim-delay: 1000ms;
|
|
1528
|
+
}
|
|
1529
|
+
> .cs-anim:nth-child(12) {
|
|
1530
|
+
--cs-anim-delay: 1100ms;
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
@utility cs-stagger-150 {
|
|
1535
|
+
> .cs-anim:nth-child(1) {
|
|
1536
|
+
--cs-anim-delay: 0ms;
|
|
1537
|
+
}
|
|
1538
|
+
> .cs-anim:nth-child(2) {
|
|
1539
|
+
--cs-anim-delay: 150ms;
|
|
1540
|
+
}
|
|
1541
|
+
> .cs-anim:nth-child(3) {
|
|
1542
|
+
--cs-anim-delay: 300ms;
|
|
1543
|
+
}
|
|
1544
|
+
> .cs-anim:nth-child(4) {
|
|
1545
|
+
--cs-anim-delay: 450ms;
|
|
1546
|
+
}
|
|
1547
|
+
> .cs-anim:nth-child(5) {
|
|
1548
|
+
--cs-anim-delay: 600ms;
|
|
1549
|
+
}
|
|
1550
|
+
> .cs-anim:nth-child(6) {
|
|
1551
|
+
--cs-anim-delay: 750ms;
|
|
1552
|
+
}
|
|
1553
|
+
> .cs-anim:nth-child(7) {
|
|
1554
|
+
--cs-anim-delay: 900ms;
|
|
1555
|
+
}
|
|
1556
|
+
> .cs-anim:nth-child(8) {
|
|
1557
|
+
--cs-anim-delay: 1050ms;
|
|
1558
|
+
}
|
|
1559
|
+
> .cs-anim:nth-child(9) {
|
|
1560
|
+
--cs-anim-delay: 1200ms;
|
|
1561
|
+
}
|
|
1562
|
+
> .cs-anim:nth-child(10) {
|
|
1563
|
+
--cs-anim-delay: 1350ms;
|
|
1564
|
+
}
|
|
1565
|
+
> .cs-anim:nth-child(11) {
|
|
1566
|
+
--cs-anim-delay: 1500ms;
|
|
1567
|
+
}
|
|
1568
|
+
> .cs-anim:nth-child(12) {
|
|
1569
|
+
--cs-anim-delay: 1650ms;
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1573
|
+
@utility cs-stagger-200 {
|
|
1574
|
+
> .cs-anim:nth-child(1) {
|
|
1575
|
+
--cs-anim-delay: 0ms;
|
|
1576
|
+
}
|
|
1577
|
+
> .cs-anim:nth-child(2) {
|
|
1578
|
+
--cs-anim-delay: 200ms;
|
|
1579
|
+
}
|
|
1580
|
+
> .cs-anim:nth-child(3) {
|
|
1581
|
+
--cs-anim-delay: 400ms;
|
|
1582
|
+
}
|
|
1583
|
+
> .cs-anim:nth-child(4) {
|
|
1584
|
+
--cs-anim-delay: 600ms;
|
|
1585
|
+
}
|
|
1586
|
+
> .cs-anim:nth-child(5) {
|
|
1587
|
+
--cs-anim-delay: 800ms;
|
|
1588
|
+
}
|
|
1589
|
+
> .cs-anim:nth-child(6) {
|
|
1590
|
+
--cs-anim-delay: 1000ms;
|
|
1591
|
+
}
|
|
1592
|
+
> .cs-anim:nth-child(7) {
|
|
1593
|
+
--cs-anim-delay: 1200ms;
|
|
1594
|
+
}
|
|
1595
|
+
> .cs-anim:nth-child(8) {
|
|
1596
|
+
--cs-anim-delay: 1400ms;
|
|
1597
|
+
}
|
|
1598
|
+
> .cs-anim:nth-child(9) {
|
|
1599
|
+
--cs-anim-delay: 1600ms;
|
|
1600
|
+
}
|
|
1601
|
+
> .cs-anim:nth-child(10) {
|
|
1602
|
+
--cs-anim-delay: 1800ms;
|
|
1603
|
+
}
|
|
1604
|
+
> .cs-anim:nth-child(11) {
|
|
1605
|
+
--cs-anim-delay: 2000ms;
|
|
1606
|
+
}
|
|
1607
|
+
> .cs-anim:nth-child(12) {
|
|
1608
|
+
--cs-anim-delay: 2200ms;
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
/* =========================================================
|
|
1613
|
+
PERFORMANCE UTILITIES
|
|
1614
|
+
Optimization hints for better animation performance
|
|
1615
|
+
========================================================= */
|
|
1616
|
+
|
|
1617
|
+
@utility cs-will-transform {
|
|
1618
|
+
will-change: transform;
|
|
1619
|
+
}
|
|
1620
|
+
@utility cs-will-opacity {
|
|
1621
|
+
will-change: opacity;
|
|
1622
|
+
}
|
|
1623
|
+
@utility cs-will-filter {
|
|
1624
|
+
will-change: filter;
|
|
1625
|
+
}
|
|
1626
|
+
@utility cs-will-scroll {
|
|
1627
|
+
will-change: scroll-position;
|
|
1628
|
+
}
|
|
1629
|
+
@utility cs-will-auto {
|
|
1630
|
+
will-change: auto;
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
/* Transform origin utilities */
|
|
1634
|
+
@utility cs-origin-center {
|
|
1635
|
+
transform-origin: center;
|
|
1636
|
+
}
|
|
1637
|
+
@utility cs-origin-top {
|
|
1638
|
+
transform-origin: top;
|
|
1639
|
+
}
|
|
1640
|
+
@utility cs-origin-top-right {
|
|
1641
|
+
transform-origin: top right;
|
|
1642
|
+
}
|
|
1643
|
+
@utility cs-origin-right {
|
|
1644
|
+
transform-origin: right;
|
|
1645
|
+
}
|
|
1646
|
+
@utility cs-origin-bottom-right {
|
|
1647
|
+
transform-origin: bottom right;
|
|
1648
|
+
}
|
|
1649
|
+
@utility cs-origin-bottom {
|
|
1650
|
+
transform-origin: bottom;
|
|
1651
|
+
}
|
|
1652
|
+
@utility cs-origin-bottom-left {
|
|
1653
|
+
transform-origin: bottom left;
|
|
1654
|
+
}
|
|
1655
|
+
@utility cs-origin-left {
|
|
1656
|
+
transform-origin: left;
|
|
1657
|
+
}
|
|
1658
|
+
@utility cs-origin-top-left {
|
|
1659
|
+
transform-origin: top left;
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
/* v0.8.0-kompatible Aliase für transform-origin */
|
|
1663
|
+
@utility cs-t-origin-top {
|
|
1664
|
+
transform-origin: top;
|
|
1665
|
+
}
|
|
1666
|
+
@utility cs-t-origin-center {
|
|
1667
|
+
transform-origin: center;
|
|
1668
|
+
}
|
|
1669
|
+
@utility cs-t-origin-bottom {
|
|
1670
|
+
transform-origin: bottom;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
/* v0.8.0-kompatible will-change Aliase */
|
|
1674
|
+
@utility cs-will-transform {
|
|
1675
|
+
will-change: transform;
|
|
1676
|
+
}
|
|
1677
|
+
@utility cs-will-opacity {
|
|
1678
|
+
will-change: opacity;
|
|
1679
|
+
}
|
|
1680
|
+
@utility cs-will-filter {
|
|
1681
|
+
will-change: filter;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
/* v0.8.0-kompatible 3D Aliase */
|
|
1685
|
+
@utility cs-t-preserve-3d {
|
|
1686
|
+
transform-style: preserve-3d;
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
/* 3D Perspective utilities */
|
|
1690
|
+
@utility cs-preserve-3d {
|
|
1691
|
+
transform-style: preserve-3d;
|
|
1692
|
+
}
|
|
1693
|
+
@utility cs-perspective-sm {
|
|
1694
|
+
perspective: 500px;
|
|
1695
|
+
}
|
|
1696
|
+
@utility cs-perspective {
|
|
1697
|
+
perspective: 1000px;
|
|
1698
|
+
}
|
|
1699
|
+
@utility cs-perspective-lg {
|
|
1700
|
+
perspective: 1500px;
|
|
1701
|
+
}
|
|
1702
|
+
@utility cs-backface-hidden {
|
|
1703
|
+
backface-visibility: hidden;
|
|
1704
|
+
}
|
|
1705
|
+
@utility cs-backface-visible {
|
|
1706
|
+
backface-visibility: visible;
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1709
|
+
/* =========================================================
|
|
1710
|
+
SCROLL-BASED ANIMATIONS
|
|
1711
|
+
Modern scroll-timeline and view-timeline support
|
|
1712
|
+
========================================================= */
|
|
1713
|
+
|
|
1714
|
+
@utility cs-scroll-reveal {
|
|
1715
|
+
opacity: 0;
|
|
1716
|
+
transform: translateY(20px);
|
|
1717
|
+
transition:
|
|
1718
|
+
opacity 0.6s ease-out,
|
|
1719
|
+
transform 0.6s ease-out;
|
|
1720
|
+
|
|
1721
|
+
@supports (animation-timeline: view()) {
|
|
1722
|
+
animation: csScrollReveal 1s ease-out;
|
|
1723
|
+
animation-timeline: view();
|
|
1724
|
+
animation-range: entry 0% entry 100%;
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1727
|
+
|
|
1728
|
+
@keyframes csScrollReveal {
|
|
1729
|
+
0% {
|
|
1730
|
+
opacity: 0;
|
|
1731
|
+
transform: translateY(20px);
|
|
1732
|
+
}
|
|
1733
|
+
100% {
|
|
1734
|
+
opacity: 1;
|
|
1735
|
+
transform: translateY(0);
|
|
1736
|
+
}
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1739
|
+
@utility cs-scroll-scale {
|
|
1740
|
+
transform: scale(0.8);
|
|
1741
|
+
transition: transform 0.6s ease-out;
|
|
1742
|
+
|
|
1743
|
+
@supports (animation-timeline: view()) {
|
|
1744
|
+
animation: csScrollScale 1s ease-out;
|
|
1745
|
+
animation-timeline: view();
|
|
1746
|
+
animation-range: entry 0% entry 100%;
|
|
1747
|
+
}
|
|
1748
|
+
}
|
|
1749
|
+
|
|
1750
|
+
@keyframes csScrollScale {
|
|
1751
|
+
0% {
|
|
1752
|
+
transform: scale(0.8);
|
|
1753
|
+
}
|
|
1754
|
+
100% {
|
|
1755
|
+
transform: scale(1);
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
@utility cs-parallax-scroll {
|
|
1760
|
+
@supports (animation-timeline: scroll()) {
|
|
1761
|
+
animation: csParallaxScroll linear;
|
|
1762
|
+
animation-timeline: scroll();
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
@keyframes csParallaxScroll {
|
|
1767
|
+
0% {
|
|
1768
|
+
transform: translateY(0);
|
|
1769
|
+
}
|
|
1770
|
+
100% {
|
|
1771
|
+
transform: translateY(-50px);
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
/* =========================================================
|
|
1776
|
+
ACCESSIBILITY & REDUCED MOTION
|
|
1777
|
+
Comprehensive reduced motion support with smart fallbacks
|
|
1778
|
+
========================================================= */
|
|
1779
|
+
|
|
1780
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1781
|
+
/* Disable all animations */
|
|
1782
|
+
*,
|
|
1783
|
+
*::before,
|
|
1784
|
+
*::after {
|
|
1785
|
+
animation-duration: 0.01ms !important;
|
|
1786
|
+
animation-iteration-count: 1 !important;
|
|
1787
|
+
transition-duration: 0.01ms !important;
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
/* Override specific animation utilities */
|
|
1791
|
+
.cs-pulse,
|
|
1792
|
+
.cs-bounce,
|
|
1793
|
+
.cs-wiggle,
|
|
1794
|
+
.cs-shake,
|
|
1795
|
+
.cs-heartbeat,
|
|
1796
|
+
.cs-rubber-band,
|
|
1797
|
+
.cs-rotate,
|
|
1798
|
+
.cs-marquee-left,
|
|
1799
|
+
.cs-marquee-right,
|
|
1800
|
+
.cs-parallax-y,
|
|
1801
|
+
.cs-parallax-x,
|
|
1802
|
+
.cs-float,
|
|
1803
|
+
.cs-sway,
|
|
1804
|
+
.cs-skeleton-shimmer,
|
|
1805
|
+
.cs-dot-loader {
|
|
1806
|
+
animation: none !important;
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1809
|
+
/* Keep essential entrance animations but make them instant */
|
|
1810
|
+
.cs-fade-in,
|
|
1811
|
+
.cs-scale-in,
|
|
1812
|
+
.cs-slide-up,
|
|
1813
|
+
.cs-slide-down,
|
|
1814
|
+
.cs-slide-left,
|
|
1815
|
+
.cs-slide-right {
|
|
1816
|
+
animation-duration: 0.01ms !important;
|
|
1817
|
+
}
|
|
1818
|
+
|
|
1819
|
+
/* Remove transforms that could cause motion sickness */
|
|
1820
|
+
.cs-3d-hover,
|
|
1821
|
+
.cs-flip-3d-x,
|
|
1822
|
+
.cs-flip-3d-y {
|
|
1823
|
+
transform: none !important;
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
/* High contrast mode adjustments */
|
|
1828
|
+
@media (prefers-contrast: high) {
|
|
1829
|
+
.cs-skeleton-shimmer {
|
|
1830
|
+
background: repeating-linear-gradient(
|
|
1831
|
+
90deg,
|
|
1832
|
+
transparent 0%,
|
|
1833
|
+
currentColor 50%,
|
|
1834
|
+
transparent 100%
|
|
1835
|
+
);
|
|
1836
|
+
}
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
/* =========================================================
|
|
1840
|
+
PRINT MEDIA SUPPORT
|
|
1841
|
+
Disable animations for print media
|
|
1842
|
+
========================================================= */
|
|
1843
|
+
|
|
1844
|
+
@media print {
|
|
1845
|
+
*,
|
|
1846
|
+
*::before,
|
|
1847
|
+
*::after {
|
|
1848
|
+
animation: none !important;
|
|
1849
|
+
transition: none !important;
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
|
|
1853
|
+
/* =========================================================
|
|
1854
|
+
TOUCH DEVICE OPTIMIZATIONS
|
|
1855
|
+
Optimizations for touch-based interactions
|
|
1856
|
+
========================================================= */
|
|
1857
|
+
|
|
1858
|
+
@media (hover: none) and (pointer: coarse) {
|
|
1859
|
+
/* Faster animations for touch devices */
|
|
1860
|
+
.cs-btn-press {
|
|
1861
|
+
animation-duration: 50ms;
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
.cs-btn-ripple::after {
|
|
1865
|
+
animation-duration: 300ms;
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
/* Reduce motion intensity */
|
|
1869
|
+
.cs-wiggle,
|
|
1870
|
+
.cs-shake {
|
|
1871
|
+
animation-duration: 150ms;
|
|
1872
|
+
}
|
|
1873
|
+
}
|