@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.1.5 → 0.1.7

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 (82) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/index.d.ts +7 -0
  3. package/dist/index.esm.js +18 -1
  4. package/dist/index.js +18 -1
  5. package/dist/setupTests.d.ts +124 -0
  6. package/dist/setupTests.esm.js +122 -0
  7. package/dist/setupTests.js +122 -0
  8. package/dist/styles.css +1 -1
  9. package/package.json +1 -1
  10. package/src/index.css +1046 -0
  11. package/src/index.ts +18 -0
  12. package/src/plugins/theme-css-generator.ts +354 -0
  13. package/src/setupTests.ts +124 -0
  14. package/src/stories/README.md +39 -0
  15. package/src/stories/components/ThemeDebugger.tsx +143 -0
  16. package/src/stories/index.ts +29 -0
  17. package/src/stories/storybook-theme-imports.css +51 -0
  18. package/src/styles/base/fonts.css +30 -0
  19. package/src/styles/base/generated-theme-variables.css +573 -0
  20. package/src/styles/base/index.css +7 -0
  21. package/src/styles/base/reset.css +48 -0
  22. package/src/styles/base/theme.css +1068 -0
  23. package/src/styles/base/typography.css +68 -0
  24. package/src/styles/base/variables.css +5 -0
  25. package/src/styles/components/CLAUDE.md +62 -0
  26. package/src/styles/components/base/badge.css +428 -0
  27. package/src/styles/components/base/button.css +774 -0
  28. package/src/styles/components/base/card.css +601 -0
  29. package/src/styles/components/base/checkbox.css +442 -0
  30. package/src/styles/components/base/index.css +9 -0
  31. package/src/styles/components/base/input.css +887 -0
  32. package/src/styles/components/base/label.css +296 -0
  33. package/src/styles/components/data-display/chart.css +353 -0
  34. package/src/styles/components/data-display/data-grid.css +619 -0
  35. package/src/styles/components/data-display/index.css +9 -0
  36. package/src/styles/components/data-display/list.css +560 -0
  37. package/src/styles/components/data-display/table.css +498 -0
  38. package/src/styles/components/data-display/timeline.css +764 -0
  39. package/src/styles/components/data-display/tree.css +881 -0
  40. package/src/styles/components/feedback/alert.css +358 -0
  41. package/src/styles/components/feedback/index.css +7 -0
  42. package/src/styles/components/feedback/progress.css +435 -0
  43. package/src/styles/components/feedback/skeleton.css +337 -0
  44. package/src/styles/components/feedback/toast.css +564 -0
  45. package/src/styles/components/index.css +17 -0
  46. package/src/styles/components/navigation/breadcrumb.css +465 -0
  47. package/src/styles/components/navigation/index.css +9 -0
  48. package/src/styles/components/navigation/menu.css +572 -0
  49. package/src/styles/components/navigation/pagination.css +635 -0
  50. package/src/styles/components/navigation/sidebar.css +807 -0
  51. package/src/styles/components/navigation/stepper.css +519 -0
  52. package/src/styles/components/navigation/tabs.css +404 -0
  53. package/src/styles/components/overlay/backdrop.css +243 -0
  54. package/src/styles/components/overlay/index.css +8 -0
  55. package/src/styles/components/overlay/modal.css +482 -0
  56. package/src/styles/components/overlay/popover.css +607 -0
  57. package/src/styles/components/overlay/portal.css +213 -0
  58. package/src/styles/components/overlay/tooltip.css +488 -0
  59. package/src/styles/generated-theme-variables.css +573 -0
  60. package/src/styles/index.css +5 -0
  61. package/src/styles/layers/index.css +54 -0
  62. package/src/styles/layers/overrides.css +108 -0
  63. package/src/styles/layers/validation.css +159 -0
  64. package/src/styles/layers/validation.js +310 -0
  65. package/src/styles/themes/default.css +450 -0
  66. package/src/styles/themes/enterprise.css +370 -0
  67. package/src/styles/themes/harvey.css +436 -0
  68. package/src/styles/themes/index.css +4 -0
  69. package/src/styles/themes/stan-design.css +572 -0
  70. package/src/styles/utilities/advanced-transition-system.css +467 -0
  71. package/src/styles/utilities/battery-conscious-animations.css +289 -0
  72. package/src/styles/utilities/enterprise-mobile-experience.css +817 -0
  73. package/src/styles/utilities/hardware-acceleration.css +121 -0
  74. package/src/styles/utilities/index.css +20 -0
  75. package/src/styles/utilities/mobile-skeleton-loading.css +596 -0
  76. package/src/styles/utilities/semantic-input-system.css +451 -0
  77. package/src/styles/utilities/touch-friendly-interface.css +247 -0
  78. package/src/styles/utilities/touch-optimization.css +165 -0
  79. package/src/test-utils/index.ts +7 -0
  80. package/src/test-utils/theme-testing.tsx +219 -0
  81. package/src/testing/test-automation.ts +627 -0
  82. package/src/testing/test-utils.tsx +367 -0
