mljr-css 1.0.14 → 1.1.0

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 (54) hide show
  1. package/dist/mljr.css +5573 -2766
  2. package/dist/mljr.min.css +2 -3
  3. package/package.json +1 -1
  4. package/src/components/alert-dialog.css +129 -0
  5. package/src/components/alert.css +41 -22
  6. package/src/components/animated-headline.css +118 -0
  7. package/src/components/audio-visualizer.css +96 -0
  8. package/src/components/autocomplete.css +143 -0
  9. package/src/components/avatar.css +66 -0
  10. package/src/components/badge.css +82 -41
  11. package/src/components/breadcrumb.css +3 -0
  12. package/src/components/button.css +80 -58
  13. package/src/components/calendar.css +169 -0
  14. package/src/components/card.css +139 -92
  15. package/src/components/chart.css +194 -0
  16. package/src/components/checkbox.css +1 -1
  17. package/src/components/chip.css +33 -18
  18. package/src/components/context-menu.css +118 -0
  19. package/src/components/cookie-banner.css +285 -0
  20. package/src/components/diff-viewer.css +199 -0
  21. package/src/components/dock.css +211 -0
  22. package/src/components/drop-zone.css +257 -0
  23. package/src/components/footer.css +51 -5
  24. package/src/components/gauge.css +63 -0
  25. package/src/components/image-compare.css +141 -0
  26. package/src/components/infinite-scroll.css +36 -0
  27. package/src/components/inview.css +118 -0
  28. package/src/components/lazy-image.css +60 -0
  29. package/src/components/legal-page.css +346 -0
  30. package/src/components/map-embed.css +92 -0
  31. package/src/components/marquee.css +112 -0
  32. package/src/components/navbar.css +357 -0
  33. package/src/components/navigation-rail.css +220 -0
  34. package/src/components/notification-center.css +306 -0
  35. package/src/components/number-input.css +134 -0
  36. package/src/components/number-ticker.css +65 -0
  37. package/src/components/pagination.css +59 -0
  38. package/src/components/pdf-viewer.css +163 -0
  39. package/src/components/pin-input.css +153 -0
  40. package/src/components/resizable.css +82 -0
  41. package/src/components/rich-text-editor.css +216 -0
  42. package/src/components/table-of-content.css +107 -0
  43. package/src/components/table.css +116 -0
  44. package/src/components/tabs.css +93 -3
  45. package/src/components/toast.css +30 -0
  46. package/src/components/tooltip.css +8 -0
  47. package/src/components/tree-view.css +270 -0
  48. package/src/components/turnstile.css +113 -0
  49. package/src/components/video-player.css +266 -0
  50. package/src/index.css +35 -1
  51. package/src/layout/footer.css +2 -2
  52. package/src/layout/navbar.css +187 -113
  53. package/src/layout/sidebar.css +27 -0
  54. package/src/themes/variables.css +146 -97
