diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 79c7626ffc4bd..631aaaf56670a 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -373,7 +373,6 @@ nav.sub { .source .sidebar.expanded { overflow-y: auto; - width: 300px; } .source .sidebar.expanded > * { @@ -1390,7 +1389,7 @@ pre.rust { z-index: 10; } #source-sidebar { - width: 300px; + width: 100%; z-index: 1; overflow: auto; } @@ -1707,6 +1706,10 @@ details.rustdoc-toggle[open] > summary.hideme::after { .rustdoc.source .sidebar { transition: width .5s; } + + .source .sidebar.expanded { + width: 300px; + } } @media (max-width: 700px) { @@ -1995,6 +1998,11 @@ details.rustdoc-toggle[open] > summary.hideme::after { .search-results div.desc, .search-results .result-description, .item-right { padding-left: 2em; } + + .source .sidebar.expanded { + max-width: 100vw; + width: 100vw; + } } @media print { diff --git a/src/test/rustdoc-gui/sidebar-source-code.goml b/src/test/rustdoc-gui/sidebar-source-code.goml new file mode 100644 index 0000000000000..98f4fdf4233c2 --- /dev/null +++ b/src/test/rustdoc-gui/sidebar-source-code.goml @@ -0,0 +1,32 @@ +// The goal of this test is to ensure that the sidebar is working as expected in the source +// code pages. +goto: file://|DOC_PATH|/src/test_docs/lib.rs.html +// First: desktop mode. +size: (1100, 800) +// We check that the sidebar isn't expanded and has the expected width. +assert-css: ("nav.sidebar", {"width": "50px"}) +// We now click on the button to expand the sidebar. +click: (10, 10) +// We wait for the sidebar to be expanded (there is a 0.5s animation). +wait-for: 600 +assert-css: ("nav.sidebar.expanded", {"width": "300px"}) +// We collapse the sidebar. +click: (10, 10) +// We wait for the sidebar to be collapsed (there is a 0.5s animation). +wait-for: 600 +// We ensure that the class has been removed. +assert-false: "nav.sidebar.expanded" +assert: "nav.sidebar" + +// We now switch to mobile mode. +size: (600, 600) +// We check that the sidebar has the expected width (0 and 1px for the border). +assert-css: ("nav.sidebar", {"width": "1px"}) +// We expand the sidebar. +click: "#sidebar-toggle" +assert-css: ("nav.sidebar.expanded", {"width": "600px"}) +// We collapse the sidebar. +click: (10, 10) +// We ensure that the class has been removed. +assert-false: "nav.sidebar.expanded" +assert: "nav.sidebar"