@@ -0,0 +1,404 @@
1
+ /* Tabs Component Styles */
2
+ /* Using semantic CSS architecture with CSS variables and BEM methodology */
3
+
4
+ /* Tabs Component CSS Variables */
5
+ :root {
6
+ /* Tabs Base Variables */
7
+ --tabs-font-size: var(--cs-fonts-primary-sizes-sm);
8
+ --tabs-font-weight: var(--cs-fonts-primary-weights-medium);
9
+ --tabs-line-height: var(--cs-fonts-primary-line-heights-tight);
10
+ --tabs-letter-spacing: var(--cs-fonts-primary-letter-spacing-normal);
11
+
12
+ /* Tabs Color Variables */
13
+ --tabs-color-primary: var(--cs-colors-text-primary);
14
+ --tabs-color-secondary: var(--cs-colors-text-secondary);
15
+ --tabs-color-muted: var(--cs-colors-text-muted);
16
+ --tabs-color-disabled: var(--cs-colors-text-muted);
17
+ --tabs-color-active: var(--cs-colors-primary-500);
18
+ --tabs-color-hover: var(--cs-colors-interactive-hover);
19
+
20
+ /* Tabs Spacing Variables */
21
+ --tabs-padding-y: var(--cs-spacing-scale-xs);
22
+ --tabs-padding-x: var(--cs-spacing-scale-sm);
23
+ --tabs-margin: var(--cs-spacing-scale-xs);
24
+ --tabs-item-spacing: var(--cs-spacing-scale-xs);
25
+ --tabs-content-spacing: var(--cs-spacing-scale-md);
26
+
27
+ /* Tabs State Variables */
28
+ --tabs-transition: var(--cs-transitions-properties-colors);
29
+ --tabs-border-radius: var(--cs-border-radius-lg);
30
+ --tabs-border-width: var(--cs-border-width-sm);
31
+ --tabs-shadow: var(--cs-shadows-sm);
32
+
33
+ /* Tabs Focus Variables */
34
+ --tabs-focus-ring-width: var(--cs-accessibility-focus-ring-width);
35
+ --tabs-focus-ring-offset: var(--cs-accessibility-focus-ring-offset);
36
+ --tabs-focus-ring-color: var(--cs-accessibility-focus-ring-color);
37
+ --tabs-focus-outline-offset: var(--cs-accessibility-outline-offset);
38
+
39
+ /* Tabs Icon Variables */
40
+ --tabs-icon-size: var(--cs-fonts-primary-sizes-md);
41
+ --tabs-icon-spacing: var(--cs-spacing-scale-sm);
42
+ --tabs-badge-spacing: var(--cs-spacing-scale-sm);
43
+
44
+ /* Tabs Size Variables */
45
+ --tabs-size-sm-padding: var(--cs-spacing-scale-xs) var(--cs-spacing-scale-sm);
46
+ --tabs-size-sm-font: var(--cs-fonts-primary-sizes-sm);
47
+ --tabs-size-md-padding: var(--cs-spacing-scale-sm) var(--cs-spacing-scale-md);
48
+ --tabs-size-md-font: var(--cs-fonts-primary-sizes-sm);
49
+ --tabs-size-lg-padding: var(--cs-spacing-scale-md) var(--cs-spacing-scale-lg);
50
+ --tabs-size-lg-font: var(--cs-fonts-primary-sizes-base);
51
+ }
52
+
53
+ /* Base Tabs Styles */
54
+ .tabs {
55
+ display: flex;
56
+ flex-direction: column;
57
+ }
58
+
59
+ .tabs--vertical {
60
+ flex-direction: row;
61
+ }
62
+
63
+ /* Tabs List Container */
64
+ .tabs__list {
65
+ display: flex;
66
+ border-radius: var(--tabs-border-radius);
67
+ border: var(--tabs-border-width) solid transparent;
68
+ box-shadow: var(--tabs-shadow);
69
+ transition: var(--tabs-transition);
70
+ }
71
+
72
+ .tabs__list--vertical {
73
+ flex-direction: column;
74
+ border-right: var(--tabs-border-width) solid transparent;
75
+ }
76
+
77
+ .tabs__list--full-width {
78
+ width: 100%;
79
+ }
80
+
81
+ .tabs__list--centered {
82
+ justify-content: center;
83
+ }
84
+
85
+ /* Tabs List Theme Variants */
86
+ .tabs__list--semantic {
87
+ background-color: var(--cs-colors-surface-surface);
88
+ border-color: var(--cs-colors-border);
89
+ transition: all var(--cs-transitions-duration-normal) var(--cs-transitions-easing-ease);
90
+ }
91
+
92
+ /* Dark mode automatically handled by CSS variables */
93
+ .dark .tabs__list--semantic {
94
+ /* CSS variables automatically switch to dark mode values */
95
+ }
96
+
97
+ /* Tabs Item Styles */
98
+ .tabs__item {
99
+ display: inline-flex;
100
+ align-items: center;
101
+ justify-content: center;
102
+ font-size: var(--tabs-font-size);
103
+ font-weight: var(--tabs-font-weight);
104
+ line-height: var(--tabs-line-height);
105
+ letter-spacing: var(--tabs-letter-spacing);
106
+ padding: var(--tabs-padding-y) var(--tabs-padding-x);
107
+ border-radius: var(--cs-border-radius-md);
108
+ transition: var(--tabs-transition);
109
+ cursor: pointer;
110
+ border: var(--tabs-border-width) solid transparent;
111
+ text-decoration: none;
112
+ color: inherit;
113
+ background: none;
114
+ position: relative;
115
+ }
116
+
117
+ .tabs__item--vertical {
118
+ width: 100%;
119
+ justify-content: flex-start;
120
+ border-right: var(--tabs-border-width) solid transparent;
121
+ }
122
+
123
+ .tabs__item--full-width {
124
+ flex: 1;
125
+ }
126
+
127
+ /* Tabs Item Sizes */
128
+ .tabs__item--small {
129
+ padding: var(--tabs-size-sm-padding);
130
+ font-size: var(--tabs-size-sm-font);
131
+ }
132
+
133
+ .tabs__item--medium {
134
+ padding: var(--tabs-size-md-padding);
135
+ font-size: var(--tabs-size-md-font);
136
+ }
137
+
138
+ .tabs__item--large {
139
+ padding: var(--tabs-size-lg-padding);
140
+ font-size: var(--tabs-size-lg-font);
141
+ }
142
+
143
+ /* Tabs Item States */
144
+ .tabs__item:hover {
145
+ background-color: var(--tabs-color-hover);
146
+ }
147
+
148
+ .tabs__item:focus {
149
+ outline: var(--tabs-focus-ring-width) solid var(--tabs-focus-ring-color);
150
+ outline-offset: var(--tabs-focus-ring-offset);
151
+ }
152
+
153
+ .tabs__item:focus:not(:focus-visible) {
154
+ outline: none;
155
+ }
156
+
157
+ .tabs__item--disabled {
158
+ color: var(--tabs-color-disabled);
159
+ cursor: not-allowed;
160
+ opacity: var(--cs-accessibility-disabled-opacity);
161
+ }
162
+
163
+ .tabs__item--disabled:hover {
164
+ background-color: transparent;
165
+ }
166
+
167
+ /* Tabs Item Variants */
168
+ .tabs__item--default {
169
+ color: var(--tabs-color-secondary);
170
+ }
171
+
172
+ .tabs__item--default:hover {
173
+ color: var(--tabs-color-primary);
174
+ background-color: var(--tabs-color-hover);
175
+ }
176
+
177
+ .tabs__item--default.tabs__item--active {
178
+ color: var(--cs-colors-surface-background);
179
+ background-color: var(--tabs-color-active);
180
+ box-shadow: var(--cs-shadows-md);
181
+ }
182
+
183
+ .tabs__item--pills {
184
+ color: var(--tabs-color-secondary);
185
+ }
186
+
187
+ .tabs__item--pills:hover {
188
+ color: var(--tabs-color-primary);
189
+ background-color: var(--tabs-color-hover);
190
+ }
191
+
192
+ .tabs__item--pills.tabs__item--active {
193
+ color: var(--cs-colors-surface-background);
194
+ background-color: var(--tabs-color-active);
195
+ box-shadow: var(--cs-shadows-md);
196
+ }
197
+
198
+ .tabs__item--underline {
199
+ color: var(--tabs-color-secondary);
200
+ border-bottom: var(--tabs-border-width) solid transparent;
201
+ }
202
+
203
+ .tabs__item--underline:hover {
204
+ color: var(--tabs-color-primary);
205
+ border-bottom-color: var(--cs-colors-border);
206
+ }
207
+
208
+ .tabs__item--underline.tabs__item--active {
209
+ color: var(--tabs-color-active);
210
+ border-bottom-color: var(--tabs-color-active);
211
+ }
212
+
213
+ .tabs__item--cards {
214
+ color: var(--tabs-color-secondary);
215
+ border: var(--tabs-border-width) solid transparent;
216
+ }
217
+
218
+ .tabs__item--cards:hover {
219
+ color: var(--tabs-color-primary);
220
+ background-color: var(--tabs-color-hover);
221
+ border-color: var(--cs-colors-border);
222
+ }
223
+
224
+ .tabs__item--cards.tabs__item--active {
225
+ color: var(--tabs-color-active);
226
+ background-color: var(--cs-colors-primary-50);
227
+ border-color: var(--cs-colors-primary-200);
228
+ box-shadow: var(--cs-shadows-sm);
229
+ }
230
+
231
+ .tabs__item--minimal {
232
+ color: var(--tabs-color-secondary);
233
+ }
234
+
235
+ .tabs__item--minimal:hover {
236
+ color: var(--tabs-color-primary);
237
+ }
238
+
239
+ .tabs__item--minimal.tabs__item--active {
240
+ color: var(--tabs-color-active);
241
+ font-weight: var(--cs-fonts-primary-weights-semibold);
242
+ }
243
+
244
+ /* Tabs Item Theme Variants */
245
+ .tabs__item--stan-design.tabs__item--active {
246
+ background-color: var(--cs-colors-text-primary);
247
+ color: var(--cs-colors-surface-background);
248
+ }
249
+
250
+ .tabs__item--enterprise.tabs__item--active {
251
+ background-color: var(--cs-colors-primary-600);
252
+ color: var(--cs-colors-surface-background);
253
+ }
254
+
255
+ .tabs__item--harvey.tabs__item--active {
256
+ background-color: var(--cs-colors-accent);
257
+ color: var(--cs-colors-surface-background);
258
+ }
259
+
260
+ /* Tabs Item Elements */
261
+ .tabs__item-icon {
262
+ width: var(--tabs-icon-size);
263
+ height: var(--tabs-icon-size);
264
+ margin-right: var(--tabs-icon-spacing);
265
+ }
266
+
267
+ .tabs__item-label {
268
+ white-space: nowrap;
269
+ overflow: hidden;
270
+ text-overflow: ellipsis;
271
+ }
272
+
273
+ .tabs__item-badge {
274
+ margin-left: var(--tabs-badge-spacing);
275
+ }
276
+
277
+ /* Tabs Close Button */
278
+ .tabs__close-button {
279
+ margin-left: var(--tabs-icon-spacing);
280
+ padding: var(--cs-spacing-scale-xs);
281
+ border-radius: var(--cs-border-radius-full);
282
+ transition: var(--tabs-transition);
283
+ cursor: pointer;
284
+ border: none;
285
+ background: none;
286
+ color: inherit;
287
+ display: flex;
288
+ align-items: center;
289
+ justify-content: center;
290
+ }
291
+
292
+ .tabs__close-button:hover {
293
+ background-color: rgba(0, 0, 0, var(--cs-colors-alpha-low));
294
+ }
295
+
296
+ .tabs__close-icon {
297
+ width: calc(var(--cs-spacing-scale-sm) + var(--cs-spacing-scale-xs));
298
+ height: calc(var(--cs-spacing-scale-sm) + var(--cs-spacing-scale-xs));
299
+ }
300
+
301
+ /* Tabs Add Button */
302
+ .tabs__add-button {
303
+ display: inline-flex;
304
+ align-items: center;
305
+ justify-content: center;
306
+ padding: var(--tabs-padding-y) var(--tabs-padding-x);
307
+ color: var(--tabs-color-muted);
308
+ transition: var(--tabs-transition);
309
+ cursor: pointer;
310
+ border: none;
311
+ background: none;
312
+ border-radius: var(--cs-border-radius-md);
313
+ }
314
+
315
+ .tabs__add-button:hover {
316
+ color: var(--tabs-color-secondary);
317
+ background-color: var(--tabs-color-hover);
318
+ }
319
+
320
+ .tabs__add-icon {
321
+ width: var(--tabs-icon-size);
322
+ height: var(--tabs-icon-size);
323
+ }
324
+
325
+ /* Tabs Content Area */
326
+ .tabs__content {
327
+ margin-top: var(--tabs-content-spacing);
328
+ }
329
+
330
+ .tabs__content--vertical {
331
+ margin-top: 0;
332
+ margin-left: var(--tabs-content-spacing);
333
+ flex: 1;
334
+ }
335
+
336
+ /* Tabs Loading State */
337
+ .tabs__loading {
338
+ display: flex;
339
+ align-items: center;
340
+ justify-content: center;
341
+ padding: var(--cs-spacing-scale-2xl);
342
+ }
343
+
344
+ .tabs__loading-spinner {
345
+ width: var(--cs-spacing-scale-2xl);
346
+ height: var(--cs-spacing-scale-2xl);
347
+ border: var(--tabs-border-width) solid var(--cs-colors-border);
348
+ border-top-color: var(--tabs-color-active);
349
+ border-radius: var(--cs-border-radius-full);
350
+ animation: spin 1s linear infinite;
351
+ }
352
+
353
+ @keyframes spin {
354
+ to {
355
+ transform: rotate(360deg);
356
+ }
357
+ }
358
+
359
+ /* Tabs Focus Management */
360
+ .tabs__item:focus-visible {
361
+ outline: var(--tabs-focus-ring-width) solid var(--tabs-focus-ring-color);
362
+ outline-offset: var(--tabs-focus-ring-offset);
363
+ }
364
+
365
+ /* Tabs Accessibility */
366
+ .tabs__item[aria-selected="true"] {
367
+ font-weight: var(--cs-fonts-primary-weights-semibold);
368
+ }
369
+
370
+ .tabs__item[role="tab"] {
371
+ /* Ensure proper tab role styling */
372
+ }
373
+
374
+ /* Tabs Animation */
375
+ .tabs__item {
376
+ transform: translateZ(0);
377
+ backface-visibility: hidden;
378
+ }
379
+
380
+ .tabs__item:hover {
381
+ transform: translateY(calc(-1 * var(--cs-spacing-scale-xs)));
382
+ }
383
+
384
+ .tabs__item:active {
385
+ transform: translateY(0);
386
+ }
387
+
388
+ /* Tabs Responsive Behavior */
389
+ @media (max-width: var(--cs-breakpoints-mobile)) {
390
+ .tabs__list--vertical {
391
+ flex-direction: row;
392
+ overflow-x: auto;
393
+ }
394
+
395
+ .tabs__item--vertical {
396
+ width: auto;
397
+ min-width: max-content;
398
+ }
399
+
400
+ .tabs__content--vertical {
401
+ margin-left: var(--cs-spacing-scale-none);
402
+ margin-top: var(--tabs-content-spacing);
403
+ }
404
+ }
@@ -0,0 +1,243 @@
1
+ /* Backdrop Component Styles */
2
+ /* Semantic CSS architecture following BEM methodology */
3
+
4
+ /* ============================================================================ */
5
+ /* BACKDROP BASE */
6
+ /* ============================================================================ */
7
+
8
+ .backdrop {
9
+ --backdrop-opacity: 0.5;
10
+ --backdrop-z-index: var(--cs-z-index-backdrop, 1000);
11
+ --backdrop-transition: var(--cs-transitions-all, all 200ms ease-in-out);
12
+ --backdrop-blur: 4px;
13
+ --backdrop-color: rgba(0, 0, 0, var(--backdrop-opacity));
14
+ }
15
+
16
+ .backdrop__container {
17
+ position: fixed;
18
+ top: 0;
19
+ left: 0;
20
+ right: 0;
21
+ bottom: 0;
22
+ z-index: var(--backdrop-z-index);
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ background-color: var(--backdrop-color);
27
+ transition: var(--backdrop-transition);
28
+ cursor: pointer;
29
+ }
30
+
31
+ /* ============================================================================ */
32
+ /* BACKDROP VARIANTS */
33
+ /* ============================================================================ */
34
+
35
+ .backdrop__container--blur {
36
+ backdrop-filter: blur(var(--backdrop-blur));
37
+ -webkit-backdrop-filter: blur(var(--backdrop-blur));
38
+ }
39
+
40
+ .backdrop__container--light {
41
+ --backdrop-color: rgba(255, 255, 255, var(--backdrop-opacity));
42
+ }
43
+
44
+ .backdrop__container--dark {
45
+ --backdrop-color: rgba(0, 0, 0, var(--backdrop-opacity));
46
+ }
47
+
48
+ /* ============================================================================ */
49
+ /* BACKDROP OPACITY VARIANTS */
50
+ /* ============================================================================ */
51
+
52
+ .backdrop__container--opacity-10 {
53
+ --backdrop-opacity: 0.1;
54
+ }
55
+
56
+ .backdrop__container--opacity-20 {
57
+ --backdrop-opacity: 0.2;
58
+ }
59
+
60
+ .backdrop__container--opacity-30 {
61
+ --backdrop-opacity: 0.3;
62
+ }
63
+
64
+ .backdrop__container--opacity-40 {
65
+ --backdrop-opacity: 0.4;
66
+ }
67
+
68
+ .backdrop__container--opacity-50 {
69
+ --backdrop-opacity: 0.5;
70
+ }
71
+
72
+ .backdrop__container--opacity-60 {
73
+ --backdrop-opacity: 0.6;
74
+ }
75
+
76
+ .backdrop__container--opacity-70 {
77
+ --backdrop-opacity: 0.7;
78
+ }
79
+
80
+ .backdrop__container--opacity-80 {
81
+ --backdrop-opacity: 0.8;
82
+ }
83
+
84
+ .backdrop__container--opacity-90 {
85
+ --backdrop-opacity: 0.9;
86
+ }
87
+
88
+ /* ============================================================================ */
89
+ /* BACKDROP Z-INDEX MANAGEMENT */
90
+ /* ============================================================================ */
91
+
92
+ .backdrop__container--z-modal {
93
+ --backdrop-z-index: var(--cs-z-index-modal, 1000);
94
+ }
95
+
96
+ .backdrop__container--z-dropdown {
97
+ --backdrop-z-index: var(--cs-z-index-dropdown, 1010);
98
+ }
99
+
100
+ .backdrop__container--z-popover {
101
+ --backdrop-z-index: var(--cs-z-index-popover, 1020);
102
+ }
103
+
104
+ .backdrop__container--z-tooltip {
105
+ --backdrop-z-index: var(--cs-z-index-tooltip, 1030);
106
+ }
107
+
108
+ .backdrop__container--z-toast {
109
+ --backdrop-z-index: var(--cs-z-index-toast, 1040);
110
+ }
111
+
112
+ /* ============================================================================ */
113
+ /* BACKDROP ANIMATIONS */
114
+ /* ============================================================================ */
115
+
116
+ .backdrop__container--enter {
117
+ animation: backdrop-fade-in 200ms ease-out;
118
+ }
119
+
120
+ .backdrop__container--exit {
121
+ animation: backdrop-fade-out 200ms ease-in;
122
+ }
123
+
124
+ @keyframes backdrop-fade-in {
125
+ from {
126
+ opacity: 0;
127
+ }
128
+ to {
129
+ opacity: 1;
130
+ }
131
+ }
132
+
133
+ @keyframes backdrop-fade-out {
134
+ from {
135
+ opacity: 1;
136
+ }
137
+ to {
138
+ opacity: 0;
139
+ }
140
+ }
141
+
142
+ /* ============================================================================ */
143
+ /* BACKDROP CONTENT */
144
+ /* ============================================================================ */
145
+
146
+ .backdrop__content {
147
+ pointer-events: auto;
148
+ max-width: 100%;
149
+ max-height: 100%;
150
+ overflow: auto;
151
+ cursor: default;
152
+ }
153
+
154
+ /* ============================================================================ */
155
+ /* RESPONSIVE DESIGN */
156
+ /* ============================================================================ */
157
+
158
+ @media (max-width: 640px) {
159
+ .backdrop__container {
160
+ padding: var(--cs-spacing-scale-4, 16px);
161
+ }
162
+
163
+ .backdrop__content {
164
+ width: 100%;
165
+ height: auto;
166
+ max-height: calc(100vh - var(--cs-spacing-scale-8, 32px));
167
+ }
168
+ }
169
+
170
+ /* ============================================================================ */
171
+ /* ACCESSIBILITY */
172
+ /* ============================================================================ */
173
+
174
+ .backdrop__container[role="presentation"] {
175
+ /* Ensure backdrop is properly announced to screen readers */
176
+ }
177
+
178
+ .backdrop__container:focus {
179
+ outline: none;
180
+ }
181
+
182
+ /* High contrast mode support */
183
+ @media (prefers-contrast: high) {
184
+ .backdrop__container {
185
+ border: 1px solid;
186
+ }
187
+ }
188
+
189
+ /* Reduced motion support */
190
+ @media (prefers-reduced-motion: reduce) {
191
+ .backdrop__container {
192
+ transition: none;
193
+ }
194
+
195
+ .backdrop__container--enter,
196
+ .backdrop__container--exit {
197
+ animation: none;
198
+ }
199
+ }
200
+
201
+ /* ============================================================================ */
202
+ /* INTERACTION STATES */
203
+ /* ============================================================================ */
204
+
205
+ .backdrop__container--no-click {
206
+ pointer-events: none;
207
+ }
208
+
209
+ .backdrop__container--no-click .backdrop__content {
210
+ pointer-events: auto;
211
+ }
212
+
213
+ .backdrop__container:hover {
214
+ /* Optional hover effects can be added here */
215
+ }
216
+
217
+ /* ============================================================================ */
218
+ /* THEME INTEGRATION */
219
+ /* ============================================================================ */
220
+
221
+ .backdrop__container--theme-light {
222
+ --backdrop-color: rgba(255, 255, 255, var(--backdrop-opacity));
223
+ }
224
+
225
+ .backdrop__container--theme-dark {
226
+ --backdrop-color: rgba(0, 0, 0, var(--backdrop-opacity));
227
+ }
228
+
229
+ .backdrop__container--theme-primary {
230
+ --backdrop-color: rgba(59, 130, 246, var(--backdrop-opacity)); /* Primary blue */
231
+ }
232
+
233
+ .backdrop__container--theme-success {
234
+ --backdrop-color: rgba(16, 185, 129, var(--backdrop-opacity)); /* Success green */
235
+ }
236
+
237
+ .backdrop__container--theme-warning {
238
+ --backdrop-color: rgba(245, 158, 11, var(--backdrop-opacity)); /* Warning amber */
239
+ }
240
+
241
+ .backdrop__container--theme-error {
242
+ --backdrop-color: rgba(239, 68, 68, var(--backdrop-opacity)); /* Error red */
243
+ }
@@ -0,0 +1,8 @@
1
+ /* Overlay Components */
2
+ /* Components that render above other content (modals, tooltips, etc.) */
3
+
4
+ @import './backdrop.css';
5
+ @import './modal.css';
6
+ @import './popover.css';
7
+ @import './portal.css';
8
+ @import './tooltip.css';