@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.1.6 → 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,807 @@
1
+ /* Sidebar Component Styles */
2
+ /* Using semantic CSS architecture with CSS variables and BEM methodology */
3
+
4
+ /* Sidebar Component CSS Variables */
5
+ :root {
6
+ /* Sidebar Base Variables */
7
+ --sidebar-font-size: var(--cs-fonts-primary-sizes-sm);
8
+ --sidebar-font-weight: var(--cs-fonts-primary-weights-medium);
9
+ --sidebar-line-height: var(--cs-fonts-primary-line-heights-tight);
10
+ --sidebar-letter-spacing: var(--cs-fonts-primary-letter-spacing-normal);
11
+
12
+ /* Sidebar Color Variables */
13
+ --sidebar-color-primary: var(--cs-colors-text-primary);
14
+ --sidebar-color-secondary: var(--cs-colors-text-secondary);
15
+ --sidebar-color-muted: var(--cs-colors-text-muted);
16
+ --sidebar-color-disabled: var(--cs-colors-text-muted);
17
+ --sidebar-color-active: var(--cs-colors-primary-500);
18
+ --sidebar-color-hover: var(--cs-colors-interactive-hover);
19
+
20
+ /* Sidebar Spacing Variables */
21
+ --sidebar-padding-y: var(--cs-spacing-scale-sm);
22
+ --sidebar-padding-x: var(--cs-spacing-scale-md);
23
+ --sidebar-margin: var(--cs-spacing-scale-xs);
24
+ --sidebar-item-spacing: var(--cs-spacing-scale-xs);
25
+ --sidebar-group-spacing: var(--cs-spacing-scale-md);
26
+
27
+ /* Sidebar State Variables */
28
+ --sidebar-transition: var(--cs-transitions-properties-transform);
29
+ --sidebar-border-radius: var(--cs-border-radius-lg);
30
+ --sidebar-border-width: var(--cs-border-width-sm);
31
+ --sidebar-shadow: var(--cs-shadows-lg);
32
+
33
+ /* Sidebar Focus Variables */
34
+ --sidebar-focus-ring-width: var(--cs-accessibility-focus-ring-width);
35
+ --sidebar-focus-ring-offset: var(--cs-accessibility-focus-ring-offset);
36
+ --sidebar-focus-ring-color: var(--cs-accessibility-focus-ring-color);
37
+ --sidebar-focus-outline-offset: var(--cs-accessibility-outline-offset);
38
+
39
+ /* Sidebar Icon Variables */
40
+ --sidebar-icon-size: var(--cs-fonts-primary-sizes-lg);
41
+ --sidebar-icon-spacing: var(--cs-spacing-scale-sm);
42
+ --sidebar-badge-spacing: var(--cs-spacing-scale-sm);
43
+
44
+ /* Sidebar Layout Variables */
45
+ --sidebar-width: var(--cs-spacing-scale-4xl);
46
+ --sidebar-width-collapsed: var(--cs-spacing-scale-xl);
47
+ --sidebar-width-mobile: 100%;
48
+ --sidebar-z-index: 100;
49
+
50
+ /* Sidebar Interactive State Variables */
51
+ --sidebar-hover-transform: translateX(var(--cs-spacing-scale-xs));
52
+ --sidebar-hover-shadow: var(--cs-shadows-md);
53
+ --sidebar-focus-outline: var(--cs-spacing-scale-xs) solid var(--cs-colors-interactive-focus);
54
+ --sidebar-focus-offset: var(--cs-spacing-scale-xs);
55
+ --sidebar-active-transform: translateX(0);
56
+ --sidebar-active-shadow: var(--cs-shadows-sm);
57
+ --sidebar-focus-ring-outline: var(--cs-spacing-scale-xs) solid var(--cs-colors-interactive-focus);
58
+ --sidebar-focus-ring-offset: var(--cs-spacing-scale-xs);
59
+
60
+ /* Sidebar High Contrast Variables */
61
+ --sidebar-high-contrast-border-width: var(--cs-spacing-scale-xs);
62
+
63
+ /* Sidebar Responsive Variables */
64
+ --sidebar-mobile-font-size: var(--cs-fonts-primary-sizes-xs);
65
+ --sidebar-mobile-padding-y: var(--cs-spacing-scale-xs);
66
+ --sidebar-mobile-padding-x: var(--cs-spacing-scale-sm);
67
+ --sidebar-container-font-size: var(--cs-fonts-primary-sizes-sm);
68
+
69
+ /* Sidebar Showcase Variables */
70
+ --sidebar-showcase-gap: var(--cs-spacing-scale-md);
71
+ --sidebar-variant-showcase-gap: var(--cs-spacing-scale-md);
72
+ --sidebar-variant-section-gap: var(--cs-spacing-scale-sm);
73
+ --sidebar-variant-title-size: var(--cs-fonts-primary-sizes-lg);
74
+ --sidebar-variant-title-weight: var(--cs-fonts-primary-weights-semibold);
75
+ --sidebar-variant-grid-gap: var(--cs-spacing-scale-sm);
76
+ --sidebar-variant-description-size: var(--cs-fonts-primary-sizes-sm);
77
+ --sidebar-variant-description-color: var(--cs-colors-text-muted);
78
+ --sidebar-state-showcase-gap: var(--cs-spacing-scale-md);
79
+ --sidebar-state-description-size: var(--cs-fonts-primary-sizes-sm);
80
+ --sidebar-state-description-color: var(--cs-colors-text-muted);
81
+ --sidebar-responsive-showcase-gap: var(--cs-spacing-scale-md);
82
+ --sidebar-responsive-description-size: var(--cs-fonts-primary-sizes-sm);
83
+ --sidebar-responsive-description-color: var(--cs-colors-text-muted);
84
+ --sidebar-responsive-grid-gap: var(--cs-spacing-scale-md);
85
+ --sidebar-responsive-title-size: var(--cs-fonts-primary-sizes-md);
86
+ --sidebar-responsive-title-weight: var(--cs-fonts-primary-weights-medium);
87
+ --sidebar-responsive-column-gap: var(--cs-spacing-scale-sm);
88
+ }
89
+
90
+ /* Base Sidebar Styles */
91
+ .sidebar {
92
+ display: flex;
93
+ flex-direction: column;
94
+ width: var(--sidebar-width);
95
+ height: 100vh;
96
+ background-color: var(--cs-colors-surface-background);
97
+ border-right: var(--sidebar-border-width) solid var(--cs-colors-border);
98
+ box-shadow: var(--sidebar-shadow);
99
+ transition: var(--sidebar-transition);
100
+ position: fixed;
101
+ top: 0;
102
+ left: 0;
103
+ z-index: var(--sidebar-z-index);
104
+ overflow: hidden;
105
+ }
106
+
107
+ /* Sidebar States */
108
+ .sidebar--collapsed {
109
+ width: var(--sidebar-width-collapsed);
110
+ }
111
+
112
+ .sidebar--mobile {
113
+ width: var(--sidebar-width-mobile);
114
+ transform: translateX(-100%);
115
+ }
116
+
117
+ .sidebar--mobile.sidebar--open {
118
+ transform: translateX(0);
119
+ }
120
+
121
+ /* Sidebar Theme Variants */
122
+ .sidebar--semantic {
123
+ background-color: var(--cs-colors-surface-background);
124
+ border-color: var(--cs-colors-border);
125
+ transition: all var(--cs-transitions-duration-normal) var(--cs-transitions-easing-ease);
126
+ }
127
+
128
+ /* Dark mode automatically handled by CSS variables */
129
+ .dark .sidebar--semantic {
130
+ background-color: var(--cs-modes-dark-colors-surface-surface);
131
+ border-color: var(--cs-modes-dark-colors-border);
132
+ }
133
+
134
+ /* Sidebar Header */
135
+ .sidebar__header {
136
+ display: flex;
137
+ align-items: center;
138
+ justify-content: space-between;
139
+ padding: var(--cs-spacing-scale-md);
140
+ border-bottom: var(--sidebar-border-width) solid var(--cs-colors-border);
141
+ background-color: var(--cs-colors-surface-surface);
142
+ min-height: var(--cs-spacing-scale-xl);
143
+ }
144
+
145
+ /* Dark mode automatically handled by CSS variables */
146
+ .dark .sidebar__header {
147
+ border-bottom-color: var(--cs-modes-dark-colors-border);
148
+ background-color: var(--cs-modes-dark-colors-surface-surface);
149
+ }
150
+
151
+ .sidebar__header--collapsed {
152
+ justify-content: center;
153
+ padding: var(--cs-spacing-scale-sm);
154
+ }
155
+
156
+ .sidebar__logo {
157
+ display: flex;
158
+ align-items: center;
159
+ gap: var(--sidebar-icon-spacing);
160
+ font-weight: var(--cs-fonts-primary-weights-semibold);
161
+ color: var(--sidebar-color-primary);
162
+ text-decoration: none;
163
+ }
164
+
165
+ /* Dark mode automatically handled by CSS variables */
166
+ .dark .sidebar__logo {
167
+ color: var(--cs-modes-dark-colors-text-primary);
168
+ }
169
+
170
+ .sidebar__logo--collapsed {
171
+ justify-content: center;
172
+ }
173
+
174
+ .sidebar__logo-text {
175
+ font-size: var(--cs-fonts-primary-sizes-lg);
176
+ white-space: nowrap;
177
+ overflow: hidden;
178
+ }
179
+
180
+ .sidebar__logo-text--collapsed {
181
+ display: none;
182
+ }
183
+
184
+ .sidebar__logo-icon {
185
+ width: var(--sidebar-icon-size);
186
+ height: var(--sidebar-icon-size);
187
+ flex-shrink: 0;
188
+ }
189
+
190
+ /* Sidebar Toggle Button */
191
+ .sidebar__toggle {
192
+ display: flex;
193
+ align-items: center;
194
+ justify-content: center;
195
+ width: var(--cs-spacing-scale-2xl);
196
+ height: var(--cs-spacing-scale-2xl);
197
+ border: none;
198
+ background: none;
199
+ color: var(--sidebar-color-secondary);
200
+ cursor: pointer;
201
+ border-radius: var(--cs-border-radius-md);
202
+ transition: var(--sidebar-transition);
203
+ }
204
+
205
+ .sidebar__toggle:hover {
206
+ background-color: var(--sidebar-color-hover);
207
+ color: var(--sidebar-color-primary);
208
+ }
209
+
210
+ /* Dark mode automatically handled by CSS variables */
211
+ .dark .sidebar__toggle {
212
+ color: var(--cs-modes-dark-colors-text-secondary);
213
+ }
214
+
215
+ .dark .sidebar__toggle:hover {
216
+ background-color: var(--cs-modes-dark-colors-interactive-hover);
217
+ color: var(--cs-modes-dark-colors-text-primary);
218
+ }
219
+
220
+ .sidebar__toggle--collapsed {
221
+ transform: rotate(180deg);
222
+ }
223
+
224
+ .sidebar__toggle-icon {
225
+ width: var(--cs-spacing-scale-md);
226
+ height: var(--cs-spacing-scale-md);
227
+ }
228
+
229
+ /* Sidebar Navigation */
230
+ .sidebar__nav {
231
+ flex: 1;
232
+ padding: var(--sidebar-padding-y) 0;
233
+ overflow-y: auto;
234
+ overflow-x: hidden;
235
+ }
236
+
237
+ .sidebar__nav--collapsed {
238
+ padding: var(--cs-spacing-scale-xs) 0;
239
+ }
240
+
241
+ /* Sidebar Group */
242
+ .sidebar__group {
243
+ margin-bottom: var(--sidebar-group-spacing);
244
+ }
245
+
246
+ .sidebar__group--collapsed {
247
+ margin-bottom: var(--cs-spacing-scale-sm);
248
+ }
249
+
250
+ .sidebar__group-title {
251
+ padding: var(--cs-spacing-scale-xs) var(--sidebar-padding-x);
252
+ font-size: var(--cs-fonts-primary-sizes-xs);
253
+ font-weight: var(--cs-fonts-primary-weights-semibold);
254
+ color: var(--sidebar-color-muted);
255
+ text-transform: uppercase;
256
+ letter-spacing: var(--cs-fonts-primary-letter-spacing-wide);
257
+ white-space: nowrap;
258
+ overflow: hidden;
259
+ }
260
+
261
+ /* Dark mode automatically handled by CSS variables */
262
+ .dark .sidebar__group-title {
263
+ color: var(--cs-modes-dark-colors-text-muted);
264
+ }
265
+
266
+ .sidebar__group-title--collapsed {
267
+ display: none;
268
+ }
269
+
270
+ /* Sidebar Item Styles */
271
+ .sidebar__item {
272
+ display: flex;
273
+ align-items: center;
274
+ width: 100%;
275
+ padding: var(--cs-spacing-scale-sm) var(--sidebar-padding-x);
276
+ font-size: var(--sidebar-font-size);
277
+ font-weight: var(--sidebar-font-weight);
278
+ line-height: var(--sidebar-line-height);
279
+ letter-spacing: var(--sidebar-letter-spacing);
280
+ color: var(--sidebar-color-primary);
281
+ text-decoration: none;
282
+ border: none;
283
+ background: none;
284
+ cursor: pointer;
285
+ transition: var(--sidebar-transition);
286
+ text-align: left;
287
+ position: relative;
288
+ }
289
+
290
+ .sidebar__item:hover {
291
+ background-color: var(--sidebar-color-hover);
292
+ color: var(--sidebar-color-primary);
293
+ }
294
+
295
+ /* Dark mode automatically handled by CSS variables */
296
+ .dark .sidebar__item {
297
+ color: var(--cs-modes-dark-colors-text-primary);
298
+ background-color: var(--cs-modes-dark-colors-surface-surface);
299
+ }
300
+
301
+ .dark .sidebar__item:hover {
302
+ background-color: var(--cs-modes-dark-colors-interactive-hover);
303
+ color: var(--cs-modes-dark-colors-text-primary);
304
+ }
305
+
306
+ .sidebar__item:focus {
307
+ outline: var(--sidebar-focus-ring-width) solid var(--sidebar-focus-ring-color);
308
+ outline-offset: var(--sidebar-focus-ring-offset);
309
+ }
310
+
311
+ .sidebar__item:focus:not(:focus-visible) {
312
+ outline: none;
313
+ }
314
+
315
+ .sidebar__item--active {
316
+ background-color: var(--sidebar-color-active);
317
+ color: var(--cs-colors-surface-background);
318
+ font-weight: var(--cs-fonts-primary-weights-semibold);
319
+ }
320
+
321
+ .sidebar__item--active::before {
322
+ content: '';
323
+ position: absolute;
324
+ left: 0;
325
+ top: 0;
326
+ bottom: 0;
327
+ width: var(--cs-spacing-scale-xs);
328
+ background-color: var(--cs-colors-surface-background);
329
+ }
330
+
331
+ .sidebar__item--disabled {
332
+ color: var(--sidebar-color-disabled);
333
+ cursor: not-allowed;
334
+ opacity: var(--cs-accessibility-disabled-opacity);
335
+ }
336
+
337
+ .sidebar__item--disabled:hover {
338
+ background-color: transparent;
339
+ color: var(--sidebar-color-disabled);
340
+ }
341
+
342
+ /* Dark mode automatically handled by CSS variables */
343
+ .dark .sidebar__item--active {
344
+ background-color: var(--cs-modes-dark-colors-primary-500);
345
+ color: var(--cs-modes-dark-colors-text-inverse);
346
+ }
347
+
348
+ .dark .sidebar__item--active::before {
349
+ background-color: var(--cs-modes-dark-colors-text-inverse);
350
+ }
351
+
352
+ .dark .sidebar__item--disabled {
353
+ color: var(--cs-modes-dark-colors-text-muted);
354
+ }
355
+
356
+ /* Sidebar Item Elements */
357
+ .sidebar__item-icon {
358
+ width: var(--sidebar-icon-size);
359
+ height: var(--sidebar-icon-size);
360
+ margin-right: var(--sidebar-icon-spacing);
361
+ flex-shrink: 0;
362
+ }
363
+
364
+ .sidebar__item-icon--collapsed {
365
+ margin-right: 0;
366
+ }
367
+
368
+ .sidebar__item-label {
369
+ flex: 1;
370
+ white-space: nowrap;
371
+ overflow: hidden;
372
+ text-overflow: ellipsis;
373
+ }
374
+
375
+ .sidebar__item-label--collapsed {
376
+ display: none;
377
+ }
378
+
379
+ .sidebar__item-badge {
380
+ margin-left: var(--sidebar-badge-spacing);
381
+ flex-shrink: 0;
382
+ }
383
+
384
+ .sidebar__item-badge--collapsed {
385
+ display: none;
386
+ }
387
+
388
+ .sidebar__item-description {
389
+ display: block;
390
+ font-size: var(--cs-fonts-primary-sizes-xs);
391
+ color: var(--sidebar-color-muted);
392
+ margin-top: var(--cs-spacing-scale-xs);
393
+ white-space: nowrap;
394
+ overflow: hidden;
395
+ text-overflow: ellipsis;
396
+ }
397
+
398
+ /* Dark mode automatically handled by CSS variables */
399
+ .dark .sidebar__item-description {
400
+ color: var(--cs-modes-dark-colors-text-muted);
401
+ }
402
+
403
+ .sidebar__item-description--collapsed {
404
+ display: none;
405
+ }
406
+
407
+ /* Sidebar Item with Children */
408
+ .sidebar__item--has-children {
409
+ position: relative;
410
+ }
411
+
412
+ .sidebar__item--has-children::after {
413
+ content: '';
414
+ width: var(--cs-spacing-scale-sm);
415
+ height: var(--cs-spacing-scale-sm);
416
+ border-right: var(--cs-border-width-focus) solid currentColor;
417
+ border-bottom: var(--cs-border-width-focus) solid currentColor;
418
+ transform: rotate(-45deg);
419
+ margin-left: auto;
420
+ transition: var(--sidebar-transition);
421
+ }
422
+
423
+ .sidebar__item--has-children--collapsed::after {
424
+ display: none;
425
+ }
426
+
427
+ .sidebar__item--has-children--expanded::after {
428
+ transform: rotate(45deg);
429
+ }
430
+
431
+ /* Sidebar Submenu */
432
+ .sidebar__submenu {
433
+ background-color: var(--cs-colors-surface-surface);
434
+ border-left: var(--sidebar-border-width) solid var(--cs-colors-border);
435
+ margin-left: var(--cs-spacing-scale-md);
436
+ overflow: hidden;
437
+ transition: var(--sidebar-transition);
438
+ max-height: 0;
439
+ }
440
+
441
+ /* Dark mode automatically handled by CSS variables */
442
+ .dark .sidebar__submenu {
443
+ background-color: var(--cs-modes-dark-colors-surface-surface);
444
+ border-left-color: var(--cs-modes-dark-colors-border);
445
+ }
446
+
447
+ .sidebar__submenu--expanded {
448
+ max-height: calc(var(--cs-spacing-scale-6xl) * 8.333);
449
+ }
450
+
451
+ .sidebar__submenu--collapsed {
452
+ display: none;
453
+ }
454
+
455
+ /* Sidebar Divider */
456
+ .sidebar__divider {
457
+ height: var(--sidebar-border-width);
458
+ background-color: var(--cs-colors-border);
459
+ margin: var(--cs-spacing-scale-sm) var(--sidebar-padding-x);
460
+ }
461
+
462
+ /* Dark mode automatically handled by CSS variables */
463
+ .dark .sidebar__divider {
464
+ background-color: var(--cs-modes-dark-colors-border);
465
+ }
466
+
467
+ .sidebar__divider--collapsed {
468
+ margin: var(--cs-spacing-scale-xs) var(--cs-spacing-scale-sm);
469
+ }
470
+
471
+ /* Sidebar Footer */
472
+ .sidebar__footer {
473
+ padding: var(--cs-spacing-scale-sm) var(--sidebar-padding-x);
474
+ border-top: var(--sidebar-border-width) solid var(--cs-colors-border);
475
+ background-color: var(--cs-colors-surface-surface);
476
+ font-size: var(--cs-fonts-primary-sizes-xs);
477
+ color: var(--sidebar-color-muted);
478
+ white-space: nowrap;
479
+ overflow: hidden;
480
+ }
481
+
482
+ /* Dark mode automatically handled by CSS variables */
483
+ .dark .sidebar__footer {
484
+ border-top-color: var(--cs-modes-dark-colors-border);
485
+ background-color: var(--cs-modes-dark-colors-surface-surface);
486
+ color: var(--cs-modes-dark-colors-text-muted);
487
+ }
488
+
489
+ .sidebar__footer--collapsed {
490
+ display: none;
491
+ }
492
+
493
+ /* Sidebar Overlay (Mobile) */
494
+ .sidebar__overlay {
495
+ position: fixed;
496
+ top: 0;
497
+ left: 0;
498
+ right: 0;
499
+ bottom: 0;
500
+ background-color: rgba(0, 0, 0, var(--cs-colors-alpha-medium));
501
+ z-index: calc(var(--sidebar-z-index) - 1);
502
+ opacity: 0;
503
+ visibility: hidden;
504
+ transition: var(--sidebar-transition);
505
+ }
506
+
507
+ /* Dark mode automatically handled by CSS variables */
508
+ .dark .sidebar__overlay {
509
+ background-color: rgba(0, 0, 0, var(--cs-colors-alpha-high));
510
+ }
511
+
512
+ .sidebar__overlay--visible {
513
+ opacity: 1;
514
+ visibility: visible;
515
+ }
516
+
517
+ /* Sidebar Responsive Behavior */
518
+ @media (max-width: var(--cs-breakpoints-tablet)) {
519
+ .sidebar {
520
+ transform: translateX(-100%);
521
+ }
522
+
523
+ .sidebar--open {
524
+ transform: translateX(0);
525
+ }
526
+
527
+ .sidebar__overlay--visible {
528
+ display: block;
529
+ }
530
+ }
531
+
532
+ @media (max-width: var(--cs-breakpoints-mobile)) {
533
+ .sidebar {
534
+ width: 100%;
535
+ font-size: var(--sidebar-mobile-font-size, var(--cs-fonts-primary-sizes-xs));
536
+ padding: var(--sidebar-mobile-padding-y, var(--cs-spacing-scale-xs)) var(--sidebar-mobile-padding-x, var(--cs-spacing-scale-sm));
537
+ }
538
+
539
+ .sidebar__header {
540
+ min-height: calc(var(--cs-spacing-scale-2xl) + var(--cs-spacing-scale-lg));
541
+ }
542
+
543
+ .sidebar__logo-text {
544
+ font-size: var(--cs-fonts-primary-sizes-base);
545
+ }
546
+ }
547
+
548
+ /* Container Queries for Adaptive Layouts */
549
+ @container (min-width: var(--cs-breakpoints-tablet)) {
550
+ .sidebar {
551
+ font-size: var(--sidebar-container-font-size, var(--cs-fonts-primary-sizes-sm));
552
+ }
553
+ }
554
+
555
+ /* Sidebar Focus Management */
556
+ .sidebar__item:focus-visible {
557
+ outline: var(--sidebar-focus-ring-width) solid var(--sidebar-focus-ring-color);
558
+ outline-offset: var(--sidebar-focus-ring-offset);
559
+ }
560
+
561
+ /* Sidebar Accessibility */
562
+ .sidebar[role="navigation"] {
563
+ /* Ensure proper navigation role styling */
564
+ }
565
+
566
+ .sidebar__item[role="menuitem"] {
567
+ /* Ensure proper menuitem role styling */
568
+ }
569
+
570
+ .sidebar__item[aria-expanded="true"]::after {
571
+ transform: rotate(45deg);
572
+ }
573
+
574
+ /* High Contrast Mode Support */
575
+ @media (prefers-contrast: high) {
576
+ .sidebar {
577
+ border-width: var(--sidebar-high-contrast-border-width);
578
+ }
579
+
580
+ .sidebar__item {
581
+ border-width: var(--sidebar-high-contrast-border-width);
582
+ }
583
+
584
+ .sidebar__submenu {
585
+ border-left-width: var(--sidebar-high-contrast-border-width);
586
+ }
587
+ }
588
+
589
+ /* Reduced Motion Support */
590
+ @media (prefers-reduced-motion: reduce) {
591
+ .sidebar {
592
+ transition: none;
593
+ }
594
+
595
+ .sidebar__item {
596
+ transition: none;
597
+ }
598
+
599
+ .sidebar__item[tabindex]:hover,
600
+ .sidebar__item[role="button"]:hover,
601
+ .sidebar__item[role="link"]:hover {
602
+ transform: none;
603
+ }
604
+
605
+ .sidebar--collapsed {
606
+ animation: none;
607
+ }
608
+
609
+ .sidebar--mobile {
610
+ animation: none;
611
+ }
612
+
613
+ .sidebar--mobile.sidebar--open {
614
+ animation: none;
615
+ }
616
+ }
617
+
618
+ /* Sidebar Interactive States - Following Gold Standard Pattern */
619
+ .sidebar__item[tabindex]:hover,
620
+ .sidebar__item[role="button"]:hover,
621
+ .sidebar__item[role="link"]:hover {
622
+ transform: var(--sidebar-hover-transform, translateX(4px));
623
+ box-shadow: var(--sidebar-hover-shadow, var(--cs-shadows-md));
624
+ }
625
+
626
+ .sidebar__item[tabindex]:active,
627
+ .sidebar__item[role="button"]:active,
628
+ .sidebar__item[role="link"]:active {
629
+ transform: var(--sidebar-active-transform, translateX(0));
630
+ box-shadow: var(--sidebar-active-shadow, var(--cs-shadows-sm));
631
+ }
632
+
633
+ /* Sidebar Animation */
634
+ .sidebar__item {
635
+ transform: translateZ(0);
636
+ backface-visibility: hidden;
637
+ }
638
+
639
+ .sidebar__item:hover {
640
+ transform: translateX(var(--cs-spacing-scale-xs));
641
+ }
642
+
643
+ .sidebar__item:active {
644
+ transform: translateX(0);
645
+ }
646
+
647
+ /* Sidebar Collapse Animation */
648
+ .sidebar {
649
+ transform-origin: left center;
650
+ }
651
+
652
+ .sidebar--collapsed {
653
+ animation: sidebarCollapse var(--cs-transitions-duration-normal) var(--cs-transitions-easing-ease-out);
654
+ }
655
+
656
+ @keyframes sidebarCollapse {
657
+ from {
658
+ width: var(--sidebar-width);
659
+ }
660
+ to {
661
+ width: var(--sidebar-width-collapsed);
662
+ }
663
+ }
664
+
665
+ /* Sidebar Mobile Slide Animation */
666
+ .sidebar--mobile {
667
+ animation: sidebarSlideOut var(--cs-transitions-duration-normal) var(--cs-transitions-easing-ease-out);
668
+ }
669
+
670
+ .sidebar--mobile.sidebar--open {
671
+ animation: sidebarSlideIn var(--cs-transitions-duration-normal) var(--cs-transitions-easing-ease-out);
672
+ }
673
+
674
+ @keyframes sidebarSlideIn {
675
+ from {
676
+ transform: translateX(-100%);
677
+ }
678
+ to {
679
+ transform: translateX(0);
680
+ }
681
+ }
682
+
683
+ @keyframes sidebarSlideOut {
684
+ from {
685
+ transform: translateX(0);
686
+ }
687
+ to {
688
+ transform: translateX(-100%);
689
+ }
690
+ }
691
+
692
+ /* Storybook Showcase Styles - Following Gold Standard Pattern */
693
+ /* Sidebar Showcase Layout */
694
+ .sidebar-showcase {
695
+ display: flex;
696
+ flex-wrap: wrap;
697
+ gap: var(--sidebar-showcase-gap, var(--cs-spacing-scale-md));
698
+ align-items: center;
699
+ }
700
+
701
+ /* Sidebar Variant Showcase */
702
+ .sidebar-variant-showcase {
703
+ display: flex;
704
+ flex-direction: column;
705
+ gap: var(--sidebar-variant-showcase-gap, var(--cs-spacing-scale-md));
706
+ }
707
+
708
+ .sidebar-variant-section {
709
+ display: flex;
710
+ flex-direction: column;
711
+ gap: var(--sidebar-variant-section-gap, var(--cs-spacing-scale-sm));
712
+ }
713
+
714
+ .sidebar-variant-title {
715
+ font-size: var(--sidebar-variant-title-size, var(--cs-fonts-primary-sizes-lg));
716
+ font-weight: var(--sidebar-variant-title-weight, var(--cs-fonts-primary-weights-semibold));
717
+ margin-bottom: var(--cs-spacing-scale-sm);
718
+ color: var(--cs-colors-text-primary);
719
+ }
720
+
721
+ .sidebar-variant-grid {
722
+ display: flex;
723
+ flex-wrap: wrap;
724
+ gap: var(--sidebar-variant-grid-gap, var(--cs-spacing-scale-sm));
725
+ }
726
+
727
+ .sidebar-variant-description {
728
+ font-size: var(--sidebar-variant-description-size, var(--cs-fonts-primary-sizes-sm));
729
+ color: var(--sidebar-variant-description-color, var(--cs-colors-text-muted));
730
+ }
731
+
732
+ /* Sidebar State Showcase */
733
+ .sidebar-state-showcase {
734
+ display: flex;
735
+ flex-direction: column;
736
+ gap: var(--sidebar-state-showcase-gap, var(--cs-spacing-scale-md));
737
+ }
738
+
739
+ .sidebar-state-grid {
740
+ display: flex;
741
+ flex-wrap: wrap;
742
+ gap: var(--cs-spacing-scale-sm);
743
+ }
744
+
745
+ .sidebar-state-description {
746
+ font-size: var(--sidebar-state-description-size, var(--cs-fonts-primary-sizes-sm));
747
+ color: var(--sidebar-state-description-color, var(--cs-colors-text-muted));
748
+ }
749
+
750
+ /* Sidebar Interactive Showcase */
751
+ .sidebar-interactive-showcase {
752
+ display: flex;
753
+ flex-direction: column;
754
+ gap: var(--cs-spacing-scale-md);
755
+ }
756
+
757
+ .sidebar-interactive-grid {
758
+ display: flex;
759
+ flex-wrap: wrap;
760
+ gap: var(--cs-spacing-scale-sm);
761
+ }
762
+
763
+ .sidebar-interactive-description {
764
+ font-size: var(--cs-fonts-primary-sizes-sm);
765
+ color: var(--cs-colors-text-muted);
766
+ }
767
+
768
+ /* Sidebar Responsive Showcase */
769
+ .sidebar-responsive-showcase {
770
+ display: flex;
771
+ flex-direction: column;
772
+ gap: var(--sidebar-responsive-showcase-gap, var(--cs-spacing-scale-md));
773
+ }
774
+
775
+ .sidebar-responsive-description {
776
+ font-size: var(--sidebar-responsive-description-size, var(--cs-fonts-primary-sizes-sm));
777
+ color: var(--sidebar-responsive-description-color, var(--cs-colors-text-muted));
778
+ margin-bottom: var(--cs-spacing-scale-sm);
779
+ }
780
+
781
+ .sidebar-responsive-grid {
782
+ display: grid;
783
+ grid-template-columns: 1fr;
784
+ gap: var(--sidebar-responsive-grid-gap, var(--cs-spacing-scale-md));
785
+ width: 100%;
786
+ max-width: var(--cs-spacing-scale-6xl);
787
+ }
788
+
789
+ .sidebar-responsive-column {
790
+ display: flex;
791
+ flex-direction: column;
792
+ gap: var(--sidebar-responsive-column-gap, var(--cs-spacing-scale-sm));
793
+ }
794
+
795
+ .sidebar-responsive-title {
796
+ font-size: var(--sidebar-responsive-title-size, var(--cs-fonts-primary-sizes-md));
797
+ font-weight: var(--sidebar-responsive-title-weight, var(--cs-fonts-primary-weights-medium));
798
+ margin-bottom: var(--cs-spacing-scale-sm);
799
+ color: var(--cs-colors-text-primary);
800
+ }
801
+
802
+ /* Responsive Design for Showcase */
803
+ @media (min-width: var(--cs-breakpoints-tablet)) {
804
+ .sidebar-responsive-grid {
805
+ grid-template-columns: 1fr 1fr !important;
806
+ }
807
+ }