@@ -0,0 +1,169 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Calendar Component
3
+ Claymorphism: Full month calendar view
4
+ ============================================ */
5
+
6
+ .mljr-calendar {
7
+ display: inline-flex;
8
+ flex-direction: column;
9
+ background: var(--mljr-bg);
10
+ border: 1.5px solid var(--mljr-border);
11
+ border-radius: var(--mljr-radius-xl);
12
+ box-shadow: var(--mljr-clay-shadow);
13
+ padding: var(--mljr-space-4);
14
+ font-family: var(--mljr-font-sans);
15
+ font-size: var(--mljr-text-sm);
16
+ user-select: none;
17
+ min-width: 280px;
18
+ }
19
+
20
+ /* Header */
21
+ .mljr-calendar-header {
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: space-between;
25
+ margin-bottom: var(--mljr-space-3);
26
+ }
27
+
28
+ .mljr-calendar-title {
29
+ font-size: var(--mljr-text-base);
30
+ font-weight: 700;
31
+ color: var(--mljr-text);
32
+ }
33
+
34
+ .mljr-calendar-nav-btn {
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ width: 2rem;
39
+ height: 2rem;
40
+ background: var(--mljr-bg-secondary);
41
+ border: 1px solid var(--mljr-border);
42
+ border-radius: var(--mljr-radius-md);
43
+ color: var(--mljr-text);
44
+ font-size: 1rem;
45
+ cursor: pointer;
46
+ transition: all var(--mljr-transition-fast);
47
+ box-shadow: var(--mljr-clay-shadow-sm);
48
+ }
49
+
50
+ .mljr-calendar-nav-btn:hover {
51
+ background: var(--mljr-primary-100);
52
+ color: var(--mljr-primary-700);
53
+ border-color: var(--mljr-primary-200);
54
+ }
55
+
56
+ /* Grid */
57
+ .mljr-calendar-grid {
58
+ display: grid;
59
+ grid-template-columns: repeat(7, 1fr);
60
+ gap: 2px;
61
+ }
62
+
63
+ /* Weekday headers */
64
+ .mljr-calendar-weekday {
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ padding: var(--mljr-space-1) 0;
69
+ font-size: var(--mljr-text-xs);
70
+ font-weight: 600;
71
+ color: var(--mljr-text-muted);
72
+ text-transform: uppercase;
73
+ letter-spacing: 0.04em;
74
+ margin-bottom: var(--mljr-space-1);
75
+ }
76
+
77
+ /* Day cells */
78
+ .mljr-calendar-day {
79
+ display: flex;
80
+ flex-direction: column;
81
+ align-items: center;
82
+ justify-content: center;
83
+ gap: 2px;
84
+ width: 100%;
85
+ aspect-ratio: 1;
86
+ min-height: 2.25rem;
87
+ background: none;
88
+ border: none;
89
+ border-radius: var(--mljr-radius-md);
90
+ color: var(--mljr-text);
91
+ font-family: inherit;
92
+ font-size: var(--mljr-text-sm);
93
+ font-weight: 500;
94
+ cursor: pointer;
95
+ transition: all var(--mljr-transition-fast);
96
+ position: relative;
97
+ }
98
+
99
+ .mljr-calendar-day:hover:not(:disabled) {
100
+ background: var(--mljr-bg-secondary);
101
+ color: var(--mljr-primary-600);
102
+ }
103
+
104
+ .mljr-calendar-day-today {
105
+ color: var(--mljr-primary-600);
106
+ font-weight: 700;
107
+ background: var(--mljr-primary-50);
108
+ }
109
+
110
+ .mljr-calendar-day-selected {
111
+ background: var(--mljr-primary-500) !important;
112
+ color: white !important;
113
+ box-shadow: var(--mljr-clay-btn);
114
+ font-weight: 700;
115
+ }
116
+
117
+ .mljr-calendar-day-disabled {
118
+ opacity: 0.3;
119
+ cursor: not-allowed;
120
+ pointer-events: none;
121
+ }
122
+
123
+ .mljr-calendar-day-empty {
124
+ cursor: default;
125
+ pointer-events: none;
126
+ }
127
+
128
+ /* Event dots */
129
+ .mljr-calendar-day-events {
130
+ display: flex;
131
+ gap: 2px;
132
+ align-items: center;
133
+ justify-content: center;
134
+ }
135
+
136
+ .mljr-calendar-event-dot {
137
+ width: 4px;
138
+ height: 4px;
139
+ border-radius: var(--mljr-radius-full);
140
+ background: var(--mljr-secondary-500);
141
+ flex-shrink: 0;
142
+ }
143
+
144
+ /* Dark mode */
145
+ .dark .mljr-calendar,
146
+ [data-theme="dark"] .mljr-calendar {
147
+ background: var(--mljr-bg);
148
+ border-color: var(--mljr-border);
149
+ box-shadow: var(--mljr-clay-shadow);
150
+ }
151
+
152
+ .dark .mljr-calendar-day-today,
153
+ [data-theme="dark"] .mljr-calendar-day-today {
154
+ background: rgba(249, 115, 22, 0.15);
155
+ color: var(--mljr-primary-400);
156
+ }
157
+
158
+ .dark .mljr-calendar-day:hover:not(:disabled),
159
+ [data-theme="dark"] .mljr-calendar-day:hover:not(:disabled) {
160
+ background: var(--mljr-bg-tertiary);
161
+ color: var(--mljr-primary-400);
162
+ }
163
+
164
+ .dark .mljr-calendar-nav-btn:hover,
165
+ [data-theme="dark"] .mljr-calendar-nav-btn:hover {
166
+ background: rgba(249, 115, 22, 0.15);
167
+ color: var(--mljr-primary-300);
168
+ border-color: rgba(249, 115, 22, 0.3);
169
+ }
@@ -23,7 +23,6 @@
23
23
  /* Card Header */
