@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.1.6 → 0.1.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.
Files changed (70) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.esm.js +11 -2
  4. package/dist/index.js +11 -2
  5. package/dist/styles.css +1 -1
  6. package/package.json +1 -1
  7. package/src/index.css +1046 -0
  8. package/src/index.ts +9 -1
  9. package/src/plugins/theme-css-generator.ts +354 -0
  10. package/src/styles/base/fonts.css +30 -0
  11. package/src/styles/base/generated-theme-variables.css +573 -0
  12. package/src/styles/base/index.css +7 -0
  13. package/src/styles/base/reset.css +48 -0
  14. package/src/styles/base/theme.css +1068 -0
  15. package/src/styles/base/typography.css +68 -0
  16. package/src/styles/base/variables.css +5 -0
  17. package/src/styles/components/CLAUDE.md +62 -0
  18. package/src/styles/components/base/badge.css +428 -0
  19. package/src/styles/components/base/button.css +774 -0
  20. package/src/styles/components/base/card.css +601 -0
  21. package/src/styles/components/base/checkbox.css +442 -0
  22. package/src/styles/components/base/index.css +9 -0
  23. package/src/styles/components/base/input.css +887 -0
  24. package/src/styles/components/base/label.css +296 -0
  25. package/src/styles/components/data-display/chart.css +353 -0
  26. package/src/styles/components/data-display/data-grid.css +619 -0
  27. package/src/styles/components/data-display/index.css +9 -0
  28. package/src/styles/components/data-display/list.css +560 -0
  29. package/src/styles/components/data-display/table.css +498 -0
  30. package/src/styles/components/data-display/timeline.css +764 -0
  31. package/src/styles/components/data-display/tree.css +881 -0
  32. package/src/styles/components/feedback/alert.css +358 -0
  33. package/src/styles/components/feedback/index.css +7 -0
  34. package/src/styles/components/feedback/progress.css +435 -0
  35. package/src/styles/components/feedback/skeleton.css +337 -0
  36. package/src/styles/components/feedback/toast.css +564 -0
  37. package/src/styles/components/index.css +17 -0
  38. package/src/styles/components/navigation/breadcrumb.css +465 -0
  39. package/src/styles/components/navigation/index.css +9 -0
  40. package/src/styles/components/navigation/menu.css +572 -0
  41. package/src/styles/components/navigation/pagination.css +635 -0
  42. package/src/styles/components/navigation/sidebar.css +807 -0
  43. package/src/styles/components/navigation/stepper.css +519 -0
  44. package/src/styles/components/navigation/tabs.css +404 -0
  45. package/src/styles/components/overlay/backdrop.css +243 -0
  46. package/src/styles/components/overlay/index.css +8 -0
  47. package/src/styles/components/overlay/modal.css +482 -0
  48. package/src/styles/components/overlay/popover.css +607 -0
  49. package/src/styles/components/overlay/portal.css +213 -0
  50. package/src/styles/components/overlay/tooltip.css +488 -0
  51. package/src/styles/generated-theme-variables.css +573 -0
  52. package/src/styles/index.css +5 -0
  53. package/src/styles/layers/index.css +54 -0
  54. package/src/styles/layers/overrides.css +108 -0
  55. package/src/styles/layers/validation.css +159 -0
  56. package/src/styles/layers/validation.js +310 -0
  57. package/src/styles/themes/default.css +450 -0
  58. package/src/styles/themes/enterprise.css +370 -0
  59. package/src/styles/themes/harvey.css +436 -0
  60. package/src/styles/themes/index.css +4 -0
  61. package/src/styles/themes/stan-design.css +572 -0
  62. package/src/styles/utilities/advanced-transition-system.css +467 -0
  63. package/src/styles/utilities/battery-conscious-animations.css +289 -0
  64. package/src/styles/utilities/enterprise-mobile-experience.css +817 -0
  65. package/src/styles/utilities/hardware-acceleration.css +121 -0
  66. package/src/styles/utilities/index.css +20 -0
  67. package/src/styles/utilities/mobile-skeleton-loading.css +596 -0
  68. package/src/styles/utilities/semantic-input-system.css +451 -0
  69. package/src/styles/utilities/touch-friendly-interface.css +247 -0
  70. package/src/styles/utilities/touch-optimization.css +165 -0
