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,328 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Navigation Component
3
+ ============================================ */
4
+
5
+ /* Navbar */
6
+ .mljr-nav {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: var(--mljr-space-1);
10
+ }
11
+
12
+ .mljr-nav-vertical {
13
+ flex-direction: column;
14
+ align-items: stretch;
15
+ }
16
+
17
+ .mljr-nav-link {
18
+ display: flex;
19
+ align-items: center;
20
+ gap: var(--mljr-space-2);
21
+ padding: var(--mljr-space-2) var(--mljr-space-3);
22
+ font-size: var(--mljr-text-sm);
23
+ font-weight: 500;
24
+ color: var(--mljr-text-secondary);
25
+ text-decoration: none;
26
+ border-radius: var(--mljr-radius);
27
+ transition: all var(--mljr-transition-fast);
28
+ white-space: nowrap;
29
+ }
30
+
31
+ .mljr-nav-link:hover {
32
+ color: var(--mljr-text);
33
+ background-color: var(--mljr-bg-secondary);
34
+ }
35
+
36
+ .mljr-nav-link.active {
37
+ color: var(--mljr-primary-500);
38
+ background-color: rgb(232 114 43 / 0.1);
39
+ position: relative;
40
+ }
41
+
42
+ .dark .mljr-nav-link.active,
43
+ [data-theme="dark"] .mljr-nav-link.active {
44
+ box-shadow: inset 0 -2px 0 var(--mljr-primary-500);
45
+ }
46
+
47
+ .mljr-nav-link:focus-visible {
48
+ outline: 2px solid var(--mljr-ring);
49
+ outline-offset: 2px;
50
+ }
51
+
52
+ /* Nav Divider */
53
+ .mljr-nav-divider {
54
+ width: 1px;
55
+ height: 1.5rem;
56
+ background-color: var(--mljr-border);
57
+ margin: 0 var(--mljr-space-2);
58
+ }
59
+
60
+ .mljr-nav-vertical .mljr-nav-divider {
61
+ width: auto;
62
+ height: 1px;
63
+ margin: var(--mljr-space-2) 0;
64
+ }
65
+
66
+ /* Breadcrumb */
67
+ .mljr-breadcrumb {
68
+ display: flex;
69
+ align-items: center;
70
+ flex-wrap: wrap;
71
+ gap: var(--mljr-space-1);
72
+ }
73
+
74
+ .mljr-breadcrumb-item {
75
+ display: flex;
76
+ align-items: center;
77
+ gap: var(--mljr-space-1);
78
+ }
79
+
80
+ .mljr-breadcrumb-link {
81
+ font-size: var(--mljr-text-sm);
82
+ color: var(--mljr-text-secondary);
83
+ text-decoration: none;
84
+ transition: color var(--mljr-transition-fast);
85
+ }
86
+
87
+ .mljr-breadcrumb-link:hover {
88
+ color: var(--mljr-primary-500);
89
+ }
90
+
91
+ .mljr-breadcrumb-current {
92
+ font-size: var(--mljr-text-sm);
93
+ font-weight: 500;
94
+ color: var(--mljr-text);
95
+ }
96
+
97
+ .mljr-breadcrumb-separator {
98
+ color: var(--mljr-text-muted);
99
+ font-size: var(--mljr-text-sm);
100
+ }
101
+
102
+ /* Pagination */
103
+ .mljr-pagination {
104
+ display: flex;
105
+ align-items: center;
106
+ gap: var(--mljr-space-1);
107
+ }
108
+
109
+ .mljr-pagination-item {
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: center;
113
+ min-width: 2rem;
114
+ height: 2rem;
115
+ padding: 0 var(--mljr-space-2);
116
+ font-size: var(--mljr-text-sm);
117
+ font-weight: 500;
118
+ color: var(--mljr-text-secondary);
119
+ background: none;
120
+ border: 1px solid var(--mljr-border);
121
+ border-radius: var(--mljr-radius);
122
+ cursor: pointer;
123
+ transition: all var(--mljr-transition-fast);
124
+ text-decoration: none;
125
+ }
126
+
127
+ .mljr-pagination-item:hover {
128
+ color: var(--mljr-text);
129
+ background-color: var(--mljr-bg-secondary);
130
+ border-color: var(--mljr-border-strong);
131
+ }
132
+
133
+ .mljr-pagination-item.active {
134
+ color: white;
135
+ background: linear-gradient(135deg, var(--mljr-primary-500) 0%, var(--mljr-primary-700) 100%);
136
+ border-color: transparent;
137
+ }
138
+
139
+ .dark .mljr-pagination-item.active,
140
+ [data-theme="dark"] .mljr-pagination-item.active {
141
+ box-shadow: var(--mljr-clay-primary);
142
+ }
143
+
144
+ .mljr-pagination-item:disabled {
145
+ opacity: 0.5;
146
+ cursor: not-allowed;
147
+ pointer-events: none;
148
+ }
149
+
150
+ .mljr-pagination-ellipsis {
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ min-width: 2rem;
155
+ height: 2rem;
156
+ color: var(--mljr-text-muted);
157
+ }
158
+
159
+ /* Dropdown Menu */
160
+ .mljr-dropdown {
161
+ position: relative;
162
+ display: inline-block;
163
+ }
164
+
165
+ .mljr-dropdown-trigger {
166
+ cursor: pointer;
167
+ }
168
+
169
+ .mljr-dropdown-menu {
170
+ position: absolute;
171
+ top: 100%;
172
+ left: 0;
173
+ z-index: var(--mljr-z-dropdown);
174
+ min-width: 12rem;
175
+ padding: var(--mljr-space-1);
176
+ margin-top: var(--mljr-space-1);
177
+ background-color: var(--mljr-bg);
178
+ border: 1px solid var(--mljr-border);
179
+ border-radius: var(--mljr-radius-lg);
180
+ box-shadow: var(--mljr-shadow-lg);
181
+ opacity: 0;
182
+ visibility: hidden;
183
+ transform: translateY(-0.5rem);
184
+ transition: all var(--mljr-transition-fast);
185
+ }
186
+
187
+ .mljr-dropdown-menu.open,
188
+ .mljr-dropdown:hover .mljr-dropdown-menu,
189
+ .mljr-dropdown:focus-within .mljr-dropdown-menu {
190
+ opacity: 1;
191
+ visibility: visible;
192
+ transform: translateY(0);
193
+ }
194
+
195
+ .mljr-dropdown-menu-right {
196
+ left: auto;
197
+ right: 0;
198
+ }
199
+
200
+ .mljr-dropdown-item {
201
+ display: flex;
202
+ align-items: center;
203
+ gap: var(--mljr-space-2);
204
+ width: 100%;
205
+ padding: var(--mljr-space-2) var(--mljr-space-3);
206
+ font-size: var(--mljr-text-sm);
207
+ color: var(--mljr-text);
208
+ text-decoration: none;
209
+ background: none;
210
+ border: none;
211
+ border-radius: var(--mljr-radius);
212
+ cursor: pointer;
213
+ transition: background-color var(--mljr-transition-fast);
214
+ text-align: left;
215
+ }
216
+
217
+ .mljr-dropdown-item:hover {
218
+ background-color: var(--mljr-bg-secondary);
219
+ }
220
+
221
+ .mljr-dropdown-item-danger {
222
+ color: var(--mljr-error);
223
+ }
224
+
225
+ .mljr-dropdown-item-danger:hover {
226
+ background-color: rgb(239 68 68 / 0.1);
227
+ }
228
+
229
+ .mljr-dropdown-divider {
230
+ height: 1px;
231
+ background-color: var(--mljr-border);
232
+ margin: var(--mljr-space-1) 0;
233
+ }
234
+
235
+ .mljr-dropdown-header {
236
+ padding: var(--mljr-space-2) var(--mljr-space-3);
237
+ font-size: var(--mljr-text-xs);
238
+ font-weight: 600;
239
+ color: var(--mljr-text-muted);
240
+ text-transform: uppercase;
241
+ letter-spacing: 0.05em;
242
+ }
243
+
244
+ /* Steps / Progress Navigation */
245
+ .mljr-steps {
246
+ display: flex;
247
+ align-items: flex-start;
248
+ }
249
+
250
+ .mljr-steps-vertical {
251
+ flex-direction: column;
252
+ }
253
+
254
+ .mljr-step {
255
+ display: flex;
256
+ align-items: center;
257
+ flex: 1;
258
+ }
259
+
260
+ .mljr-steps-vertical .mljr-step {
261
+ flex: none;
262
+ }
263
+
264
+ .mljr-step-indicator {
265
+ display: flex;
266
+ align-items: center;
267
+ justify-content: center;
268
+ width: 2rem;
269
+ height: 2rem;
270
+ font-size: var(--mljr-text-sm);
271
+ font-weight: 600;
272
+ color: var(--mljr-text-muted);
273
+ background-color: var(--mljr-bg-secondary);
274
+ border: 2px solid var(--mljr-border);
275
+ border-radius: var(--mljr-radius-full);
276
+ flex-shrink: 0;
277
+ }
278
+
279
+ .mljr-step.active .mljr-step-indicator {
280
+ color: white;
281
+ background: linear-gradient(135deg, var(--mljr-primary-500) 0%, var(--mljr-primary-700) 100%);
282
+ border-color: transparent;
283
+ }
284
+
285
+ .dark .mljr-step.active .mljr-step-indicator,
286
+ [data-theme="dark"] .mljr-step.active .mljr-step-indicator {
287
+ box-shadow: var(--mljr-clay-primary);
288
+ }
289
+
290
+ .mljr-step.completed .mljr-step-indicator {
291
+ color: white;
292
+ background-color: var(--mljr-success);
293
+ border-color: var(--mljr-success);
294
+ }
295
+
296
+ .mljr-step-content {
297
+ margin-left: var(--mljr-space-3);
298
+ }
299
+
300
+ .mljr-step-title {
301
+ font-size: var(--mljr-text-sm);
302
+ font-weight: 500;
303
+ color: var(--mljr-text);
304
+ }
305
+
306
+ .mljr-step-description {
307
+ font-size: var(--mljr-text-xs);
308
+ color: var(--mljr-text-muted);
309
+ }
310
+
311
+ .mljr-step-connector {
312
+ flex: 1;
313
+ height: 2px;
314
+ background-color: var(--mljr-border);
315
+ margin: 0 var(--mljr-space-2);
316
+ }
317
+
318
+ .mljr-step.completed + .mljr-step .mljr-step-connector,
319
+ .mljr-step.completed .mljr-step-connector {
320
+ background-color: var(--mljr-success);
321
+ }
322
+
323
+ .mljr-steps-vertical .mljr-step-connector {
324
+ width: 2px;
325
+ height: 2rem;
326
+ margin: var(--mljr-space-2) 0;
327
+ margin-left: calc(1rem - 1px);
328
+ }
@@ -0,0 +1,334 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Sidebar Component
3
+ Claymorphism: Soft elevated sidebar
4
+ ============================================ */
5
+
6
+ .mljr-sidebar {
7
+ position: fixed;
8
+ top: 0;
9
+ left: 0;
10
+ width: 320px;
11
+ background: var(--mljr-bg);
12
+ border-right: none;
13
+ border-radius: 0 var(--mljr-radius-2xl) var(--mljr-radius-2xl) 0;
14
+ display: flex;
15
+ flex-direction: column;
16
+ z-index: 100;
17
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
18
+ box-shadow:
19
+ 12px 0 32px rgba(0, 0, 0, 0.1),
20
+ 6px 0 16px rgba(0, 0, 0, 0.06),
21
+ inset -3px 0 6px rgba(255, 255, 255, 0.6),
22
+ inset -1px 0 2px rgba(255, 255, 255, 0.8);
23
+ margin: var(--mljr-space-3);
24
+ margin-left: 0;
25
+ height: calc(100vh - var(--mljr-space-6));
26
+ max-height: calc(100vh - var(--mljr-space-6));
27
+ }
28
+
29
+ /* Collapsed state - fully hidden */
30
+ .mljr-sidebar[data-collapsed="true"] {
31
+ transform: translateX(calc(-100% - var(--mljr-space-3)));
32
+ }
33
+
34
+ /* Header - Enhanced Claymorphic */
35
+ .mljr-sidebar-header {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: space-between;
39
+ padding: var(--mljr-space-4);
40
+ margin: var(--mljr-space-4);
41
+ margin-bottom: var(--mljr-space-3);
42
+ background: linear-gradient(145deg, var(--mljr-bg-secondary) 0%, var(--mljr-bg-tertiary) 100%);
43
+ border-radius: var(--mljr-radius-xl);
44
+ box-shadow:
45
+ var(--mljr-clay-shadow-sm),
46
+ inset 0 1px 2px rgba(255, 255, 255, 0.5);
47
+ flex-shrink: 0;
48
+ border: 1px solid rgba(255, 255, 255, 0.3);
49
+ }
50
+
51
+ .mljr-sidebar-logo {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: var(--mljr-space-2);
55
+ font-size: var(--mljr-text-xl);
56
+ font-weight: 700;
57
+ color: var(--mljr-text);
58
+ text-decoration: none;
59
+ }
60
+
61
+ .mljr-sidebar-close {
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ width: 2.5rem;
66
+ height: 2.5rem;
67
+ padding: 0;
68
+ background: var(--mljr-bg);
69
+ border: none;
70
+ border-radius: var(--mljr-radius-md);
71
+ box-shadow: var(--mljr-clay-btn);
72
+ color: var(--mljr-text-muted);
73
+ cursor: pointer;
74
+ transition: all var(--mljr-transition-fast);
75
+ flex-shrink: 0;
76
+ }
77
+
78
+ .mljr-sidebar-close:hover {
79
+ transform: translateY(-2px);
80
+ box-shadow: var(--mljr-clay-shadow);
81
+ color: var(--mljr-text);
82
+ }
83
+
84
+ .mljr-sidebar-close:active {
85
+ transform: translateY(0);
86
+ box-shadow: var(--mljr-clay-btn-pressed);
87
+ }
88
+
89
+ /* Navigation Container - Enhanced Claymorphic */
90
+ .mljr-sidebar-nav {
91
+ flex: 1;
92
+ overflow-y: auto;
93
+ overflow-x: hidden;
94
+ padding: var(--mljr-space-4);
95
+ margin: 0 var(--mljr-space-4);
96
+ min-height: 0;
97
+ background: linear-gradient(180deg, var(--mljr-bg-secondary) 0%, var(--mljr-bg-tertiary) 100%);
98
+ border-radius: var(--mljr-radius-xl);
99
+ box-shadow:
100
+ inset 3px 3px 8px rgba(0, 0, 0, 0.08),
101
+ inset -2px -2px 6px rgba(255, 255, 255, 0.5),
102
+ 1px 1px 2px rgba(255, 255, 255, 0.3);
103
+ border: 1px solid rgba(255, 255, 255, 0.2);
104
+ /* Firefox scrollbar */
105
+ scrollbar-width: auto;
106
+ scrollbar-color: var(--mljr-primary-500) var(--mljr-bg-tertiary);
107
+ }
108
+
109
+ /* Super Claymorphism Scrollbar - Chunky & Playful */
110
+ .mljr-sidebar-nav::-webkit-scrollbar {
111
+ width: 28px;
112
+ }
113
+
114
+ .mljr-sidebar-nav::-webkit-scrollbar-track {
115
+ background: linear-gradient(180deg, var(--mljr-bg-tertiary) 0%, var(--mljr-bg) 100%);
116
+ border-radius: var(--mljr-radius-full);
117
+ box-shadow:
118
+ inset 5px 5px 10px rgba(0, 0, 0, 0.12),
119
+ inset -4px -4px 10px rgba(255, 255, 255, 0.6),
120
+ inset 1px 1px 2px rgba(0, 0, 0, 0.05);
121
+ margin: 8px;
122
+ border: 4px solid transparent;
123
+ }
124
+
125
+ .mljr-sidebar-nav::-webkit-scrollbar-thumb {
126
+ background: linear-gradient(180deg, var(--mljr-primary-300) 0%, var(--mljr-primary-500) 50%, var(--mljr-primary-600) 100%);
127
+ border-radius: var(--mljr-radius-full);
128
+ box-shadow:
129
+ 5px 5px 12px rgba(249, 115, 22, 0.35),
130
+ -3px -3px 6px rgba(255, 255, 255, 0.7),
131
+ inset 3px 3px 6px rgba(255, 255, 255, 0.4),
132
+ inset -2px -2px 4px rgba(0, 0, 0, 0.1);
133
+ border: 5px solid transparent;
134
+ background-clip: content-box;
135
+ min-height: 100px;
136
+ }
137
+
138
+ .mljr-sidebar-nav::-webkit-scrollbar-thumb:hover {
139
+ background: linear-gradient(180deg, var(--mljr-primary-400) 0%, var(--mljr-primary-500) 50%, var(--mljr-primary-700) 100%);
140
+ box-shadow:
141
+ 7px 7px 16px rgba(249, 115, 22, 0.45),
142
+ -3px -3px 6px rgba(255, 255, 255, 0.7),
143
+ inset 3px 3px 6px rgba(255, 255, 255, 0.5),
144
+ inset -2px -2px 4px rgba(0, 0, 0, 0.15);
145
+ }
146
+
147
+ .mljr-sidebar-nav::-webkit-scrollbar-corner {
148
+ background: transparent;
149
+ }
150
+
151
+ /* Categories - Enhanced Claymorphism */
152
+ .mljr-sidebar-category {
153
+ margin-bottom: var(--mljr-space-4);
154
+ padding: var(--mljr-space-4);
155
+ background: linear-gradient(145deg, var(--mljr-bg) 0%, var(--mljr-bg-secondary) 100%);
156
+ border-radius: var(--mljr-radius-xl);
157
+ box-shadow:
158
+ var(--mljr-clay-shadow-sm),
159
+ inset 0 1px 2px rgba(255, 255, 255, 0.5);
160
+ border: 1px solid rgba(255, 255, 255, 0.3);
161
+ }
162
+
163
+ .mljr-sidebar-category:last-child {
164
+ margin-bottom: 0;
165
+ }
166
+
167
+ .mljr-sidebar-category-title {
168
+ font-size: var(--mljr-text-xs);
169
+ font-weight: 800;
170
+ text-transform: uppercase;
171
+ letter-spacing: 0.1em;
172
+ color: var(--mljr-text-muted);
173
+ margin-bottom: var(--mljr-space-3);
174
+ padding-left: var(--mljr-space-2);
175
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
176
+ }
177
+
178
+ .mljr-sidebar-list {
179
+ list-style: none;
180
+ margin: 0;
181
+ padding: 0;
182
+ }
183
+
184
+ .mljr-sidebar-link {
185
+ display: block;
186
+ padding: var(--mljr-space-3) var(--mljr-space-4);
187
+ margin-bottom: var(--mljr-space-2);
188
+ color: var(--mljr-text-secondary);
189
+ text-decoration: none;
190
+ border-radius: var(--mljr-radius-lg);
191
+ font-size: var(--mljr-text-sm);
192
+ font-weight: 600;
193
+ transition: all var(--mljr-transition-fast);
194
+ background: linear-gradient(145deg, var(--mljr-bg-secondary) 0%, var(--mljr-bg) 100%);
195
+ border: 1px solid rgba(255, 255, 255, 0.3);
196
+ width: 100%;
197
+ text-align: left;
198
+ cursor: pointer;
199
+ box-shadow:
200
+ var(--mljr-clay-shadow-xs),
201
+ inset 0 1px 2px rgba(255, 255, 255, 0.5);
202
+ }
203
+
204
+ .mljr-sidebar-link:hover {
205
+ transform: translateY(-2px);
206
+ box-shadow: var(--mljr-clay-shadow-sm);
207
+ color: var(--mljr-text);
208
+ background: linear-gradient(145deg, var(--mljr-bg) 0%, var(--mljr-bg-secondary) 100%);
209
+ }
210
+
211
+ .mljr-sidebar-link-active {
212
+ background: linear-gradient(145deg, var(--mljr-primary-100) 0%, rgba(249, 115, 22, 0.15) 100%);
213
+ color: var(--mljr-primary-700);
214
+ box-shadow:
215
+ var(--mljr-clay-shadow-xs),
216
+ inset 0 0 0 2px var(--mljr-primary-300),
217
+ inset 0 2px 4px rgba(249, 115, 22, 0.1);
218
+ border-color: var(--mljr-primary-200);
219
+ }
220
+
221
+ /* Mobile Overlay - Claymorphic */
222
+ .mljr-sidebar-overlay {
223
+ position: fixed;
224
+ inset: 0;
225
+ background: rgba(0, 0, 0, 0.4);
226
+ backdrop-filter: blur(8px);
227
+ z-index: 99;
228
+ opacity: 0;
229
+ visibility: hidden;
230
+ transition: opacity 0.3s ease, visibility 0.3s ease;
231
+ }
232
+
233
+ .mljr-sidebar-overlay[data-visible="true"] {
234
+ opacity: 1;
235
+ visibility: visible;
236
+ }
237
+
238
+ /* Open Button - Claymorphic */
239
+ .mljr-sidebar-open-btn {
240
+ position: fixed;
241
+ top: var(--mljr-space-4);
242
+ left: var(--mljr-space-4);
243
+ z-index: 90;
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ width: 3.5rem;
248
+ height: 3.5rem;
249
+ background: var(--mljr-bg);
250
+ border: none;
251
+ border-radius: var(--mljr-radius-xl);
252
+ box-shadow: var(--mljr-clay-shadow);
253
+ color: var(--mljr-text);
254
+ cursor: pointer;
255
+ transition: all var(--mljr-transition-fast);
256
+ }
257
+
258
+ .mljr-sidebar-open-btn:hover {
259
+ transform: translateY(-3px) scale(1.05);
260
+ box-shadow: var(--mljr-clay-shadow-lg);
261
+ }
262
+
263
+ .mljr-sidebar-open-btn:active {
264
+ transform: translateY(-1px);
265
+ box-shadow: var(--mljr-clay-btn-pressed);
266
+ }
267
+
268
+ /* Dark Mode - Enhanced Claymorphism */
269
+ .dark .mljr-sidebar,
270
+ [data-theme="dark"] .mljr-sidebar {
271
+ background: var(--mljr-bg-secondary);
272
+ box-shadow:
273
+ 8px 0 24px rgba(0, 0, 0, 0.3),
274
+ 4px 0 12px rgba(0, 0, 0, 0.2),
275
+ inset -2px 0 4px rgba(255, 255, 255, 0.05);
276
+ }
277
+
278
+ .dark .mljr-sidebar-header,
279
+ [data-theme="dark"] .mljr-sidebar-header {
280
+ background: var(--mljr-bg-tertiary);
281
+ box-shadow: var(--mljr-clay-shadow-sm);
282
+ }
283
+
284
+ .dark .mljr-sidebar-close,
285
+ [data-theme="dark"] .mljr-sidebar-close {
286
+ background: var(--mljr-bg-secondary);
287
+ box-shadow: var(--mljr-clay-btn);
288
+ }
289
+
290
+ .dark .mljr-sidebar-nav,
291
+ [data-theme="dark"] .mljr-sidebar-nav {
292
+ background: var(--mljr-bg-tertiary);
293
+ box-shadow: var(--mljr-clay-inset-sm);
294
+ }
295
+
296
+ .dark .mljr-sidebar-category,
297
+ [data-theme="dark"] .mljr-sidebar-category {
298
+ background: var(--mljr-bg-secondary);
299
+ box-shadow: var(--mljr-clay-shadow-xs);
300
+ }
301
+
302
+ .dark .mljr-sidebar-link,
303
+ [data-theme="dark"] .mljr-sidebar-link {
304
+ background: var(--mljr-bg-tertiary);
305
+ box-shadow: var(--mljr-clay-shadow-xs);
306
+ }
307
+
308
+ .dark .mljr-sidebar-link:hover,
309
+ [data-theme="dark"] .mljr-sidebar-link:hover {
310
+ background: var(--mljr-bg-secondary);
311
+ box-shadow: var(--mljr-clay-shadow-sm);
312
+ }
313
+
314
+ .dark .mljr-sidebar-link-active,
315
+ [data-theme="dark"] .mljr-sidebar-link-active {
316
+ background: rgba(249, 115, 22, 0.15);
317
+ color: var(--mljr-primary-300);
318
+ box-shadow:
319
+ var(--mljr-clay-shadow-xs),
320
+ inset 0 0 0 1.5px rgba(249, 115, 22, 0.3);
321
+ }
322
+
323
+ .dark .mljr-sidebar-open-btn,
324
+ [data-theme="dark"] .mljr-sidebar-open-btn {
325
+ background: var(--mljr-bg-secondary);
326
+ box-shadow: var(--mljr-clay-shadow);
327
+ }
328
+
329
+ .dark .mljr-sidebar-nav::-webkit-scrollbar-track,
330
+ [data-theme="dark"] .mljr-sidebar-nav::-webkit-scrollbar-track {
331
+ background: var(--mljr-bg);
332
+ box-shadow: inset 4px 4px 8px rgba(0, 0, 0, 0.3),
333
+ inset -4px -4px 8px rgba(68, 64, 60, 0.2);
334
+ }