dynamic-ds 1.0.7 → 1.0.8

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.
@@ -26,7 +26,7 @@ $ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
26
26
  --ease-in: #{$ease-in};
27
27
  --ease-out: #{$ease-out};
28
28
  --ease-in-out: #{$ease-in-out};
29
-
29
+
30
30
  // Advanced easing
31
31
  --ease-bounce-out: #{$ease-bounce-out};
32
32
  --ease-bounce-in: #{$ease-bounce-in};
@@ -67,7 +67,7 @@ $duration-slower: 700ms;
67
67
  --duration-500: #{$duration-500};
68
68
  --duration-700: #{$duration-700};
69
69
  --duration-1000: #{$duration-1000};
70
-
70
+
71
71
  // Semantic durations
72
72
  --duration-instant: #{$duration-instant};
73
73
  --duration-fast: #{$duration-fast};
@@ -83,27 +83,38 @@ $duration-slower: 700ms;
83
83
  // Property-specific transitions
84
84
  --transition-none: none;
85
85
  --transition-all: all var(--duration-normal) var(--ease-in-out);
86
- --transition-colors: color, background-color, border-color, text-decoration-color, fill, stroke var(--duration-normal) var(--ease-in-out);
86
+ --transition-colors:
87
+ color, background-color, border-color, text-decoration-color, fill,
88
+ stroke var(--duration-normal) var(--ease-in-out);
87
89
  --transition-opacity: opacity var(--duration-normal) var(--ease-in-out);
88
90
  --transition-shadow: box-shadow var(--duration-normal) var(--ease-in-out);
89
91
  --transition-transform: transform var(--duration-normal) var(--ease-in-out);
90
-
92
+
91
93
  // Combined common transitions
92
- --transition-default: color, background-color, border-color, box-shadow, transform, opacity var(--duration-fast) var(--ease-in-out);
94
+ --transition-default:
95
+ color, background-color, border-color, box-shadow, transform,
96
+ opacity var(--duration-fast) var(--ease-in-out);
93
97
  }
94
98
 
95
99
  // ============================================================================
96
100
  // 4. TRANSITION PROPERTY UTILITIES
97
101
  // ============================================================================
98
- .transition-none { transition-property: none !important; }
99
- .transition-all { transition-property: all !important; }
102
+ .transition-none {
103
+ transition-property: none !important;
104
+ }
105
+ .transition-all {
106
+ transition-property: all !important;
107
+ }
100
108
  .transition {
101
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important;
109
+ transition-property:
110
+ color, background-color, border-color, text-decoration-color, fill, stroke,
111
+ opacity, box-shadow, transform, filter, backdrop-filter !important;
102
112
  transition-timing-function: var(--ease-in-out);
103
113
  transition-duration: var(--duration-normal);
104
114
  }
105
115
  .transition-colors {
106
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke !important;
116
+ transition-property:
117
+ color, background-color, border-color, text-decoration-color, fill, stroke !important;
107
118
  transition-timing-function: var(--ease-in-out);
108
119
  transition-duration: var(--duration-normal);
109
120
  }
@@ -126,49 +137,115 @@ $duration-slower: 700ms;
126
137
  // ============================================================================
127
138
  // 5. TRANSITION DURATION UTILITIES
128
139
  // ============================================================================
129
- .duration-0 { transition-duration: 0ms !important; }
130
- .duration-75 { transition-duration: 75ms !important; }
131
- .duration-100 { transition-duration: 100ms !important; }
132
- .duration-150 { transition-duration: 150ms !important; }
133
- .duration-200 { transition-duration: 200ms !important; }
134
- .duration-300 { transition-duration: 300ms !important; }
135
- .duration-500 { transition-duration: 500ms !important; }
136
- .duration-700 { transition-duration: 700ms !important; }
137
- .duration-1000 { transition-duration: 1000ms !important; }
140
+ .duration-0 {
141
+ transition-duration: 0ms !important;
142
+ }
143
+ .duration-75 {
144
+ transition-duration: 75ms !important;
145
+ }
146
+ .duration-100 {
147
+ transition-duration: 100ms !important;
148
+ }
149
+ .duration-150 {
150
+ transition-duration: 150ms !important;
151
+ }
152
+ .duration-200 {
153
+ transition-duration: 200ms !important;
154
+ }
155
+ .duration-300 {
156
+ transition-duration: 300ms !important;
157
+ }
158
+ .duration-500 {
159
+ transition-duration: 500ms !important;
160
+ }
161
+ .duration-700 {
162
+ transition-duration: 700ms !important;
163
+ }
164
+ .duration-1000 {
165
+ transition-duration: 1000ms !important;
166
+ }
138
167
 
139
168
  // Semantic duration classes
140
- .duration-instant { transition-duration: var(--duration-instant) !important; }
141
- .duration-fast { transition-duration: var(--duration-fast) !important; }
142
- .duration-normal { transition-duration: var(--duration-normal) !important; }
143
- .duration-slow { transition-duration: var(--duration-slow) !important; }
144
- .duration-slower { transition-duration: var(--duration-slower) !important; }
169
+ .duration-instant {
170
+ transition-duration: var(--duration-instant) !important;
171
+ }
172
+ .duration-fast {
173
+ transition-duration: var(--duration-fast) !important;
174
+ }
175
+ .duration-normal {
176
+ transition-duration: var(--duration-normal) !important;
177
+ }
178
+ .duration-slow {
179
+ transition-duration: var(--duration-slow) !important;
180
+ }
181
+ .duration-slower {
182
+ transition-duration: var(--duration-slower) !important;
183
+ }
145
184
 
146
185
  // ============================================================================
147
186
  // 6. TRANSITION TIMING FUNCTION UTILITIES
148
187
  // ============================================================================
149
- .ease-linear { transition-timing-function: linear !important; }
150
- .ease-in { transition-timing-function: var(--ease-in) !important; }
151
- .ease-out { transition-timing-function: var(--ease-out) !important; }
152
- .ease-in-out { transition-timing-function: var(--ease-in-out) !important; }
153
- .ease-bounce-out { transition-timing-function: var(--ease-bounce-out) !important; }
154
- .ease-bounce-in { transition-timing-function: var(--ease-bounce-in) !important; }
155
- .ease-back-out { transition-timing-function: var(--ease-back-out) !important; }
156
- .ease-back-in { transition-timing-function: var(--ease-back-in) !important; }
157
- .ease-elastic { transition-timing-function: var(--ease-elastic) !important; }
158
- .ease-spring { transition-timing-function: var(--ease-spring) !important; }
188
+ .ease-linear {
189
+ transition-timing-function: linear !important;
190
+ }
191
+ .ease-in {
192
+ transition-timing-function: var(--ease-in) !important;
193
+ }
194
+ .ease-out {
195
+ transition-timing-function: var(--ease-out) !important;
196
+ }
197
+ .ease-in-out {
198
+ transition-timing-function: var(--ease-in-out) !important;
199
+ }
200
+ .ease-bounce-out {
201
+ transition-timing-function: var(--ease-bounce-out) !important;
202
+ }
203
+ .ease-bounce-in {
204
+ transition-timing-function: var(--ease-bounce-in) !important;
205
+ }
206
+ .ease-back-out {
207
+ transition-timing-function: var(--ease-back-out) !important;
208
+ }
209
+ .ease-back-in {
210
+ transition-timing-function: var(--ease-back-in) !important;
211
+ }
212
+ .ease-elastic {
213
+ transition-timing-function: var(--ease-elastic) !important;
214
+ }
215
+ .ease-spring {
216
+ transition-timing-function: var(--ease-spring) !important;
217
+ }
159
218
 
160
219
  // ============================================================================
161
220
  // 7. TRANSITION DELAY UTILITIES
162
221
  // ============================================================================
