zenkit-css 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +182 -0
  2. package/dist/zenkit.css +33721 -0
  3. package/dist/zenkit.css.map +1 -0
  4. package/dist/zenkit.min.css +1 -0
  5. package/dist/zenkit.min.css.map +1 -0
  6. package/package.json +41 -0
  7. package/scss/abstracts/_functions.scss +174 -0
  8. package/scss/abstracts/_mixins.scss +272 -0
  9. package/scss/abstracts/_variables.scss +216 -0
  10. package/scss/base/_reset.scss +130 -0
  11. package/scss/base/_root.scss +194 -0
  12. package/scss/base/_typography.scss +271 -0
  13. package/scss/components/_accordion.scss +200 -0
  14. package/scss/components/_affix.scss +278 -0
  15. package/scss/components/_alerts.scss +175 -0
  16. package/scss/components/_anchor.scss +438 -0
  17. package/scss/components/_autocomplete.scss +530 -0
  18. package/scss/components/_avatar.scss +256 -0
  19. package/scss/components/_backtop.scss +329 -0
  20. package/scss/components/_badges.scss +266 -0
  21. package/scss/components/_breadcrumb.scss +102 -0
  22. package/scss/components/_buttons.scss +340 -0
  23. package/scss/components/_calendar.scss +787 -0
  24. package/scss/components/_cards.scss +265 -0
  25. package/scss/components/_carousel.scss +306 -0
  26. package/scss/components/_cascader.scss +510 -0
  27. package/scss/components/_close-button.scss +106 -0
  28. package/scss/components/_colorpicker.scss +593 -0
  29. package/scss/components/_datepicker.scss +625 -0
  30. package/scss/components/_descriptions.scss +453 -0
  31. package/scss/components/_divider.scss +253 -0
  32. package/scss/components/_drawer.scss +485 -0
  33. package/scss/components/_dropdown.scss +323 -0
  34. package/scss/components/_empty.scss +321 -0
  35. package/scss/components/_floatbutton.scss +400 -0
  36. package/scss/components/_forms.scss +753 -0
  37. package/scss/components/_image.scss +497 -0
  38. package/scss/components/_inputnumber.scss +475 -0
  39. package/scss/components/_layout.scss +538 -0
  40. package/scss/components/_list-group.scss +227 -0
  41. package/scss/components/_list.scss +528 -0
  42. package/scss/components/_mentions.scss +479 -0
  43. package/scss/components/_menu.scss +510 -0
  44. package/scss/components/_message.scss +412 -0
  45. package/scss/components/_modal.scss +304 -0
  46. package/scss/components/_navbar.scss +329 -0
  47. package/scss/components/_notification.scss +499 -0
  48. package/scss/components/_offcanvas.scss +274 -0
  49. package/scss/components/_pagination.scss +176 -0
  50. package/scss/components/_placeholder.scss +237 -0
  51. package/scss/components/_popconfirm.scss +393 -0
  52. package/scss/components/_popover.scss +298 -0
  53. package/scss/components/_progress.scss +225 -0
  54. package/scss/components/_rating.scss +314 -0
  55. package/scss/components/_result.scss +383 -0
  56. package/scss/components/_segmented.scss +441 -0
  57. package/scss/components/_select.scss +412 -0
  58. package/scss/components/_spinners.scss +229 -0
  59. package/scss/components/_statistic.scss +336 -0
  60. package/scss/components/_steps.scss +343 -0
  61. package/scss/components/_tabs.scss +239 -0
  62. package/scss/components/_tag.scss +317 -0
  63. package/scss/components/_timeline.scss +341 -0
  64. package/scss/components/_timepicker.scss +468 -0
  65. package/scss/components/_toast.scss +279 -0
  66. package/scss/components/_tooltip.scss +305 -0
  67. package/scss/components/_tour.scss +488 -0
  68. package/scss/components/_transfer.scss +556 -0
  69. package/scss/components/_tree.scss +518 -0
  70. package/scss/components/_treeselect.scss +531 -0
  71. package/scss/components/_upload.scss +510 -0
  72. package/scss/components/_watermark.scss +314 -0
  73. package/scss/content/_figures.scss +38 -0
  74. package/scss/content/_images.scss +138 -0
  75. package/scss/content/_tables.scss +232 -0
  76. package/scss/layout/_container.scss +71 -0
  77. package/scss/layout/_grid.scss +258 -0
  78. package/scss/utilities/_animations.scss +494 -0
  79. package/scss/utilities/_borders.scss +246 -0
  80. package/scss/utilities/_colors.scss +194 -0
  81. package/scss/utilities/_display.scss +263 -0
  82. package/scss/utilities/_filters.scss +328 -0
  83. package/scss/utilities/_flex.scss +178 -0
  84. package/scss/utilities/_float.scss +70 -0
  85. package/scss/utilities/_grid-utils.scss +151 -0
  86. package/scss/utilities/_helpers.scss +479 -0
  87. package/scss/utilities/_interactions.scss +249 -0
  88. package/scss/utilities/_overflow.scss +204 -0
  89. package/scss/utilities/_position.scss +245 -0
  90. package/scss/utilities/_shadows.scss +67 -0
  91. package/scss/utilities/_sizing.scss +217 -0
  92. package/scss/utilities/_spacing.scss +207 -0
  93. package/scss/utilities/_text.scss +237 -0
  94. package/scss/utilities/_transforms.scss +368 -0
  95. package/scss/utilities/_visibility.scss +251 -0
  96. package/scss/zenkit.scss +121 -0