24
24
  .mljr-card-header {
25
25
  padding: var(--mljr-space-5) var(--mljr-space-6);
26
- border-bottom: 1px solid var(--mljr-border);
27
26
  }
28
27
 
29
28
  .mljr-card-title {
@@ -47,8 +46,6 @@
47
46
  /* Card Footer */
48
47
  .mljr-card-footer {
49
48
  padding: var(--mljr-space-4) var(--mljr-space-6);
50
- border-top: 1px solid var(--mljr-border);
51
- background-color: var(--mljr-frosted-bg-subtle);
52
49
  }
53
50
 
54
51
  /* Card Image */
@@ -61,14 +58,11 @@
61
58
 
62
59
  /* Compact Card */
63
60
  .mljr-card-compact .mljr-card-header {
64
- border-bottom: none;
65
- padding-bottom: 0;
61
+ padding-bottom: var(--mljr-space-3);
66
62
  }
67
63
 
68
64
  .mljr-card-compact .mljr-card-footer {
69
- border-top: none;
70
- background-color: transparent;
71
- padding-top: 0;
65
+ padding-top: var(--mljr-space-3);
72
66
  }
73
67
 
74
68
  /* Interactive Card */
@@ -91,86 +85,111 @@
91
85
  outline-offset: 2px;
92
86
  }
93
87
 
94
- /* Color accent variants - Stronger Claymorphism colored cards */
88
+ /* Color accent variants - Claymorphism colored cards with CSS variables */
95
89
  .mljr-card-primary {
96
- border-left: 4px solid var(--mljr-primary-500);
97
- background: linear-gradient(135deg, var(--mljr-primary-50) 0%, var(--mljr-frosted-bg) 30%);
98
- box-shadow:
99
- 12px 12px 24px rgba(249, 115, 22, 0.2),
100
- -8px -8px 20px rgba(255, 255, 255, 0.95),
101
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
90
+ background: linear-gradient(135deg, var(--mljr-primary-100) 0%, var(--mljr-primary-50) 100%);
91
+ box-shadow: var(--mljr-clay-shadow-lg);
92
+ color: var(--mljr-text);
102
93
  }
103
94
 
104
95
  .mljr-card-primary .mljr-card-title {
105
96
  color: var(--mljr-primary-700);
106
97
  }
107
98
 
99
+ .mljr-card-primary .mljr-card-description {
100
+ color: var(--mljr-primary-600);
101
+ }
102
+
108
103
  .mljr-card-secondary {
109
- border-left: 4px solid var(--mljr-secondary-500);
110
- background: linear-gradient(135deg, var(--mljr-secondary-50) 0%, var(--mljr-frosted-bg) 30%);
111
- box-shadow:
112
- 12px 12px 24px rgba(168, 85, 247, 0.2),
113
- -8px -8px 20px rgba(255, 255, 255, 0.95),
114
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
104
+ background: linear-gradient(135deg, var(--mljr-secondary-100) 0%, var(--mljr-secondary-50) 100%);
105
+ box-shadow: var(--mljr-clay-shadow-lg);
106
+ color: var(--mljr-text);
115
107
  }
116
108
 