163
- .delay-0 { transition-delay: 0ms !important; }
164
- .delay-75 { transition-delay: 75ms !important; }
165
- .delay-100 { transition-delay: 100ms !important; }
166
- .delay-150 { transition-delay: 150ms !important; }
167
- .delay-200 { transition-delay: 200ms !important; }
168
- .delay-300 { transition-delay: 300ms !important; }
169
- .delay-500 { transition-delay: 500ms !important; }
170
- .delay-700 { transition-delay: 700ms !important; }
171
- .delay-1000 { transition-delay: 1000ms !important; }
222
+ .delay-0 {
223
+ transition-delay: 0ms !important;
224
+ }
225
+ .delay-75 {
226
+ transition-delay: 75ms !important;
227
+ }
228
+ .delay-100 {
229
+ transition-delay: 100ms !important;
230
+ }
231
+ .delay-150 {
232
+ transition-delay: 150ms !important;
233
+ }
234
+ .delay-200 {
235
+ transition-delay: 200ms !important;
236
+ }
237
+ .delay-300 {
238
+ transition-delay: 300ms !important;
239
+ }
240
+ .delay-500 {
241
+ transition-delay: 500ms !important;
242
+ }
243
+ .delay-700 {
244
+ transition-delay: 700ms !important;
245
+ }
246
+ .delay-1000 {
247
+ transition-delay: 1000ms !important;
248
+ }
172
249
 
173
250
  // ============================================================================
174
251
  // 8. KEYFRAME ANIMATIONS
@@ -176,13 +253,21 @@ $duration-slower: 700ms;
176
253
 
177
254
  // --- Fade Animations ---
178
255
  @keyframes fadeIn {
179
- from { opacity: 0; }
180
- to { opacity: 1; }
256
+ from {
257
+ opacity: 0;
258
+ }
259
+ to {
260
+ opacity: 1;
261
+ }
181
262
  }
182
263
 
183
264
  @keyframes fadeOut {
184
- from { opacity: 1; }
185
- to { opacity: 0; }
265
+ from {
266
+ opacity: 1;
267
+ }
268
+ to {
269
+ opacity: 0;
270
+ }
186
271
  }
187
272
 
188
273
  @keyframes fadeInUp {
@@ -231,43 +316,75 @@ $duration-slower: 700ms;
231
316
 
232
317
  // --- Slide Animations ---
233
318
  @keyframes slideInUp {
234
- from { transform: translateY(100%); }
235
- to { transform: translateY(0); }
319
+ from {
320
+ transform: translateY(100%);
321
+ }
322
+ to {
323
+ transform: translateY(0);
324
+ }
236
325
  }
237
326
 
238
327
  @keyframes slideInDown {
239
- from { transform: translateY(-100%); }
240
- to { transform: translateY(0); }
328
+ from {
329
+ transform: translateY(-100%);
330
+ }
331
+ to {
332
+ transform: translateY(0);
333
+ }
241
334
  }
242
335
 
243
336
  @keyframes slideInLeft {
244
- from { transform: translateX(-100%); }
245
- to { transform: translateX(0); }
337
+ from {
338
+ transform: translateX(-100%);
339
+ }
340
+ to {
341
+ transform: translateX(0);
342
+ }
246
343
  }
247
344
 
248
345
  @keyframes slideInRight {
249
- from { transform: translateX(100%); }
250
- to { transform: translateX(0); }
346
+ from {
347
+ transform: translateX(100%);
348
+ }
349
+ to {
350
+ transform: translateX(0);
351
+ }
251
352
  }
252
353
 
253
354
  @keyframes slideOutUp {
254
- from { transform: translateY(0); }
255
- to { transform: translateY(-100%); }
355
+ from {
356
+ transform: translateY(0);
357
+ }
358
+ to {
359
+ transform: translateY(-100%);
360
+ }
256
361
  }
257
362
 
258
363
  @keyframes slideOutDown {
259
- from { transform: translateY(0); }
260
- to { transform: translateY(100%); }
364
+ from {
365
+ transform: translateY(0);
366
+ }
367
+ to {
368
+ transform: translateY(100%);
369
+ }
261
370
  }
262
371
 
263
372
  @keyframes slideOutLeft {
264
- from { transform: translateX(0); }
265
- to { transform: translateX(-100%); }
373
+ from {
374
+ transform: translateX(0);
375
+ }
376
+ to {
377
+ transform: translateX(-100%);
378
+ }
266
379
  }
267
380
 
268
381
  @keyframes slideOutRight {
269
- from { transform: translateX(0); }
270
- to { transform: translateX(100%); }
382
+ from {
383
+ transform: translateX(0);
384
+ }
385
+ to {
386
+ transform: translateX(100%);
387
+ }
271
388
  }
272
389
 
273
390
  // --- Scale Animations ---
@@ -331,13 +448,21 @@ $duration-slower: 700ms;
331
448
 
332
449
  // --- Rotate Animations ---
333
450
  @keyframes spin {
334
- from { transform: rotate(0deg); }
335
- to { transform: rotate(360deg); }
451
+ from {
452
+ transform: rotate(0deg);
453
+ }
454
+ to {
455
+ transform: rotate(360deg);
456
+ }
336
457
  }
337
458
 
338
459
  @keyframes spinReverse {
339
- from { transform: rotate(360deg); }
340
- to { transform: rotate(0deg); }
460
+ from {
461
+ transform: rotate(360deg);
462
+ }
463
+ to {
464
+ transform: rotate(0deg);
465
+ }
341
466
  }
342
467
 
343
468
  @keyframes rotateIn {
@@ -353,7 +478,8 @@ $duration-slower: 700ms;
353
478
 
354
479
  // --- Bounce & Pulse Animations ---
355
480
  @keyframes bounce {
356
- 0%, 100% {
481
+ 0%,
482
+ 100% {
357
483
  transform: translateY(-25%);
358
484
  animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
359
485
  }
@@ -381,7 +507,8 @@ $duration-slower: 700ms;
381
507
  }
382
508
 
383
509
  @keyframes pulse {
384
- 0%, 100% {
510
+ 0%,
511
+ 100% {
385
512
  opacity: 1;
386
513
  }
387
514
  50% {
@@ -390,90 +517,222 @@ $duration-slower: 700ms;
390
517
  }
391
518
 
392
519
  @keyframes ping {
393
- 75%, 100% {
520
+ 75%,
521
+ 100% {
394
522
  transform: scale(2);
395
523
  opacity: 0;
396
524
  }
397
525
  }
398
526
 
399
527
  @keyframes heartbeat {
400
- 0% { transform: scale(1); }
401
- 14% { transform: scale(1.3); }
402
- 28% { transform: scale(1); }
403
- 42% { transform: scale(1.3); }
404
- 70% { transform: scale(1); }
528
+ 0% {
529
+ transform: scale(1);
530
+ }
531
+ 14% {
532
+ transform: scale(1.3);
533
+ }
534
+ 28% {
535
+ transform: scale(1);
536
+ }
537
+ 42% {
538
+ transform: scale(1.3);
539
+ }
540
+ 70% {
541
+ transform: scale(1);
542
+ }
405
543
  }
406
544
 
407
545
  // --- Shake & Wobble Animations ---
408
546
  @keyframes shake {
409
- 0%, 100% { transform: translateX(0); }
410
- 10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
411
- 20%, 40%, 60%, 80% { transform: translateX(4px); }
547
+ 0%,
548
+ 100% {
549
+ transform: translateX(0);
550
+ }
551
+ 10%,
552
+ 30%,
553
+ 50%,
554
+ 70%,
555
+ 90% {
556
+ transform: translateX(-4px);
557
+ }
558
+ 20%,
559
+ 40%,
560
+ 60%,
561
+ 80% {
562
+ transform: translateX(4px);
563
+ }
412
564
  }
413
565
 
414
566
  @keyframes shakeX {
415
- 0%, 100% { transform: translateX(0); }
416
- 10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
417
- 20%, 40%, 60%, 80% { transform: translateX(10px); }
567
+ 0%,
568
+ 100% {
569
+ transform: translateX(0);
570
+ }
571
+ 10%,
572
+ 30%,
573
+ 50%,
574
+ 70%,
575
+ 90% {
576
+ transform: translateX(-10px);
577
+ }
578
+ 20%,
579
+ 40%,
580
+ 60%,
581
+ 80% {
582
+ transform: translateX(10px);
583
+ }
418
584
  }
419
585
 
420
586
  @keyframes shakeY {
421
- 0%, 100% { transform: translateY(0); }
422
- 10%, 30%, 50%, 70%, 90% { transform: translateY(-10px); }
423
- 20%, 40%, 60%, 80% { transform: translateY(10px); }
587
+ 0%,
588
+ 100% {
589
+ transform: translateY(0);
590
+ }
591
+ 10%,
592
+ 30%,
593
+ 50%,
594
+ 70%,
595
+ 90% {
596
+ transform: translateY(-10px);
597
+ }
598
+ 20%,
599
+ 40%,
600
+ 60%,
601
+ 80% {
602
+ transform: translateY(10px);
603
+ }
424
604
  }
425
605
 
426
606
  @keyframes wobble {
427
- 0% { transform: translateX(0); }
428
- 15% { transform: translateX(-25%) rotate(-5deg); }
429
- 30% { transform: translateX(20%) rotate(3deg); }
430
- 45% { transform: translateX(-15%) rotate(-3deg); }
431
- 60% { transform: translateX(10%) rotate(2deg); }
432
- 75% { transform: translateX(-5%) rotate(-1deg); }
433
- 100% { transform: translateX(0); }
607
+ 0% {
608
+ transform: translateX(0);
609
+ }
610
+ 15% {
611
+ transform: translateX(-25%) rotate(-5deg);
612
+ }
613
+ 30% {
614
+ transform: translateX(20%) rotate(3deg);
615
+ }
616
+ 45% {
617
+ transform: translateX(-15%) rotate(-3deg);
618
+ }
619
+ 60% {
620
+ transform: translateX(10%) rotate(2deg);
621
+ }
622
+ 75% {
623
+ transform: translateX(-5%) rotate(-1deg);
624
+ }
625
+ 100% {
626
+ transform: translateX(0);
627
+ }
434
628
  }
435
629
 
436
630
  @keyframes jello {
437
- 0%, 11.1%, 100% { transform: none; }
438
- 22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); }
439
- 33.3% { transform: skewX(6.25deg) skewY(6.25deg); }
440
- 44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); }
441
- 55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); }
442
- 66.6% { transform: skewX(-0.78125deg) skewY(-0.78125deg); }
443
- 77.7% { transform: skewX(0.390625deg) skewY(0.390625deg); }
444
- 88.8% { transform: skewX(-0.1953125deg) skewY(-0.1953125deg); }
631
+ 0%,
632
+ 11.1%,
633
+ 100% {
634
+ transform: none;
635
+ }
636
+ 22.2% {
637
+ transform: skewX(-12.5deg) skewY(-12.5deg);
638
+ }
639
+ 33.3% {
640
+ transform: skewX(6.25deg) skewY(6.25deg);
641
+ }
642
+ 44.4% {
643
+ transform: skewX(-3.125deg) skewY(-3.125deg);
644
+ }
645
+ 55.5% {
646
+ transform: skewX(1.5625deg) skewY(1.5625deg);
647
+ }
648
+ 66.6% {
649
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
650
+ }
651
+ 77.7% {
652
+ transform: skewX(0.390625deg) skewY(0.390625deg);
653
+ }
654
+ 88.8% {
655
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
656
+ }
445
657
  }
