This PR adds the ability to collapse section in the docs sidebar (which are persistent until you close the tab), and some design facelift to the docs, which makes its design close to the site as well as polishing up many elements and interactions (like moving the search to a modal and making the table of content visible in smaller breakpoints). <img width="600" height="2270" alt="Screenshot 2025-11-28 at 5 26@2x" src="https://github.com/user-attachments/assets/3a8606c6-f74f-4bd2-84c8-d7a67ff97564" /> Release Notes: - N/A
453 lines
7.8 KiB
CSS
453 lines
7.8 KiB
CSS
/* Base styles and content styles */
|
|
|
|
@import "variables.css";
|
|
|
|
:root {
|
|
/* Browser default font-size is 16px, this way 1 rem = 10px */
|
|
font-size: 62.5%;
|
|
color-scheme: var(--color-scheme);
|
|
}
|
|
|
|
html {
|
|
font-family: var(--font);
|
|
color: var(--fg);
|
|
background-color: var(--bg);
|
|
text-size-adjust: none;
|
|
-webkit-text-size-adjust: none;
|
|
|
|
text-rendering: geometricPrecision !important;
|
|
-webkit-font-smoothing: antialiased !important;
|
|
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.005);
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font-size: 1.6rem;
|
|
overflow: hidden;
|
|
height: 100vh;
|
|
overscroll-behavior-y: none;
|
|
}
|
|
|
|
#body-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100vh;
|
|
overflow: hidden;
|
|
}
|
|
|
|
code {
|
|
font-family: var(--mono-font) !important;
|
|
font-size: var(--code-font-size);
|
|
direction: ltr !important;
|
|
}
|
|
|
|
/* make long words/inline code not x overflow */
|
|
main {
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.noise-pattern {
|
|
pointer-events: none;
|
|
user-select: none;
|
|
z-index: 105;
|
|
position: absolute;
|
|
inset: 0;
|
|
background-size: 180px;
|
|
background-repeat: repeat;
|
|
opacity: var(--noise-opacity);
|
|
}
|
|
|
|
/* make wide tables scroll if they overflow */
|
|
.table-wrapper {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6 {
|
|
font-family: var(--title-font);
|
|
font-weight: 480;
|
|
color: var(--title-color);
|
|
}
|
|
|
|
/* Don't change font size in headers. */
|
|
h1 code,
|
|
h2 code,
|
|
h3 code,
|
|
h4 code,
|
|
h5 code,
|
|
h6 code {
|
|
font-size: unset;
|
|
}
|
|
|
|
.left {
|
|
float: left;
|
|
}
|
|
.right {
|
|
float: right;
|
|
}
|
|
.boring {
|
|
opacity: 0.6;
|
|
}
|
|
.hide-boring .boring {
|
|
display: none;
|
|
}
|
|
.hidden {
|
|
display: none !important;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 3.4rem;
|
|
}
|
|
|
|
h2 {
|
|
padding-bottom: 1rem;
|
|
border-bottom: 1px solid;
|
|
border-color: var(--border-light);
|
|
}
|
|
|
|
h3 {
|
|
font-size: 2rem;
|
|
padding-bottom: 0.8rem;
|
|
border-bottom: 1px dashed;
|
|
border-color: var(--border-light);
|
|
}
|
|
|
|
h4 {
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
h5 {
|
|
font-size: 1.6rem;
|
|
}
|
|
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5 {
|
|
margin-block-start: 1.5em;
|
|
margin-block-end: 0;
|
|
}
|
|
|
|
code:focus-visible,
|
|
pre:focus-visible,
|
|
li:focus-visible,
|
|
button:focus-visible,
|
|
a:focus-visible {
|
|
outline: 3px solid #094ece80;
|
|
}
|
|
|
|
.header + .header h3,
|
|
.header + .header h4,
|
|
.header + .header h5 {
|
|
margin-block-start: 1em;
|
|
}
|
|
|
|
h1:target::before,
|
|
h2:target::before,
|
|
h3:target::before,
|
|
h4:target::before,
|
|
h5:target::before,
|
|
h6:target::before {
|
|
display: inline-block;
|
|
content: "»";
|
|
margin-inline-start: -30px;
|
|
width: 30px;
|
|
}
|
|
|
|
hr {
|
|
border: 0px solid;
|
|
color: transparent;
|
|
width: 100%;
|
|
height: 1px;
|
|
background-color: var(--border-light);
|
|
}
|
|
|
|
/* This is broken on Safari as of version 14, but is fixed
|
|
in Safari Technology Preview 117 which I think will be Safari 14.2.
|
|
https://bugs.webkit.org/show_bug.cgi?id=218076
|
|
*/
|
|
:target {
|
|
/* Safari does not support logical properties */
|
|
scroll-margin-top: calc(var(--menu-bar-height) + 2rem);
|
|
}
|
|
|
|
.page-wrapper {
|
|
box-sizing: border-box;
|
|
background-color: var(--bg);
|
|
display: flex;
|
|
flex: 1;
|
|
overflow: hidden;
|
|
min-height: 0;
|
|
}
|
|
|
|
.page {
|
|
outline: 0;
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
overscroll-behavior-y: none;
|
|
min-width: 0;
|
|
position: relative;
|
|
}
|
|
|
|
.no-js .page-wrapper,
|
|
.js:not(.sidebar-resizing) .page-wrapper {
|
|
transition:
|
|
margin-left 0.3s ease,
|
|
transform 0.3s ease; /* Animation: slide away */
|
|
}
|
|
[dir="rtl"] .js:not(.sidebar-resizing) .page-wrapper {
|
|
transition:
|
|
margin-right 0.3s ease,
|
|
transform 0.3s ease; /* Animation: slide away */
|
|
}
|
|
|
|
.content {
|
|
padding: 48px 32px 0 32px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 36px;
|
|
}
|
|
|
|
.content main {
|
|
margin-inline-start: auto;
|
|
margin-inline-end: auto;
|
|
max-width: var(--content-max-width);
|
|
}
|
|
|
|
.content p {
|
|
line-height: 1.625em;
|
|
}
|
|
.content div.video {
|
|
z-index: 150;
|
|
margin-top: 1rem;
|
|
border: 1px solid;
|
|
border-color: var(--border);
|
|
border-radius: 8px;
|
|
overflow: clip;
|
|
}
|
|
.content div.video iframe {
|
|
margin: 0;
|
|
}
|
|
.content ol {
|
|
marker: none;
|
|
line-height: 1.8;
|
|
padding-left: 2em;
|
|
::marker {
|
|
font-size: 1.4rem;
|
|
}
|
|
li {
|
|
padding-left: 0;
|
|
}
|
|
}
|
|
.content ul {
|
|
line-height: 1.8;
|
|
padding-left: 1.8em;
|
|
}
|
|
.content a {
|
|
text-decoration: underline;
|
|
text-decoration-color: var(--link-line-decoration);
|
|
}
|
|
.content a:hover {
|
|
text-decoration-color: var(--link-line-decoration-hover);
|
|
}
|
|
.content img,
|
|
.content video {
|
|
position: relative;
|
|
z-index: 150;
|
|
max-width: 100%;
|
|
background-color: var(--media-bg);
|
|
border: 1px solid;
|
|
border-color: var(--border);
|
|
border-radius: 8px;
|
|
overflow: clip;
|
|
}
|
|
.content .header:link,
|
|
.content .header:visited {
|
|
color: var(--title-color);
|
|
}
|
|
.content .header:link,
|
|
.content .header:visited:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
iframe {
|
|
margin-top: 1rem;
|
|
margin-bottom: 10rem;
|
|
}
|
|
|
|
table {
|
|
margin-top: 1.4rem;
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-size: 1.4rem;
|
|
}
|
|
table td {
|
|
padding: 4px 12px;
|
|
border: 1px var(--table-border-color) solid;
|
|
}
|
|
table thead {
|
|
background: var(--table-header-bg);
|
|
}
|
|
table thead td {
|
|
font-weight: 700;
|
|
border: none;
|
|
}
|
|
table thead th {
|
|
padding: 6px 12px;
|
|
color: var(--full-contrast);
|
|
text-align: left;
|
|
border: 1px var(--table-border-color) solid;
|
|
}
|
|
table thead tr {
|
|
border: 1px var(--table-border-color) solid;
|
|
}
|
|
/* Alternate background colors for rows */
|
|
table tbody tr:nth-child(2n) {
|
|
background: var(--table-alternate-bg);
|
|
}
|
|
|
|
blockquote {
|
|
margin: auto;
|
|
margin-top: 1rem;
|
|
padding: 1rem 1.25rem;
|
|
color: var(--full-contrast);
|
|
background-color: var(--quote-bg);
|
|
border: 1px solid var(--quote-border);
|
|
}
|
|
|
|
blockquote > p {
|
|
margin: 0;
|
|
padding-left: 2.6rem;
|
|
font-size: 1.4rem;
|
|
}
|
|
|
|
blockquote:before {
|
|
--size: 1.4rem;
|
|
position: absolute;
|
|
content: "ⓘ";
|
|
margin: 0.3rem 0;
|
|
width: var(--size);
|
|
height: var(--size);
|
|
font-size: var(--size);
|
|
font-weight: bold;
|
|
color: var(--icons);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
line-height: 1.625em;
|
|
}
|
|
|
|
blockquote .warning:before {
|
|
background-color: var(--quote-bg);
|
|
}
|
|
|
|
.warning {
|
|
margin: auto;
|
|
padding: 1rem 1.25rem;
|
|
color: var(--full-contrast);
|
|
background-color: var(--warning-bg);
|
|
border: 1px solid var(--warning-border);
|
|
}
|
|
|
|
.warning > p {
|
|
margin: 0;
|
|
padding-left: 2.6rem;
|
|
font-size: 1.4rem;
|
|
}
|
|
|
|
.warning:before {
|
|
--size: 1.4rem;
|
|
position: absolute;
|
|
content: "ⓘ";
|
|
margin: 0.3rem 0;
|
|
width: var(--size);
|
|
height: var(--size);
|
|
font-size: var(--size);
|
|
font-weight: bold;
|
|
color: var(--warning-icon);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
line-height: 1.625em;
|
|
}
|
|
|
|
kbd {
|
|
background-color: rgba(8, 76, 207, 0.1);
|
|
border-radius: 4px;
|
|
border: solid 1px var(--popover-border);
|
|
box-shadow: inset 0 -1px 0 var(--theme-hover);
|
|
display: inline-block;
|
|
font-size: var(--code-font-size);
|
|
font-family: var(--mono-font);
|
|
line-height: 10px;
|
|
padding: 4px 5px;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
:not(.footnote-definition) + .footnote-definition,
|
|
.footnote-definition + :not(.footnote-definition) {
|
|
margin-block-start: 2em;
|
|
}
|
|
.footnote-definition {
|
|
font-size: 1.4rem;
|
|
margin: 0.5em 0;
|
|
border-bottom: 1px solid;
|
|
border-color: var(--divider);
|
|
}
|
|
.footnote-definition p {
|
|
display: inline;
|
|
}
|
|
|
|
.tooltiptext {
|
|
position: absolute;
|
|
visibility: hidden;
|
|
color: #fff;
|
|
background-color: #333;
|
|
transform: translateX(
|
|
-50%
|
|
); /* Center by moving tooltip 50% of its width left */
|
|
left: -8px; /* Half of the width of the icon */
|
|
top: -35px;
|
|
font-size: 0.8em;
|
|
text-align: center;
|
|
border-radius: 6px;
|
|
padding: 5px 8px;
|
|
margin: 5px;
|
|
z-index: 1000;
|
|
}
|
|
.tooltipped .tooltiptext {
|
|
visibility: visible;
|
|
}
|
|
|
|
.result-no-output {
|
|
font-style: italic;
|
|
}
|
|
|
|
code:not(pre code).hljs {
|
|
color: var(--code-text) !important;
|
|
background-color: var(--code-bg) !important;
|
|
}
|
|
|
|
@media only screen and (max-width: 1020px) {
|
|
.content {
|
|
padding: 16px 32px 0 32px;
|
|
}
|
|
|
|
.content main {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
@media only screen and (max-width: 400px) {
|
|
.content {
|
|
padding: 16px 16px 0 16px;
|
|
}
|
|
}
|