rustdoc: remove redundant `#help-button` CSS
When the separate top and bottom styles were added in cd3f4da244, some of the CSS rules were needlessly duplicated.
The `text-align: initial` rule on `.side-by-side` was always redundant, since the rules that centered the text were set on children, not parents.
rustdoc: remove no-op CSS `.srclink { font-weight; font-size }`
When this CSS was added in 34bd2b845b, source links were nested below headers.
34bd2b845b/src/librustdoc/html/render.rs (L4015-L4019)
Now, thanks to 458e7219bc, they are now siblings of headers, and thanks to 270d09dca9, they have the same font size that they would've had anyway.
When the separate top and bottom styles were added in
cd3f4da244, some of the CSS rules were
needlessly duplicated.
The `text-align: initial` rule on `.side-by-side` was always redundant, since
the rules that centered the text were set on children, not parents.
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Containment
This affected layout a little and required adjustments to the CSS to
keep spacing the same. In particular, the margins of adjacent items
usually overlap with each other. However, when an item has contain:
layout, any margins of child nodes push out the size of the item itself.
This was making spacing between items a little too big. To solve that, I
removed margins in some places: in particular for certain classes that
often occur at the end of a `details.rustdoc-toggle` block, I removed
their bottom margin. Generally, the margins provided by the next item
down are sufficient.
Also remove an unnecessary margin-top on .code-header.
This was added in 510107815f, to fix the
display of the module items and search results tables (see the discussion in
https://github.com/rust-lang/rust/pull/86725).
Those aren't tables any more. The only remaining table is in docblock, which
needs this attribute to look right.
This was added in 510107815f, to fix
the display of the module items and search results tables (see the discussion
in https://github.com/rust-lang/rust/pull/86725).
Those aren't tables any more. The only remaining table is in docblock, which
has its own padding declarations.
* Remove the `float: right` fallback from the main header, which hasn't
been needed since IE11 support was dropped.
* Remove `in-band` from low-level headers, which hasn't been needed since
`.rightside` switched to `float: right` in
593d6d1cb1
* Remove unreachable `.in-band > code, .in-band > .code-header` CSS, since
the `in-band` class was attached to the `code-header` itself, not nested
directly below it.
* Use `rem` instead of `em` for code header margins.
* This results in a slight change in spacing around impls and item-info,
but since it makes it more consistent with the way methods are presented,
it's probably fine.
This selector was added in 10b9370286. It
became unreachable when 09150f8193 made it so
that `.line-numbers` are always nested below `.example-wrap`, even on
source pages.
rustdoc: remove no-op CSS `#source-sidebar { z-index }`
This rule became redundant in 07e3f998b1. When `#source-sidebar` became nested below `.sidebar`, it went from being `position: fixed` to `position: static`, and according to MDN's [z-index] documentation, this means it has no effect.
[z-index]: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
This rule became redundant in 07e3f998b1.
When `#source-sidebar` became nested below `.sidebar`, it went from being
`position: fixed` to `position: static`, and according to MDN's [z-index]
documentation, this means it has no effect.
[z-index]: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
This rule became redundant in 07e3f998b1.
When `#source-sidebar` became nested below `.sidebar`, it went from being
`position: fixed` to `position: static`, and according to MDN's [z-index]
documentation, this means it has no effect.
[z-index]: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
This commit makes the `width` and `min-width` of the sidebar the same. They
originally were when cad0fce205 added the
`min-width` rule, but 6a5f8b1aef changed the
width without changing the `min-width`, causing it to sometimes oscilate
between 200 and 250 pixels depending on the main content.
Rollup of 8 pull requests
Successful merges:
- #100734 (Split out async_fn_in_trait into a separate feature)
- #101664 (Note if mismatched types have a similar name)
- #101815 (Migrated the rustc_passes annotation without effect diagnostic infrastructure)
- #102042 (Distribute rust-docs-json via rustup.)
- #102066 (rustdoc: remove unnecessary `max-width` on headers)
- #102095 (Deduplicate two functions that would soon have been three)
- #102104 (Set 'exec-env:RUST_BACKTRACE=0' in const-eval-select tests)
- #102112 (Allow full relro on powerpc64-unknown-linux-gnu)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
rustdoc: remove unnecessary `max-width` on headers
This code was added in 003b2bc1c6 to prevent these headers from overlapping `.out-of-band` side items. That stopped being a problem when 3f92ff34b5 switched rustdoc over to using `float`, rather than `position: absolute`, to implement this.
rustdoc: remove no-op CSS `.location:empty { border: none }`
This rule was added in 2bb2a2975f to remove a border placed around the location when it's empty. That rule was removed in 6a5f8b1aef, so this rule does nothing.
rustdoc: remove no-op CSS `.content .item-info { position: relative }`
This rule was added to help position the marker line in 110e7270ab, which was a `position: absolute` pseudo-element that relied on its parent to put it in the right spot. (it was changed from a line to an arrow in 1ffb9cf8d7, then a different arrow in ae3a53ff58).
The arrow was removed in 73d0f7c7b6, so the `relative` position is no longer necessary.
rustdoc: clean up line numbers on code examples
* First commit switches from `display: inline-flex; width: 100%` to `display: flex`.
`display: inline-flex` was used as part of e961d397ca, the original commit that added these line numbers. Does anyone know why it was done this way?
* Second commit makes it so that toggling this checkbox will update the page in real time, just like changing themes does.
Preview: https://notriddle.com/notriddle-rustdoc-test/line-numbers/std/vec/struct.Vec.html
This rule was added in 2bb2a2975f to remove a
border placed around the location when it's empty. That rule was removed in
6a5f8b1aef, so this rule does nothing.
This rule was added to help position the marker line in
110e7270ab, which was a `position: absolute`
pseudo-element that relied on its parent to put it in the right spot.
The arrow was removed in 73d0f7c7b6, so the
`relative` position is no longer necessary.
This code was added in 003b2bc1c6 to prevent
these headers from overlapping `.out-of-band` side items. That stopped
being a problem when 3f92ff34b5 switched
rustdoc over to using `float`, rather than `position: absolute`, to
implement this.
This rule was added in 88fe6dfa31 to assist
in position the hide/show togges on methods. This is no longer needed,
because these toggles are no longer implemented as absolutely positioned
links nested inside headers.
For this rule to have an actual effect, the border-bottom width needs
specified, elsewhere, without also specifying the color. This doesn't
happen. Ever since 88b137d5fe, every spot
where headers get a border assigned to them also assigns the color.
This class was originally added in 73b97c7e7c
to support hiding and showing the item, because `main.js` went through all
`docblock` elements in the DOM and added toggles to them.
73b97c7e7c/src/librustdoc/html/static/main.js (L1856-L1867)
The `item-decl` is no longer auto-hidden since
c96f86de30 removed it.
`item-decl` used to be called `type-decl`: that name was changed in
8b7a2dd462.
The `docblock` class is no longer used for implementing toggles, since
rustdoc switched to using `<details>` elements.
rustdoc: remove redundant `.location a { font-weight: 500 }`
The `class="location"` element is an h2, either in the sidebar or in the mobile header. Either way, it already has `font-weight: 500`, which the link inside will inherit.
The original version of this rule was added in 9e82fc7ef9. At that time, the location header was rendered as a paragraph with the full path:
9e82fc7ef9/src/librustdoc/html/render.rs (L2080)
Nowadays, it's rendered as a true header, with only the name of the item, and the full path is included in a separate `fqn` header:
98ad6a5519/src/librustdoc/html/render/mod.rs (L1797)
The `class="location"` element is an h2, either in the sidebar or in the
mobile header. Either way, it already has `font-weight: 500`, which the link
inside will inherit.
The original version of this rule was added in
9e82fc7ef9. At that time, the location header
was rendered as a paragraph with the full path:
9e82fc7ef9/src/librustdoc/html/render.rs (L2080)
Nowadays, it's rendered as a true header, with only the name of the item,
and the full path is included in a separate `fqn` header:
98ad6a5519/src/librustdoc/html/render/mod.rs (L1797)
This selector was added in 959a13d53e to
target a `<div class="non-exhaustive">`. With
4edcf61479, the non-exhaustive indicator was
changed to a `<details>`, and a separate selector targetting
`details.non-exhaustive` was added for it, but the old selector was never
removed.
This rule originated in 7669f04fb0, to
override the default, limited line-width that makes sense for prose, but
doesn't make sense for code (which typically uses hard-wrapped lines):
7669f04fb0/src/librustdoc/html/static/main.css (L153)
This line width limiter isn't applied to the `<div class="content">` node
any more. It's been moved to a separate wrapper `<div>` that used to be
called `main-inner` (in 135281ed15) but is
now called `width-limiter` (since
d7528e2157).