446
658
 
447
659
  // --- Attention Seekers ---
448
660
  @keyframes flash {
449
- 0%, 50%, 100% { opacity: 1; }
450
- 25%, 75% { opacity: 0; }
661
+ 0%,
662
+ 50%,
663
+ 100% {
664
+ opacity: 1;
665
+ }
666
+ 25%,
667
+ 75% {
668
+ opacity: 0;
669
+ }
451
670
  }
452
671
 
453
672
  @keyframes tada {
454
- 0% { transform: scale(1); }
455
- 10%, 20% { transform: scale(0.9) rotate(-3deg); }
456
- 30%, 50%, 70%, 90% { transform: scale(1.1) rotate(3deg); }
457
- 40%, 60%, 80% { transform: scale(1.1) rotate(-3deg); }
458
- 100% { transform: scale(1) rotate(0); }
673
+ 0% {
674
+ transform: scale(1);
675
+ }
676
+ 10%,
677
+ 20% {
678
+ transform: scale(0.9) rotate(-3deg);
679
+ }
680
+ 30%,
681
+ 50%,
682
+ 70%,
683
+ 90% {
684
+ transform: scale(1.1) rotate(3deg);
685
+ }
686
+ 40%,
687
+ 60%,
688
+ 80% {
689
+ transform: scale(1.1) rotate(-3deg);
690
+ }
691
+ 100% {
692
+ transform: scale(1) rotate(0);
693
+ }
459
694
  }
460
695
 
461
696
  @keyframes rubberBand {
462
- 0% { transform: scale(1); }
463
- 30% { transform: scaleX(1.25) scaleY(0.75); }
464
- 40% { transform: scaleX(0.75) scaleY(1.25); }
465
- 50% { transform: scaleX(1.15) scaleY(0.85); }
466
- 65% { transform: scaleX(0.95) scaleY(1.05); }
467
- 75% { transform: scaleX(1.05) scaleY(0.95); }
468
- 100% { transform: scale(1); }
697
+ 0% {
698
+ transform: scale(1);
699
+ }
700
+ 30% {
701
+ transform: scaleX(1.25) scaleY(0.75);
702
+ }
703
+ 40% {
704
+ transform: scaleX(0.75) scaleY(1.25);
705
+ }
706
+ 50% {
707
+ transform: scaleX(1.15) scaleY(0.85);
708
+ }
709
+ 65% {
710
+ transform: scaleX(0.95) scaleY(1.05);
711
+ }
712
+ 75% {
713
+ transform: scaleX(1.05) scaleY(0.95);
714
+ }
715
+ 100% {
716
+ transform: scale(1);
717
+ }
469
718
  }
470
719
 
471
720
  @keyframes swing {
472
- 20% { transform: rotate(15deg); }
473
- 40% { transform: rotate(-10deg); }
474
- 60% { transform: rotate(5deg); }
475
- 80% { transform: rotate(-5deg); }
476
- 100% { transform: rotate(0deg); }
721
+ 20% {
722
+ transform: rotate(15deg);
723
+ }
724
+ 40% {
725
+ transform: rotate(-10deg);
726
+ }
727
+ 60% {
728
+ transform: rotate(5deg);
729
+ }
730
+ 80% {
731
+ transform: rotate(-5deg);
732
+ }
733
+ 100% {
734
+ transform: rotate(0deg);
735
+ }
477
736
  }
478
737
 
479
738
  // --- Loading Animations ---
@@ -505,7 +764,9 @@ $duration-slower: 700ms;
505
764
  }
506
765
 