117
109
  .mljr-card-secondary .mljr-card-title {
118
110
  color: var(--mljr-secondary-700);
119
111
  }
120
112
 
113
+ .mljr-card-secondary .mljr-card-description {
114
+ color: var(--mljr-secondary-600);
115
+ }
116
+
121
117
  /* Accent color card (teal) */
122
118
  .mljr-card-accent {
123
- border-left: 4px solid var(--mljr-accent-500);
124
- background: linear-gradient(135deg, var(--mljr-accent-50) 0%, var(--mljr-frosted-bg) 30%);
125
- box-shadow:
126
- 12px 12px 24px rgba(20, 184, 166, 0.2),
127
- -8px -8px 20px rgba(255, 255, 255, 0.95),
128
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
119
+ background: linear-gradient(135deg, var(--mljr-accent-100) 0%, var(--mljr-accent-50) 100%);
120
+ box-shadow: var(--mljr-clay-shadow-lg);
121
+ color: var(--mljr-text);
129
122
  }
130
123
 
131
124
  .mljr-card-accent .mljr-card-title {
132
125
  color: var(--mljr-accent-700);
133
126
  }
134
127
 
128
+ .mljr-card-accent .mljr-card-description {
129
+ color: var(--mljr-accent-600);
130
+ }
131
+
135
132
  /* Success card */
136
133
  .mljr-card-success {
137
- border-left: 4px solid var(--mljr-success);
138
- background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, var(--mljr-frosted-bg) 30%);
139
- box-shadow:
140
- 12px 12px 24px rgba(16, 185, 129, 0.15),
141
- -8px -8px 20px rgba(255, 255, 255, 0.95),
142
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
134
+ background: linear-gradient(135deg, var(--mljr-success-100) 0%, var(--mljr-success-50) 100%);
135
+ box-shadow: var(--mljr-clay-shadow-lg);
136
+ color: var(--mljr-text);
137
+ }
138
+
139
+ .mljr-card-success .mljr-card-title {
140
+ color: var(--mljr-success-700);
141
+ }
142
+
143
+ .mljr-card-success .mljr-card-description {
144
+ color: var(--mljr-success-600);
143
145
  }
144
146
 
145
147
  /* Warning card */
146
148
  .mljr-card-warning {
147
- border-left: 4px solid var(--mljr-warning);
148
- background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, var(--mljr-frosted-bg) 30%);
149
- box-shadow:
150
- 12px 12px 24px rgba(245, 158, 11, 0.15),
151
- -8px -8px 20px rgba(255, 255, 255, 0.95),
152
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
149
+ background: linear-gradient(135deg, var(--mljr-warning-100) 0%, var(--mljr-warning-50) 100%);
150
+ box-shadow: var(--mljr-clay-shadow-lg);
151
+ color: var(--mljr-text);
152
+ }
153
+
154
+ .mljr-card-warning .mljr-card-title {
155
+ color: var(--mljr-warning-700);
156
+ }
157
+
158
+ .mljr-card-warning .mljr-card-description {
159
+ color: var(--mljr-warning-600);
153
160
  }
154
161
 
155
162
  /* Error/Danger card */
156
163
  .mljr-card-error,
157
164
  .mljr-card-danger {
158
- border-left: 4px solid var(--mljr-error);
159
- background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, var(--mljr-frosted-bg) 30%);
160
- box-shadow:
161
- 12px 12px 24px rgba(239, 68, 68, 0.15),
162
- -8px -8px 20px rgba(255, 255, 255, 0.95),
163
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
165
+ background: linear-gradient(135deg, var(--mljr-error-100) 0%, var(--mljr-error-50) 100%);
166
+ box-shadow: var(--mljr-clay-shadow-lg);
167
+ color: var(--mljr-text);
168
+ }
169
+
170
+ .mljr-card-error .mljr-card-title,
171
+ .mljr-card-danger .mljr-card-title {
172
+ color: var(--mljr-error-700);
173
+ }
174
+
175
+ .mljr-card-error .mljr-card-description,
176
+ .mljr-card-danger .mljr-card-description {
177
+ color: var(--mljr-error-600);
164
178
  }
