Files
linux/Documentation/sphinx-static/custom.css
Rito Rhymes 3aff388bc4 docs: contain horizontal overflow in C API descriptions
Some documentation pages contain long C API signatures that can exceed
the content width and cause page-wide horizontal scroll overflow.

Apply contained horizontal scrolling to C API description blocks and
keep their signature rows on one line. This preserves signature
formatting while preventing them from breaking page layout.

Contained horizontal scrolling is preferred over wrapping here because
code fidelity is the priority. These blocks are intended to remain
representative of the code itself. Wrapping distorts spacing and line
structure, which affects fidelity, creates misleading renderings, and
reduces readability.

Examples:
  https://docs.kernel.org/6.15/driver-api/regulator.html
  https://docs.kernel.org/6.15/userspace-api/fwctl/fwctl-cxl.html

Signed-off-by: Rito Rhymes <rito@ritovision.com>
Assisted-by: Codex:GPT-5.4
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <20260323153342.33447-1-rito@ritovision.com>
2026-03-25 13:17:13 -06:00

188 lines
4.6 KiB
CSS

/* SPDX-License-Identifier: GPL-2.0 */
/*
* CSS tweaks for the Alabaster theme
*/
/* Shrink the headers a bit */
div.body h1 { font-size: 180%; }
div.body h2 { font-size: 150%; }
div.body h3 { font-size: 130%; }
div.body h4 { font-size: 110%; }
/* toctree captions are styled like h2 */
div.toctree-wrapper p.caption[role=heading] { font-size: 150%; }
/* Tighten up the layout slightly */
div.body { padding: 0 15px 0 10px; }
div.sphinxsidebarwrapper { padding: 1em 0.4em; }
div.sphinxsidebar { font-size: inherit;
max-height: 100%;
overflow-y: auto; }
/* Tweak document margins and don't force width */
div.document {
margin: 20px 10px 0 10px;
width: auto;
}
/* Size the logo appropriately */
img.logo {
width: 104px;
margin-bottom: 20px;
}
/* The default is to use -1em, wich makes it override text */
li { text-indent: 0em; }
/*
* Parameters for the display of function prototypes and such included
* from C source files.
*/
dl.function, dl.struct, dl.enum { margin-top: 2em; background-color: #ecf0f3; }
/* indent lines 2+ of multi-line function prototypes */
dl.function dt { margin-left: 10em; text-indent: -10em; }
/*
* Preserve C API signatures on one line and apply contained horizontal
* scrolling to prevent them from exceeding their container width and
* breaking page layout.
*/
dl.c { overflow-x: auto; overflow-y: hidden; }
dl.c > dt.sig.sig-object { white-space: nowrap; }
dt.sig-object { font-size: larger; }
div.kernelindent { margin-left: 2em; margin-right: 4em; }
/*
* Parameters for the display of function prototypes and such included
* from Python source files.
*/
dl.py { margin-top: 2em; background-color: #ecf0f3; }
dl.py.class { margin-left: 2em; text-indent: -2em; padding-left: 2em; }
dl.py.method, dl.py.attribute { margin-left: 2em; text-indent: -2em; }
dl.py li, pre { text-indent: 0em; padding-left: 0 !important; }
/*
* Tweaks for our local TOC
*/
div.kerneltoc li.toctree-l1 { font-size: smaller;
text-indent: -1em;
margin-left: 1em; }
div.kerneltoc li.current > a {font-weight: bold; }
div.kerneltoc li.toctree-l2,li.toctree-l3 { font-size: small;
text-indent: -1em;
margin-left: 1em;
list-style-type: none;
}
div.kerneltoc li.current ul { margin-left: 0; }
div.kerneltoc { background-color: #eeeeee; }
div.kerneltoc li.current ul { background-color: white; }
/*
* The CSS magic to toggle the contents on small screens.
*/
label.kernel-toc-title { display: none; }
label.kernel-toc-title:after {
content: "[Hide]";
}
input[type=checkbox]:checked ~ label.kernel-toc-title:after {
content: "[Show]";
}
/* Hide the toggle on large screens */
input.kernel-toc-toggle { display: none; }
/*
* Show and implement the toggle on small screens.
* The 875px width seems to be wired into alabaster.
*/
@media screen and (max-width: 875px) {
label.kernel-toc-title { display: inline;
font-weight: bold;
font-size: larger; }
input[type=checkbox]:checked ~ div.kerneltoc {
display: none;
}
h3.kernel-toc-contents { display: inline; }
div.kerneltoc a { color: black; }
}
/* Language selection menu */
div.admonition {
/*
* Make sure we don't overlap notes and warnings at the top of the
* document.
*/
clear: both;
}
div.language-selection {
background: #eeeeee;
border: 1px solid #cccccc;
margin-bottom: 1em;
padding: .5em;
position: relative;
float: right;
}
div.language-selection a {
display: block;
padding: 0.5em;
color: #333333;
text-decoration: none;
}
div.language-selection ul {
display: none;
position: absolute;
/* Align with the parent div */
top: 100%;
right: 0;
margin: 0;
list-style: none;
background: #fafafa;
border: 1px solid #cccccc;
/* Never break menu item lines */
white-space: nowrap;
}
div.language-selection:hover ul {
display: block;
}
div.language-selection ul li:hover {
background: #dddddd;
}
/*
* Let long inline literals in paragraph text wrap as needed to prevent
* overflow.
*/
code.docutils.literal span.pre {
white-space: normal;
overflow-wrap: anywhere;
}
/* Make xrefs more universally visible */
a.reference, a.reference:hover {
border-bottom: none;
text-decoration: underline;
text-underline-offset: 0.3em;
}
/* Slightly different style for sidebar links */
div.sphinxsidebar a { border-bottom: none; }
div.sphinxsidebar a:hover {
border-bottom: none;
text-decoration: underline;
text-underline-offset: 0.3em;
}
a.manpage {
font-style: normal;
font-weight: bold;
font-family: "Courier New", Courier, monospace;
}