@rhavenside/baseline-ui 1.0.20 → 1.0.21
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.
- package/dist/baseline.css +155 -12
- package/dist/baseline.css.map +1 -1
- package/dist/baseline.min.css +1 -1
- package/package.json +1 -1
- package/src/components/_sidebar.scss +180 -12
|
@@ -52,8 +52,30 @@
|
|
|
52
52
|
box-shadow: var(--glass-shadow-lg);
|
|
53
53
|
transform: translateX(-100%);
|
|
54
54
|
transition: transform var(--transition-duration-slow) var(--transition-ease-out);
|
|
55
|
-
overflow
|
|
56
|
-
|
|
55
|
+
overflow: hidden; // Let .bl-sidebar-nav handle scrolling
|
|
56
|
+
|
|
57
|
+
// Custom Scrollbar for sidebar container (fallback)
|
|
58
|
+
&::-webkit-scrollbar {
|
|
59
|
+
width: 6px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&::-webkit-scrollbar-track {
|
|
63
|
+
background: transparent;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&::-webkit-scrollbar-thumb {
|
|
67
|
+
background: var(--glass-bg-medium);
|
|
68
|
+
border-radius: 3px;
|
|
69
|
+
border: 1px solid var(--glass-border-light);
|
|
70
|
+
|
|
71
|
+
&:hover {
|
|
72
|
+
background: var(--glass-bg-heavy);
|
|
73
|
+
border-color: var(--glass-border-medium);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
scrollbar-width: thin;
|
|
78
|
+
scrollbar-color: var(--glass-bg-medium) transparent;
|
|
57
79
|
|
|
58
80
|
// Desktop: Always visible, collapsible
|
|
59
81
|
@media (min-width: 768px) {
|
|
@@ -76,11 +98,21 @@
|
|
|
76
98
|
width: 64px;
|
|
77
99
|
|
|
78
100
|
.bl-sidebar-header h3,
|
|
79
|
-
.bl-sidebar-nav .bl-nav-link span:not(.bl-icon)
|
|
101
|
+
.bl-sidebar-nav .bl-nav-link span:not(.bl-icon),
|
|
102
|
+
.bl-nav-group-header {
|
|
80
103
|
opacity: 0;
|
|
81
104
|
width: 0;
|
|
82
105
|
overflow: hidden;
|
|
83
106
|
}
|
|
107
|
+
|
|
108
|
+
.bl-sidebar-nav .bl-nav-link {
|
|
109
|
+
justify-content: center;
|
|
110
|
+
padding: var(--spacing-sm);
|
|
111
|
+
|
|
112
|
+
.bl-icon {
|
|
113
|
+
margin: 0;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
84
116
|
}
|
|
85
117
|
}
|
|
86
118
|
|
|
@@ -162,19 +194,29 @@
|
|
|
162
194
|
display: flex;
|
|
163
195
|
align-items: center;
|
|
164
196
|
justify-content: space-between;
|
|
165
|
-
padding: var(--spacing-md);
|
|
166
|
-
border-bottom: 1px solid var(--glass-border-
|
|
197
|
+
padding: var(--spacing-lg) var(--spacing-md);
|
|
198
|
+
border-bottom: 1px solid var(--glass-border-medium);
|
|
167
199
|
background: var(--glass-bg-light);
|
|
168
200
|
backdrop-filter: blur(var(--glass-blur-sm));
|
|
169
201
|
-webkit-backdrop-filter: blur(var(--glass-blur-sm));
|
|
202
|
+
flex-shrink: 0; // Prevent header from shrinking
|
|
170
203
|
|
|
171
204
|
h3 {
|
|
172
205
|
margin: 0;
|
|
173
|
-
font-size: var(--font-size-
|
|
174
|
-
font-weight: var(--font-weight-
|
|
206
|
+
font-size: var(--font-size-xl);
|
|
207
|
+
font-weight: var(--font-weight-bold);
|
|
175
208
|
color: var(--color-text);
|
|
209
|
+
line-height: var(--line-height-tight);
|
|
176
210
|
transition: var(--transition-base);
|
|
177
211
|
}
|
|
212
|
+
|
|
213
|
+
// Version info styling (if present)
|
|
214
|
+
.bl-sidebar-version {
|
|
215
|
+
font-size: var(--font-size-xs);
|
|
216
|
+
color: var(--color-text-muted);
|
|
217
|
+
font-weight: var(--font-weight-normal);
|
|
218
|
+
margin-top: var(--spacing-xs);
|
|
219
|
+
}
|
|
178
220
|
}
|
|
179
221
|
|
|
180
222
|
// Sidebar Close Button
|
|
@@ -217,10 +259,39 @@
|
|
|
217
259
|
// Sidebar Navigation
|
|
218
260
|
.bl-sidebar-nav {
|
|
219
261
|
flex: 1;
|
|
220
|
-
padding: var(--spacing-
|
|
262
|
+
padding: var(--spacing-md);
|
|
221
263
|
overflow-y: auto;
|
|
222
264
|
overflow-x: hidden;
|
|
223
265
|
|
|
266
|
+
// Better touch targets on mobile
|
|
267
|
+
@media (max-width: 767.98px) {
|
|
268
|
+
padding: var(--spacing-sm);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// Custom Scrollbar (Webkit)
|
|
272
|
+
&::-webkit-scrollbar {
|
|
273
|
+
width: 6px;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
&::-webkit-scrollbar-track {
|
|
277
|
+
background: transparent;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
&::-webkit-scrollbar-thumb {
|
|
281
|
+
background: var(--glass-bg-medium);
|
|
282
|
+
border-radius: 3px;
|
|
283
|
+
border: 1px solid var(--glass-border-light);
|
|
284
|
+
|
|
285
|
+
&:hover {
|
|
286
|
+
background: var(--glass-bg-heavy);
|
|
287
|
+
border-color: var(--glass-border-medium);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Firefox Scrollbar
|
|
292
|
+
scrollbar-width: thin;
|
|
293
|
+
scrollbar-color: var(--glass-bg-medium) transparent;
|
|
294
|
+
|
|
224
295
|
.bl-nav {
|
|
225
296
|
background: transparent;
|
|
226
297
|
border: none;
|
|
@@ -230,30 +301,127 @@
|
|
|
230
301
|
.bl-nav-link {
|
|
231
302
|
display: flex;
|
|
232
303
|
align-items: center;
|
|
233
|
-
gap: var(--spacing-
|
|
304
|
+
gap: var(--spacing-md);
|
|
234
305
|
padding: var(--spacing-sm) var(--spacing-md);
|
|
306
|
+
margin-bottom: var(--spacing-xs);
|
|
235
307
|
border-radius: var(--tech-border-radius-sm);
|
|
236
308
|
transition: var(--transition-base);
|
|
309
|
+
position: relative;
|
|
310
|
+
font-size: var(--font-size-base);
|
|
311
|
+
line-height: var(--line-height-base);
|
|
312
|
+
color: var(--color-text);
|
|
313
|
+
text-decoration: none;
|
|
314
|
+
min-height: 40px; // Better touch target
|
|
315
|
+
|
|
316
|
+
@media (max-width: 767.98px) {
|
|
317
|
+
padding: var(--spacing-md);
|
|
318
|
+
min-height: 44px; // iOS touch target recommendation
|
|
319
|
+
}
|
|
237
320
|
|
|
238
321
|
span:not(.bl-icon) {
|
|
239
322
|
transition: var(--transition-base);
|
|
323
|
+
flex: 1;
|
|
240
324
|
}
|
|
241
325
|
|
|
242
326
|
.bl-icon {
|
|
243
327
|
flex-shrink: 0;
|
|
244
|
-
width:
|
|
245
|
-
height:
|
|
328
|
+
width: 18px;
|
|
329
|
+
height: 18px;
|
|
330
|
+
color: var(--color-text-muted);
|
|
331
|
+
transition: var(--transition-base);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
&:hover {
|
|
335
|
+
background: var(--glass-bg-light);
|
|
336
|
+
color: var(--color-text);
|
|
337
|
+
transform: translateX(2px); // Subtle slide animation
|
|
338
|
+
|
|
339
|
+
.bl-icon {
|
|
340
|
+
color: var(--color-text);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
&:active {
|
|
345
|
+
transform: translateX(1px);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
&.bl-active {
|
|
349
|
+
background: var(--glass-bg-medium);
|
|
350
|
+
color: var(--color-text);
|
|
351
|
+
font-weight: var(--font-weight-medium);
|
|
352
|
+
padding-left: calc(var(--spacing-md) - 3px);
|
|
353
|
+
transform: translateX(0);
|
|
354
|
+
|
|
355
|
+
&::before {
|
|
356
|
+
content: '';
|
|
357
|
+
position: absolute;
|
|
358
|
+
left: 0;
|
|
359
|
+
top: 0;
|
|
360
|
+
bottom: 0;
|
|
361
|
+
width: 3px;
|
|
362
|
+
background: var(--color-accent);
|
|
363
|
+
border-radius: 0 var(--tech-border-radius-sm) var(--tech-border-radius-sm) 0;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.bl-icon {
|
|
367
|
+
color: var(--color-accent);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
&:hover {
|
|
371
|
+
background: var(--glass-bg-heavy);
|
|
372
|
+
transform: translateX(0); // No slide when active
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
&:focus {
|
|
377
|
+
outline: 1px solid var(--color-border-focus);
|
|
378
|
+
outline-offset: -2px;
|
|
246
379
|
}
|
|
247
380
|
}
|
|
248
381
|
}
|
|
249
382
|
|
|
383
|
+
// Navigation Groups (Categories)
|
|
384
|
+
.bl-nav-group {
|
|
385
|
+
margin-bottom: var(--spacing-xl);
|
|
386
|
+
|
|
387
|
+
&:last-child {
|
|
388
|
+
margin-bottom: 0;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
&:first-child {
|
|
392
|
+
margin-top: 0;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// Visual separator between groups (optional)
|
|
396
|
+
+ .bl-nav-group {
|
|
397
|
+
padding-top: var(--spacing-md);
|
|
398
|
+
border-top: 1px solid var(--glass-border-light);
|
|
399
|
+
margin-top: var(--spacing-lg);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
.bl-nav-group-header {
|
|
404
|
+
padding: var(--spacing-sm) var(--spacing-md);
|
|
405
|
+
margin-bottom: var(--spacing-sm);
|
|
406
|
+
margin-top: 0;
|
|
407
|
+
font-size: var(--font-size-xs);
|
|
408
|
+
font-weight: var(--font-weight-semibold);
|
|
409
|
+
color: var(--color-text-muted);
|
|
410
|
+
text-transform: uppercase;
|
|
411
|
+
letter-spacing: var(--letter-spacing-wide);
|
|
412
|
+
line-height: var(--line-height-tight);
|
|
413
|
+
opacity: 0.8; // Subtle appearance
|
|
414
|
+
}
|
|
415
|
+
|
|
250
416
|
// Sidebar Footer (optional)
|
|
251
417
|
.bl-sidebar-footer {
|
|
252
418
|
padding: var(--spacing-md);
|
|
253
|
-
border-top: 1px solid var(--glass-border-
|
|
419
|
+
border-top: 1px solid var(--glass-border-medium);
|
|
254
420
|
background: var(--glass-bg-light);
|
|
255
421
|
backdrop-filter: blur(var(--glass-blur-sm));
|
|
256
422
|
-webkit-backdrop-filter: blur(var(--glass-blur-sm));
|
|
423
|
+
flex-shrink: 0; // Prevent footer from shrinking
|
|
424
|
+
margin-top: auto; // Push footer to bottom
|
|
257
425
|
}
|
|
258
426
|
|
|
259
427
|
// Body Scroll Lock (when sidebar is open on mobile)
|