165
179
 
166
180
  /* Info card */
167
181
  .mljr-card-info {
168
- border-left: 4px solid var(--mljr-info);
169
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, var(--mljr-frosted-bg) 30%);
170
- box-shadow:
171
- 12px 12px 24px rgba(59, 130, 246, 0.15),
172
- -8px -8px 20px rgba(255, 255, 255, 0.95),
173
- inset 0px 4px 8px rgba(255, 255, 255, 0.6);
182
+ background: linear-gradient(135deg, var(--mljr-info-100) 0%, var(--mljr-info-50) 100%);
183
+ box-shadow: var(--mljr-clay-shadow-lg);
184
+ color: var(--mljr-text);
185
+ }
186
+
187
+ .mljr-card-info .mljr-card-title {
188
+ color: var(--mljr-info-700);
189
+ }
190
+
191
+ .mljr-card-info .mljr-card-description {
192
+ color: var(--mljr-info-600);
174
193
  }
175
194
 
176
195
  /* Card Grid */
@@ -237,83 +256,111 @@
237
256
  /* Dark mode for colored card variants */
238
257
  .dark .mljr-card-primary,
239
258
  [data-theme="dark"] .mljr-card-primary {
240
- background: linear-gradient(135deg, rgba(249, 115, 22, 0.15) 0%, var(--mljr-bg-secondary) 30%);
241
- box-shadow:
242
- 12px 12px 28px rgba(0, 0, 0, 0.4),
243
- -8px -8px 20px rgba(68, 64, 60, 0.15),
244
- 0 0 20px rgba(249, 115, 22, 0.15),
245
- inset 0px 2px 4px rgba(249, 115, 22, 0.1);
259
+ background: linear-gradient(135deg, var(--mljr-primary-900) 0%, var(--mljr-primary-950) 100%);
246
260
  }
247
261
 
248
262
  .dark .mljr-card-primary .mljr-card-title,
249
263
  [data-theme="dark"] .mljr-card-primary .mljr-card-title {
250
- color: var(--mljr-primary-400);
264
+ color: var(--mljr-primary-200);
265
+ }
266
+
267
+ .dark .mljr-card-primary .mljr-card-description,
268
+ [data-theme="dark"] .mljr-card-primary .mljr-card-description {
269
+ color: var(--mljr-primary-300);
251
270
  }
252
271
 
253
272
  .dark .mljr-card-secondary,
254
273
  [data-theme="dark"] .mljr-card-secondary {
255
- background: linear-gradient(135deg, rgba(168, 85, 247, 0.15) 0%, var(--mljr-bg-secondary) 30%);
256
- box-shadow:
257
- 12px 12px 28px rgba(0, 0, 0, 0.4),
258
- -8px -8px 20px rgba(68, 64, 60, 0.15),
259
- 0 0 20px rgba(168, 85, 247, 0.15),
260
- inset 0px 2px 4px rgba(168, 85, 247, 0.1);
274
+ background: linear-gradient(135deg, var(--mljr-secondary-900) 0%, var(--mljr-secondary-950) 100%);
261
275
  }
262
276
 
263
277
  .dark .mljr-card-secondary .mljr-card-title,
264
278
  [data-theme="dark"] .mljr-card-secondary .mljr-card-title {
265
- color: var(--mljr-secondary-400);
279
+ color: var(--mljr-secondary-200);
280
+ }
281
+
282
+ .dark .mljr-card-secondary .mljr-card-description,
283
+ [data-theme="dark"] .mljr-card-secondary .mljr-card-description {
284
+ color: var(--mljr-secondary-300);
266
285
  }
267
286
 
268
287
  .dark .mljr-card-accent,
