mljr-css 0.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 (53) hide show
  1. package/README.md +299 -0
  2. package/dist/mljr.css +12214 -0
  3. package/dist/mljr.min.css +3 -0
  4. package/dist/plugin.cjs +139 -0
  5. package/dist/plugin.d.cts +73 -0
  6. package/dist/plugin.d.ts +73 -0
  7. package/dist/plugin.js +102 -0
  8. package/package.json +60 -0
  9. package/src/base/reset.css +210 -0
  10. package/src/base/typography.css +286 -0
  11. package/src/components/accordion.css +210 -0
  12. package/src/components/alert.css +231 -0
  13. package/src/components/avatar.css +222 -0
  14. package/src/components/badge.css +315 -0
  15. package/src/components/breadcrumb.css +100 -0
  16. package/src/components/button.css +383 -0
  17. package/src/components/card.css +319 -0
  18. package/src/components/carousel.css +179 -0
  19. package/src/components/checkbox.css +303 -0
  20. package/src/components/chip.css +207 -0
  21. package/src/components/divider.css +248 -0
  22. package/src/components/drawer.css +242 -0
  23. package/src/components/dropdown.css +246 -0
  24. package/src/components/empty-state.css +216 -0
  25. package/src/components/file-upload.css +262 -0
  26. package/src/components/footer.css +231 -0
  27. package/src/components/input.css +504 -0
  28. package/src/components/modal.css +179 -0
  29. package/src/components/pagination.css +143 -0
  30. package/src/components/password.css +449 -0
  31. package/src/components/popover.css +175 -0
  32. package/src/components/progress.css +165 -0
  33. package/src/components/radio.css +200 -0
  34. package/src/components/select.css +165 -0
  35. package/src/components/sidebar.css +236 -0
  36. package/src/components/skeleton.css +161 -0
  37. package/src/components/spinner.css +259 -0
  38. package/src/components/stepper.css +257 -0
  39. package/src/components/table.css +184 -0
  40. package/src/components/tabs.css +219 -0
  41. package/src/components/textarea.css +164 -0
  42. package/src/components/toast.css +294 -0
  43. package/src/components/tooltip.css +99 -0
  44. package/src/index.css +54 -0
  45. package/src/layout/container.css +181 -0
  46. package/src/layout/footer.css +319 -0
  47. package/src/layout/header.css +223 -0
  48. package/src/layout/navbar.css +461 -0
  49. package/src/layout/navigation.css +328 -0
  50. package/src/layout/sidebar.css +334 -0
  51. package/src/plugin.ts +130 -0
  52. package/src/themes/variables.css +345 -0
  53. package/src/utilities/utilities.css +598 -0
