Skip to content

Commit fd010bb

Browse files
committed
rustdoc: reduce clutter on mobile search page
1 parent b12af36 commit fd010bb

File tree

5 files changed

+58
-36
lines changed

5 files changed

+58
-36
lines changed

src/librustdoc/html/static/css/rustdoc.css

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,6 @@ h1, h2, h3, h4 {
244244
more aggressively when we want them to. */
245245
overflow-wrap: anywhere;
246246
}
247-
.search-results-main-heading nav.sub {
248-
grid-area: main-heading-h1;
249-
}
250247
.main-heading {
251248
position: relative;
252249
display: grid;
@@ -259,6 +256,17 @@ h1, h2, h3, h4 {
259256
padding-bottom: 6px;
260257
margin-bottom: 15px;
261258
}
259+
.search-results-main-heading {
260+
grid-template-areas:
261+
"main-heading-breadcrumbs main-heading-placeholder"
262+
"main-heading-breadcrumbs main-heading-toolbar "
263+
"main-heading-h1 main-heading-toolbar ";
264+
}
265+
.search-results-main-heading nav.sub {
266+
grid-area: main-heading-h1;
267+
align-items: end;
268+
margin: 4px 0 8px 0;
269+
}
262270
.rustdoc-breadcrumbs {
263271
grid-area: main-heading-breadcrumbs;
264272
line-height: 1.25;
@@ -268,12 +276,13 @@ h1, h2, h3, h4 {
268276
}
269277
.search-switcher {
270278
grid-area: main-heading-breadcrumbs;
271-
line-height: 1.25;
279+
line-height: 1.5;
272280
display: flex;
273281
color: var(--main-color);
274282
align-items: baseline;
275283
white-space: nowrap;
276-
margin-top: -1px;
284+
padding-top: 8px;
285+
min-height: 34px;
277286
}
278287
.rustdoc-breadcrumbs a {
279288
padding: 5px 0 7px;
@@ -1264,6 +1273,8 @@ table,
12641273
position: relative;
12651274
/* allows this div (and with it the <select>-element "#crate-search") to be shrunk */
12661275
min-width: 0;
1276+
/* keep label text for switcher from moving down when this appears */
1277+
margin-top: -1px;
12671278
}
12681279
#crate-search {
12691280
padding: 0 23px 0 4px;
@@ -2051,7 +2062,10 @@ button#toggle-all-docs {
20512062
justify-content: center;
20522063
flex-direction: column;
20532064
}
2054-
#settings-menu > a, #help-button > a, button#toggle-all-docs {
2065+
#search-button > a,
2066+
.settings-menu > a,
2067+
.help-menu > a,
2068+
button#toggle-all-docs {
20552069
border: 1px solid transparent;
20562070
border-radius: var(--button-border-radius);
20572071
color: var(--main-color);
@@ -2483,12 +2497,28 @@ However, it's not needed with smaller screen width because the doc/code block is
24832497
"main-heading-h1 main-heading-toolbar"
24842498
"main-heading-sub-heading main-heading-toolbar";
24852499
}
2500+
.search-results-main-heading {
2501+
display: grid;
2502+
grid-template-areas:
2503+
"main-heading-breadcrumbs main-heading-toolbar"
2504+
"main-heading-breadcrumbs main-heading-toolbar"
2505+
"main-heading-h1 main-heading-toolbar";
2506+
}
24862507
rustdoc-toolbar {
24872508
display: grid;
24882509
grid-template-areas:
24892510
"x settings help"
24902511
"search summary summary";
24912512
}
2513+
.search-results-main-heading rustdoc-toolbar {
2514+
display: grid;
2515+
grid-template-areas:
2516+
"settings help"
2517+
"search search";
2518+
}
2519+
.search-results-main-heading #toggle-all-docs {
2520+
display: none;
2521+
}
24922522
rustdoc-toolbar .settings-menu span.label,
24932523
rustdoc-toolbar .help-menu span.label
24942524
{
@@ -2565,6 +2595,13 @@ in src-script.js and main.js
25652595
"main-heading-h1 main-heading-toolbar"
25662596
"main-heading-sub-heading main-heading-toolbar";
25672597
}
2598+
.search-results-main-heading {
2599+
display: grid;
2600+
grid-template-areas:
2601+
"main-heading-breadcrumbs main-heading-placeholder"
2602+
"main-heading-breadcrumbs main-heading-toolbar"
2603+
"main-heading-h1 main-heading-toolbar";
2604+
}
25682605
rustdoc-topbar span.label,
25692606
rustdoc-toolbar .settings-menu,
25702607
rustdoc-toolbar .help-menu

src/librustdoc/html/static/js/main.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Local js definitions:
22
/* global addClass, getSettingValue, hasClass, updateLocalStorage */
3-
/* global onEachLazy, removeClass, getVar */
3+
/* global onEachLazy, removeClass, getVar, nonnull */
44

55
"use strict";
66