269
288
  [data-theme="dark"] .mljr-card-accent {
270
- background: linear-gradient(135deg, rgba(20, 184, 166, 0.15) 0%, var(--mljr-bg-secondary) 30%);
271
- box-shadow:
272
- 12px 12px 28px rgba(0, 0, 0, 0.4),
273
- -8px -8px 20px rgba(68, 64, 60, 0.15),
274
- 0 0 20px rgba(20, 184, 166, 0.15),
275
- inset 0px 2px 4px rgba(20, 184, 166, 0.1);
289
+ background: linear-gradient(135deg, var(--mljr-accent-900) 0%, var(--mljr-accent-950) 100%);
276
290
  }
277
291
 
278
292
  .dark .mljr-card-accent .mljr-card-title,
279
293
  [data-theme="dark"] .mljr-card-accent .mljr-card-title {
280
- color: var(--mljr-accent-400);
294
+ color: var(--mljr-accent-200);
295
+ }
296
+
297
+ .dark .mljr-card-accent .mljr-card-description,
298
+ [data-theme="dark"] .mljr-card-accent .mljr-card-description {
299
+ color: var(--mljr-accent-300);
281
300
  }
282
301
 
283
302
  .dark .mljr-card-success,
284
303
  [data-theme="dark"] .mljr-card-success {
285
- background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, var(--mljr-bg-secondary) 30%);
286
- box-shadow:
287
- 12px 12px 28px rgba(0, 0, 0, 0.4),
288
- -8px -8px 20px rgba(68, 64, 60, 0.15),
289
- 0 0 15px rgba(16, 185, 129, 0.12);
304
+ background: linear-gradient(135deg, var(--mljr-success-900) 0%, var(--mljr-success-950) 100%);
305
+ }
306
+
307
+ .dark .mljr-card-success .mljr-card-title,
308
+ [data-theme="dark"] .mljr-card-success .mljr-card-title {
309
+ color: var(--mljr-success-200);
310
+ }
311
+
312
+ .dark .mljr-card-success .mljr-card-description,
313
+ [data-theme="dark"] .mljr-card-success .mljr-card-description {
314
+ color: var(--mljr-success-300);
290
315
  }
291
316
 
292
317
  .dark .mljr-card-warning,
293
318
  [data-theme="dark"] .mljr-card-warning {
294
- background: linear-gradient(135deg, rgba(245, 158, 11, 0.12) 0%, var(--mljr-bg-secondary) 30%);
295
- box-shadow:
296
- 12px 12px 28px rgba(0, 0, 0, 0.4),
297
- -8px -8px 20px rgba(68, 64, 60, 0.15),
298
- 0 0 15px rgba(245, 158, 11, 0.12);
319
+ background: linear-gradient(135deg, var(--mljr-warning-900) 0%, var(--mljr-warning-950) 100%);
320
+ }
321
+
322
+ .dark .mljr-card-warning .mljr-card-title,
323
+ [data-theme="dark"] .mljr-card-warning .mljr-card-title {
324
+ color: var(--mljr-warning-200);
325
+ }
326
+
327
+ .dark .mljr-card-warning .mljr-card-description,
328
+ [data-theme="dark"] .mljr-card-warning .mljr-card-description {
329
+ color: var(--mljr-warning-300);
299
330
  }
300
331
 
301
332
  .dark .mljr-card-error,
302
333
  .dark .mljr-card-danger,
303
334
  [data-theme="dark"] .mljr-card-error,
304
335
  [data-theme="dark"] .mljr-card-danger {
305
- background: linear-gradient(135deg, rgba(239, 68, 68, 0.12) 0%, var(--mljr-bg-secondary) 30%);
306
- box-shadow:
307
- 12px 12px 28px rgba(0, 0, 0, 0.4),
308
- -8px -8px 20px rgba(68, 64, 60, 0.15),
309
- 0 0 15px rgba(239, 68, 68, 0.12);
336
+ background: linear-gradient(135deg, var(--mljr-error-900) 0%, var(--mljr-error-950) 100%);
337
+ }
338
+
339
+ .dark .mljr-card-error .mljr-card-title,
340
+ .dark .mljr-card-danger .mljr-card-title,
341
+ [data-theme="dark"] .mljr-card-error .mljr-card-title,
342
+ [data-theme="dark"] .mljr-card-danger .mljr-card-title {
343
+ color: var(--mljr-error-200);
344
+ }
345
+
346
+ .dark .mljr-card-error .mljr-card-description,
347
+ .dark .mljr-card-danger .mljr-card-description,
348
+ [data-theme="dark"] .mljr-card-error .mljr-card-description,
349
+ [data-theme="dark"] .mljr-card-danger .mljr-card-description {
350
+ color: var(--mljr-error-300);
310
351
  }