@@ -0,0 +1,181 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Container & Grid
3
+ ============================================ */
4
+
5
+ /* Container */
6
+ .mljr-container {
7
+ width: 100%;
8
+ margin-left: auto;
9
+ margin-right: auto;
10
+ padding-left: var(--mljr-space-4);
11
+ padding-right: var(--mljr-space-4);
12
+ }
13
+
14
+ @media (min-width: 640px) {
15
+ .mljr-container {
16
+ max-width: 640px;
17
+ padding-left: var(--mljr-space-6);
18
+ padding-right: var(--mljr-space-6);
19
+ }
20
+ }
21
+
22
+ @media (min-width: 768px) {
23
+ .mljr-container {
24
+ max-width: 768px;
25
+ }
26
+ }
27
+
28
+ @media (min-width: 1024px) {
29
+ .mljr-container {
30
+ max-width: 1024px;
31
+ padding-left: var(--mljr-space-8);
32
+ padding-right: var(--mljr-space-8);
33
+ }
34
+ }
35
+
36
+ @media (min-width: 1280px) {
37
+ .mljr-container {
38
+ max-width: 1280px;
39
+ }
40
+ }
41
+
42
+ @media (min-width: 1536px) {
43
+ .mljr-container {
44
+ max-width: 1536px;
45
+ }
46
+ }
47
+
48
+ /* Fluid container */
49
+ .mljr-container-fluid {
50
+ width: 100%;
51
+ margin-left: auto;
52
+ margin-right: auto;
53
+ padding-left: var(--mljr-space-4);
54
+ padding-right: var(--mljr-space-4);
55
+ }
56
+
57
+ @media (min-width: 640px) {
58
+ .mljr-container-fluid {
59
+ padding-left: var(--mljr-space-6);
60
+ padding-right: var(--mljr-space-6);
61
+ }
62
+ }
63
+
64
+ @media (min-width: 1024px) {
65
+ .mljr-container-fluid {
66
+ padding-left: var(--mljr-space-8);
67
+ padding-right: var(--mljr-space-8);
68
+ }
69
+ }
70
+
71
+ /* Narrow container for content */
72
+ .mljr-container-narrow {
73
+ max-width: 768px;
74
+ }
75
+
76
+ /* Wide container */
77
+ .mljr-container-wide {
78
+ max-width: 1920px;
79
+ }
80
+
81
+ /* Grid System */
82
+ .mljr-grid {
83
+ display: grid;
84
+ gap: var(--mljr-space-4);
85
+ }
86
+
87
+ .mljr-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
88
+ .mljr-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
89
+ .mljr-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
90
+ .mljr-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
91
+ .mljr-grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
92
+ .mljr-grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
93
+ .mljr-grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
94
+
95
+ /* Auto-fit grid */
96
+ .mljr-grid-auto-fit {
97
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
98
+ }
99
+
100
+ .mljr-grid-auto-fit-sm {
101
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
102
+ }
103
+
104
+ .mljr-grid-auto-fit-lg {
105
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
106
+ }
107
+
108
+ /* Grid gaps */
109
+ .mljr-gap-0 { gap: 0; }
110
+ .mljr-gap-1 { gap: var(--mljr-space-1); }
111
+ .mljr-gap-2 { gap: var(--mljr-space-2); }
112
+ .mljr-gap-3 { gap: var(--mljr-space-3); }
113
+ .mljr-gap-4 { gap: var(--mljr-space-4); }
114
+ .mljr-gap-5 { gap: var(--mljr-space-5); }
115
+ .mljr-gap-6 { gap: var(--mljr-space-6); }
116
+ .mljr-gap-8 { gap: var(--mljr-space-8); }
117
+ .mljr-gap-10 { gap: var(--mljr-space-10); }
118
+ .mljr-gap-12 { gap: var(--mljr-space-12); }
119
+
120
+ /* Column spans */
121
+ .mljr-col-span-1 { grid-column: span 1 / span 1; }
122
+ .mljr-col-span-2 { grid-column: span 2 / span 2; }
123
+ .mljr-col-span-3 { grid-column: span 3 / span 3; }
124
+ .mljr-col-span-4 { grid-column: span 4 / span 4; }
125
+ .mljr-col-span-5 { grid-column: span 5 / span 5; }
126
+ .mljr-col-span-6 { grid-column: span 6 / span 6; }
127
+ .mljr-col-span-full { grid-column: 1 / -1; }
128
+
129
+ /* Row spans */
130
+ .mljr-row-span-1 { grid-row: span 1 / span 1; }
131
+ .mljr-row-span-2 { grid-row: span 2 / span 2; }
132
+ .mljr-row-span-3 { grid-row: span 3 / span 3; }
133
+ .mljr-row-span-full { grid-row: 1 / -1; }
134
+
135
+ /* Responsive Grid */
136
+ @media (min-width: 640px) {
137
+ .mljr-sm\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
138
+ .mljr-sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
139
+ .mljr-sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
140
+ .mljr-sm\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
141
+ }
142
+
143
+ @media (min-width: 768px) {
144
+ .mljr-md\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
145
+ .mljr-md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
146
+ .mljr-md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
147
+ .mljr-md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
148
+ .mljr-md\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
149
+ }
150
+
151
+ @media (min-width: 1024px) {
152
+ .mljr-lg\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
153
+ .mljr-lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
154
+ .mljr-lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
155
+ .mljr-lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
156
+ .mljr-lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
157
+ .mljr-lg\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
158
+ }
159
+
160
+ /* Flex utilities */
161
+ .mljr-flex { display: flex; }
162
+ .mljr-inline-flex { display: inline-flex; }
163
+
164
+ .mljr-flex-row { flex-direction: row; }
165
+ .mljr-flex-col { flex-direction: column; }
166
+ .mljr-flex-wrap { flex-wrap: wrap; }
167
+
168
+ .mljr-items-start { align-items: flex-start; }
169
+ .mljr-items-center { align-items: center; }
170
+ .mljr-items-end { align-items: flex-end; }
171
+ .mljr-items-stretch { align-items: stretch; }
172
+
173
+ .mljr-justify-start { justify-content: flex-start; }
174
+ .mljr-justify-center { justify-content: center; }
175
+ .mljr-justify-end { justify-content: flex-end; }
176
+ .mljr-justify-between { justify-content: space-between; }
177
+ .mljr-justify-around { justify-content: space-around; }
178
+
179
+ .mljr-flex-1 { flex: 1 1 0%; }
180
+ .mljr-flex-auto { flex: 1 1 auto; }
181
+ .mljr-flex-none { flex: none; }
@@ -0,0 +1,319 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Footer Component
3
+ Claymorphism: Soft elevated footer
4
+ ============================================ */
5
+
6
+ .mljr-footer {
7
+ width: 100%;
8
+ padding: var(--mljr-space-12) var(--mljr-space-8);
9
+ background: var(--mljr-bg);
10
+ margin-top: auto;
11
+ border-top: none;
12
+ }
13
+
14
+ /* Main Footer Container - Claymorphic Card */
15
+ .mljr-footer-container {
16
+ max-width: 1200px;
17
+ margin: 0 auto;
18
+ padding: var(--mljr-space-8);
19
+ background: var(--mljr-bg-secondary);
20
+ border-radius: var(--mljr-radius-2xl);
21
+ box-shadow: var(--mljr-clay-shadow);
22
+ }
23
+
24
+ /* Footer Grid */
25
+ .mljr-footer-grid {
26
+ display: grid;
27
+ grid-template-columns: 2fr repeat(3, 1fr);
28
+ gap: var(--mljr-space-8);
29
+ }
30
+
31
+ /* Brand Section - Claymorphic */
32
+ .mljr-footer-brand {
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: var(--mljr-space-4);
36
+ padding: var(--mljr-space-6);
37
+ background: var(--mljr-bg);
38
+ border-radius: var(--mljr-radius-xl);
39
+ box-shadow: var(--mljr-clay-shadow-sm);
40
+ }
41
+
42
+ .mljr-footer-logo {
43
+ display: flex;
44
+ align-items: center;
45
+ gap: var(--mljr-space-3);
46
+ font-size: var(--mljr-text-2xl);
47
+ font-weight: 800;
48
+ color: var(--mljr-text);
49
+ text-decoration: none;
50
+ }
51
+
52
+ .mljr-footer-tagline {
53
+ font-size: var(--mljr-text-sm);
54
+ color: var(--mljr-text-secondary);
55
+ line-height: 1.6;
56
+ }
57
+
58
+ /* Social Links - Claymorphic Pills */
59
+ .mljr-footer-social {
60
+ display: flex;
61
+ gap: var(--mljr-space-3);
62
+ margin-top: var(--mljr-space-4);
63
+ }
64
+
65
+ .mljr-footer-social-link {
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ width: 3rem;
70
+ height: 3rem;
71
+ color: var(--mljr-text-muted);
72
+ background: var(--mljr-bg-secondary);
73
+ border-radius: var(--mljr-radius-full);
74
+ text-decoration: none;
75
+ transition: all var(--mljr-transition-fast);
76
+ box-shadow: var(--mljr-clay-btn);
77
+ }
78
+
79
+ .mljr-footer-social-link:hover {
80
+ transform: translateY(-3px) scale(1.1);
81
+ box-shadow: var(--mljr-clay-shadow);
82
+ color: var(--mljr-primary-500);
83
+ }
84
+
85
+ .mljr-footer-social-link:active {
86
+ transform: translateY(-1px);
87
+ box-shadow: var(--mljr-clay-btn-pressed);
88
+ }
89
+
90
+ /* Link Sections - Claymorphic Cards */
91
+ .mljr-footer-section {
92
+ display: flex;
93
+ flex-direction: column;
94
+ gap: var(--mljr-space-4);
95
+ padding: var(--mljr-space-5);
96
+ background: var(--mljr-bg);
97
+ border-radius: var(--mljr-radius-lg);
98
+ box-shadow: var(--mljr-clay-shadow-xs);
99
+ }
100
+
101
+ .mljr-footer-section-title {
102
+ font-size: var(--mljr-text-sm);
103
+ font-weight: 700;
104
+ text-transform: uppercase;
105
+ letter-spacing: 0.1em;
106
+ color: var(--mljr-text-muted);
107
+ margin: 0;
108
+ }
109
+
110
+ .mljr-footer-links {
111
+ display: flex;
112
+ flex-direction: column;
113
+ gap: var(--mljr-space-2);
114
+ }
115
+
116
+ .mljr-footer-link {
117
+ display: block;
118
+ padding: var(--mljr-space-2) var(--mljr-space-3);
119
+ color: var(--mljr-text-secondary);
120
+ text-decoration: none;
121
+ font-size: var(--mljr-text-sm);
122
+ font-weight: 500;
123
+ transition: all var(--mljr-transition-fast);
124
+ border-radius: var(--mljr-radius-md);
125
+ background: var(--mljr-bg-secondary);
126
+ box-shadow: var(--mljr-clay-shadow-xs);
127
+ }
128
+
129
+ .mljr-footer-link:hover {
130
+ transform: translateX(4px);
131
+ color: var(--mljr-primary-500);
132
+ box-shadow: var(--mljr-clay-shadow-sm);
133
+ background: var(--mljr-bg);
134
+ }
135
+
136
+ /* Bottom Section - Claymorphic Bar */
137
+ .mljr-footer-bottom {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: space-between;
141
+ margin-top: var(--mljr-space-8);
142
+ padding: var(--mljr-space-5) var(--mljr-space-6);
143
+ background: var(--mljr-bg);
144
+ border-radius: var(--mljr-radius-xl);
145
+ box-shadow: var(--mljr-clay-shadow-sm);
146
+ }
147
+
148
+ .mljr-footer-copyright {
149
+ font-size: var(--mljr-text-sm);
150
+ color: var(--mljr-text-muted);
151
+ margin: 0;
152
+ }
153
+
154
+ .mljr-footer-legal {
155
+ display: flex;
156
+ gap: var(--mljr-space-6);
157
+ }
158
+
159
+ .mljr-footer-legal-link {
160
+ color: var(--mljr-text-muted);
161
+ text-decoration: none;
162
+ font-size: var(--mljr-text-sm);
163
+ font-weight: 500;
164
+ transition: all var(--mljr-transition-fast);
165
+ padding: var(--mljr-space-1) var(--mljr-space-2);
166
+ border-radius: var(--mljr-radius-sm);
167
+ }
168
+
169
+ .mljr-footer-legal-link:hover {
170
+ color: var(--mljr-primary-500);
171
+ background: var(--mljr-bg-secondary);
172
+ box-shadow: var(--mljr-clay-shadow-xs);
173
+ }
174
+
175
+ /* Responsive */
176
+ @media (max-width: 1024px) {
177
+ .mljr-footer {
178
+ padding: var(--mljr-space-8) var(--mljr-space-6);
179
+ }
180
+
181
+ .mljr-footer-grid {
182
+ grid-template-columns: repeat(2, 1fr);
183
+ gap: var(--mljr-space-6);
184
+ }
185
+
186
+ .mljr-footer-brand {
187
+ grid-column: 1 / -1;
188
+ text-align: center;
189
+ align-items: center;
190
+ }
191
+ }
192
+
193
+ @media (max-width: 640px) {
194
+ .mljr-footer {
195
+ padding: var(--mljr-space-6) var(--mljr-space-4);
196
+ }
197
+
198
+ .mljr-footer-container {
199
+ padding: var(--mljr-space-6);
200
+ }
201
+
202
+ .mljr-footer-grid {
203
+ grid-template-columns: 1fr;
204
+ gap: var(--mljr-space-4);
205
+ }
206
+
207
+ .mljr-footer-brand {
208
+ grid-column: auto;
209
+ }
210
+
211
+ .mljr-footer-bottom {
212
+ flex-direction: column;
213
+ gap: var(--mljr-space-4);
214
+ text-align: center;
215
+ }
216
+
217
+ .mljr-footer-legal {
218
+ flex-wrap: wrap;
219
+ justify-content: center;
220
+ }
221
+ }
222
+
223
+ /* Compact Variant */
224
+ .mljr-footer-compact .mljr-footer-container {
225
+ padding: var(--mljr-space-4);
226
+ }
227
+
228
+ .mljr-footer-compact .mljr-footer-bottom {
229
+ margin-top: 0;
230
+ padding: var(--mljr-space-3) var(--mljr-space-4);
231
+ }
232
+
233
+ /* Centered Variant */
234
+ .mljr-footer-centered .mljr-footer-container {
235
+ text-align: center;
236
+ }
237
+
238
+ .mljr-footer-brand-centered {
239
+ display: flex;
240
+ flex-direction: column;
241
+ align-items: center;
242
+ gap: var(--mljr-space-4);
243
+ padding: var(--mljr-space-8);
244
+ background: var(--mljr-bg);
245
+ border-radius: var(--mljr-radius-xl);
246
+ box-shadow: var(--mljr-clay-shadow-sm);
247
+ }
248
+
249
+ .mljr-footer-bottom-centered {
250
+ margin-top: var(--mljr-space-6);
251
+ padding: var(--mljr-space-4);
252
+ background: var(--mljr-bg);
253
+ border-radius: var(--mljr-radius-lg);
254
+ box-shadow: var(--mljr-clay-shadow-sm);
255
+ }
256
+
257
+ .mljr-footer-centered .mljr-footer-logo {
258
+ font-size: var(--mljr-text-3xl);
259
+ }
260
+
261
+ /* Dark Mode - Enhanced Claymorphism */
262
+ .dark .mljr-footer,
263
+ [data-theme="dark"] .mljr-footer {
264
+ background: var(--mljr-bg);
265
+ }
266
+
267
+ .dark .mljr-footer-container,
268
+ [data-theme="dark"] .mljr-footer-container {
269
+ background: var(--mljr-bg-secondary);
270
+ box-shadow: var(--mljr-clay-shadow);
271
+ }
272
+
273
+ .dark .mljr-footer-brand,
274
+ [data-theme="dark"] .mljr-footer-brand {
275
+ background: var(--mljr-bg-tertiary);
276
+ box-shadow: var(--mljr-clay-shadow-sm);
277
+ }
278
+
279
+ .dark .mljr-footer-brand-centered,
280
+ [data-theme="dark"] .mljr-footer-brand-centered {
281
+ background: var(--mljr-bg-tertiary);
282
+ box-shadow: var(--mljr-clay-shadow-sm);
283
+ }
284
+
285
+ .dark .mljr-footer-bottom-centered,
286
+ [data-theme="dark"] .mljr-footer-bottom-centered {
287
+ background: var(--mljr-bg-tertiary);
288
+ box-shadow: var(--mljr-clay-shadow-sm);
289
+ }
290
+
291
+ .dark .mljr-footer-social-link,
292
+ [data-theme="dark"] .mljr-footer-social-link {
293
+ background: var(--mljr-bg-tertiary);
294
+ box-shadow: var(--mljr-clay-btn);
295
+ }
296
+
297
+ .dark .mljr-footer-section,
298
+ [data-theme="dark"] .mljr-footer-section {
299
+ background: var(--mljr-bg-tertiary);
300
+ box-shadow: var(--mljr-clay-shadow-xs);
301
+ }
302
+
303
+ .dark .mljr-footer-link,
304
+ [data-theme="dark"] .mljr-footer-link {
305
+ background: var(--mljr-bg);
306
+ box-shadow: var(--mljr-clay-shadow-xs);
307
+ }
308
+
309
+ .dark .mljr-footer-link:hover,
310
+ [data-theme="dark"] .mljr-footer-link:hover {
311
+ background: var(--mljr-bg-tertiary);
312
+ box-shadow: var(--mljr-clay-shadow-sm);
313
+ }
314
+
315
+ .dark .mljr-footer-bottom,
316
+ [data-theme="dark"] .mljr-footer-bottom {
317
+ background: var(--mljr-bg-tertiary);
318
+ box-shadow: var(--mljr-clay-shadow-sm);
319
+ }
@@ -0,0 +1,223 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Header Component
3
+ ============================================ */
4
+
5
+ .mljr-header {
6
+ position: relative;
7
+ display: flex;
8
+ align-items: center;
9
+ height: 4rem;
10
+ background-color: var(--mljr-bg);
11
+ border-bottom: 1px solid var(--mljr-border);
12
+ }
13
+
14
+ .mljr-header-sticky {
15
+ position: sticky;
16
+ top: 0;
17
+ z-index: var(--mljr-z-sticky);
18
+ }
19
+
20
+ .mljr-header-fixed {
21
+ position: fixed;
22
+ top: 0;
23
+ left: 0;
24
+ right: 0;
25
+ z-index: var(--mljr-z-fixed);
26
+ }
27
+
28
+ .mljr-header-container {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: space-between;
32
+ width: 100%;
33
+ height: 100%;
34
+ padding: 0 var(--mljr-space-4);
35
+ }
36
+
37
+ @media (min-width: 640px) {
38
+ .mljr-header-container {
39
+ padding: 0 var(--mljr-space-6);
40
+ }
41
+ }
42
+
43
+ @media (min-width: 1024px) {
44
+ .mljr-header-container {
45
+ padding: 0 var(--mljr-space-8);
46
+ }
47
+ }
48
+
49
+ /* Logo */
50
+ .mljr-header-logo {
51
+ display: flex;
52
+ align-items: center;
53
+ gap: var(--mljr-space-2);
54
+ font-size: var(--mljr-text-xl);
55
+ font-weight: 700;
56
+ color: var(--mljr-text);
57
+ text-decoration: none;
58
+ }
59
+
60
+ .mljr-header-logo:hover {
61
+ color: var(--mljr-primary-600);
62
+ }
63
+
64
+ .mljr-header-logo img {
65
+ height: 2rem;
66
+ width: auto;
67
+ }
68
+
69
+ /* Navigation */
70
+ .mljr-header-nav {
71
+ display: none;
72
+ align-items: center;
73
+ gap: var(--mljr-space-1);
74
+ }
75
+
76
+ @media (min-width: 768px) {
77
+ .mljr-header-nav {
78
+ display: flex;
79
+ }
80
+ }
81
+
82
+ .mljr-header-nav-link {
83
+ display: flex;
84
+ align-items: center;
85
+ gap: var(--mljr-space-1);
86
+ padding: var(--mljr-space-2) var(--mljr-space-3);
87
+ font-size: var(--mljr-text-sm);
88
+ font-weight: 500;
89
+ color: var(--mljr-text-secondary);
90
+ text-decoration: none;
91
+ border-radius: var(--mljr-radius);
92
+ transition: all var(--mljr-transition-fast);
93
+ }
94
+
95
+ .mljr-header-nav-link:hover {
96
+ color: var(--mljr-text);
97
+ background-color: var(--mljr-bg-secondary);
98
+ }
99
+
100
+ .mljr-header-nav-link.active {
101
+ color: var(--mljr-primary-500);
102
+ background-color: rgb(232 114 43 / 0.1);
103
+ position: relative;
104
+ }
105
+
106
+ .dark .mljr-header-nav-link.active,
107
+ [data-theme="dark"] .mljr-header-nav-link.active {
108
+ box-shadow: inset 0 -2px 0 var(--mljr-primary-500);
109
+ }
110
+
111
+ /* Actions */
112
+ .mljr-header-actions {
113
+ display: flex;
114
+ align-items: center;
115
+ gap: var(--mljr-space-2);
116
+ }
117
+
118
+ /* Mobile menu toggle */
119
+ .mljr-header-menu-toggle {
120
+ display: flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ width: 2.5rem;
124
+ height: 2.5rem;
125
+ padding: 0;
126
+ background: none;
127
+ border: none;
128
+ border-radius: var(--mljr-radius);
129
+ color: var(--mljr-text);
130
+ cursor: pointer;
131
+ transition: background-color var(--mljr-transition-fast);
132
+ }
133
+
134
+ .mljr-header-menu-toggle:hover {
135
+ background-color: var(--mljr-bg-secondary);
136
+ }
137
+
138
+ @media (min-width: 768px) {
139
+ .mljr-header-menu-toggle {
140
+ display: none;
141
+ }
142
+ }
143
+
144
+ /* Mobile menu */
145
+ .mljr-header-mobile-menu {
146
+ display: none;
147
+ position: absolute;
148
+ top: 100%;
149
+ left: 0;
150
+ right: 0;
151
+ background-color: var(--mljr-bg);
152
+ border-bottom: 1px solid var(--mljr-border);
153
+ padding: var(--mljr-space-4);
154
+ box-shadow: var(--mljr-shadow-lg);
155
+ }
156
+
157
+ .mljr-header-mobile-menu.open {
158
+ display: block;
159
+ }
160
+
161
+ @media (min-width: 768px) {
162
+ .mljr-header-mobile-menu {
163
+ display: none !important;
164
+ }
165
+ }
166
+
167
+ .mljr-header-mobile-nav {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: var(--mljr-space-1);
171
+ }
172
+
173
+ .mljr-header-mobile-link {
174
+ display: flex;
175
+ align-items: center;
176
+ gap: var(--mljr-space-2);
177
+ padding: var(--mljr-space-3);
178
+ font-size: var(--mljr-text-base);
179
+ font-weight: 500;
180
+ color: var(--mljr-text);
181
+ text-decoration: none;
182
+ border-radius: var(--mljr-radius);
183
+ transition: background-color var(--mljr-transition-fast);
184
+ }
185
+
186
+ .mljr-header-mobile-link:hover {
187
+ background-color: var(--mljr-bg-secondary);
188
+ }
189
+
190
+ .mljr-header-mobile-link.active {
191
+ color: var(--mljr-primary-500);
192
+ background-color: rgb(232 114 43 / 0.1);
193
+ border-left: 3px solid var(--mljr-primary-500);
194
+ }
195
+
196
+ /* Transparent header variant */
197
+ .mljr-header-transparent {
198
+ background-color: transparent;
199
+ border-bottom: none;
200
+ }
201
+
202
+ .mljr-header-transparent.mljr-header-scrolled {
203
+ background-color: var(--mljr-bg);
204
+ border-bottom: 1px solid var(--mljr-border);
205
+ box-shadow: var(--mljr-shadow);
206
+ }
207
+
208
+ /* Dark header variant */
209
+ .mljr-header-dark {
210
+ background-color: var(--mljr-gray-900);
211
+ border-bottom-color: var(--mljr-gray-800);
212
+ }
213
+
214
+ .mljr-header-dark .mljr-header-logo,
215
+ .mljr-header-dark .mljr-header-nav-link,
216
+ .mljr-header-dark .mljr-header-menu-toggle {
217
+ color: var(--mljr-gray-100);
218
+ }
219
+
220
+ .mljr-header-dark .mljr-header-nav-link:hover {
221
+ color: white;
222
+ background-color: var(--mljr-gray-800);
223
+ }