@actabldesign/bellhop-styles 0.0.3 → 0.0.12

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 (127) hide show
  1. package/README.md +105 -70
  2. package/dist/index.css +1538 -0
  3. package/dist/utilities.css +5730 -0
  4. package/llms.txt +2852 -0
  5. package/package.json +29 -20
  6. package/project.json +29 -0
  7. package/rollup.config.js +44 -0
  8. package/{base → src/base}/normalize.css +4 -0
  9. package/src/bh-tokens/_primitives.scss +296 -0
  10. package/src/bh-tokens/_semantic.scss +158 -0
  11. package/src/bh-tokens/components/_avatar.tokens.scss +64 -0
  12. package/src/bh-tokens/components/_badge-dot.tokens.scss +33 -0
  13. package/src/bh-tokens/components/_badge.tokens.scss +61 -0
  14. package/src/bh-tokens/components/_button-icon.tokens.scss +65 -0
  15. package/src/bh-tokens/components/_button.tokens.scss +185 -0
  16. package/src/bh-tokens/components/_checkbox.tokens.scss +67 -0
  17. package/src/bh-tokens/components/_dropdown.tokens.scss +103 -0
  18. package/src/bh-tokens/components/_featured-icon.tokens.scss +57 -0
  19. package/src/bh-tokens/components/_input-number.tokens.scss +50 -0
  20. package/src/bh-tokens/components/_input.tokens.scss +86 -0
  21. package/src/bh-tokens/components/_label.tokens.scss +37 -0
  22. package/src/bh-tokens/components/_modal.tokens.scss +42 -0
  23. package/src/bh-tokens/components/_pagination.tokens.scss +104 -0
  24. package/src/bh-tokens/components/_password.tokens.scss +63 -0
  25. package/src/bh-tokens/components/_progress-bar.tokens.scss +34 -0
  26. package/src/bh-tokens/components/_progress-spinner.tokens.scss +51 -0
  27. package/src/bh-tokens/components/_radiobutton.tokens.scss +90 -0
  28. package/src/bh-tokens/components/_skeleton.tokens.scss +22 -0
  29. package/src/bh-tokens/components/_textarea.tokens.scss +76 -0
  30. package/src/bh-tokens/components/_toggle.tokens.scss +74 -0
  31. package/src/bh-tokens/components/avatar.scss +288 -0
  32. package/src/bh-tokens/components/badge-dot.scss +177 -0
  33. package/src/bh-tokens/components/badge.scss +497 -0
  34. package/src/bh-tokens/components/button-icon.scss +227 -0
  35. package/src/bh-tokens/components/button.scss +640 -0
  36. package/src/bh-tokens/components/checkbox.scss +254 -0
  37. package/src/bh-tokens/components/dropdown.scss +231 -0
  38. package/src/bh-tokens/components/featured-icon.scss +219 -0
  39. package/src/bh-tokens/components/input-number.scss +147 -0
  40. package/src/bh-tokens/components/input.scss +271 -0
  41. package/src/bh-tokens/components/label.scss +176 -0
  42. package/src/bh-tokens/components/modal.scss +103 -0
  43. package/src/bh-tokens/components/pagination.scss +324 -0
  44. package/src/bh-tokens/components/password.scss +193 -0
  45. package/src/bh-tokens/components/progress-bar.scss +124 -0
  46. package/src/bh-tokens/components/progress-spinner.scss +130 -0
  47. package/src/bh-tokens/components/radiobutton.scss +193 -0
  48. package/src/bh-tokens/components/skeleton.scss +50 -0
  49. package/src/bh-tokens/components/textarea.scss +228 -0
  50. package/src/bh-tokens/components/toggle.scss +320 -0
  51. package/src/index.css +22 -0
  52. package/src/mixins/_responsive.scss +167 -0
  53. package/src/tokens/bellhop-animations.css +392 -0
  54. package/src/tokens/bellhop-global.css +175 -0
  55. package/src/tokens/bellhop-icons.css +77 -0
  56. package/src/tokens/bellhop-layout.css +216 -0
  57. package/src/tokens/bellhop-primary-colors.css +96 -0
  58. package/src/tokens/bellhop-radius.css +14 -0
  59. package/src/tokens/bellhop-secondary-colors.css +154 -0
  60. package/src/tokens/bellhop-shadows.css +55 -0
  61. package/src/tokens/bellhop-spacing.css +66 -0
  62. package/src/tokens/bellhop-styles.css +174 -0
  63. package/src/tokens/bellhop-typography.css +146 -0
  64. package/src/tokens/colors.json +737 -0
  65. package/src/tokens/colors.mdx +59 -0
  66. package/src/tokens/index.css +17 -0
  67. package/src/utilities/_breakpoints.scss +19 -0
  68. package/src/utilities/_flex.scss +228 -0
  69. package/src/utilities/_grid.scss +189 -0
  70. package/src/utilities/_index.scss +32 -0
  71. package/src/utilities/_scrollable.scss +239 -0
  72. package/src/utilities/_sizing.scss +229 -0
  73. package/src/utilities/_spacing.scss +187 -0
  74. package/src/utilities/_truncation.scss +126 -0
  75. package/src/utilities/_visibility.scss +117 -0
  76. package/src/utilities.scss +32 -0
  77. package/components/appbar.css +0 -167
  78. package/components/autocomplete-menu.css +0 -142
  79. package/components/avatar-add.css +0 -112
  80. package/components/avatar.css +0 -253
  81. package/components/badge-dot.css +0 -78
  82. package/components/badge.css +0 -337
  83. package/components/bar-chart-card.css +0 -261
  84. package/components/bar-chart.css +0 -149
  85. package/components/breadcrumbs.css +0 -136
  86. package/components/button.css +0 -266
  87. package/components/chart-tooltip.css +0 -96
  88. package/components/checkbox-label.css +0 -53
  89. package/components/checkbox.css +0 -127
  90. package/components/container-footer.css +0 -22
  91. package/components/container.css +0 -17
  92. package/components/date-picker-content.css +0 -337
  93. package/components/date-picker.css +0 -103
  94. package/components/date-range-picker-content.css +0 -85
  95. package/components/date-range-picker.css +0 -72
  96. package/components/dropdown-menu.css +0 -204
  97. package/components/dropdown.css +0 -126
  98. package/components/empty-state.css +0 -83
  99. package/components/featured-icon.css +0 -194
  100. package/components/illustrations.css +0 -120
  101. package/components/input-autocomplete.css +0 -158
  102. package/components/input-number.css +0 -2
  103. package/components/input-verification.css +0 -137
  104. package/components/input.css +0 -374
  105. package/components/loader-spinner.css +0 -421
  106. package/components/logo-box.css +0 -85
  107. package/components/month-picker-content.css +0 -190
  108. package/components/month-picker.css +0 -83
  109. package/components/nav-item.css +0 -110
  110. package/components/notification.css +0 -262
  111. package/components/page-navigation.css +0 -294
  112. package/components/picker-menu.css +0 -43
  113. package/components/pie-chart-card.css +0 -213
  114. package/components/pie-chart.css +0 -80
  115. package/components/product-switcher.css +0 -127
  116. package/components/property-switcher.css +0 -95
  117. package/components/radio-button-label.css +0 -53
  118. package/components/radio-button.css +0 -134
  119. package/components/sidebar.css +0 -178
  120. package/components/skeleton-loader.css +0 -47
  121. package/components/tag.css +0 -214
  122. package/components/textarea.css +0 -211
  123. package/components/toggle.css +0 -298
  124. package/components/tooltip.css +0 -85
  125. package/components/trend-chart-card.css +0 -189
  126. package/components/trend-chart.css +0 -94
  127. package/index.css +0 -8115