311
352
 
312
353
  .dark .mljr-card-info,
313
354
  [data-theme="dark"] .mljr-card-info {
314
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, var(--mljr-bg-secondary) 30%);
315
- box-shadow:
316
- 12px 12px 28px rgba(0, 0, 0, 0.4),
317
- -8px -8px 20px rgba(68, 64, 60, 0.15),
318
- 0 0 15px rgba(59, 130, 246, 0.12);
355
+ background: linear-gradient(135deg, var(--mljr-info-900) 0%, var(--mljr-info-950) 100%);
356
+ }
357
+
358
+ .dark .mljr-card-info .mljr-card-title,
359
+ [data-theme="dark"] .mljr-card-info .mljr-card-title {
360
+ color: var(--mljr-info-200);
361
+ }
362
+
363
+ .dark .mljr-card-info .mljr-card-description,
364
+ [data-theme="dark"] .mljr-card-info .mljr-card-description {
365
+ color: var(--mljr-info-300);
319
366
  }
@@ -0,0 +1,194 @@
1
+ /* =====================================================
2
+ Chart - SVG-based data visualization components
3
+ ===================================================== */
4
+
5
+ .mljr-chart {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 0.75rem;
9
+ font-size: var(--mljr-text-sm);
10
+ }
11
+
12
+ .mljr-chart-title {
13
+ font-size: var(--mljr-text-base);
14
+ font-weight: 600;
15
+ color: var(--mljr-text);
16
+ }
17
+
18
+ .mljr-chart-subtitle {
19
+ font-size: var(--mljr-text-xs);
20
+ color: var(--mljr-text-muted);
21
+ }
22
+
23
+ /* SVG Container */
24
+ .mljr-chart-svg {
25
+ width: 100%;
26
+ overflow: visible;
27
+ }
28
+
29
+ /* Grid lines */
30
+ .mljr-chart-grid-line {
31
+ stroke: var(--mljr-border);
32
+ stroke-width: 1;
33
+ stroke-dasharray: 4 4;
34
+ }
35
+
36
+ /* Axis labels */
37
+ .mljr-chart-axis-label {
38
+ fill: var(--mljr-text-muted);
39
+ font-size: 11px;
40
+ font-family: var(--mljr-font-mono);
41
+ }
42
+
43
+ /* Bar chart */
44
+ .mljr-chart-bar {
45
+ fill: var(--mljr-primary-500);
46
+ border-radius: 4px;
47
+ transition: fill var(--mljr-transition-fast);
48
+ cursor: pointer;
49
+ }
50
+
51
+ .mljr-chart-bar:hover {
52
+ fill: var(--mljr-primary-600);
53
+ }
54
+
55
+ .mljr-chart-bar-secondary {
56
+ fill: var(--mljr-secondary-500);
57
+ }
58
+
59
+ .mljr-chart-bar-secondary:hover {
60
+ fill: var(--mljr-secondary-600);
61
+ }
62
+
63
+ .mljr-chart-bar-accent {
64
+ fill: var(--mljr-accent-500);
65
+ }
66
+
67
+ /* Line chart */
68
+ .mljr-chart-line {
69
+ fill: none;
70
+ stroke: var(--mljr-primary-500);
71
+ stroke-width: 2.5;
72
+ stroke-linecap: round;
73
+ stroke-linejoin: round;
74
+ }
75
+
76
+ .mljr-chart-line-secondary {
77
+ stroke: var(--mljr-secondary-500);
78
+ }
79
+
80
+ .mljr-chart-area {
81
+ fill: var(--mljr-primary-500);
82
+ opacity: 0.15;
83
+ }
84
+
85
+ .mljr-chart-area-secondary {
86
+ fill: var(--mljr-secondary-500);
87
+ }
88
+
89
+ .mljr-chart-point {
90
+ fill: white;
91
+ stroke: var(--mljr-primary-500);
92
+ stroke-width: 2;
93
+ cursor: pointer;
94
+ transition: r var(--mljr-transition-fast);
95
+ }
96
+
97
+ .mljr-chart-point:hover {
98
+ r: 6;
99
+ }
100
+
101
+ /* Donut/Pie chart */
102
+ .mljr-chart-donut-segment {
103
+ transition: opacity var(--mljr-transition-fast);
104
+ cursor: pointer;
105
+ }
106
+
107
+ .mljr-chart-donut-segment:hover {
108
+ opacity: 0.85;
109
+ }
110
+
111
+ .mljr-chart-donut-center {
112
+ fill: none;
113
+ }
114
+
115
+ .mljr-chart-donut-label {
116
+ fill: var(--mljr-text);
117
+ font-weight: 700;
118
+ font-size: 1.25rem;
119
+ text-anchor: middle;
120
+ dominant-baseline: middle;
121
+ }
122
+
123
+ .mljr-chart-donut-sublabel {
124
+ fill: var(--mljr-text-muted);
125
+ font-size: 0.75rem;
126
+ text-anchor: middle;
127
+ dominant-baseline: middle;
128
+ }
129
+
130
+ /* Legend */
131
+ .mljr-chart-legend {
132
+ display: flex;
133
+ flex-wrap: wrap;
134
+ gap: 0.75rem 1.25rem;
135
+ margin-top: 0.25rem;
136
+ }
137
+
138
+ .mljr-chart-legend-item {
139
+ display: flex;
140
+ align-items: center;
141
+ gap: 0.375rem;
142
+ font-size: var(--mljr-text-xs);
143
+ color: var(--mljr-text-muted);
144
+ cursor: pointer;
145
+ }
146
+
147
+ .mljr-chart-legend-dot {
148
+ width: 10px;
149
+ height: 10px;
150
+ border-radius: var(--mljr-radius-full);
151
+ flex-shrink: 0;
152
+ }
153
+
154
+ /* Tooltip */
155
+ .mljr-chart-tooltip {
156
+ position: absolute;
157
+ background: var(--mljr-bg);
158
+ border: 1px solid var(--mljr-border);
159
+ border-radius: var(--mljr-radius-md);
160
+ padding: 0.5rem 0.75rem;
161
+ font-size: var(--mljr-text-xs);
162
+ box-shadow: var(--mljr-clay-shadow-sm);
163
+ pointer-events: none;
164
+ z-index: 50;
165
+ white-space: nowrap;
166
+ color: var(--mljr-text);
167
+ }
168
+
169
+ .mljr-chart-tooltip-label {
170
+ font-weight: 600;
171
+ margin-bottom: 0.125rem;
172
+ }
173
+
174
+ .mljr-chart-tooltip-value {
175
+ color: var(--mljr-primary-600);
176
+ font-weight: 600;
177
+ }
178
+
179
+ /* Container for positioning tooltip */
180
+ .mljr-chart-container {
181
+ position: relative;
182
+ }
183
+
184
+ /* Dark mode */
185
+ .dark .mljr-chart-tooltip,
186
+ [data-theme="dark"] .mljr-chart-tooltip {
187
+ background: var(--mljr-bg-secondary);
188
+ border-color: var(--mljr-border);
189
+ }
190
+
191
+ .dark .mljr-chart-tooltip-value,
192
+ [data-theme="dark"] .mljr-chart-tooltip-value {
193
+ color: var(--mljr-primary-300);
194
+ }