@@ -383,7 +383,7 @@ img {
383
383
384
384
.sidebar {
385
385
font-size : 0.875rem ;
386
- flex : 0 0 200px ;
386
+ flex : 0 0 var ( --desktop-sidebar-width , 200px ) ;
387
387
overflow-y : scroll;
388
388
overscroll-behavior : contain;
389
389
position : sticky;
@@ -401,6 +401,87 @@ img {
401
401
z-index : 1 ;
402
402
}
403
403
404
+ .hide-sidebar .sidebar ,
405
+ .hide-sidebar .sidebar-resizer {
406
+ display : none;
407
+ }
408
+
409
+ .sidebar-resizer {
410
+ touch-action : none;
411
+ width : 9px ;
412
+ cursor : col-resize;
413
+ z-index : 10 ;
414
+ position : absolute;
415
+ height : 100% ;
416
+ /* make sure there's a 1px gap between the scrollbar and resize handle */
417
+ left : calc (var (--desktop-sidebar-width , 200px ) + 1px );
418
+ }
419
+
420
+ .rustdoc .src .sidebar-resizer {
421
+ /* when closed, place resizer glow on top of the normal src sidebar border (no need to worry
422
+ about sidebar) */
423
+ left : 49px ;
424
+ }
425
+
426
+ .src-sidebar-expanded .rustdoc .src .sidebar-resizer {
427
+ /* for src sidebar, gap is already provided by 1px border on sidebar itself, so place resizer
428
+ to right of it */
429
+ left : var (--src-sidebar-width , 300px );
430
+ }
431
+
432
+ .sidebar-resizing {
433
+ -moz-user-select : none;
434
+ -webkit-user-select : none;
435
+ -ms-user-select : none;
436
+ user-select : none;
437
+ }
438
+
439
+ .sidebar-resizing * {
440
+ cursor : col-resize !important ;
441
+ }
442
+
443
+ .sidebar-resizer : hover ,
444
+ .sidebar-resizer : active ,
445
+ .sidebar-resizer : focus ,
446
+ .sidebar-resizer .active {
447
+ width : 10px ;
448
+ margin : 0 ;
449
+ /* when active or hovered, place resizer glow on top of the sidebar (right next to, or even
450
+ on top of, the scrollbar) */
451
+ left : var (--desktop-sidebar-width , 200px );
452
+ border-left : solid 1px var (--sidebar-resizer-hover );
453
+ }
454
+
455
+ .src-sidebar-expanded .rustdoc .src .sidebar-resizer : hover ,
456
+ .src-sidebar-expanded .rustdoc .src .sidebar-resizer : active ,
457
+ .src-sidebar-expanded .rustdoc .src .sidebar-resizer : focus ,
458
+ .src-sidebar-expanded .rustdoc .src .sidebar-resizer .active {
459
+ /* when active or hovered, place resizer glow on top of the normal src sidebar border */
460
+ left : calc (var (--src-sidebar-width , 300px ) - 1px );
461
+ }
462
+
463
+ @media (pointer : coarse) {
464
+ .sidebar-resizer {
465
+ /* too easy to hit the resizer while trying to hit the [-] toggle */
466
+ display : none !important ;
467
+ }
468
+ }
469
+
470
+ .sidebar-resizer .active {
471
+ /* make the resize tool bigger when actually resizing, to avoid :hover styles on other stuff
472
+ while resizing */
473
+ padding : 0 140px ;
474
+ width : 2px ;
475
+ margin-left : -140px ;
476
+ border-left : none;
477
+ }
478
+ .sidebar-resizer .active : before {
479
+ border-left : solid 2px var (--sidebar-resizer-active );
480
+ display : block;
481
+ height : 100% ;
482
+ content : "" ;
483
+ }
484
+
404
485
.sidebar , .mobile-topbar , .sidebar-menu-toggle ,
405
486
# src-sidebar-toggle , # src-sidebar {
406
487
background-color : var (--sidebar-background-color );
@@ -416,7 +497,7 @@ img {
416
497
417
498
.src-sidebar-expanded .src .sidebar {
418
499
overflow-y : auto;
419
- flex-basis : 300px ;
500
+ flex-basis : var ( --src-sidebar-width , 300px ) ;
420
501
}
421
502
422
503
.src-sidebar-expanded .src .sidebar > * : not (# src-sidebar-toggle ) {
@@ -477,6 +558,7 @@ ul.block, .block li {
477
558
display : block;
478
559
padding : 0.25rem ; /* 4px */
479
560
margin-left : -0.25rem ;
561
+ margin-right : 0.25rem ;
480
562
}
481
563
482
564
.sidebar h2 {
@@ -778,7 +860,7 @@ h2.small-section-header > .anchor {
778
860
text-decoration : underline;
779
861
}
780
862
781
- .crate .block a .current { font-weight : 500 ; }
863
+ .crate .block li .current a { font-weight : 500 ; }
782
864
783
865
/* In most contexts we use `overflow-wrap: anywhere` to ensure that we can wrap
784
866
as much as needed on mobile (see
@@ -1477,7 +1559,20 @@ a.tooltip:hover::after {
1477
1559
margin-left : 4px ;
1478
1560
display : flex;
1479
1561
}
1480
- # settings-menu > a , # help-button > a {
1562
+ # sidebar-button {
1563
+ display : none;
1564
+ }
1565
+ .hide-sidebar # sidebar-button {
1566
+ display : flex;
1567
+ margin-right : 4px ;
1568
+ position : fixed;
1569
+ left : 6px ;
1570
+ height : 34px ;
1571
+ width : 34px ;
1572
+ background-color : var (--main-background-color );
1573
+ z-index : 1 ;
1574
+ }
1575
+ # settings-menu > a , # help-button > a , # sidebar-button > a {
1481
1576
display : flex;
1482
1577
align-items : center;
1483
1578
justify-content : center;
@@ -1492,7 +1587,8 @@ a.tooltip:hover::after {
1492
1587
}
1493
1588
1494
1589
# settings-menu > a : hover , # settings-menu > a : focus ,
1495
- # help-button > a : hover , # help-button > a : focus {
1590
+ # help-button > a : hover , # help-button > a : focus ,
1591
+ # sidebar-button > a : hover , # sidebar-button > a : focus {
1496
1592
border-color : var (--settings-button-border-focus );
1497
1593
}
1498
1594
@@ -1721,6 +1817,10 @@ in src-script.js
1721
1817
scroll-margin-top : 45px ;
1722
1818
}
1723
1819
1820
+ .hide-sidebar # sidebar-button {
1821
+ position : static;
1822
+ }
1823
+
1724
1824
.rustdoc {
1725
1825
/* Sidebar should overlay main content, rather than pushing main content to the right.
1726
1826
Turn off `display: flex` on the body element. */
@@ -1749,7 +1849,8 @@ in src-script.js
1749
1849
/* Hide the logo and item name from the sidebar. Those are displayed
1750
1850
in the mobile-topbar instead. */
1751
1851
.sidebar .logo-container ,
1752
- .sidebar .location {
1852
+ .sidebar .location ,
1853
+ .sidebar-resizer {
1753
1854
display : none;
1754
1855
}
1755
1856
@@ -1817,6 +1918,10 @@ in src-script.js
1817
1918
top : 0 ;
1818
1919
}
1819
1920
1921
+ .hide-sidebar .mobile-topbar {
1922
+ display : none;
1923
+ }
1924
+
1820
1925
.sidebar-menu-toggle {
1821
1926
width : 45px ;
1822
1927
/* Rare exception to specifying font sizes in rem. Since this is acting
@@ -1826,6 +1931,10 @@ in src-script.js
1826
1931
color : var (--main-color );
1827
1932
}
1828
1933
1934
+ .hide-sidebar .sidebar-menu-toggle {
1935
+ display : none;
1936
+ }
1937
+
1829
1938
.sidebar-elems {
1830
1939
margin-top : 1em ;
1831
1940
}
@@ -2273,6 +2382,8 @@ in src-script.js
2273
2382
--scrape-example-help-hover-color : # 000 ;
2274
2383
--scrape-example-code-wrapper-background-start : rgba (255 , 255 , 255 , 1 );
2275
2384
--scrape-example-code-wrapper-background-end : rgba (255 , 255 , 255 , 0 );
2385
+ --sidebar-resizer-hover : hsl (207 , 90% , 66% );
2386
+ --sidebar-resizer-active : hsl (207 , 90% , 54% );
2276
2387
}
2277
2388
/* End theme: light */
2278
2389
@@ -2378,6 +2489,8 @@ in src-script.js
2378
2489
--scrape-example-help-hover-color : # fff ;
2379
2490
--scrape-example-code-wrapper-background-start : rgba (53 , 53 , 53 , 1 );
2380
2491
--scrape-example-code-wrapper-background-end : rgba (53 , 53 , 53 , 0 );
2492
+ --sidebar-resizer-hover : hsl (207 , 30% , 54% );
2493
+ --sidebar-resizer-active : hsl (207 , 90% , 54% );
2381
2494
}
2382
2495
/* End theme: dark */
2383
2496
@@ -2487,6 +2600,8 @@ Original by Dempfi (https://github.com/dempfi/ayu)
2487
2600
--scrape-example-help-hover-color : # fff ;
2488
2601
--scrape-example-code-wrapper-background-start : rgba (15 , 20 , 25 , 1 );
2489
2602
--scrape-example-code-wrapper-background-end : rgba (15 , 20 , 25 , 0 );
2603
+ --sidebar-resizer-hover : hsl (34 , 50% , 33% );
2604
+ --sidebar-resizer-active : hsl (34 , 100% , 66% );
2490
2605
}
2491
2606
2492
2607
: root [data-theme = "ayu" ] h1 ,
@@ -2518,6 +2633,7 @@ Original by Dempfi (https://github.com/dempfi/ayu)
2518
2633
}
2519
2634
2520
2635
: root [data-theme = "ayu" ] .sidebar .current ,
2636
+ : root [data-theme = "ayu" ] .sidebar .current a ,
2521
2637
: root [data-theme = "ayu" ] .sidebar a : hover ,
2522
2638
: root [data-theme = "ayu" ] # src-sidebar div .files > a : hover ,
2523
2639
: root [data-theme = "ayu" ] details .dir-entry summary : hover ,
@@ -2568,7 +2684,8 @@ Original by Dempfi (https://github.com/dempfi/ayu)
2568
2684
border-bottom : 1px solid rgba (242 , 151 , 24 , 0.3 );
2569
2685
}
2570
2686
2571
- : root [data-theme = "ayu" ] # settings-menu > a img {
2687
+ : root [data-theme = "ayu" ] # settings-menu > a img ,
2688
+ : root [data-theme = "ayu" ] # sidebar-button > a img {
2572
2689
filter : invert (100 );
2573
2690
}
2574
2691
/* End theme: ayu */
0 commit comments