From 4d5a6c90b1df5590c1c1801baf51903520af012c Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Tue, 11 Jan 2022 17:36:52 -0800 Subject: [PATCH] Enable wrapping words by default Faced with a very long word, browsers will let it overflow its box horizontally rather than break it in the middle. We essentially never want that behavior. We would rather break the word and keep it inside its horizontal limits. So we apply a default overflow-wrap: break-word/anywhere to the document as a while. In some contexts we would rather add a horizontal scrollbar (code blocks), or elide the excess text with an ellipsis (sidebar). Those still work as expected. --- src/librustdoc/html/static/css/rustdoc.css | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index d7f33d6131c..7cc0e74a79b 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -111,6 +111,12 @@ body { font: 1rem/1.4 "Source Serif 4", NanumBarunGothic, serif; margin: 0; position: relative; + /* We use overflow-wrap: break-word for Safari, which doesn't recognize + `anywhere`: https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap */ + overflow-wrap: break-word; + /* Then override it with `anywhere`, which is required to make non-Safari browsers break + more aggressively when we want them to. */ + overflow-wrap: anywhere; -webkit-font-feature-settings: "kern", "liga"; -moz-font-feature-settings: "kern", "liga"; @@ -446,6 +452,7 @@ nav.sub { text-align: center; border-bottom: 1px solid; overflow-wrap: break-word; + overflow-wrap: anywhere; word-wrap: break-word; /* deprecated */ word-break: break-word; /* Chrome, non-standard */ } @@ -576,6 +583,7 @@ nav.sub { } .docblock-short { + overflow-wrap: break-word; overflow-wrap: anywhere; } .docblock-short p { @@ -641,6 +649,7 @@ nav.sub { flex-grow: 1; margin: 0px; padding: 0px; + overflow-wrap: break-word; overflow-wrap: anywhere; } @@ -669,6 +678,7 @@ nav.sub { margin: .5em 0; width: calc(100% - 2px); overflow-x: auto; + overflow-wrap: normal; display: block; } @@ -1495,6 +1505,7 @@ pre.rust { padding: 4px 8px; text-align: center; background: rgba(0,0,0,0); + overflow-wrap: normal; } #theme-choices > button:not(:first-child) { @@ -2099,9 +2110,14 @@ details.rustdoc-toggle[open] > summary.hideme::after { } .docblock code { + overflow-wrap: break-word; overflow-wrap: anywhere; } + .docblock table code { + overflow-wrap: normal; + } + .sub-container { flex-direction: column; }