@@ -0,0 +1,494 @@
1
+ // ========================================
2
+ // ZenKit - Animation Utilities
3
+ // Keyframes, transitions, and animation classes
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Animation Keyframes
10
+ // ----------------------------------------
11
+
12
+ // Fade animations
13
+ @keyframes fade-in {
14
+ from { opacity: 0; }
15
+ to { opacity: 1; }
16
+ }
17
+
18
+ @keyframes fade-out {
19
+ from { opacity: 1; }
20
+ to { opacity: 0; }
21
+ }
22
+
23
+ @keyframes fade-in-up {
24
+ from {
25
+ opacity: 0;
26
+ transform: translateY(20px);
27
+ }
28
+ to {
29
+ opacity: 1;
30
+ transform: translateY(0);
31
+ }
32
+ }
33
+
34
+ @keyframes fade-in-down {
35
+ from {
36
+ opacity: 0;
37
+ transform: translateY(-20px);
38
+ }
39
+ to {
40
+ opacity: 1;
41
+ transform: translateY(0);
42
+ }
43
+ }
44
+
45
+ @keyframes fade-in-left {
46
+ from {
47
+ opacity: 0;
48
+ transform: translateX(-20px);
49
+ }
50
+ to {
51
+ opacity: 1;
52
+ transform: translateX(0);
53
+ }
54
+ }
55
+
56
+ @keyframes fade-in-right {
57
+ from {
58
+ opacity: 0;
59
+ transform: translateX(20px);
60
+ }
61
+ to {
62
+ opacity: 1;
63
+ transform: translateX(0);
64
+ }
65
+ }
66
+
67
+ // Slide animations
68
+ @keyframes slide-in-up {
69
+ from { transform: translateY(100%); }
70
+ to { transform: translateY(0); }
71
+ }
72
+
73
+ @keyframes slide-in-down {
74
+ from { transform: translateY(-100%); }
75
+ to { transform: translateY(0); }
76
+ }
77
+
78
+ @keyframes slide-in-left {
79
+ from { transform: translateX(-100%); }
80
+ to { transform: translateX(0); }
81
+ }
82
+
83
+ @keyframes slide-in-right {
84
+ from { transform: translateX(100%); }
85
+ to { transform: translateX(0); }
86
+ }
87
+
88
+ @keyframes slide-out-up {
89
+ from { transform: translateY(0); }
90
+ to { transform: translateY(-100%); }
91
+ }
92
+
93
+ @keyframes slide-out-down {
94
+ from { transform: translateY(0); }
95
+ to { transform: translateY(100%); }
96
+ }
97
+
98
+ @keyframes slide-out-left {
99
+ from { transform: translateX(0); }
100
+ to { transform: translateX(-100%); }
101
+ }
102
+
103
+ @keyframes slide-out-right {
104
+ from { transform: translateX(0); }
105
+ to { transform: translateX(100%); }
106
+ }
107
+
108
+ // Bounce animations
109
+ @keyframes bounce {
110
+ 0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
111
+ 40% { transform: translateY(-30px); }
112
+ 60% { transform: translateY(-15px); }
113
+ }
114
+
115
+ @keyframes bounce-in {
116
+ 0% {
117
+ opacity: 0;
118
+ transform: scale(0.3);
119
+ }
120
+ 50% {
121
+ opacity: 1;
122
+ transform: scale(1.05);
123
+ }
124
+ 70% { transform: scale(0.9); }
125
+ 100% { transform: scale(1); }
126
+ }
127
+
128
+ @keyframes bounce-out {
129
+ 20% { transform: scale(0.9); }
130
+ 50%, 55% {
131
+ opacity: 1;
132
+ transform: scale(1.1);
133
+ }
134
+ 100% {
135
+ opacity: 0;
136
+ transform: scale(0.3);
137
+ }
138
+ }
139
+
140
+ @keyframes bounce-in-up {
141
+ 0% {
142
+ opacity: 0;
143
+ transform: translateY(100px);
144
+ }
145
+ 60% { transform: translateY(-20px); }
146
+ 80% { transform: translateY(10px); }
147
+ 100% {
148
+ opacity: 1;
149
+ transform: translateY(0);
150
+ }
151
+ }
152
+
153
+ @keyframes bounce-in-down {
154
+ 0% {
155
+ opacity: 0;
156
+ transform: translateY(-100px);
157
+ }
158
+ 60% { transform: translateY(20px); }
159
+ 80% { transform: translateY(-10px); }
160
+ 100% {
161
+ opacity: 1;
162
+ transform: translateY(0);
163
+ }
164
+ }
165
+
166
+ // Pulse animations
167
+ @keyframes pulse {
168
+ 0%, 100% { transform: scale(1); }
169
+ 50% { transform: scale(1.05); }
170
+ }
171
+
172
+ @keyframes pulse-subtle {
173
+ 0%, 100% { opacity: 1; }
174
+ 50% { opacity: 0.7; }
175
+ }
176
+
177
+ @keyframes pulse-ring {
178
+ 0% {
179
+ box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.7);
180
+ }
181
+ 70% {
182
+ box-shadow: 0 0 0 10px rgba(var(--primary-rgb), 0);
183
+ }
184
+ 100% {
185
+ box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0);
186
+ }
187
+ }
188
+
189
+ @keyframes heartbeat {
190
+ 0%, 100% { transform: scale(1); }
191
+ 14% { transform: scale(1.3); }
192
+ 28% { transform: scale(1); }
193
+ 42% { transform: scale(1.3); }
194
+ 70% { transform: scale(1); }
195
+ }
196
+
197
+ // Spin animations
198
+ @keyframes spin {
199
+ from { transform: rotate(0deg); }
200
+ to { transform: rotate(360deg); }
201
+ }
202
+
203
+ @keyframes spin-reverse {
204
+ from { transform: rotate(360deg); }
205
+ to { transform: rotate(0deg); }
206
+ }
207
+
208
+ // Shake animations
209
+ @keyframes shake {
210
+ 0%, 100% { transform: translateX(0); }
211
+ 10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
212
+ 20%, 40%, 60%, 80% { transform: translateX(10px); }
213
+ }
214
+
215
+ @keyframes shake-subtle {
216
+ 0%, 100% { transform: translateX(0); }
217
+ 25% { transform: translateX(-5px); }
218
+ 50% { transform: translateX(5px); }
219
+ 75% { transform: translateX(-5px); }
220
+ }
221
+
222
+ // Wiggle animation
223
+ @keyframes wiggle {
224
+ 0%, 100% { transform: rotate(0deg); }
225
+ 25% { transform: rotate(-5deg); }
226
+ 50% { transform: rotate(5deg); }
227
+ 75% { transform: rotate(-5deg); }
228
+ }
229
+
230
+ // Zoom animations
231
+ @keyframes zoom-in {
232
+ from {
233
+ opacity: 0;
234
+ transform: scale(0.5);
235
+ }
236
+ to {
237
+ opacity: 1;
238
+ transform: scale(1);
239
+ }
240
+ }
241
+
242
+ @keyframes zoom-out {
243
+ from {
244
+ opacity: 1;
245
+ transform: scale(1);
246
+ }
247
+ to {
248
+ opacity: 0;
249
+ transform: scale(0.5);
250
+ }
251
+ }
252
+
253
+ // Flash animation
254
+ @keyframes flash {
255
+ 0%, 50%, 100% { opacity: 1; }
256
+ 25%, 75% { opacity: 0; }
257
+ }
258
+
259
+ // Flip animations
260
+ @keyframes flip-x {
261
+ from { transform: perspective(400px) rotateX(90deg); opacity: 0; }
262
+ to { transform: perspective(400px) rotateX(0deg); opacity: 1; }
263
+ }
264
+
265
+ @keyframes flip-y {
266
+ from { transform: perspective(400px) rotateY(90deg); opacity: 0; }
267
+ to { transform: perspective(400px) rotateY(0deg); opacity: 1; }
268
+ }
269
+
270
+ // Swing animation
271
+ @keyframes swing {
272
+ 20% { transform: rotate(15deg); }
273
+ 40% { transform: rotate(-10deg); }
274
+ 60% { transform: rotate(5deg); }
275
+ 80% { transform: rotate(-5deg); }
276
+ 100% { transform: rotate(0deg); }
277
+ }
278
+
279
+ // Rubber band animation
280
+ @keyframes rubber-band {
281
+ 0%, 100% { transform: scaleX(1); }
282
+ 30% { transform: scaleX(1.25) scaleY(0.75); }
283
+ 40% { transform: scaleX(0.75) scaleY(1.25); }
284
+ 50% { transform: scaleX(1.15) scaleY(0.85); }
285
+ 65% { transform: scaleX(0.95) scaleY(1.05); }
286
+ 75% { transform: scaleX(1.05) scaleY(0.95); }
287
+ }
288
+
289
+ // Jello animation
290
+ @keyframes jello {
291
+ 0%, 100% { transform: skewX(0deg) skewY(0deg); }
292
+ 11.1% { transform: skewX(-12.5deg) skewY(-12.5deg); }
293
+ 22.2% { transform: skewX(6.25deg) skewY(6.25deg); }
294
+ 33.3% { transform: skewX(-3.125deg) skewY(-3.125deg); }
295
+ 44.4% { transform: skewX(1.5625deg) skewY(1.5625deg); }
296
+ 55.5% { transform: skewX(-0.78125deg) skewY(-0.78125deg); }
297
+ 66.6% { transform: skewX(0.390625deg) skewY(0.390625deg); }
298
+ 77.7% { transform: skewX(-0.1953125deg) skewY(-0.1953125deg); }
299
+ }
300
+
301
+ // Float animation
302
+ @keyframes float {
303
+ 0%, 100% { transform: translateY(0); }
304
+ 50% { transform: translateY(-10px); }
305
+ }
306
+
307
+ // Glow animation
308
+ @keyframes glow {
309
+ 0%, 100% { box-shadow: 0 0 5px rgba(var(--primary-rgb), 0.5); }
310
+ 50% { box-shadow: 0 0 20px rgba(var(--primary-rgb), 0.8); }
311
+ }
312
+
313
+ // ----------------------------------------
314
+ // Animation Classes
315
+ // ----------------------------------------
316
+
317
+ // Fade
318
+ .animate-fade-in { animation: fade-in 0.3s ease-out; }
319
+ .animate-fade-out { animation: fade-out 0.3s ease-out; }
320
+ .animate-fade-in-up { animation: fade-in-up 0.4s ease-out; }
321
+ .animate-fade-in-down { animation: fade-in-down 0.4s ease-out; }
322
+ .animate-fade-in-left { animation: fade-in-left 0.4s ease-out; }
323
+ .animate-fade-in-right { animation: fade-in-right 0.4s ease-out; }
324
+
325
+ // Slide
326
+ .animate-slide-in-up { animation: slide-in-up 0.3s ease-out; }
327
+ .animate-slide-in-down { animation: slide-in-down 0.3s ease-out; }
328
+ .animate-slide-in-left { animation: slide-in-left 0.3s ease-out; }
329
+ .animate-slide-in-right { animation: slide-in-right 0.3s ease-out; }
330
+ .animate-slide-out-up { animation: slide-out-up 0.3s ease-out; }
331
+ .animate-slide-out-down { animation: slide-out-down 0.3s ease-out; }
332
+ .animate-slide-out-left { animation: slide-out-left 0.3s ease-out; }
333
+ .animate-slide-out-right { animation: slide-out-right 0.3s ease-out; }
334
+
335
+ // Bounce
336
+ .animate-bounce { animation: bounce 1s ease infinite; }
337
+ .animate-bounce-in { animation: bounce-in 0.5s ease-out; }
338
+ .animate-bounce-out { animation: bounce-out 0.5s ease-out; }
339
+ .animate-bounce-in-up { animation: bounce-in-up 0.6s ease-out; }
340
+ .animate-bounce-in-down { animation: bounce-in-down 0.6s ease-out; }
341
+
342
+ // Pulse
343
+ .animate-pulse { animation: pulse 2s ease-in-out infinite; }
344
+ .animate-pulse-subtle { animation: pulse-subtle 2s ease-in-out infinite; }
345
+ .animate-pulse-ring { animation: pulse-ring 1.5s ease-out infinite; }
346
+ .animate-heartbeat { animation: heartbeat 1.5s ease-in-out infinite; }
347
+
348
+ // Spin
349
+ .animate-spin { animation: spin 1s linear infinite; }
350
+ .animate-spin-slow { animation: spin 2s linear infinite; }
351
+ .animate-spin-fast { animation: spin 0.5s linear infinite; }
352
+ .animate-spin-reverse { animation: spin-reverse 1s linear infinite; }
353
+
354
+ // Shake
355
+ .animate-shake { animation: shake 0.5s ease-in-out; }
356
+ .animate-shake-subtle { animation: shake-subtle 0.3s ease-in-out; }
357
+
358
+ // Wiggle
359
+ .animate-wiggle { animation: wiggle 0.5s ease-in-out; }
360
+
361
+ // Zoom
362
+ .animate-zoom-in { animation: zoom-in 0.3s ease-out; }
363
+ .animate-zoom-out { animation: zoom-out 0.3s ease-out; }
364
+
365
+ // Flash
366
+ .animate-flash { animation: flash 1s ease-in-out; }
367
+
368
+ // Flip
369
+ .animate-flip-x { animation: flip-x 0.5s ease-out; }
370
+ .animate-flip-y { animation: flip-y 0.5s ease-out; }
371
+
372
+ // Swing
373
+ .animate-swing { animation: swing 1s ease-out; }
374
+
375
+ // Rubber band
376
+ .animate-rubber-band { animation: rubber-band 1s ease-out; }
377
+
378
+ // Jello
379
+ .animate-jello { animation: jello 1s ease-out; }
380
+
381
+ // Float
382
+ .animate-float { animation: float 3s ease-in-out infinite; }
383
+
384
+ // Glow
385
+ .animate-glow { animation: glow 2s ease-in-out infinite; }
386
+
387
+ // ----------------------------------------
388
+ // Animation Duration
389
+ // ----------------------------------------
390
+ .duration-75 { animation-duration: 75ms; }
391
+ .duration-100 { animation-duration: 100ms; }
392
+ .duration-150 { animation-duration: 150ms; }
393
+ .duration-200 { animation-duration: 200ms; }
394
+ .duration-300 { animation-duration: 300ms; }
395
+ .duration-500 { animation-duration: 500ms; }
396
+ .duration-700 { animation-duration: 700ms; }
397
+ .duration-1000 { animation-duration: 1000ms; }
398
+ .duration-2000 { animation-duration: 2000ms; }
399
+
400
+ // ----------------------------------------
401
+ // Animation Delay
402
+ // ----------------------------------------
403
+ .delay-75 { animation-delay: 75ms; }
404
+ .delay-100 { animation-delay: 100ms; }
405
+ .delay-150 { animation-delay: 150ms; }
406
+ .delay-200 { animation-delay: 200ms; }
407
+ .delay-300 { animation-delay: 300ms; }
408
+ .delay-500 { animation-delay: 500ms; }
409
+ .delay-700 { animation-delay: 700ms; }
410
+ .delay-1000 { animation-delay: 1000ms; }
411
+
412
+ // ----------------------------------------
413
+ // Animation Timing Function
414
+ // ----------------------------------------
415
+ .ease-linear { animation-timing-function: linear; }
416
+ .ease-in { animation-timing-function: ease-in; }
417
+ .ease-out { animation-timing-function: ease-out; }
418
+ .ease-in-out { animation-timing-function: ease-in-out; }
419
+ .ease-bounce { animation-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
420
+ .ease-elastic { animation-timing-function: cubic-bezier(0.68, -0.6, 0.32, 1.6); }
421
+
422
+ // ----------------------------------------
423
+ // Animation Iteration
424
+ // ----------------------------------------
425
+ .animate-once { animation-iteration-count: 1; }
426
+ .animate-twice { animation-iteration-count: 2; }
427
+ .animate-infinite { animation-iteration-count: infinite; }
428
+
429
+ // ----------------------------------------
430
+ // Animation Direction
431
+ // ----------------------------------------
432
+ .animate-normal { animation-direction: normal; }
433
+ .animate-reverse { animation-direction: reverse; }
434
+ .animate-alternate { animation-direction: alternate; }
435
+ .animate-alternate-reverse { animation-direction: alternate-reverse; }
436
+
437
+ // ----------------------------------------
438
+ // Animation Fill Mode
439
+ // ----------------------------------------
440
+ .animate-fill-none { animation-fill-mode: none; }
441
+ .animate-fill-forwards { animation-fill-mode: forwards; }
442
+ .animate-fill-backwards { animation-fill-mode: backwards; }
443
+ .animate-fill-both { animation-fill-mode: both; }
444
+
445
+ // ----------------------------------------
446
+ // Animation Play State
447
+ // ----------------------------------------
448
+ .animate-running { animation-play-state: running; }
449
+ .animate-paused { animation-play-state: paused; }
450
+
451
+ // Hover pause
452
+ .hover\:animate-paused:hover { animation-play-state: paused; }
453
+
454
+ // ----------------------------------------
455
+ // Transition Utilities
456
+ // ----------------------------------------
457
+ .transition-none { transition: none; }
458
+ .transition-all { transition: all 0.2s ease-in-out; }
459
+ .transition-colors { transition: color, background-color, border-color 0.2s ease-in-out; }
460
+ .transition-opacity { transition: opacity 0.2s ease-in-out; }
461
+ .transition-shadow { transition: box-shadow 0.2s ease-in-out; }
462
+ .transition-transform { transition: transform 0.2s ease-in-out; }
463
+
464
+ // Transition durations
465
+ .transition-fast { transition-duration: 150ms; }
466
+ .transition-normal { transition-duration: 200ms; }
467
+ .transition-slow { transition-duration: 300ms; }
468
+ .transition-slower { transition-duration: 500ms; }
469
+
470
+ // ----------------------------------------
471
+ // Motion Reduce (Accessibility)
472
+ // ----------------------------------------
473
+ @media (prefers-reduced-motion: reduce) {
474
+ *,
475
+ *::before,
476
+ *::after {
477
+ animation-duration: 0.01ms !important;
478
+ animation-iteration-count: 1 !important;
479
+ transition-duration: 0.01ms !important;
480
+ }
481
+ }
482
+
483
+ .motion-reduce {
484
+ animation: none !important;
485
+ transition: none !important;
486
+ }
487
+
488
+ .motion-safe {
489
+ // Only animate when motion is safe
490
+ @media (prefers-reduced-motion: no-preference) {
491
+ animation: var(--animation);
492
+ transition: var(--transition);
493
+ }
494
+ }