Commit graph

680 commits

Author SHA1 Message Date
Noah Lev
5f433f33ed Reduce typename width to 6.25rem
This makes "existential type" look slightly cramped (though still
readable), but it makes all other typenames look better. Existential
types are currently very rare, and we can always tweak this later if
necessary.
2023-06-23 12:02:55 -07:00
Noah Lev
12de5b7ff3 Make typenames a bit wider to support "existential type" 2023-06-23 10:12:27 -07:00
Noah Lev
a8fa961696 Align search results horizontally for easy scanning
The recent PR #110688 added info about an item's kind before its name in
search results. However, because the kind and name are inline with no
alignment, it's now hard to visually scan downward through the search
results, looking at item names. This PR fixes that by horizontally
aligning search results such that there are now two columns of
information.
2023-06-22 12:16:48 -07:00
Alexis (Poliorcetics) Bourget
1a94b06089 rustdoc: js: change color and reduce size of typename in search result 2023-06-19 21:47:23 +02:00
Guillaume Gomez
de85f7ff36 Move type name directly into the same DOM element 2023-06-03 16:37:43 +02:00
Guillaume Gomez
f92cd67711 Improve new search result display on mobile 2023-06-02 23:56:10 +02:00
Guillaume Gomez
8a35cc3ddc Move item kind before the item name 2023-06-02 23:56:10 +02:00
Guillaume Gomez
741d210c44 Add search result item types after their name 2023-06-02 23:56:10 +02:00
Michael Howell
b9302d7234 rustdoc: add hover indicator for notable trait tooltip 2023-05-23 17:19:35 -07:00
Michael Howell
c1d72de030 rustdoc: add interaction delays for tooltip popovers
Designing a good hover microinteraction is a matter of guessing
user intent from what are, literally, vague gestures. In this case,
guessing if hovering in our out of the tooltip base is intentional
or not.

To figure this out, a few different techniques are used:

* When the mouse pointer enters a tooltip anchor point, its hitbox
  is grown on the bottom, where the popover is/will appear. This was
  already there before this commit: search "hover tunnel" in
  rustdoc.css for the implementation.

* This commit adds a delay when the mouse pointer enters the base
  anchor, in case the mouse pointer was just passing through and the
  user didn't want to open it.

* This commit also adds a delay when the mouse pointer exits the
  tooltip's base anchor or its popover, before hiding it.

* A fade-out animation is layered onto the pointer exit delay to
  immediately inform the user that they successfully dismissed the
  popover, while still providing a way for them to cancel it if
  it was a mistake and they still wanted to interact with it.

* No animation is used for revealing it, because we don't want
  people to try to interact with an element while it's in the
  middle of fading in: either they're allowed to interact with
  it while it's fading in, meaning it can't serve as mistake-
  proofing for opening the popover, or they can't, but they
  might try and be frustrated.

See also:

* https://www.nngroup.com/articles/timing-exposing-content/
* https://www.nngroup.com/articles/tooltip-guidelines/
* https://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown
2023-05-23 15:56:40 -07:00
Michael Howell
4c11822aeb rustdoc: restructure type search engine to pick-and-use IDs
This change makes it so, instead of mixing string distance with
type unification, function signature search works by
mapping names to IDs at the start, reporting to the user any
cases where it had to make corrections, and then matches with
IDs when going through the items.

This only changes function searches. Name searches are left alone,
and corrections are only done when there's a single item in the
search query.
2023-04-17 12:16:54 -07:00
Michael Howell
bb7ed64f45 rustdoc: use CSS overscroll-behavior instead of JavaScript
Fixes the desktop scrolling weirdness mentioned in
https://github.com/rust-lang/rust/pull/98775#issuecomment-1182575603

As described in the MDN page for this property:

* The current Firefox ESR is 102, and the first Firefox version
  to support this feature is 59.
* The current Chrome version 112, and the first version to support
  this is 63.
* Edge is described as having a minor bug in `none` mode, but we
  use `contain` mode anyway, so it doesn't matter.
* Safari 16, released September 2022, is the last browser to
  add this feature, and is also the oldest version we officially
  support.
2023-04-12 10:31:06 -07:00
Matthias Krüger
08ab38a703
Rollup merge of #109977 - notriddle:notriddle/data-nosnippet, r=jsha,the8472
rustdoc: avoid including line numbers in Google SERP snippets