@@ -1,421 +0,0 @@
1
- /* ==========================================================================
2
- LOADER SPINNER COMPONENT
3
- Shared styles for all frameworks
4
- ========================================================================== */
5
-
6
- /* Overlay styles */
7
- .loader-overlay {
8
- position: fixed;
9
- top: 0;
10
- left: 0;
11
- width: 100%;
12
- height: 100%;
13
- background-color: rgba(0, 0, 0, 0.3);
14
- backdrop-filter: blur(4px);
15
- display: flex;
16
- align-items: center;
17
- justify-content: center;
18
- z-index: 9999;
19
- }
20
-
21
- .loader-overlay-content {
22
- display: flex;
23
- flex-direction: column;
24
- align-items: center;
25
- gap: var(--spacing-md);
26
- }
27
-
28
- /* Container styles */
29
- .loader-container {
30
- display: flex;
31
- flex-direction: column;
32
- align-items: center;
33
- gap: var(--spacing-sm);
34
- }
35
-
36
- .loader-spinner {
37
- position: relative;
38
- display: inline-block;
39
- }
40
-
41
- /* Message styles */
42
- .loader-message {
43
- color: var(--color-neutral-700);
44
- font-size: var(--text-sm-size);
45
- line-height: var(--text-sm-line);
46
- font-weight: var(--weight-medium);
47
- text-align: center;
48
- margin-top: var(--spacing-xs);
49
- }
50
-
51
- .loader-overlay .loader-message {
52
- color: var(--color-white);
53
- }
54
-
55
- /* =========================
56
- CIRCULAR VARIANT - World Class Smooth
57
- ========================= */
58
- .spinner-circular {
59
- animation: circular-rotate 2s linear infinite;
60
- will-change: transform;
61
- }
62
-
63
- .circular-svg {
64
- display: block;
65
- transform-origin: 50% 50%;
66
- }
67
-
68
- .circular-path {
69
- stroke-dasharray: 90, 150;
70
- stroke-dashoffset: 0;
71
- animation: circular-dash 1.5s ease-in-out infinite;
72
- transform-origin: 50% 50%;
73
- }
74
-
75
- /* Size variations for circular */
76
- .size-sm .circular-svg {
77
- width: 20px;
78
- height: 20px;
79
- }
80
-
81
- .size-sm .circular-path {
82
- stroke-width: 2;
83
- }
84
-
85
- .size-md .circular-svg {
86
- width: 30px;
87
- height: 30px;
88
- }
89
-
90
- .size-md .circular-path {
91
- stroke-width: 3;
92
- }
93
-
94
- .size-lg .circular-svg {
95
- width: 40px;
96
- height: 40px;
97
- }
98
-
99
- .size-lg .circular-path {
100
- stroke-width: 3;
101
- }
102
-
103
- .size-xl .circular-svg {
104
- width: 60px;
105
- height: 60px;
106
- }
107
-
108
- .size-xl .circular-path {
109
- stroke-width: 4;
110
- }
111
-
112
- /* Color variations for circular */
113
- .color-brand .circular-path {
114
- stroke: var(--color-brand-600);
115
- }
116
-
117
- .color-neutral .circular-path {
118
- stroke: var(--color-neutral-600);
119
- }
120
-
121
- .color-white .circular-path {
122
- stroke: var(--color-white);
123
- }
124
-
125
- @keyframes circular-rotate {
126
- 100% {
127
- transform: rotate(360deg);
128
- }
129
- }
130
-
131
- @keyframes circular-dash {
132
- 0% {
133
- stroke-dasharray: 1, 150;
134
- stroke-dashoffset: 0;
135
- }
136
- 50% {
137
- stroke-dasharray: 90, 150;
138
- stroke-dashoffset: -35;
139
- }
140
- 100% {
141
- stroke-dasharray: 90, 150;
142
- stroke-dashoffset: -124;
143
- }
144
- }
145
-
146
- /* =========================
147
- GRADIENT VARIANT - BellhopOS Sidebar Style
148
- ========================= */
149
- .spinner-gradient {
150
- animation: gradient-rotate 2s linear infinite;
151
- will-change: transform;
152
- }
153
-
154
- .gradient-svg {
155
- display: block;
156
- transform-origin: 50% 50%;
157
- }
158
-
159
- .gradient-path {
160
- stroke-dasharray: 90, 150;
161
- stroke-dashoffset: 0;
162
- animation: gradient-dash 1.5s ease-in-out infinite;
163
- transform-origin: 50% 50%;
164
- }
165
-
166
- /* Size variations for gradient */
167
- .size-sm .gradient-svg {
168
- width: 20px;
169
- height: 20px;
170
- }
171
-
172
- .size-sm .gradient-path {
173
- stroke-width: 3;
174
- }
175
-
176
- .size-md .gradient-svg {
177
- width: 30px;
178
- height: 30px;
179
- }
180
-
181
- .size-md .gradient-path {
182
- stroke-width: 4;
183
- }
184
-
185
- .size-lg .gradient-svg {
186
- width: 40px;
187
- height: 40px;
188
- }
189
-
190
- .size-lg .gradient-path {
191
- stroke-width: 4;
192
- }
193
-
194
- .size-xl .gradient-svg {
195
- width: 60px;
196
- height: 60px;
197
- }
198
-
199
- .size-xl .gradient-path {
200
- stroke-width: 5;
201
- }
202
-
203
- @keyframes gradient-rotate {
204
- 100% {
205
- transform: rotate(360deg);
206
- }
207
- }
208
-
209
- @keyframes gradient-dash {
210
- 0% {
211
- stroke-dasharray: 1, 150;
212
- stroke-dashoffset: 0;
213
- }
214
- 50% {
215
- stroke-dasharray: 90, 150;
216
- stroke-dashoffset: -35;
217
- }
218
- 100% {
219
- stroke-dasharray: 90, 150;
220
- stroke-dashoffset: -124;
221
- }
222
- }
223
-
224
- @keyframes gradient-glow {
225
- 0%,
226
- 100% {
227
- filter: drop-shadow(
228
- 0 0 8px rgba(var(--color-brand-600-rgb, 59, 130, 246), 0.3)
229
- );
230
- }
231
- 50% {
232
- filter: drop-shadow(
233
- 0 0 16px rgba(var(--color-accent-300-rgb, 125, 211, 252), 0.6)
234
- );
235
- }
236
- }
237
-
238
- /* =========================
239
- DOTS VARIANT - Simple Fallback
240
- ========================= */
241
- .spinner-dots {
242
- display: flex;
243
- align-items: center;
244
- gap: 4px;
245
- }
246
-
247
- .dot {
248
- border-radius: 50%;
249
- animation: dots-bounce 1.4s ease-in-out infinite both;
250
- }
251
-
252
- .dot-1 {
253
- animation-delay: -0.32s;
254
- }
255
- .dot-2 {
256
- animation-delay: -0.16s;
257
- }
258
- .dot-3 {
259
- animation-delay: 0;
260
- }
261
-
262
- /* Size variations for dots */
263
- .size-sm .dot {
264
- width: 4px;
265
- height: 4px;
266
- }
267
-
268
- .size-md .dot {
269
- width: 6px;
270
- height: 6px;
271
- }
272
-
273
- .size-lg .dot {
274
- width: 8px;
275
- height: 8px;
276
- }
277
-
278
- .size-xl .dot {
279
- width: 12px;
280
- height: 12px;
281
- }
282
-
283
- /* Color variations for dots */
284
- .color-brand .dot {
285
- background-color: var(--color-brand-600);
286
- }
287
-
288
- .color-neutral .dot {
289
- background-color: var(--color-neutral-600);
290
- }
291
-
292
- .color-white .dot {
293
- background-color: var(--color-white);
294
- }
295
-
296
- @keyframes dots-bounce {
297
- 0%,
298
- 80%,
299
- 100% {
300
- transform: scale(0);
301
- }
302
- 40% {
303
- transform: scale(1);
304
- }
305
- }
306
-
307
- /* =========================
308
- PULSE VARIANT - Simple Fallback
309
- ========================= */
310
- .spinner-pulse {
311
- position: relative;
312
- display: inline-block;
313
- }
314
-
315
- .pulse-ring {
316
- position: absolute;
317
- border-radius: 50%;
318
- opacity: 1;
319
- animation: pulse-scale 2s ease-out infinite;
320
- border-width: 2px;
321
- border-style: solid;
322
- top: 50%;
323
- left: 50%;
324
- transform: translate(-50%, -50%);
325
- }
326
-
327
- .pulse-1 {
328
- animation-delay: 0s;
329
- }
330
- .pulse-2 {
331
- animation-delay: -0.6s;
332
- }
333
- .pulse-3 {
334
- animation-delay: -1.2s;
335
- }
336
-
337
- /* Size variations for pulse */
338
- .size-sm .pulse-ring {
339
- width: 20px;
340
- height: 20px;
341
- border-width: 1px;
342
- }
343
-
344
- .size-md .pulse-ring {
345
- width: 30px;
346
- height: 30px;
347
- border-width: 2px;
348
- }
349
-
350
- .size-lg .pulse-ring {
351
- width: 40px;
352
- height: 40px;
353
- border-width: 2px;
354
- }
355
-
356
- .size-xl .pulse-ring {
357
- width: 60px;
358
- height: 60px;
359
- border-width: 3px;
360
- }
361
-
362
- /* Color variations for pulse */
363
- .color-brand .pulse-ring {
364
- border-color: var(--color-brand-600);
365
- }
366
-
367
- .color-neutral .pulse-ring {
368
- border-color: var(--color-neutral-600);
369
- }
370
-
371
- .color-white .pulse-ring {
372
- border-color: var(--color-white);
373
- }
374
-
375
- @keyframes pulse-scale {
376
- 0% {
377
- transform: translate(-50%, -50%) scale(0);
378
- opacity: 1;
379
- }
380
- 100% {
381
- transform: translate(-50%, -50%) scale(1);
382
- opacity: 0;
383
- }
384
- }
385
-
386
- /* Hover effects - Ultra smooth acceleration */
387
- .loader-container:hover .spinner-circular {
388
- animation-duration: 1.2s;
389
- }
390
-
391
- .loader-container:hover .circular-path {
392
- animation-duration: 0.8s;
393
- }
394
-
395
- .loader-container:hover .spinner-gradient {
396
- animation-duration: 1s;
397
- }
398
-
399
- .loader-container:hover .gradient-path {
400
- animation-duration: 0.6s;
401
- }
402
-
403
- .loader-container:hover .dot {
404
- animation-duration: 0.8s;
405
- }
406
-
407
- .loader-container:hover .pulse-ring {
408
- animation-duration: 1.2s;
409
- }
410
-
411
- /* Performance optimizations */
412
- .spinner-circular,
413
- .spinner-gradient {
414
- backface-visibility: hidden;
415
- perspective: 1000px;
416
- }
417
-
418
- .circular-svg,
419
- .gradient-svg {
420
- transform: translateZ(0);
421
- }
@@ -1,85 +0,0 @@
1
- .logo-box {
2
- display: flex;
3
- flex-direction: column;
4
- align-items: center;
5
- justify-content: flex-start;
6
- position: relative;
7
- width: 40px;
8
- flex-shrink: 0;
9
- isolation: isolate;
10
- }
11
-
12
- .logo-active {
13
- background-color: var(--color-brand-600);
14
- box-sizing: border-box;
15
- display: flex;
16
- gap: var(--spacing-lg);
17
- align-items: center;
18
- justify-content: center;
19
- padding: var(--spacing-sm);
20
- position: relative;
21
- border-radius: var(--radius-md);
22
- flex-shrink: 0;
23
- width: 40px;
24
- height: 40px;
25
- z-index: 2;
26
- transition: background-color 0.3s ease;
27
- cursor: pointer;
28
- }
29
-
30
- /* Hover effect for logo-active */
31
- .logo-box:hover .logo-active,
32
- .logo-box.dropdown-open .logo-active {
33
- background-color: var(--color-brand-700);
34
- }
35
-
36
- .logo {
37
- overflow: hidden;
38
- position: relative;
39
- flex-shrink: 0;
40
- width: 32px;
41
- height: 32px;
42
- background-size: contain;
43
- background-repeat: no-repeat;
44
- background-position: center;
45
- transition: background-image 0.4s cubic-bezier(0.08, 0.52, 0.52, 1);
46
- }
47
-
48
- /* Logo variations - Background images must be configured by the consuming application */
49
- .logo-actabl {
50
- /* background-image should be set by consuming application */
51
- }
52
-
53
- .logo-al {
54
- /* background-image should be set by consuming application */
55
- }
56
-
57
- .logo-he {
58
- /* background-image should be set by consuming application */
59
- }
60
-
61
- .logo-ps {
62
- /* background-image should be set by consuming application */
63
- }
64
-
65
- .logo-tr {
66
- /* background-image should be set by consuming application */
67
- }
68
-
69
- .logo-more-products {
70
- position: absolute;
71
- background-color: var(--color-brand-200);
72
- right: 2px;
73
- bottom: -4px;
74
- border-radius: 5px;
75
- width: 36px;
76
- height: 35px;
77
- z-index: 1;
78
- transition: transform 0.3s ease;
79
- }
80
-
81
- /* Slide-up animation for logo-more-products */
82
- .logo-box:hover .logo-more-products,
83
- .logo-box.dropdown-open .logo-more-products {
84
- transform: translateY(-4px);
85
- }
@@ -1,190 +0,0 @@
1
- /* ==========================================================================
2
- MONTH PICKER CONTENT COMPONENT - REUSABLE CALENDAR CONTENT
3
- ========================================================================== */
4
-
5
- @import '../tokens/bellhop-animations.css';
6
-
7
- /* Content area - can be scrollable or not based on parent needs */
8
- .month-picker-content {
9
- width: 100%;
10
- overflow-x: hidden;
11
- /*padding: var(--spacing-xl);*/
12
- font-family: var(--font-inter);
13
- }
14
-
15
- /* Extend animation duration for smoother effect */
16
- .month-picker-content.animate-slide-up-enter {
17
- animation-duration: var(--animation-duration-slow);
18
- }
19
-
20
- .month-picker-content.scrollable {
21
- max-height: 340px;
22
- overflow-y: auto;
23
- padding: 0 var(--spacing-xl);
24
- position: relative;
25
- }
26
-
27
- /* Custom scrollbar styling */
28
- .month-picker-content.scrollable::-webkit-scrollbar {
29
- width: var(--spacing-xs);
30
- }
31
-
32
- .month-picker-content.scrollable::-webkit-scrollbar-track {
33
- background: var(--color-neutral-50);
34
- border-radius: var(--radius-xs);
35
- }
36
-
37
- .month-picker-content.scrollable::-webkit-scrollbar-thumb {
38
- background: var(--color-neutral-200);
39
- border-radius: var(--radius-xs);
40
- }
41
-
42
- .month-picker-content.scrollable::-webkit-scrollbar-thumb:hover {
43
- background: var(--color-neutral-300);
44
- }
45
-
46
- /* Firefox scrollbar */
47
- .month-picker-content.scrollable {
48
- scrollbar-width: thin;
49
- scrollbar-color: var(--color-neutral-200) transparent;
50
- }
51
-
52
- /* Calendar container */
53
- .calendar {
54
- display: flex;
55
- flex-direction: column;
56
- width: 100%;
57
- padding: var(--spacing-lg);
58
- }
59
-
60
- /* Year Section - Contains year button + months row */
61
- .year-section {
62
- display: flex;
63
- flex-direction: column;
64
- gap: var(--spacing-xs);
65
- width: 100%;
66
- }
67
-
68
- .year-month-container {
69
- display: flex;
70
- flex-direction: row;
71
- width: 100%;
72
- align-items: flex-start;
73
- }
74
-
75
- /* Year Label - positioned on left */
76
- .year-label {
77
- width: auto;
78
- height: auto;
79
- display: flex;
80
- align-items: flex-start;
81
- justify-content: flex-start;
82
- font-family: var(--font-inter);
83
- font-weight: var(--weight-bold);
84
- font-size: var(--text-sm-size);
85
- line-height: var(--text-md-line);
86
- color: var(--color-neutral-700);
87
- flex-shrink: 0;
88
- min-width: 50px;
89
- padding: var(--spacing-sm) 0;
90
- }
91
-
92
- /* Months Grid - 2 rows of 6 months each */
93
- .months-row {
94
- display: flex;
95
- flex-direction: column;
96
- gap: var(--spacing-sm);
97
- flex: 1;
98
- width: 100%;
99
- max-width: 300px;
100
- }
101
- /* Month Button - 40x40px circular */
102
- .month-button {
103
- width: 40px;
104
- height: 40px;
105
- border-radius: var(--radius-full);
106
- border: 2px solid transparent;
107
- background: transparent;
108
- display: flex;
109
- align-items: center;
110
- justify-content: center;
111
- font-family: var(--font-inter);
112
- font-weight: var(--weight-medium);
113
- font-size: var(--text-sm-size);
114
- line-height: var(--leading-sm);
115
- color: var(--color-neutral-500);
116
- cursor: pointer;
117
- transition: all var(--animation-duration-fast) var(--animation-easing-ease);
118
- flex-shrink: 0;
119
- text-align: center;
120
- overflow: hidden;
121
- }
122
-
123
- .month-row {
124
- display: flex;
125
- gap: var(--spacing-sm);
126
- justify-content: flex-start;
127
- }
128
-
129
- .month-button:hover:not(.inactive):not(.selected):not(:disabled):not(.today) {
130
- background: var(--color-neutral-50);
131
- color: var(--color-neutral-800);
132
- }
133
-
134
- /* Selected state - blue background */
135
- .month-button.selected {
136
- background: var(--color-brand-600);
137
- color: var(--color-white);
138
- font-weight: var(--weight-semibold);
139
- }
140
-
141
- /* Today's date state - blue border to match date picker */
142
- .month-button.today:not(.selected) {
143
- border-color: var(--color-brand-600);
144
- }
145
-
146
- .month-button.today:not(.selected):hover {
147
- background: var(--color-brand-100);
148
- color: var(--color-brand-600);
149
- }
150
-
151
- /* Inactive/disabled state */
152
- .month-button.inactive,
153
- .month-button:disabled {
154
- opacity: 0.4;
155
- cursor: not-allowed;
156
- color: var(--color-neutral-400);
157
- }
158
-
159
- .month-button:disabled:hover {
160
- background: transparent;
161
- }
162
-
163
- /* Section Divider - Between year sections */
164
- .section-divider {
165
- width: 100%;
166
- margin: var(--spacing-xl) 0;
167
- }
168
-
169
- .divider-container {
170
- width: 100%;
171
- display: flex;
172
- justify-content: center;
173
- }
174
-
175
- .divider-line {
176
- width: 100%;
177
- height: 1px;
178
- background: var(--color-neutral-200);
179
- }
180
-
181
- /* Focus states for accessibility - completely disable outline */
182
- .month-button:focus {
183
- outline: none;
184
- }
185
-
186
- /* Keyboard navigation state - will be added via JavaScript */
187
- .month-button.keyboard-focused {
188
- outline: var(--border-width-md) solid var(--color-brand-500);
189
- outline-offset: var(--spacing-xs);
190
- }