@@ -65,7 +65,7 @@ window.currentCrate = getVar("current-crate");
6565
* keypress on hitting the Escape key.
6666
*
6767
* So I guess you could say things are getting pretty interoperable.
68-
*
68+
*
6969
* @param {KeyboardEvent} ev
7070
* @returns {string}
7171
*/
@@ -497,7 +497,8 @@ function preLoadCss(cssUrl) {
497497
},
498498
setLoadingSearch: () => {
499499
const search = window.searchState.outputElement();
500-
nonnull(search).innerHTML = "<h3 class=\"search-loading\">" + window.searchState.loadingText + "</h3>";
500+
nonnull(search).innerHTML = "<h3 class=\"search-loading\">" +
501+
window.searchState.loadingText + "</h3>";
501502
window.searchState.showResults();
502503
},
503504
descShards: new Map(),
@@ -1755,7 +1756,7 @@ function preLoadCss(cssUrl) {
17551756
} else {
17561757
showHelp();
17571758
}
1758-
}
1759+
},
17591760
);
17601761
});
17611762
}

src/librustdoc/html/static/js/search.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// ignore-tidy-filelength
2-
/* global addClass, getNakedUrl, getSettingValue, getVar */
2+
/* global addClass, getNakedUrl, getSettingValue, getVar, nonnull */
33
/* global onEachLazy, removeClass, searchState, browserSupportsHistoryApi, exports */
44

55
"use strict";
@@ -4940,7 +4940,8 @@ ${item.displayPath}<span class="${type}">${name}</span>\
49404940
output.innerHTML = "Example searches:<ul>" +
49414941
"<li><a href=\"" + getNakedUrl() + "?search=std::vec\">std::vec</a></li>" +
49424942
"<li><a href=\"" + getNakedUrl() + "?search=u32+->+bool\">u32 -> bool</a></li>" +
4943-
"<li><a href=\"" + getNakedUrl() + "?search=Option<T>,+(T+->+U)+->+Option<U>\">Option&lt;T>, (T -> U) -> Option&lt;U></a></li>" +
4943+
"<li><a href=\"" + getNakedUrl() + "?search=Option<T>,+(T+->+U)+->+Option<U>\">" +
4944+
"Option&lt;T>, (T -> U) -> Option&lt;U></a></li>" +
49444945
"</ul>";
49454946
} else {
49464947
output.innerHTML = "No results :(<br/>" +
@@ -5112,10 +5113,11 @@ async function showResults(results, go_to_first, filterCrates) {
51125113
resultsElem.appendChild(ret_returned);
51135114

51145115
search.innerHTML = output;
5115-
// @ts-expect-error
5116-
if (searchState.rustdocToolbar) {
5117-
// @ts-expect-error
5118-
search.querySelector(".main-heading").appendChild(searchState.rustdocToolbar);
5116+
if (window.searchState.rustdocToolbar) {
5117+
nonnull(
5118+
nonnull(window.searchState.containerElement())
5119+
.querySelector(".main-heading"),
5120+
).appendChild(window.searchState.rustdocToolbar);
51195121
}
51205122
const crateSearch = document.getElementById("crate-search");
51215123
if (crateSearch) {
@@ -5339,7 +5341,7 @@ function updateCrate(ev) {
53395341
}
53405342

53415343
/**
5342-
* @param {Map<string, import("./rustdoc").RawSearchIndexCrate>} searchIndx
5344+
* @param {Map<string, import("./rustdoc").RawSearchIndexCrate>} searchIndx
53435345
*/
53445346
async function initSearch(searchIndx) {
53455347
if (ROOT_PATH === null) {

src/librustdoc/html/static/js/settings.js

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,13 @@
11
// Local js definitions:
22
/* global getSettingValue, updateLocalStorage, updateTheme */
33
/* global addClass, removeClass, onEach, onEachLazy */
4-
/* global MAIN_ID, getVar */
4+
/* global MAIN_ID, getVar, nonnull */
55

66
"use strict";
77

88
(function() {
99
const isSettingsPage = window.location.pathname.endsWith("/settings.html");
1010

11-
/**
12-
* @param {Element} elem
13-
* @param {EventTarget|null} target
14-
*/
15-
function elemContainsTarget(elem, target) {
16-
if (target instanceof Node) {
17-
return elem.contains(target);
18-
} else {
19-
return false;
20-
}
21-
}
22-
2311
/**
2412
* @overload {"theme"|"preferred-dark-theme"|"preferred-light-theme"}
2513
* @param {string} settingName

tests/rustdoc-gui/source-code-page.goml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,9 @@ assert-css: ("a[data-nosnippet]", {"text-align": "right"}, ALL)
8989
// do anything (and certainly not add a `#NaN` to the URL!).
9090
go-to: "file://" + |DOC_PATH| + "/src/test_docs/lib.rs.html"
9191
// We use this assert-position to know where we will click.
92-
<<<<<<< HEAD
93-
assert-position: ("//*[@id='1']", {"x": 81, "y": 169})
94-
// We click on the left of the "1" anchor but still in the `a[data-nosnippet]`.
95-
click: (77, 163)
96-
=======
9792
assert-position: ("//*[@id='1']", {"x": 88, "y": 143})
9893
// We click on the left of the "1" anchor but still in the "src-line-number" `<pre>`.
9994
click: (135, 77)
100-
>>>>>>> 411344983c0 (Fix test cases and hide-sidebar mode)
10195
assert-document-property: ({"URL": "/lib.rs.html"}, ENDS_WITH)
10296

10397
// Checking the source code sidebar.

0 commit comments

Comments
 (0)