![image](https://user-images.githubusercontent.com/1593513/230141184-9171c8e0-de92-48e6-85b6-8baee35e6d86.png)
2023-04-06 18:42:58 +02:00
Michael Howell
e9daab25de rustdoc: avoid including line numbers in Google SERP snippets 2023-04-05 15:43:09 -07:00
Guillaume Gomez
906bdd3bdb Improve display of logo on very small screens 2023-04-05 17:13:28 +02:00
Guillaume Gomez
6f9b988578 Move scrollbar on the <main> element rather than only on the code block to improve UX 2023-04-04 16:35:36 +02:00
Michael Howell
95ef91c573 rustdoc: remove old content hack for theme switching
This is based on the compatibility data for `window.matchMedia` and
`MediaQueryList`'s `EventTarget` implementation.

https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList#browser_compatibility

https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia#browser_compatibility

  * EventTarget would require us to drop support for all Chrome
    versions before 39. However, we already require Chrome 49,
    because rustdoc requires [CSS variables].
  * EventTarget would also limit us to Firefox 55, but since #106502
    rustdoc only supports Firefox > 68.
  * EventTarget limits us to Mobile Safari version 14, but #102404
    shows that our CSS is broken in Safari versions before 15.5.

[CSS variables]: https://developer.mozilla.org/en-US/docs/Web/CSS/--*#browser_compatibility
2023-03-23 14:25:43 -07:00
Michael Howell
ba3d6055ad rustdoc: clean up storage.js
This converts a few functions to more compact versions of
themselves, and moves `RUSTDOC_MOBILE_BREAKPOINT` to main.js where
it's actually used.
2023-03-23 14:19:50 -07:00
Michael Howell
9852980594 rustdoc: remove redundant .content prefix from span/a colors
Reverts a1d4ebe496, as well as
fixing the problem it solved with links losing their color.
2023-03-21 15:39:21 -07:00
Guillaume Gomez
4e560d7d0b Put backtick content from rustdoc search errors into a <code> elements 2023-03-02 12:59:04 +01:00
Dylan DPC
4165de40f8
Rollup merge of #107783 - notriddle:notriddle/item-table-ul, r=GuillaumeGomez
rustdoc: simplify DOM for `.item-table`

This switches from using `<div>` to the more semantic `<ul>`, and using class names that rhyme with the classes the search results table uses.
2023-02-19 13:03:41 +05:30
Matthias Krüger
3054759fa8
Rollup merge of #107340 - notriddle:notriddle/simplify-doctest-tooltip, r=GuillaumeGomez
rustdoc: merge doctest tooltip with notable traits tooltip

Fixes https://discord.com/channels/442252698964721669/443150878111694848/1066420140167680000

<details><summary>a user report where the tooltip arrow overlaps the text</summary>

![](https://cdn.discordapp.com/attachments/443150878111694848/1066420139530145812/this-example-is-not-tested-busted-rendering.png)

</details>

Fixes #91100

Preview: <https://notriddle.com/notriddle-rustdoc-demos/simplify-doctest-tooltip/std/vec/struct.Vec.html#indexing>

Screenshot:

![image](https://user-images.githubusercontent.com/1593513/214975516-72667632-4609-49fa-8c37-e8d2ba1ba7dc.png)
2023-02-13 11:34:56 +01:00
Michael Howell
b0df355f80 rustdoc: use tighter line height in h1 and h2 2023-02-12 12:30:57 -07:00
Michael Howell
894c98652c rustdoc: simplify DOM for .item-table
This switches from using `<div>` to the more semantic `<ul>`, and
using class names that rhyme with the classes the search results
table uses.
2023-02-07 19:00:42 -07:00
Roland Strasser
71a147df1f rustdoc: trait bound formatting
rustdoc: fix item-spacer

rustdoc: use proper comment style

rustdoc: change formatting where clauses for traits

rustdoc: remove semicolon from provided methods

update provided methods formatting
2023-02-04 19:10:04 +01:00
Michael Howell
784665d4ce Replace nbsp in all rustdoc code blocks
Co-Authored-By: David Tolnay <dtolnay@gmail.com>
2023-02-03 08:15:44 -07:00
Matthias Krüger
75ea3a9948
Rollup merge of #107531 - GuillaumeGomez:inline-images-in-css, r=notriddle
Inline CSS background images directly into the CSS

A nice advantage of this is that it removes a few entries in the list of static files.

r? ``@notriddle``
2023-02-02 06:52:15 +01:00
Guillaume Gomez
63f82db958 Inline CSS background images directly into the CSS 2023-02-01 11:51:02 +01:00
Guillaume Gomez
9e0bfe0fb0
Rollup merge of #107527 - notriddle:notriddle/wcagcontrast, r=GuillaumeGomez
rustdoc: stop making unstable items transparent

Fixes #93393
2023-01-31 23:38:54 +01:00
Guillaume Gomez
233b319a37
Rollup merge of #107354 - tspiteri:source-serif-4.005, r=GuillaumeGomez
rustdoc: update Source Serif 4 from 4.004 to 4.005

[Version 4.005](https://github.com/adobe-fonts/source-serif/releases/tag/4.005R) was released on 2023-01-20.
2023-01-31 23:38:50 +01:00
Michael Howell
f75b350467 rustdoc: stop making unstable items transparent
Fixes #93393
2023-01-31 11:27:09 -07:00
Yuki Okushi
fbcaf046cc
Rollup merge of #107477 - GuillaumeGomez:css-var, r=notriddle
Migrate last part of CSS themes to CSS variables

No changes in the output. This is already tested in `tests/rustdoc-gui/search-tab.goml` so no need to add a GUI test.

r? `@notriddle`
2023-01-31 11:46:25 +09:00
Guillaume Gomez
e9f5630067 Migrate last part of CSS themes to CSS variables 2023-01-30 19:28:47 +01:00
Michael Howell
7080f80e8b rustdoc: remove unnecessary wrapper div.item-decl from HTML 2023-01-30 11:06:18 -07:00
Michael Howell
7aa4a205a8 rustdoc: merge doctest tooltip with notable traits tooltip
Fixes https://discord.com/channels/442252698964721669/443150878111694848/1066420140167680000

Fixes #91100
2023-01-27 09:04:39 -07:00
Trevor Spiteri
1c3fc9da71 add comment to rustdoc.css on updating filename suffixes 2023-01-27 15:49:08 +01:00
Trevor Spiteri
167fbbc994 rustdoc: update Source Serif 4 from 4.004 to 4.005
Version 4.005 was released on 2023-01-20.
2023-01-27 12:43:00 +01:00
Michael Howell
97f8189614 rustdoc: remove mostly-unused CSS classes import/module-item 2023-01-26 12:55:19 -07:00
KaDiWa
11a94f242d
rustdoc: prevent scroll bar on source viewer 2023-01-24 16:46:45 +01:00
Dylan DPC
d9593768d4
Rollup merge of #107186 - GuillaumeGomez:correct-pseudo-element-selector, r=notriddle
rustdoc: Use correct pseudo-element selector

As explained [here](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements#syntax).

I wrote it on top of #107152 so we'll need to wait for this one to be merged first.

r? `@notriddle`
2023-01-23 11:52:05 +05:30
Matthias Krüger
d41a14f91e
Rollup merge of #107152 - GuillaumeGomez:migrate-to-css-var, r=notriddle
Migrate scraped-examples top and bottom "borders" to CSS variables

r? `@notriddle`
2023-01-22 11:43:07 +01:00
Guillaume Gomez
26e2360b26 Use correct pseudo-element selector 2023-01-22 11:11:29 +01:00
Guillaume Gomez
397e4b13f9 Migrate scraped-examples top and bottom "borders" to CSS variables 2023-01-21 12:15:42 +01:00
Michael Howell
05889fc52e rustdoc: remove redundant CSS selector .sidebar .current
Since the current sidebar item is already a link, it doesn't
do anything.
2023-01-19 16:30:05 -07:00
Matthias Krüger
14fbc21466
Rollup merge of #106828 - notriddle:notriddle/notable-trait-docblock, r=GuillaumeGomez
rustdoc: remove `docblock` class from notable trait popover

This commit builds on b72de9be74, which removes the `docblock` class from the All Items page, and 9457380ac9, which removes the `docblock` class from the item decl.

Fixes #92974
2023-01-14 18:45:27 +01:00
Yuki Okushi
caa1d47fba
Rollup merge of #106819 - notriddle:notriddle/rm-h1-fqn, r=GuillaumeGomez
rustdoc: remove unnecessary DOM class `h1.fqn`

It's misleading. The main heading sometimes isn't an fully qualified name at all.

It's also redundant. It's always a child of `div.main-heading`, so just use that.
2023-01-14 12:04:37 +09:00
Michael Howell
5314ed5627 rustdoc: remove docblock class from notable trait popover
This commit builds on b72de9be74, which removes
the `docblock` class from the All Items page, and
9457380ac9, which removes the `docblock` class
from the item decl.

Fixes #92974
2023-01-13 15:42:29 -07:00
Michael Howell
1d328de3ec rustdoc: rename CSS rustdoc-toggle -> toggle and toggle -> settings-toggle
This swaps things around so that the class that gets used more often has
the shorter name.
2023-01-13 12:38:03 -07:00
Michael Howell
39b90a5f6e rustdoc: remove unnecessary DOM class h1.fqn
It's misleading. The main heading sometimes isn't an fully qualified name at all.

It's also redundant. It's always a child of `div.main-heading`, so just use that.
2023-01-13 10:09:25 -07:00
Albert Larsan
40ba0e84d5
Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00