@@ -0,0 +1,601 @@
1
+ /* Card Component CSS Variables */
2
+ :root {
3
+ /* Card Base Variables */
4
+ --card-padding-base: var(--cs-spacing-scale-lg);
5
+ --card-padding-compact: var(--cs-spacing-scale-md);
6
+ --card-padding-spacious: var(--cs-spacing-scale-xl);
7
+
8
+ /* Card Border Variables */
9
+ --card-border-radius: var(--cs-border-radius-lg);
10
+ --card-border-width: var(--card-border-width-normal);
11
+ --card-border-color: var(--cs-colors-border);
12
+ --card-border-color-hover: var(--cs-colors-border);
13
+ --card-border-color-focus: var(--cs-colors-interactive-focus);
14
+
15
+ /* Card Shadow Variables */
16
+ --card-shadow-base: var(--cs-shadows-sm);
17
+ --card-shadow-elevated: var(--cs-shadows-md);
18
+ --card-shadow-interactive: var(--cs-shadows-lg);
19
+ --card-shadow-hover: var(--cs-shadows-md);
20
+ --card-shadow-focus: var(--cs-shadows-lg);
21
+
22
+ /* Card Background Variables */
23
+ --card-background: var(--cs-colors-surface-background);
24
+ --card-background-hover: var(--cs-colors-surface-surface);
25
+ --card-background-active: var(--cs-colors-surface-surface);
26
+ --card-background-focus: var(--cs-colors-surface-background);
27
+
28
+ /* Card Text Variables */
29
+ --card-text-primary: var(--cs-colors-text-primary);
30
+ --card-text-secondary: var(--cs-colors-text-secondary);
31
+ --card-text-muted: var(--cs-colors-text-muted);
32
+ --card-text-inverse: var(--cs-colors-text-inverse);
33
+
34
+ /* Card Spacing Variables */
35
+ --card-spacing-header: var(--cs-spacing-scale-lg);
36
+ --card-spacing-content: var(--cs-spacing-scale-lg);
37
+ --card-spacing-footer: var(--cs-spacing-scale-lg);
38
+ --card-spacing-compact: var(--cs-spacing-scale-md);
39
+ --card-spacing-spacious: var(--cs-spacing-scale-xl);
40
+
41
+ /* Card Transition Variables */
42
+ --card-transition-duration: var(--cs-transitions-duration-normal);
43
+ --card-transition-easing: var(--cs-transitions-easing-ease);
44
+ --card-transition-properties: all var(--card-transition-duration) var(--card-transition-easing);
45
+
46
+ /* Card Layout Variables */
47
+ --card-min-height: auto;
48
+ --card-max-width: none;
49
+ --card-width: auto;
50
+
51
+ /* Card Interactive Variables */
52
+ --card-cursor-default: default;
53
+ --card-cursor-interactive: pointer;
54
+ --card-outline-focus: var(--card-border-width-focus) solid var(--cs-colors-interactive-focus);
55
+ --card-outline-offset: var(--card-outline-offset-focus);
56
+
57
+ /* Card Typography Variables */
58
+ --card-title-font-size: var(--cs-fonts-display-sizes-sm);
59
+ --card-title-font-weight: var(--cs-fonts-display-weights-semibold);
60
+ --card-title-line-height: var(--cs-fonts-display-line-heights-tight);
61
+ --card-title-letter-spacing: var(--cs-fonts-display-letter-spacing-tight);
62
+
63
+ --card-description-font-size: var(--cs-fonts-body-sizes-sm);
64
+ --card-description-font-weight: var(--cs-fonts-body-weights-normal);
65
+ --card-description-line-height: var(--cs-fonts-body-line-heights-normal);
66
+ --card-description-letter-spacing: var(--cs-fonts-body-letter-spacing-normal);
67
+
68
+ /* Card Responsive Variables */
69
+ --card-mobile-padding: var(--cs-spacing-scale-md);
70
+ --card-tablet-padding: var(--cs-spacing-scale-lg);
71
+ --card-desktop-padding: var(--cs-spacing-scale-xl);
72
+
73
+ /* Card Animation Variables */
74
+ --card-transform-hover: translateY(var(--card-transform-hover-y));
75
+ --card-transform-active: translateY(var(--cs-spacing-scale-none));
76
+ --card-transform-focus: var(--cs-animation-transforms-scale-up);
77
+
78
+ /* Card Accessibility Variables */
79
+ --card-focus-ring-color: var(--cs-colors-interactive-focus);
80
+ --card-focus-ring-width: var(--card-focus-ring-width);
81
+ --card-focus-ring-offset: var(--card-focus-ring-offset);
82
+ --card-focus-ring-radius: var(--cs-border-radius-md);
83
+
84
+ /* Card Border Width Variables - Now using theme variables */
85
+ --card-border-width-normal: var(--cs-border-width-normal);
86
+ --card-border-width-focus: var(--cs-border-width-focus);
87
+ --card-border-width-thick: var(--cs-border-width-thick);
88
+ --card-border-width-extra-thick: var(--cs-border-width-extra-thick);
89
+
90
+ /* Card Outline Variables - Now using theme variables */
91
+ --card-outline-offset-focus: var(--cs-accessibility-outline-offset);
92
+ --card-focus-ring-width: var(--cs-accessibility-focus-ring-width);
93
+ --card-focus-ring-offset: var(--cs-accessibility-focus-ring-offset);
94
+
95
+ /* Card Animation Variables - Now using theme variables */
96
+ --card-animation-duration-fast: var(--cs-animation-duration-fast);
97
+ --card-animation-duration-slow: var(--cs-animation-duration-slow);
98
+ --card-animation-offset-y: var(--cs-animation-transforms-offset-y);
99
+ --card-transform-hover-y: var(--cs-animation-transforms-hover-y);
100
+
101
+ /* Card Container Query Variables - Now using theme variables */
102
+ --card-container-breakpoint-small: var(--cs-container-query-small);
103
+ --card-container-breakpoint-medium: var(--cs-container-query-medium);
104
+
105
+ /* Card Print Theme Variables - Now using theme variables */
106
+ --card-print-border-color: var(--cs-print-border-color);
107
+ --card-print-text-color: var(--cs-print-text-color);
108
+ --card-print-text-secondary-color: var(--cs-print-text-secondary-color);
109
+
110
+ /* Card High Contrast Variables - Now using theme variables */
111
+ --card-high-contrast-border-width: var(--cs-accessibility-high-contrast-border-width);
112
+ --card-high-contrast-outline-width: var(--cs-accessibility-high-contrast-outline-width);
113
+
114
+ /* Card Shimmer Effect Variables - Now using theme variables */
115
+ --card-shimmer-alpha: var(--cs-shimmer-alpha);
116
+ }
117
+
118
+ /* Dark Mode Overrides */
119
+ .dark {
120
+ --card-background: var(--cs-modes-dark-colors-surface-background);
121
+ --card-background-hover: var(--cs-modes-dark-colors-surface-surface);
122
+ --card-background-active: var(--cs-modes-dark-colors-surface-surface);
123
+ --card-background-focus: var(--cs-modes-dark-colors-surface-background);
124
+
125
+ --card-text-primary: var(--cs-modes-dark-colors-text-primary);
126
+ --card-text-secondary: var(--cs-modes-dark-colors-text-secondary);
127
+ --card-text-muted: var(--cs-modes-dark-colors-text-muted);
128
+ --card-text-inverse: var(--cs-modes-dark-colors-text-inverse);
129
+
130
+ --card-border-color: var(--cs-modes-dark-colors-border);
131
+ --card-border-color-hover: var(--cs-modes-dark-colors-border);
132
+ --card-border-color-focus: var(--cs-modes-dark-colors-interactive-focus);
133
+ }
134
+
135
+ /* Base Card Component */
136
+ .card {
137
+ /* Base Styles */
138
+ background-color: var(--card-background);
139
+ border: var(--card-border-width) solid var(--card-border-color);
140
+ border-radius: var(--card-border-radius);
141
+ box-shadow: var(--card-shadow-base);
142
+ color: var(--card-text-primary);
143
+ cursor: var(--card-cursor-default);
144
+ display: block;
145
+ font-family: inherit;
146
+ line-height: var(--cs-fonts-primary-line-heights-normal);
147
+ min-height: var(--card-min-height);
148
+ max-width: var(--card-max-width);
149
+ overflow: hidden;
150
+ position: relative;
151
+ text-decoration: none;
152
+ transition: var(--card-transition-properties);
153
+ width: var(--card-width);
154
+
155
+ /* Focus Management */
156
+ outline: none;
157
+ }
158
+
159
+ /* Card Variants */
160
+ .card--variant-default {
161
+ /* Default variant - no additional styles needed */
162
+ }
163
+
164
+ .card--variant-primary {
165
+ border-color: var(--cs-colors-primary-500);
166
+ background-color: var(--cs-colors-primary-50);
167
+ }
168
+
169
+ .card--variant-secondary {
170
+ border-color: var(--cs-colors-secondary-500);
171
+ background-color: var(--cs-colors-secondary-50);
172
+ }
173
+
174
+ .card--variant-success {
175
+ border-color: var(--cs-colors-semantic-success);
176
+ background-color: rgba(var(--cs-colors-semantic-success-rgb), var(--cs-colors-alpha-low));
177
+ }
178
+
179
+ .card--variant-warning {
180
+ border-color: var(--cs-colors-semantic-warning);
181
+ background-color: rgba(var(--cs-colors-semantic-warning-rgb), var(--cs-colors-alpha-low));
182
+ }
183
+
184
+ .card--variant-error {
185
+ border-color: var(--cs-colors-semantic-error);
186
+ background-color: rgba(var(--cs-colors-semantic-error-rgb), var(--cs-colors-alpha-low));
187
+ }
188
+
189
+ /* Card Elevations */
190
+ .card--elevation-base {
191
+ box-shadow: var(--card-shadow-base);
192
+ }
193
+
194
+ .card--elevation-elevated {
195
+ box-shadow: var(--card-shadow-elevated);
196
+ }
197
+
198
+ .card--elevation-interactive {
199
+ box-shadow: var(--card-shadow-interactive);
200
+ }
201
+
202
+ /* Card Sizes */
203
+ .card--size-compact {
204
+ padding: var(--card-padding-compact);
205
+ }
206
+
207
+ .card--size-normal {
208
+ padding: var(--card-padding-base);
209
+ }
210
+
211
+ .card--size-spacious {
212
+ padding: var(--card-padding-spacious);
213
+ }
214
+
215
+ /* Card Interactive States */
216
+ .card--interactive {
217
+ cursor: var(--card-cursor-interactive);
218
+ }
219
+
220
+ .card--interactive:hover {
221
+ background-color: var(--card-background-hover);
222
+ border-color: var(--card-border-color-hover);
223
+ box-shadow: var(--card-shadow-hover);
224
+ transform: var(--card-transform-hover);
225
+ }
226
+
227
+ .card--interactive:active {
228
+ background-color: var(--card-background-active);
229
+ transform: var(--card-transform-active);
230
+ }
231
+
232
+ .card--interactive:focus-visible {
233
+ background-color: var(--card-background-focus);
234
+ border-color: var(--card-border-color-focus);
235
+ box-shadow: var(--card-shadow-focus);
236
+ outline: var(--card-outline-focus);
237
+ outline-offset: var(--card-outline-offset);
238
+ transform: var(--card-transform-focus);
239
+ }
240
+
241
+ /* Card Header */
242
+ .card__header {
243
+ display: flex;
244
+ flex-direction: column;
245
+ gap: var(--cs-spacing-scale-sm);
246
+ padding: var(--card-spacing-header);
247
+ padding-bottom: var(--cs-spacing-scale-md);
248
+ }
249
+
250
+ .card__header--spacing-compact {
251
+ padding: var(--card-spacing-compact);
252
+ padding-bottom: var(--cs-spacing-scale-sm);
253
+ }
254
+
255
+ .card__header--spacing-normal {
256
+ padding: var(--card-spacing-header);
257
+ padding-bottom: var(--cs-spacing-scale-md);
258
+ }
259
+
260
+ .card__header--spacing-spacious {
261
+ padding: var(--card-spacing-spacious);
262
+ padding-bottom: var(--cs-spacing-scale-lg);
263
+ }
264
+
265
+ /* Card Title */
266
+ .card__title {
267
+ color: var(--card-text-primary);
268
+ font-family: inherit;
269
+ font-size: var(--card-title-font-size);
270
+ font-weight: var(--card-title-font-weight);
271
+ line-height: var(--card-title-line-height);
272
+ letter-spacing: var(--card-title-letter-spacing);
273
+ margin: 0;
274
+ padding: 0;
275
+ }
276
+
277
+ .card__title--size-small {
278
+ font-size: var(--cs-fonts-display-sizes-xs);
279
+ }
280
+
281
+ .card__title--size-normal {
282
+ font-size: var(--card-title-font-size);
283
+ }
284
+
285
+ .card__title--size-large {
286
+ font-size: var(--cs-fonts-display-sizes-md);
287
+ }
288
+
289
+ /* Card Description */
290
+ .card__description {
291
+ color: var(--card-text-secondary);
292
+ font-family: inherit;
293
+ font-size: var(--card-description-font-size);
294
+ font-weight: var(--card-description-font-weight);
295
+ line-height: var(--card-description-line-height);
296
+ letter-spacing: var(--card-description-letter-spacing);
297
+ margin: 0;
298
+ padding: 0;
299
+ }
300
+
301
+ .card__description--size-small {
302
+ font-size: var(--cs-fonts-body-sizes-xs);
303
+ }
304
+
305
+ .card__description--size-normal {
306
+ font-size: var(--card-description-font-size);
307
+ }
308
+
309
+ /* Card Content */
310
+ .card__content {
311
+ padding: var(--card-spacing-content);
312
+ padding-top: 0;
313
+ }
314
+
315
+ .card__content--spacing-compact {
316
+ padding: var(--card-spacing-compact);
317
+ padding-top: 0;
318
+ }
319
+
320
+ .card__content--spacing-normal {
321
+ padding: var(--card-spacing-content);
322
+ padding-top: 0;
323
+ }
324
+
325
+ .card__content--spacing-spacious {
326
+ padding: var(--card-spacing-spacious);
327
+ padding-top: 0;
328
+ }
329
+
330
+ /* Card Footer */
331
+ .card__footer {
332
+ align-items: center;
333
+ display: flex;
334
+ gap: var(--cs-spacing-scale-md);
335
+ padding: var(--card-spacing-footer);
336
+ padding-top: 0;
337
+ }
338
+
339
+ .card__footer--layout-horizontal {
340
+ flex-direction: row;
341
+ justify-content: flex-start;
342
+ }
343
+
344
+ .card__footer--layout-vertical {
345
+ flex-direction: column;
346
+ align-items: stretch;
347
+ gap: var(--cs-spacing-scale-sm);
348
+ }
349
+
350
+ .card__footer--layout-stacked {
351
+ flex-direction: column;
352
+ align-items: stretch;
353
+ gap: var(--cs-spacing-scale-sm);
354
+ }
355
+
356
+ .card__footer--layout-justified {
357
+ flex-direction: row;
358
+ justify-content: space-between;
359
+ }
360
+
361
+ .card__footer--layout-centered {
362
+ flex-direction: row;
363
+ justify-content: center;
364
+ }
365
+
366
+ /* Card Responsive Design */
367
+ @media (min-width: var(--cs-breakpoints-tablet)) {
368
+ .card {
369
+ padding: var(--card-tablet-padding);
370
+ }
371
+
372
+ .card__header {
373
+ padding: var(--card-spacing-header);
374
+ padding-bottom: var(--cs-spacing-scale-md);
375
+ }
376
+
377
+ .card__content {
378
+ padding: var(--card-spacing-content);
379
+ padding-top: 0;
380
+ }
381
+
382
+ .card__footer {
383
+ padding: var(--card-spacing-footer);
384
+ padding-top: 0;
385
+ }
386
+ }
387
+
388
+ @media (min-width: var(--cs-breakpoints-desktop)) {
389
+ .card {
390
+ padding: var(--card-desktop-padding);
391
+ }
392
+
393
+ .card__header {
394
+ padding: var(--card-spacing-header);
395
+ padding-bottom: var(--cs-spacing-scale-md);
396
+ }
397
+
398
+ .card__content {
399
+ padding: var(--card-spacing-content);
400
+ padding-top: 0;
401
+ }
402
+
403
+ .card__footer {
404
+ padding: var(--card-spacing-footer);
405
+ padding-top: 0;
406
+ }
407
+ }
408
+
409
+ /* Container Queries for Component-Level Responsiveness */
410
+ @container (min-width: var(--card-container-breakpoint-small)) {
411
+ .card {
412
+ /* Enhanced layout for wider containers */
413
+ }
414
+
415
+ .card__footer--layout-horizontal {
416
+ gap: var(--cs-spacing-scale-lg);
417
+ }
418
+ }
419
+
420
+ @container (min-width: var(--card-container-breakpoint-medium)) {
421
+ .card {
422
+ /* Full layout for wide containers */
423
+ }
424
+
425
+ .card__header {
426
+ flex-direction: row;
427
+ align-items: center;
428
+ justify-content: space-between;
429
+ }
430
+ }
431
+
432
+ /* Card Focus Management */
433
+ .card:focus-visible {
434
+ outline: var(--card-focus-ring-width) solid var(--card-focus-ring-color);
435
+ outline-offset: var(--card-focus-ring-offset);
436
+ border-radius: var(--card-focus-ring-radius);
437
+ }
438
+
439
+ /* Card Print Styles */
440
+ @media print {
441
+ .card {
442
+ background: transparent !important;
443
+ border: var(--card-border-width-normal) solid var(--card-print-border-color) !important;
444
+ box-shadow: none !important;
445
+ color: var(--card-print-text-color) !important;
446
+ page-break-inside: avoid;
447
+ }
448
+
449
+ .card__title {
450
+ color: var(--card-print-text-color) !important;
451
+ }
452
+
453
+ .card__description {
454
+ color: var(--card-print-text-secondary-color) !important;
455
+ }
456
+ }
457
+
458
+ /* Card High Contrast Mode Support */
459
+ @media (prefers-contrast: high) {
460
+ .card {
461
+ border-width: var(--card-high-contrast-border-width);
462
+ border-color: currentColor;
463
+ }
464
+
465
+ .card:focus-visible {
466
+ outline-width: var(--card-high-contrast-outline-width);
467
+ outline-color: currentColor;
468
+ }
469
+ }
470
+
471
+ /* Card Reduced Motion Support */
472
+ @media (prefers-reduced-motion: reduce) {
473
+ .card {
474
+ transition: none;
475
+ }
476
+
477
+ .card--interactive:hover,
478
+ .card--interactive:focus-visible {
479
+ transform: none;
480
+ }
481
+ }
482
+
483
+ /* Card Dark Mode Specific Styles */
484
+ .dark .card--variant-primary {
485
+ background-color: rgba(var(--cs-modes-dark-colors-primary-500-rgb), var(--cs-colors-alpha-low));
486
+ }
487
+
488
+ .dark .card--variant-secondary {
489
+ background-color: rgba(var(--cs-modes-dark-colors-secondary-500-rgb), var(--cs-colors-alpha-low));
490
+ }
491
+
492
+ .dark .card--variant-success {
493
+ background-color: rgba(var(--cs-modes-dark-colors-semantic-success-rgb), var(--cs-colors-alpha-low));
494
+ }
495
+
496
+ .dark .card--variant-warning {
497
+ background-color: rgba(var(--cs-modes-dark-colors-semantic-warning-rgb), var(--cs-colors-alpha-low));
498
+ }
499
+
500
+ .dark .card--variant-error {
501
+ background-color: rgba(var(--cs-modes-dark-colors-semantic-error-rgb), var(--cs-colors-alpha-low));
502
+ }
503
+
504
+ /* Card Utility Classes for Layout */
505
+ .card--full-width {
506
+ width: 100%;
507
+ }
508
+
509
+ .card--centered {
510
+ margin-left: auto;
511
+ margin-right: auto;
512
+ }
513
+
514
+ .card--text-center {
515
+ text-align: center;
516
+ }
517
+
518
+ .card--text-left {
519
+ text-align: left;
520
+ }
521
+
522
+ .card--text-right {
523
+ text-align: right;
524
+ }
525
+
526
+ /* Card Animation Classes */
527
+ .card--animate-in {
528
+ animation: cardFadeIn var(--card-animation-duration-fast) ease-out;
529
+ }
530
+
531
+ .card--animate-out {
532
+ animation: cardFadeOut var(--card-animation-duration-fast) ease-in;
533
+ }
534
+
535
+ @keyframes cardFadeIn {
536
+ from {
537
+ opacity: 0;
538
+ transform: translateY(var(--card-animation-offset-y));
539
+ }
540
+ to {
541
+ opacity: 1;
542
+ transform: translateY(0);
543
+ }
544
+ }
545
+
546
+ @keyframes cardFadeOut {
547
+ from {
548
+ opacity: 1;
549
+ transform: translateY(0);
550
+ }
551
+ to {
552
+ opacity: 0;
553
+ transform: translateY(calc(-1 * var(--card-animation-offset-y)));
554
+ }
555
+ }
556
+
557
+ /* Card Loading State */
558
+ .card--loading {
559
+ position: relative;
560
+ overflow: hidden;
561
+ }
562
+
563
+ .card--loading::before {
564
+ content: '';
565
+ position: absolute;
566
+ top: 0;
567
+ left: -100%;
568
+ width: 100%;
569
+ height: 100%;
570
+ background: linear-gradient(
571
+ 90deg,
572
+ transparent,
573
+ rgba(255, 255, 255, var(--card-shimmer-alpha)),
574
+ transparent
575
+ );
576
+ animation: cardShimmer var(--card-animation-duration-slow) infinite;
577
+ }
578
+
579
+ @keyframes cardShimmer {
580
+ 0% {
581
+ left: -100%;
582
+ }
583
+ 100% {
584
+ left: 100%;
585
+ }
586
+ }
587
+
588
+ /* Card Disabled State */
589
+ .card--disabled {
590
+ opacity: var(--cs-accessibility-disabled-opacity);
591
+ pointer-events: none;
592
+ cursor: not-allowed;
593
+ }
594
+
595
+ .card--disabled:hover,
596
+ .card--disabled:focus-visible {
597
+ background-color: var(--card-background);
598
+ border-color: var(--card-border-color);
599
+ box-shadow: var(--card-shadow-base);
600
+ transform: none;
601
+ }