507
766
  @keyframes dotPulse {
508
- 0%, 80%, 100% {
767
+ 0%,
768
+ 80%,
769
+ 100% {
509
770
  transform: scale(0);
510
771
  opacity: 0.5;
511
772
  }
@@ -517,7 +778,8 @@ $duration-slower: 700ms;
517
778
 
518
779
  // --- Float Animation ---
519
780
  @keyframes float {
520
- 0%, 100% {
781
+ 0%,
782
+ 100% {
521
783
  transform: translateY(0);
522
784
  }
523
785
  50% {
@@ -699,17 +961,23 @@ $duration-slower: 700ms;
699
961
  .loading-dots {
700
962
  display: inline-flex;
701
963
  gap: 4px;
702
-
964
+
703
965
  span {
704
966
  width: 8px;
705
967
  height: 8px;
706
968
  border-radius: 50%;
707
969
  background-color: currentColor;
708
970
  animation: dotPulse 1.4s ease-in-out infinite;
709
-
710
- &:nth-child(1) { animation-delay: 0s; }
711
- &:nth-child(2) { animation-delay: 0.2s; }
712
- &:nth-child(3) { animation-delay: 0.4s; }
971
+
972
+ &:nth-child(1) {
973
+ animation-delay: 0s;
974
+ }
975
+ &:nth-child(2) {
976
+ animation-delay: 0.2s;
977
+ }
978
+ &:nth-child(3) {
979
+ animation-delay: 0.4s;
980
+ }
713
981
  }
714
982
  }
715
983
 
@@ -743,49 +1011,111 @@ $duration-slower: 700ms;
743
1011
  // ============================================================================
744
1012
 
745
1013
  // Animation iteration count
746
- .animate-once { animation-iteration-count: 1 !important; }
747
- .animate-twice { animation-iteration-count: 2 !important; }
748
- .animate-infinite { animation-iteration-count: infinite !important; }
1014
+ .animate-once {
1015
+ animation-iteration-count: 1 !important;
1016
+ }
1017
+ .animate-twice {
1018
+ animation-iteration-count: 2 !important;
1019
+ }
1020
+ .animate-infinite {
1021
+ animation-iteration-count: infinite !important;
1022
+ }
749
1023
 
750
1024
  // Animation direction
751
- .animate-normal { animation-direction: normal !important; }
752
- .animate-reverse { animation-direction: reverse !important; }
753
- .animate-alternate { animation-direction: alternate !important; }
754
- .animate-alternate-reverse { animation-direction: alternate-reverse !important; }
1025
+ .animate-normal {
1026
+ animation-direction: normal !important;
1027
+ }
1028
+ .animate-reverse {
1029
+ animation-direction: reverse !important;
1030
+ }
1031
+ .animate-alternate {
1032
+ animation-direction: alternate !important;
1033
+ }
1034
+ .animate-alternate-reverse {
1035
+ animation-direction: alternate-reverse !important;
1036
+ }
755
1037
 
756
1038
  // Animation fill mode
757
- .animate-fill-none { animation-fill-mode: none !important; }
758
- .animate-fill-forwards { animation-fill-mode: forwards !important; }
759
- .animate-fill-backwards { animation-fill-mode: backwards !important; }
760
- .animate-fill-both { animation-fill-mode: both !important; }
1039
+ .animate-fill-none {
1040
+ animation-fill-mode: none !important;
1041
+ }
1042
+ .animate-fill-forwards {
1043
+ animation-fill-mode: forwards !important;
1044
+ }
1045
+ .animate-fill-backwards {
1046
+ animation-fill-mode: backwards !important;
1047
+ }
1048
+ .animate-fill-both {
1049
+ animation-fill-mode: both !important;
1050
+ }
761
1051
 
762
1052
  // Animation play state
763
- .animate-running { animation-play-state: running !important; }
764
- .animate-paused { animation-play-state: paused !important; }
1053
+ .animate-running {
1054
+ animation-play-state: running !important;
1055
+ }
1056
+ .animate-paused {
1057
+ animation-play-state: paused !important;
1058
+ }
765
1059
 
766
1060
  // Animation delay utilities
767
- .animate-delay-0 { animation-delay: 0ms !important; }
768
- .animate-delay-75 { animation-delay: 75ms !important; }
769
- .animate-delay-100 { animation-delay: 100ms !important; }
770
- .animate-delay-150 { animation-delay: 150ms !important; }
771
- .animate-delay-200 { animation-delay: 200ms !important; }
772
- .animate-delay-300 { animation-delay: 300ms !important; }
773
- .animate-delay-500 { animation-delay: 500ms !important; }
774
- .animate-delay-700 { animation-delay: 700ms !important; }
775
- .animate-delay-1000 { animation-delay: 1000ms !important; }
1061
+ .animate-delay-0 {
1062
+ animation-delay: 0ms !important;
1063
+ }
1064
+ .animate-delay-75 {
1065
+ animation-delay: 75ms !important;
1066
+ }
1067
+ .animate-delay-100 {
1068
+ animation-delay: 100ms !important;
1069
+ }
1070
+ .animate-delay-150 {
1071
+ animation-delay: 150ms !important;
1072
+ }
1073
+ .animate-delay-200 {
1074
+ animation-delay: 200ms !important;
1075
+ }
1076
+ .animate-delay-300 {
1077
+ animation-delay: 300ms !important;
1078
+ }
1079
+ .animate-delay-500 {
1080
+ animation-delay: 500ms !important;
1081
+ }
1082
+ .animate-delay-700 {
1083
+ animation-delay: 700ms !important;
1084
+ }
1085
+ .animate-delay-1000 {
1086
+ animation-delay: 1000ms !important;
1087
+ }
776
1088
 
777
1089
  // Animation duration utilities (for animations)
778
- .animate-duration-75 { animation-duration: 75ms !important; }
779
- .animate-duration-100 { animation-duration: 100ms !important; }
780
- .animate-duration-150 { animation-duration: 150ms !important; }
781
- .animate-duration-200 { animation-duration: 200ms !important; }
782
- .animate-duration-300 { animation-duration: 300ms !important; }
783
- .animate-duration-500 { animation-duration: 500ms !important; }
784
- .animate-duration-700 { animation-duration: 700ms !important; }
785
- .animate-duration-1000 { animation-duration: 1000ms !important; }
1090
+ .animate-duration-75 {
1091
+ animation-duration: 75ms !important;
1092
+ }
1093
+ .animate-duration-100 {
1094
+ animation-duration: 100ms !important;
1095
+ }
1096
+ .animate-duration-150 {
1097
+ animation-duration: 150ms !important;
1098
+ }
1099
+ .animate-duration-200 {
1100
+ animation-duration: 200ms !important;
1101
+ }
1102
+ .animate-duration-300 {
1103
+ animation-duration: 300ms !important;
1104
+ }
1105
+ .animate-duration-500 {
1106
+ animation-duration: 500ms !important;
1107
+ }
1108
+ .animate-duration-700 {
1109
+ animation-duration: 700ms !important;
1110
+ }
1111
+ .animate-duration-1000 {
1112
+ animation-duration: 1000ms !important;
1113
+ }
786
1114
 
787
1115
  // No animation
788
- .animate-none { animation: none !important; }
1116
+ .animate-none {
1117
+ animation: none !important;
1118
+ }
789
1119
 
790
1120
  // ============================================================================
791
1121
  // 12. TRANSFORM UTILITIES
@@ -799,142 +1129,492 @@ $duration-slower: 700ms;
799
1129
  --ds-skew-y: 0;
800
1130
  --ds-scale-x: 1;
801
1131
  --ds-scale-y: 1;
802
- transform: translateX(var(--ds-translate-x)) translateY(var(--ds-translate-y)) rotate(var(--ds-rotate)) skewX(var(--ds-skew-x)) skewY(var(--ds-skew-y)) scaleX(var(--ds-scale-x)) scaleY(var(--ds-scale-y));
1132
+ transform: translateX(var(--ds-translate-x)) translateY(var(--ds-translate-y))
1133
+ rotate(var(--ds-rotate)) skewX(var(--ds-skew-x)) skewY(var(--ds-skew-y))
1134
+ scaleX(var(--ds-scale-x)) scaleY(var(--ds-scale-y));
803
1135
  }
804
1136
 
805
1137
  .transform-gpu {
806
- transform: translate3d(var(--ds-translate-x, 0), var(--ds-translate-y, 0), 0) rotate(var(--ds-rotate, 0)) skewX(var(--ds-skew-x, 0)) skewY(var(--ds-skew-y, 0)) scaleX(var(--ds-scale-x, 1)) scaleY(var(--ds-scale-y, 1));
1138
+ transform: translate3d(var(--ds-translate-x, 0), var(--ds-translate-y, 0), 0)
1139
+ rotate(var(--ds-rotate, 0)) skewX(var(--ds-skew-x, 0))
1140
+ skewY(var(--ds-skew-y, 0)) scaleX(var(--ds-scale-x, 1))
1141
+ scaleY(var(--ds-scale-y, 1));
807
1142
  }
808
1143
 
809
- .transform-none { transform: none !important; }
1144
+ .transform-none {
1145
+ transform: none !important;
1146
+ }
810
1147
 
811
1148
  // Scale
812
- .scale-0 { --ds-scale-x: 0; --ds-scale-y: 0; transform: scale(0); }
813
- .scale-50 { --ds-scale-x: 0.5; --ds-scale-y: 0.5; transform: scale(0.5); }
814
- .scale-75 { --ds-scale-x: 0.75; --ds-scale-y: 0.75; transform: scale(0.75); }
815
- .scale-90 { --ds-scale-x: 0.9; --ds-scale-y: 0.9; transform: scale(0.9); }
816
- .scale-95 { --ds-scale-x: 0.95; --ds-scale-y: 0.95; transform: scale(0.95); }
817
- .scale-100 { --ds-scale-x: 1; --ds-scale-y: 1; transform: scale(1); }
818
- .scale-105 { --ds-scale-x: 1.05; --ds-scale-y: 1.05; transform: scale(1.05); }
819
- .scale-110 { --ds-scale-x: 1.1; --ds-scale-y: 1.1; transform: scale(1.1); }
820
- .scale-125 { --ds-scale-x: 1.25; --ds-scale-y: 1.25; transform: scale(1.25); }
821
- .scale-150 { --ds-scale-x: 1.5; --ds-scale-y: 1.5; transform: scale(1.5); }
822
-
823
- .scale-x-0 { --ds-scale-x: 0; transform: scaleX(0); }
824
- .scale-x-50 { --ds-scale-x: 0.5; transform: scaleX(0.5); }
825
- .scale-x-75 { --ds-scale-x: 0.75; transform: scaleX(0.75); }
826
- .scale-x-90 { --ds-scale-x: 0.9; transform: scaleX(0.9); }
827
- .scale-x-95 { --ds-scale-x: 0.95; transform: scaleX(0.95); }
828
- .scale-x-100 { --ds-scale-x: 1; transform: scaleX(1); }
829
- .scale-x-105 { --ds-scale-x: 1.05; transform: scaleX(1.05); }
830
- .scale-x-110 { --ds-scale-x: 1.1; transform: scaleX(1.1); }
831
- .scale-x-125 { --ds-scale-x: 1.25; transform: scaleX(1.25); }
832
- .scale-x-150 { --ds-scale-x: 1.5; transform: scaleX(1.5); }
833
-
834
- .scale-y-0 { --ds-scale-y: 0; transform: scaleY(0); }
835
- .scale-y-50 { --ds-scale-y: 0.5; transform: scaleY(0.5); }
836
- .scale-y-75 { --ds-scale-y: 0.75; transform: scaleY(0.75); }
837
- .scale-y-90 { --ds-scale-y: 0.9; transform: scaleY(0.9); }
838
- .scale-y-95 { --ds-scale-y: 0.95; transform: scaleY(0.95); }
839
- .scale-y-100 { --ds-scale-y: 1; transform: scaleY(1); }
840
- .scale-y-105 { --ds-scale-y: 1.05; transform: scaleY(1.05); }
841
- .scale-y-110 { --ds-scale-y: 1.1; transform: scaleY(1.1); }
842
- .scale-y-125 { --ds-scale-y: 1.25; transform: scaleY(1.25); }
843
- .scale-y-150 { --ds-scale-y: 1.5; transform: scaleY(1.5); }
1149
+ .scale-0 {
1150
+ --ds-scale-x: 0;
1151
+ --ds-scale-y: 0;
1152
+ transform: scale(0);
1153
+ }
1154
+ .scale-50 {
1155
+ --ds-scale-x: 0.5;
1156
+ --ds-scale-y: 0.5;
1157
+ transform: scale(0.5);
1158
+ }
1159
+ .scale-75 {
1160
+ --ds-scale-x: 0.75;
1161
+ --ds-scale-y: 0.75;
1162
+ transform: scale(0.75);
1163
+ }
1164
+ .scale-90 {
1165
+ --ds-scale-x: 0.9;
1166
+ --ds-scale-y: 0.9;
1167
+ transform: scale(0.9);
1168
+ }
1169
+ .scale-95 {
1170
+ --ds-scale-x: 0.95;
1171
+ --ds-scale-y: 0.95;
1172
+ transform: scale(0.95);
1173
+ }
1174
+ .scale-100 {
1175
+ --ds-scale-x: 1;
1176
+ --ds-scale-y: 1;
1177
+ transform: scale(1);
1178
+ }
1179
+ .scale-105 {
1180
+ --ds-scale-x: 1.05;
1181
+ --ds-scale-y: 1.05;
1182
+ transform: scale(1.05);
1183
+ }
1184
+ .scale-110 {
1185
+ --ds-scale-x: 1.1;
1186
+ --ds-scale-y: 1.1;
1187
+ transform: scale(1.1);
1188
+ }
1189
+ .scale-125 {
1190
+ --ds-scale-x: 1.25;
1191
+ --ds-scale-y: 1.25;
1192
+ transform: scale(1.25);
1193
+ }
1194
+ .scale-150 {
1195
+ --ds-scale-x: 1.5;
1196
+ --ds-scale-y: 1.5;
1197
+ transform: scale(1.5);
1198
+ }
1199
+
1200
+ .scale-x-0 {
1201
+ --ds-scale-x: 0;
1202
+ transform: scaleX(0);
1203
+ }
1204
+ .scale-x-50 {
1205
+ --ds-scale-x: 0.5;
1206
+ transform: scaleX(0.5);
1207
+ }
1208
+ .scale-x-75 {
1209
+ --ds-scale-x: 0.75;
1210
+ transform: scaleX(0.75);
1211
+ }
1212
+ .scale-x-90 {
1213
+ --ds-scale-x: 0.9;
1214
+ transform: scaleX(0.9);
1215
+ }
1216
+ .scale-x-95 {
1217
+ --ds-scale-x: 0.95;
1218
+ transform: scaleX(0.95);
1219
+ }
1220
+ .scale-x-100 {
1221
+ --ds-scale-x: 1;
1222
+ transform: scaleX(1);
1223
+ }
1224
+ .scale-x-105 {
1225
+ --ds-scale-x: 1.05;
1226
+ transform: scaleX(1.05);
1227
+ }
1228
+ .scale-x-110 {
1229
+ --ds-scale-x: 1.1;
1230
+ transform: scaleX(1.1);
1231
+ }
1232
+ .scale-x-125 {
1233
+ --ds-scale-x: 1.25;
1234
+ transform: scaleX(1.25);
1235
+ }
1236
+ .scale-x-150 {
1237
+ --ds-scale-x: 1.5;
1238
+ transform: scaleX(1.5);
1239
+ }
1240
+
1241
+ .scale-y-0 {
1242
+ --ds-scale-y: 0;
1243
+ transform: scaleY(0);
1244
+ }
1245
+ .scale-y-50 {
1246
+ --ds-scale-y: 0.5;
1247
+ transform: scaleY(0.5);
1248
+ }
1249
+ .scale-y-75 {
1250
+ --ds-scale-y: 0.75;
1251
+ transform: scaleY(0.75);
1252
+ }
1253
+ .scale-y-90 {
1254
+ --ds-scale-y: 0.9;
1255
+ transform: scaleY(0.9);
1256
+ }
1257
+ .scale-y-95 {
1258
+ --ds-scale-y: 0.95;
1259
+ transform: scaleY(0.95);
1260
+ }
1261
+ .scale-y-100 {
1262
+ --ds-scale-y: 1;
1263
+ transform: scaleY(1);
1264
+ }
1265
+ .scale-y-105 {
1266
+ --ds-scale-y: 1.05;
1267
+ transform: scaleY(1.05);
1268
+ }
1269
+ .scale-y-110 {
1270
+ --ds-scale-y: 1.1;
1271
+ transform: scaleY(1.1);
1272
+ }
1273
+ .scale-y-125 {
1274
+ --ds-scale-y: 1.25;
1275
+ transform: scaleY(1.25);
1276
+ }
1277
+ .scale-y-150 {
1278
+ --ds-scale-y: 1.5;
1279
+ transform: scaleY(1.5);
1280
+ }
844
1281
 
845
1282
  // Rotate
846
- .rotate-0 { --ds-rotate: 0deg; transform: rotate(0deg); }
847
- .rotate-1 { --ds-rotate: 1deg; transform: rotate(1deg); }
848
- .rotate-2 { --ds-rotate: 2deg; transform: rotate(2deg); }
849
- .rotate-3 { --ds-rotate: 3deg; transform: rotate(3deg); }
850
- .rotate-6 { --ds-rotate: 6deg; transform: rotate(6deg); }
851
- .rotate-12 { --ds-rotate: 12deg; transform: rotate(12deg); }
852
- .rotate-45 { --ds-rotate: 45deg; transform: rotate(45deg); }
853
- .rotate-90 { --ds-rotate: 90deg; transform: rotate(90deg); }
854
- .rotate-180 { --ds-rotate: 180deg; transform: rotate(180deg); }
855
- .-rotate-1 { --ds-rotate: -1deg; transform: rotate(-1deg); }
856
- .-rotate-2 { --ds-rotate: -2deg; transform: rotate(-2deg); }
857
- .-rotate-3 { --ds-rotate: -3deg; transform: rotate(-3deg); }
858
- .-rotate-6 { --ds-rotate: -6deg; transform: rotate(-6deg); }
859
- .-rotate-12 { --ds-rotate: -12deg; transform: rotate(-12deg); }
860
- .-rotate-45 { --ds-rotate: -45deg; transform: rotate(-45deg); }
861
- .-rotate-90 { --ds-rotate: -90deg; transform: rotate(-90deg); }
862
- .-rotate-180 { --ds-rotate: -180deg; transform: rotate(-180deg); }
1283
+ .rotate-0 {
1284
+ --ds-rotate: 0deg;
1285
+ transform: rotate(0deg);
1286
+ }
1287
+ .rotate-1 {
1288
+ --ds-rotate: 1deg;
1289
+ transform: rotate(1deg);
1290
+ }
1291
+ .rotate-2 {
1292
+ --ds-rotate: 2deg;
1293
+ transform: rotate(2deg);
1294
+ }
1295
+ .rotate-3 {
1296
+ --ds-rotate: 3deg;
1297
+ transform: rotate(3deg);
1298
+ }
1299
+ .rotate-6 {
1300
+ --ds-rotate: 6deg;
1301
+ transform: rotate(6deg);
1302
+ }
1303
+ .rotate-12 {
1304
+ --ds-rotate: 12deg;
1305
+ transform: rotate(12deg);
1306
+ }
1307
+ .rotate-45 {
1308
+ --ds-rotate: 45deg;
1309
+ transform: rotate(45deg);
1310
+ }
1311
+ .rotate-90 {
1312
+ --ds-rotate: 90deg;
1313
+ transform: rotate(90deg);
1314
+ }
1315
+ .rotate-180 {
1316
+ --ds-rotate: 180deg;
1317
+ transform: rotate(180deg);
1318
+ }
1319
+ .-rotate-1 {
1320
+ --ds-rotate: -1deg;
1321
+ transform: rotate(-1deg);
1322
+ }
1323
+ .-rotate-2 {
1324
+ --ds-rotate: -2deg;
1325
+ transform: rotate(-2deg);
1326
+ }
1327
+ .-rotate-3 {
1328
+ --ds-rotate: -3deg;
1329
+ transform: rotate(-3deg);
1330
+ }
1331
+ .-rotate-6 {
1332
+ --ds-rotate: -6deg;
1333
+ transform: rotate(-6deg);
1334
+ }
1335
+ .-rotate-12 {
1336
+ --ds-rotate: -12deg;
1337
+ transform: rotate(-12deg);
1338
+ }
1339
+ .-rotate-45 {
1340
+ --ds-rotate: -45deg;
1341
+ transform: rotate(-45deg);
1342
+ }
1343
+ .-rotate-90 {
1344
+ --ds-rotate: -90deg;
1345
+ transform: rotate(-90deg);
1346
+ }
1347
+ .-rotate-180 {
1348
+ --ds-rotate: -180deg;
1349
+ transform: rotate(-180deg);
1350
+ }
863
1351
 
864
1352
  // Translate
865
- .translate-x-0 { --ds-translate-x: 0; transform: translateX(0); }
866
- .translate-x-1 { --ds-translate-x: 4px; transform: translateX(4px); }
867
- .translate-x-2 { --ds-translate-x: 8px; transform: translateX(8px); }
868
- .translate-x-3 { --ds-translate-x: 12px; transform: translateX(12px); }
869
- .translate-x-4 { --ds-translate-x: 16px; transform: translateX(16px); }
870
- .translate-x-5 { --ds-translate-x: 20px; transform: translateX(20px); }
871
- .translate-x-6 { --ds-translate-x: 24px; transform: translateX(24px); }
872
- .translate-x-8 { --ds-translate-x: 32px; transform: translateX(32px); }
873
- .translate-x-10 { --ds-translate-x: 40px; transform: translateX(40px); }
874
- .translate-x-12 { --ds-translate-x: 48px; transform: translateX(48px); }
875
- .translate-x-full { --ds-translate-x: 100%; transform: translateX(100%); }
876
- .translate-x-1\\/2 { --ds-translate-x: 50%; transform: translateX(50%); }
877
- .-translate-x-1 { --ds-translate-x: -4px; transform: translateX(-4px); }
878
- .-translate-x-2 { --ds-translate-x: -8px; transform: translateX(-8px); }
879
- .-translate-x-3 { --ds-translate-x: -12px; transform: translateX(-12px); }
880
- .-translate-x-4 { --ds-translate-x: -16px; transform: translateX(-16px); }
881
- .-translate-x-full { --ds-translate-x: -100%; transform: translateX(-100%); }
882
- .-translate-x-1\\/2 { --ds-translate-x: -50%; transform: translateX(-50%); }
883
-
884
- .translate-y-0 { --ds-translate-y: 0; transform: translateY(0); }
885
- .translate-y-1 { --ds-translate-y: 4px; transform: translateY(4px); }
886
- .translate-y-2 { --ds-translate-y: 8px; transform: translateY(8px); }
887
- .translate-y-3 { --ds-translate-y: 12px; transform: translateY(12px); }
888
- .translate-y-4 { --ds-translate-y: 16px; transform: translateY(16px); }
889
- .translate-y-5 { --ds-translate-y: 20px; transform: translateY(20px); }
890
- .translate-y-6 { --ds-translate-y: 24px; transform: translateY(24px); }
891
- .translate-y-8 { --ds-translate-y: 32px; transform: translateY(32px); }
892
- .translate-y-10 { --ds-translate-y: 40px; transform: translateY(40px); }
893
- .translate-y-12 { --ds-translate-y: 48px; transform: translateY(48px); }
894
- .translate-y-full { --ds-translate-y: 100%; transform: translateY(100%); }
895
- .translate-y-1\\/2 { --ds-translate-y: 50%; transform: translateY(50%); }
896
- .-translate-y-1 { --ds-translate-y: -4px; transform: translateY(-4px); }
897
- .-translate-y-2 { --ds-translate-y: -8px; transform: translateY(-8px); }
898
- .-translate-y-3 { --ds-translate-y: -12px; transform: translateY(-12px); }
899
- .-translate-y-4 { --ds-translate-y: -16px; transform: translateY(-16px); }
900
- .-translate-y-full { --ds-translate-y: -100%; transform: translateY(-100%); }
901
- .-translate-y-1\\/2 { --ds-translate-y: -50%; transform: translateY(-50%); }
1353
+ .translate-x-0 {
1354
+ --ds-translate-x: 0;
1355
+ transform: translateX(0);
1356
+ }
1357
+ .translate-x-1 {
1358
+ --ds-translate-x: 4px;
1359
+ transform: translateX(4px);
1360
+ }
1361
+ .translate-x-2 {
1362
+ --ds-translate-x: 8px;
1363
+ transform: translateX(8px);
1364
+ }
1365
+ .translate-x-3 {
1366
+ --ds-translate-x: 12px;
1367
+ transform: translateX(12px);
1368
+ }
1369
+ .translate-x-4 {
1370
+ --ds-translate-x: 16px;
1371
+ transform: translateX(16px);
1372
+ }
1373
+ .translate-x-5 {
1374
+ --ds-translate-x: 20px;
1375
+ transform: translateX(20px);
1376
+ }
1377
+ .translate-x-6 {
1378
+ --ds-translate-x: 24px;
1379
+ transform: translateX(24px);
1380
+ }
1381
+ .translate-x-8 {
1382
+ --ds-translate-x: 32px;
1383
+ transform: translateX(32px);
1384
+ }
1385
+ .translate-x-10 {
1386
+ --ds-translate-x: 40px;
1387
+ transform: translateX(40px);
1388
+ }
1389
+ .translate-x-12 {
1390
+ --ds-translate-x: 48px;
1391
+ transform: translateX(48px);
1392
+ }
1393
+ .translate-x-full {
1394
+ --ds-translate-x: 100%;
1395
+ transform: translateX(100%);
1396
+ }
1397
+ .translate-x-1\\/2 {
1398
+ --ds-translate-x: 50%;
1399
+ transform: translateX(50%);
1400
+ }
1401
+ .-translate-x-1 {
1402
+ --ds-translate-x: -4px;
1403
+ transform: translateX(-4px);
1404
+ }
1405
+ .-translate-x-2 {
1406
+ --ds-translate-x: -8px;
1407
+ transform: translateX(-8px);
1408
+ }
1409
+ .-translate-x-3 {
1410
+ --ds-translate-x: -12px;
1411
+ transform: translateX(-12px);
1412
+ }
1413
+ .-translate-x-4 {
1414
+ --ds-translate-x: -16px;
1415
+ transform: translateX(-16px);
1416
+ }
1417
+ .-translate-x-full {
1418
+ --ds-translate-x: -100%;
1419
+ transform: translateX(-100%);
1420
+ }
1421
+ .-translate-x-1\\/2 {
1422
+ --ds-translate-x: -50%;
1423
+ transform: translateX(-50%);
1424
+ }
1425
+
1426
+ .translate-y-0 {
1427
+ --ds-translate-y: 0;
1428
+ transform: translateY(0);
1429
+ }
1430
+ .translate-y-1 {
1431
+ --ds-translate-y: 4px;
1432
+ transform: translateY(4px);
1433
+ }
1434
+ .translate-y-2 {
1435
+ --ds-translate-y: 8px;
1436
+ transform: translateY(8px);
1437
+ }
1438
+ .translate-y-3 {
1439
+ --ds-translate-y: 12px;
1440
+ transform: translateY(12px);
1441
+ }
1442
+ .translate-y-4 {
1443
+ --ds-translate-y: 16px;
1444
+ transform: translateY(16px);
1445
+ }
1446
+ .translate-y-5 {
1447
+ --ds-translate-y: 20px;
1448
+ transform: translateY(20px);
1449
+ }
1450
+ .translate-y-6 {
1451
+ --ds-translate-y: 24px;
1452
+ transform: translateY(24px);
1453
+ }
1454
+ .translate-y-8 {
1455
+ --ds-translate-y: 32px;
1456
+ transform: translateY(32px);
1457
+ }
1458
+ .translate-y-10 {
1459
+ --ds-translate-y: 40px;
1460
+ transform: translateY(40px);
1461
+ }
1462
+ .translate-y-12 {
1463
+ --ds-translate-y: 48px;
1464
+ transform: translateY(48px);
1465
+ }
1466
+ .translate-y-full {
1467
+ --ds-translate-y: 100%;
1468
+ transform: translateY(100%);
1469
+ }
1470
+ .translate-y-1\\/2 {
1471
+ --ds-translate-y: 50%;
1472
+ transform: translateY(50%);
1473
+ }
1474
+ .-translate-y-1 {
1475
+ --ds-translate-y: -4px;
1476
+ transform: translateY(-4px);
1477
+ }
1478
+ .-translate-y-2 {
1479
+ --ds-translate-y: -8px;
1480
+ transform: translateY(-8px);
1481
+ }
1482
+ .-translate-y-3 {
1483
+ --ds-translate-y: -12px;
1484
+ transform: translateY(-12px);
1485
+ }
1486
+ .-translate-y-4 {
1487
+ --ds-translate-y: -16px;
1488
+ transform: translateY(-16px);
1489
+ }
1490
+ .-translate-y-full {
1491
+ --ds-translate-y: -100%;
1492
+ transform: translateY(-100%);
1493
+ }
1494
+ .-translate-y-1\\/2 {
1495
+ --ds-translate-y: -50%;
1496
+ transform: translateY(-50%);
1497
+ }
902
1498
 
903
1499
  // Skew
904
- .skew-x-0 { --ds-skew-x: 0deg; transform: skewX(0deg); }
905
- .skew-x-1 { --ds-skew-x: 1deg; transform: skewX(1deg); }
906
- .skew-x-2 { --ds-skew-x: 2deg; transform: skewX(2deg); }
907
- .skew-x-3 { --ds-skew-x: 3deg; transform: skewX(3deg); }
908
- .skew-x-6 { --ds-skew-x: 6deg; transform: skewX(6deg); }
909
- .skew-x-12 { --ds-skew-x: 12deg; transform: skewX(12deg); }
910
- .-skew-x-1 { --ds-skew-x: -1deg; transform: skewX(-1deg); }
911
- .-skew-x-2 { --ds-skew-x: -2deg; transform: skewX(-2deg); }
912
- .-skew-x-3 { --ds-skew-x: -3deg; transform: skewX(-3deg); }
913
- .-skew-x-6 { --ds-skew-x: -6deg; transform: skewX(-6deg); }
914
- .-skew-x-12 { --ds-skew-x: -12deg; transform: skewX(-12deg); }
915
-
916
- .skew-y-0 { --ds-skew-y: 0deg; transform: skewY(0deg); }
917
- .skew-y-1 { --ds-skew-y: 1deg; transform: skewY(1deg); }
918
- .skew-y-2 { --ds-skew-y: 2deg; transform: skewY(2deg); }
919
- .skew-y-3 { --ds-skew-y: 3deg; transform: skewY(3deg); }
920
- .skew-y-6 { --ds-skew-y: 6deg; transform: skewY(6deg); }
921
- .skew-y-12 { --ds-skew-y: 12deg; transform: skewY(12deg); }
922
- .-skew-y-1 { --ds-skew-y: -1deg; transform: skewY(-1deg); }
923
- .-skew-y-2 { --ds-skew-y: -2deg; transform: skewY(-2deg); }
924
- .-skew-y-3 { --ds-skew-y: -3deg; transform: skewY(-3deg); }
925
- .-skew-y-6 { --ds-skew-y: -6deg; transform: skewY(-6deg); }
926
- .-skew-y-12 { --ds-skew-y: -12deg; transform: skewY(-12deg); }
1500
+ .skew-x-0 {
1501
+ --ds-skew-x: 0deg;
1502
+ transform: skewX(0deg);
1503
+ }
1504
+ .skew-x-1 {
1505
+ --ds-skew-x: 1deg;
1506
+ transform: skewX(1deg);
1507
+ }
1508
+ .skew-x-2 {
1509
+ --ds-skew-x: 2deg;
1510
+ transform: skewX(2deg);
1511
+ }
1512
+ .skew-x-3 {
1513
+ --ds-skew-x: 3deg;
1514
+ transform: skewX(3deg);
1515
+ }
1516
+ .skew-x-6 {
1517
+ --ds-skew-x: 6deg;
1518
+ transform: skewX(6deg);
1519
+ }
1520
+ .skew-x-12 {
1521
+ --ds-skew-x: 12deg;
1522
+ transform: skewX(12deg);
1523
+ }
1524
+ .-skew-x-1 {
1525
+ --ds-skew-x: -1deg;
1526
+ transform: skewX(-1deg);
1527
+ }
1528
+ .-skew-x-2 {
1529
+ --ds-skew-x: -2deg;
1530
+ transform: skewX(-2deg);
1531
+ }
1532
+ .-skew-x-3 {
1533
+ --ds-skew-x: -3deg;
1534
+ transform: skewX(-3deg);
1535
+ }
1536
+ .-skew-x-6 {
1537
+ --ds-skew-x: -6deg;
1538
+ transform: skewX(-6deg);
1539
+ }
1540
+ .-skew-x-12 {
1541
+ --ds-skew-x: -12deg;
1542
+ transform: skewX(-12deg);
1543
+ }
1544
+
1545
+ .skew-y-0 {
1546
+ --ds-skew-y: 0deg;
1547
+ transform: skewY(0deg);
1548
+ }
1549
+ .skew-y-1 {
1550
+ --ds-skew-y: 1deg;
1551
+ transform: skewY(1deg);
1552
+ }
1553
+ .skew-y-2 {
1554
+ --ds-skew-y: 2deg;
1555
+ transform: skewY(2deg);
1556
+ }
1557
+ .skew-y-3 {
1558
+ --ds-skew-y: 3deg;
1559
+ transform: skewY(3deg);
1560
+ }
1561
+ .skew-y-6 {
1562
+ --ds-skew-y: 6deg;
1563
+ transform: skewY(6deg);
1564
+ }
1565
+ .skew-y-12 {
1566
+ --ds-skew-y: 12deg;
1567
+ transform: skewY(12deg);
1568
+ }
1569
+ .-skew-y-1 {
1570
+ --ds-skew-y: -1deg;
1571
+ transform: skewY(-1deg);
1572
+ }
1573
+ .-skew-y-2 {
1574
+ --ds-skew-y: -2deg;
1575
+ transform: skewY(-2deg);
1576
+ }
1577
+ .-skew-y-3 {
1578
+ --ds-skew-y: -3deg;
1579
+ transform: skewY(-3deg);
1580
+ }
1581
+ .-skew-y-6 {
1582
+ --ds-skew-y: -6deg;
1583
+ transform: skewY(-6deg);
1584
+ }
1585
+ .-skew-y-12 {
1586
+ --ds-skew-y: -12deg;
1587
+ transform: skewY(-12deg);
1588
+ }
927
1589
 
928
1590
  // Transform Origin
929
- .origin-center { transform-origin: center !important; }
930
- .origin-top { transform-origin: top !important; }
931
- .origin-top-right { transform-origin: top right !important; }
932
- .origin-right { transform-origin: right !important; }
933
- .origin-bottom-right { transform-origin: bottom right !important; }
934
- .origin-bottom { transform-origin: bottom !important; }
935
- .origin-bottom-left { transform-origin: bottom left !important; }
936
- .origin-left { transform-origin: left !important; }
937
- .origin-top-left { transform-origin: top left !important; }
1591
+ .origin-center {
1592
+ transform-origin: center !important;
1593
+ }
1594
+ .origin-top {
1595
+ transform-origin: top !important;
1596
+ }
1597
+ .origin-top-right {
1598
+ transform-origin: top right !important;
1599
+ }
1600
+ .origin-right {
1601
+ transform-origin: right !important;
1602
+ }
1603
+ .origin-bottom-right {
1604
+ transform-origin: bottom right !important;
1605
+ }
1606
+ .origin-bottom {
1607
+ transform-origin: bottom !important;
1608
+ }
1609
+ .origin-bottom-left {
1610
+ transform-origin: bottom left !important;
1611
+ }
1612
+ .origin-left {
1613
+ transform-origin: left !important;
1614
+ }
1615
+ .origin-top-left {
1616
+ transform-origin: top left !important;
1617
+ }
938
1618
 
939
1619
  // ============================================================================
940
1620
  // 13. HOVER & FOCUS TRANSITION HELPERS
@@ -942,8 +1622,10 @@ $duration-slower: 700ms;
942
1622
  // These apply common hover effects with transitions built-in
943
1623
 
944
1624
  .hover-lift {
945
- transition: transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
946
-
1625
+ transition:
1626
+ transform var(--duration-fast) var(--ease-out),
1627
+ box-shadow var(--duration-fast) var(--ease-out);
1628
+
947
1629
  &:hover {
948
1630
  transform: translateY(-2px);
949
1631
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
@@ -952,7 +1634,7 @@ $duration-slower: 700ms;
952
1634
 
953
1635
  .hover-grow {
954
1636
  transition: transform var(--duration-fast) var(--ease-out);
955
-
1637
+
956
1638
  &:hover {
957
1639
  transform: scale(1.05);
958
1640
  }
@@ -960,7 +1642,7 @@ $duration-slower: 700ms;
960
1642
 
961
1643
  .hover-shrink {
962
1644
  transition: transform var(--duration-fast) var(--ease-out);
963
-
1645
+
964
1646
  &:hover {
965
1647
  transform: scale(0.95);
966
1648
  }
@@ -968,7 +1650,7 @@ $duration-slower: 700ms;
968
1650
 
969
1651
  .hover-brightness {
970
1652
  transition: filter var(--duration-fast) var(--ease-in-out);
971
-
1653
+
972
1654
  &:hover {
973
1655
  filter: brightness(1.1);
974
1656
  }
@@ -976,7 +1658,7 @@ $duration-slower: 700ms;
976
1658
 
977
1659
  .hover-dim {
978
1660
  transition: opacity var(--duration-fast) var(--ease-in-out);
979
-
1661
+
980
1662
  &:hover {
981
1663
  opacity: 0.75;
982
1664
  }
@@ -984,7 +1666,7 @@ $duration-slower: 700ms;
984
1666
 
985
1667
  .hover-glow {
986
1668
  transition: box-shadow var(--duration-fast) var(--ease-out);
987
-
1669
+
988
1670
  &:hover {
989
1671
  box-shadow: 0 0 20px rgba(var(--primary-color-rgb, 0, 107, 223), 0.4);
990
1672
  }
@@ -993,7 +1675,7 @@ $duration-slower: 700ms;
993
1675
  // Active state helper
994
1676
  .active-press {
995
1677
  transition: transform var(--duration-75) var(--ease-out);
996
-
1678
+
997
1679
  &:active {
998
1680
  transform: scale(0.97);
999
1681
  }
@@ -1009,7 +1691,7 @@ $duration-slower: 700ms;
1009
1691
  animation: none !important;
1010
1692
  transition: none !important;
1011
1693
  }
1012
-
1694
+
1013
1695
  *,
1014
1696
  *::before,
1015
1697
  *::after {
@@ -1036,18 +1718,48 @@ $duration-slower: 700ms;
1036
1718
  // ============================================================================
1037
1719
  // 15. OPACITY UTILITIES (commonly used with animations)
1038
1720
  // ============================================================================
1039
- .opacity-0 { opacity: 0 !important; }
1040
- .opacity-5 { opacity: 0.05 !important; }
1041
- .opacity-10 { opacity: 0.1 !important; }
1042
- .opacity-20 { opacity: 0.2 !important; }
1043
- .opacity-25 { opacity: 0.25 !important; }
1044
- .opacity-30 { opacity: 0.3 !important; }
1045
- .opacity-40 { opacity: 0.4 !important; }
1046
- .opacity-50 { opacity: 0.5 !important; }
1047
- .opacity-60 { opacity: 0.6 !important; }
1048
- .opacity-70 { opacity: 0.7 !important; }
1049
- .opacity-75 { opacity: 0.75 !important; }
1050
- .opacity-80 { opacity: 0.8 !important; }
1051
- .opacity-90 { opacity: 0.9 !important; }
1052
- .opacity-95 { opacity: 0.95 !important; }
1053
- .opacity-100 { opacity: 1 !important; }
1721
+ .opacity-0 {
1722
+ opacity: 0 !important;
1723
+ }
1724
+ .opacity-5 {
1725
+ opacity: 0.05 !important;
1726
+ }
1727
+ .opacity-10 {
1728
+ opacity: 0.1 !important;
1729
+ }
1730
+ .opacity-20 {
1731
+ opacity: 0.2 !important;
1732
+ }
1733
+ .opacity-25 {
1734
+ opacity: 0.25 !important;
1735
+ }
1736
+ .opacity-30 {
1737
+ opacity: 0.3 !important;
1738
+ }
1739
+ .opacity-40 {
1740
+ opacity: 0.4 !important;
1741
+ }
1742
+ .opacity-50 {
1743
+ opacity: 0.5 !important;
1744
+ }
1745
+ .opacity-60 {
1746
+ opacity: 0.6 !important;
1747
+ }
1748
+ .opacity-70 {
1749
+ opacity: 0.7 !important;
1750
+ }
1751
+ .opacity-75 {
1752
+ opacity: 0.75 !important;
1753
+ }
1754
+ .opacity-80 {
1755
+ opacity: 0.8 !important;
1756
+ }
1757
+ .opacity-90 {
1758
+ opacity: 0.9 !important;
1759
+ }
1760
+ .opacity-95 {
1761
+ opacity: 0.95 !important;
1762
+ }
1763
+ .opacity-100 {
1764
+ opacity: 1 !important;
1765
+ }