@edmicro/olkit 2.1.0 → 2.1.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.
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Core Animation Classes
3
+ * Migration từ @angular/animations sang CSS animations
4
+ */
5
+
6
+ /* ========================================
7
+ FADE ANIMATIONS
8
+ ======================================== */
9
+
10
+ /* Fade In */
11
+ .fade-in {
12
+ animation: fadeIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
13
+ }
14
+
15
+ .fade-in-fast {
16
+ animation: fadeIn var(--anim-duration-fast, 150ms) var(--anim-ease-out, ease-out) forwards;
17
+ }
18
+
19
+ @keyframes fadeIn {
20
+ from {
21
+ opacity: 0;
22
+ }
23
+ to {
24
+ opacity: 1;
25
+ }
26
+ }
27
+
28
+ /* Fade Out */
29
+ .fade-out {
30
+ opacity: 0;
31
+ transition: opacity var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
32
+ }
33
+
34
+ /* ========================================
35
+ SLIDE ANIMATIONS
36
+ ======================================== */
37
+
38
+ /* Slide Down (từ trên xuống) */
39
+ .slide-down-enter {
40
+ animation: slideDown var(--anim-duration-normal, 300ms)
41
+ var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
42
+ }
43
+
44
+ .slide-down-leave {
45
+ opacity: 0;
46
+ transform: translateY(-100%);
47
+ transition: all var(--anim-duration-normal, 300ms) cubic-bezier(0.4, 0, 0.6, 1);
48
+ }
49
+
50
+ @keyframes slideDown {
51
+ from {
52
+ transform: translateY(-100%);
53
+ opacity: 0;
54
+ }
55
+ to {
56
+ transform: translateY(0);
57
+ opacity: 1;
58
+ }
59
+ }
60
+
61
+ /* Slide In from Right (Toast) */
62
+ .toast-slide-enter {
63
+ animation: toastSlideIn var(--anim-duration-normal, 300ms)
64
+ var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
65
+ }
66
+
67
+ .toast-slide-leave {
68
+ opacity: 0;
69
+ transform: translateX(100%);
70
+ transition: all 200ms cubic-bezier(0.4, 0, 0.6, 1);
71
+ }
72
+
73
+ @keyframes toastSlideIn {
74
+ from {
75
+ transform: translateX(100%);
76
+ opacity: 0;
77
+ }
78
+ to {
79
+ transform: translateX(0);
80
+ opacity: 1;
81
+ }
82
+ }
83
+
84
+ /* Slide In Up */
85
+ .slide-in-up {
86
+ animation: slideInUp var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
87
+ }
88
+
89
+ @keyframes slideInUp {
90
+ from {
91
+ opacity: 0;
92
+ transform: translateY(20px);
93
+ }
94
+ to {
95
+ opacity: 1;
96
+ transform: translateY(0);
97
+ }
98
+ }
99
+
100
+ /* Slide In Down */
101
+ .slide-in-down {
102
+ animation: slideInDown var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
103
+ }
104
+
105
+ @keyframes slideInDown {
106
+ from {
107
+ opacity: 0;
108
+ transform: translateY(-20px);
109
+ }
110
+ to {
111
+ opacity: 1;
112
+ transform: translateY(0);
113
+ }
114
+ }
115
+
116
+ /* Slide In Left */
117
+ .slide-in-left {
118
+ animation: slideInLeft var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
119
+ }
120
+
121
+ @keyframes slideInLeft {
122
+ from {
123
+ opacity: 0;
124
+ transform: translateX(20px);
125
+ }
126
+ to {
127
+ opacity: 1;
128
+ transform: translateX(0);
129
+ }
130
+ }
131
+
132
+ /* Slide In Right */
133
+ .slide-in-right {
134
+ animation: slideInRight var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
135
+ }
136
+
137
+ @keyframes slideInRight {
138
+ from {
139
+ opacity: 0;
140
+ transform: translateX(-20px);
141
+ }
142
+ to {
143
+ opacity: 1;
144
+ transform: translateX(0);
145
+ }
146
+ }
147
+
148
+ /* ========================================
149
+ SCALE ANIMATIONS
150
+ ======================================== */
151
+
152
+ /* Scale In */
153
+ .scale-in {
154
+ animation: scaleIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
155
+ }
156
+
157
+ @keyframes scaleIn {
158
+ from {
159
+ opacity: 0;
160
+ transform: scale(0.95);
161
+ }
162
+ to {
163
+ opacity: 1;
164
+ transform: scale(1);
165
+ }
166
+ }
167
+
168
+ /* Scale Out */
169
+ .scale-out {
170
+ opacity: 0;
171
+ transform: scale(0.95);
172
+ transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
173
+ }
174
+
175
+ /* Menu Scale (Speed Dial) */
176
+ .menu-scale-enter {
177
+ animation: menuScaleIn var(--anim-duration-fast, 150ms)
178
+ var(--anim-ease-out, cubic-bezier(0, 0, 0.2, 1)) forwards;
179
+ }
180
+
181
+ .menu-scale-leave {
182
+ opacity: 0;
183
+ transform: scale(0.85);
184
+ transition: all 100ms cubic-bezier(0.4, 0, 1, 1);
185
+ }
186
+
187
+ @keyframes menuScaleIn {
188
+ from {
189
+ opacity: 0;
190
+ transform: scale(0.85);
191
+ }
192
+ to {
193
+ opacity: 1;
194
+ transform: scale(1);
195
+ }
196
+ }
197
+
198
+ /* ========================================
199
+ COMBINED ANIMATIONS
200
+ ======================================== */
201
+
202
+ /* Fade + Scale */
203
+ .fade-scale-enter {
204
+ animation: fadeScaleIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
205
+ }
206
+
207
+ .fade-scale-leave {
208
+ opacity: 0;
209
+ transform: scale(0.95);
210
+ transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
211
+ }
212
+
213
+ @keyframes fadeScaleIn {
214
+ from {
215
+ opacity: 0;
216
+ transform: scale(0.95);
217
+ }
218
+ to {
219
+ opacity: 1;
220
+ transform: scale(1);
221
+ }
222
+ }
223
+
224
+ /* ========================================
225
+ COMPONENT-SPECIFIC ANIMATIONS
226
+ ======================================== */
227
+
228
+ /* Alert Fade Out */
229
+ .alert-fade-out {
230
+ opacity: 0;
231
+ transform: translateY(-8px);
232
+ transition: all var(--anim-duration-normal, 300ms) ease-out;
233
+ }
234
+
235
+ /* Tooltip Fade Enter */
236
+ .tooltip-fade-enter {
237
+ animation: fadeIn var(--anim-duration-fast, 150ms) var(--anim-ease-out, ease-out) forwards;
238
+ }
239
+
240
+ /* Backdrop */
241
+ .backdrop-enter {
242
+ animation: fadeIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
243
+ }
244
+
245
+ .backdrop-leave {
246
+ opacity: 0;
247
+ transition: opacity var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
248
+ }
249
+
250
+ /* ========================================
251
+ EXPAND/COLLAPSE
252
+ ======================================== */
253
+
254
+ .expand-enter {
255
+ animation: expandIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
256
+ }
257
+
258
+ .collapse-leave {
259
+ overflow: hidden;
260
+ height: 0;
261
+ opacity: 0;
262
+ transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
263
+ }
264
+
265
+ @keyframes expandIn {
266
+ from {
267
+ height: 0;
268
+ opacity: 0;
269
+ overflow: hidden;
270
+ }
271
+ to {
272
+ height: auto;
273
+ opacity: 1;
274
+ }
275
+ }
276
+
277
+ /* ========================================
278
+ ROTATE
279
+ ======================================== */
280
+
281
+ .rotate {
282
+ transition: transform var(--anim-duration-normal, 300ms)
283
+ var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
284
+ }
285
+
286
+ /* ========================================
287
+ UTILITIES
288
+ ======================================== */
289
+
290
+ /* Stagger delay utilities */
291
+ .stagger-delay-1 {
292
+ animation-delay: 50ms;
293
+ }
294
+ .stagger-delay-2 {
295
+ animation-delay: 100ms;
296
+ }
297
+ .stagger-delay-3 {
298
+ animation-delay: 150ms;
299
+ }
300
+ .stagger-delay-4 {
301
+ animation-delay: 200ms;
302
+ }
303
+ .stagger-delay-5 {
304
+ animation-delay: 250ms;
305
+ }
306
+
307
+ /* Animation fill mode utilities */
308
+ .anim-forwards {
309
+ animation-fill-mode: forwards;
310
+ }
311
+ .anim-backwards {
312
+ animation-fill-mode: backwards;
313
+ }
314
+ .anim-both {
315
+ animation-fill-mode: both;
316
+ }
317
+
318
+ /* Prevent animation on prefers-reduced-motion */
319
+ @media (prefers-reduced-motion: reduce) {
320
+ *,
321
+ *::before,
322
+ *::after {
323
+ animation-duration: 0.01ms !important;
324
+ animation-iteration-count: 1 !important;
325
+ transition-duration: 0.01ms !important;
326
+ }
327
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edmicro/olkit",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "Ôn Luyện Design System UI Component Library for Angular",
5
5
  "author": "EDMICRO",
6
6
  "license": "MIT",