peps/_static/style.css

469 lines
10 KiB
CSS

@charset "UTF-8";
/* Styles for PEPs */
/*
* `initial` works like undefined variables, so `var(initial, x)` will resolve to `x`.
* A space means an empty value, so `var( , x) y` will resolve to `y`.
*/
@media (prefers-color-scheme: dark) {
:root {
--light: ;
--dark: initial;
}
}
@media (prefers-color-scheme: light) {
:root {
--dark: ;
--light: initial;
}
}
:root[data-colour_scheme="dark"] {
--light: ;
--dark: initial;
}
:root[data-colour_scheme="light"] {
--dark: ;
--light: initial;
}
/* Set master colours */
:root {
--colour-background: var(--light, white) var(--dark, #111);
--colour-background-accent-strong: var(--light, #ccc) var(--dark, #444);
--colour-background-accent-medium: var(--light, #ddd) var(--dark, #333);
--colour-background-accent-light: var(--light, #eee) var(--dark, #222);
--colour-text: var(--light, #333) var(--dark, #ccc);
--colour-text-strong: var(--light, #222) var(--dark, #ddd);
--colour-links: var(--light, #069) var(--dark, #8bf);
--colour-links-light: var(--light, #057) var(--dark, #acf);
--colour-scrollbar: var(--light, #ccc) var(--dark, #333);
--colour-rule-strong: var(--light, #888) var(--dark, #777);
--colour-rule-light: var(--light, #ddd) var(--dark, #222);
--colour-inline-code-bg: var(--light, #eee) var(--dark, #333);
--colour-inline-code-text: var(--light, #222) var(--dark, #ccc);
--colour-error: var(--light, #faa) var(--dark, #800);
--colour-warning: var(--light, #fca) var(--dark, #840);
--colour-caution: var(--light, #ffa) var(--dark, #550);
--colour-attention: var(--light, #bdf) var(--dark, #045);
--colour-tip: var(--light, #bfc) var(--dark, #041);
}
img.invert-in-dark-mode {
filter: var(--dark, invert(1) hue-rotate(.5turn));
}
/* Set master rules */
* {box-sizing: border-box}
:root {color-scheme: light dark}
html {
overflow-y: scroll;
line-height: 1.5;
font-size: 1rem;
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
}
body {
margin: 0;
color: var(--colour-text);
background-color: var(--colour-background);
}
section#pep-page-section {
padding: 0.25rem;
}
/* This is likely very close to the browser default, but we make it a variable
* so it can be used in other rules. */
:root {
--paragraph-margin-vertical: 1em;
}
p {
margin: var(--paragraph-margin-vertical) 0;
}
/* Header rules */
h1 {
font-size: 2rem;
font-weight: bold;
}
h2 {
font-size: 1.6rem;
font-weight: bold;
}
h3 {
font-size: 1.4rem;
font-weight: normal;
}
h4 {
font-size: 1.2rem;
font-weight: normal;
}
h5,
h6 {
font-size: 1rem;
font-weight: bold;
}
/* Anchor link rules */
a,
a:active,
a:visited {
color: var(--colour-links);
display: inline;
overflow-wrap: anywhere;
text-decoration-color: var(--colour-background-accent-strong);
}
a:hover,
a:focus {
text-decoration-color: var(--colour-rule-strong);
}
/* Blockquote rules */
blockquote {
font-style: italic;
border-left: 1px solid var(--colour-rule-strong);
padding: .5rem 1rem;
}
blockquote em {
font-style: normal;
}
cite {
font-style: italic;
}
/* Code rules (code literals and Pygments highlighting blocks) */
code,
pre {
font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
font-size: 0.875rem;
-webkit-hyphens: none;
hyphens: none;
}
code {
overflow-wrap: anywhere;
}
code.literal {
background-color: var(--colour-inline-code-bg);
color: var(--colour-inline-code-text);
font-size: .8em;
padding: 1px 2px 1px;
}
pre {
overflow-x: auto;
padding: .5rem .75rem;
white-space: pre;
}
.good pre {
border-left: 3px solid rgba(74, 182, 93, 1);
}
.bad pre {
border-left: 3px solid rgb(244, 76, 78);
}
.maybe pre {
border-left: 3px solid rgb(244, 227, 76);
}
/* Contents rules */
details > summary {
cursor: pointer;
font-size: 1.6rem;
font-weight: bold;
margin-bottom: 1em;
}
details > summary:hover {
text-decoration: underline;
}
/* Definition list rules */
dl dt {
font-weight: bold;
}
dl dd {
margin-bottom: 0.5rem;
}
/* Horizontal rule rule */
hr {
border: 0;
border-top: 1px solid var(--colour-rule-light);
}
/* Image rules */
img {
max-width: 100%;
}
a img {
display: block;
margin: 0 auto;
}
/* List rules */
ol.loweralpha {list-style: lower-alpha}
ol.upperalpha {list-style: upper-alpha}
ol.lowerroman {list-style: lower-roman}
ol.upperroman {list-style: upper-roman}
/* We can't express this as a single rule using `not(.simple)`, because when a
* simple list is nested inside another simple list, the inner list is not given
* a class. So instead we use two rules, one more specific than the other. */
#pep-content ol li,
#pep-content ul li {
margin: var(--paragraph-margin-vertical) 0;
}
#pep-content ol.simple li,
#pep-content ul.simple li {
margin: 0 0;
}
/* Maths rules */
sub,
sup {
font-size: .75em;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {top: -0.5em}
sub {bottom: -0.25em}
/* Table rules */
div.table-wrapper {
overflow-x: auto;
}
table {
width: 100%;
border-collapse: collapse;
border: 1px solid var(--colour-background-accent-strong);
}
table caption {
margin: 1rem 0 .75rem;
}
table thead tr {
background-color: var(--colour-background-accent-medium);
color: var(--colour-text-strong);
}
table tbody tr {
border-top: 1px solid var(--colour-background-accent-strong);
}
table th,
table td {
text-align: left;
padding: 0.25rem 0.5rem 0.2rem;
}
table.pep-zero-table tr td:nth-child(1),
table.pep-zero-table tr td:nth-child(2) {
white-space: nowrap;
}
table th + th,
table td + td {
border-left: 1px solid var(--colour-background-accent-strong);
}
/* Common column widths for PEP status tables */
table.pep-zero-table tr td:nth-child(1) {
width: 5%;
}
table.pep-zero-table tr td:nth-child(2) {
width: 7%;
}
table.pep-zero-table tr td:nth-child(3),
table.pep-zero-table tr td:nth-child(4){
width: 41%;
}
table.pep-zero-table tr td:nth-child(5) {
width: 6%;
}
/* Authors & Sponsors table */
#authors-owners table td,
#authors-owners table th {
width: 50%;
}
/* Breadcrumbs rules */
section#pep-page-section > header {
border-bottom: 1px solid var(--colour-rule-light);
}
section#pep-page-section > header > h1 {
font-size: 1.1rem;
margin: 0;
display: inline-block;
padding-right: .6rem;
border-right: 1px solid var(--colour-rule-strong);
}
ul.breadcrumbs {
margin: 0;
padding: .5rem 0 .5rem .4rem;
list-style: none;
display: inline-block;
}
ul.breadcrumbs li {
display: inline;
}
ul.breadcrumbs a {
text-decoration: none;
}
/* Dark mode toggle rules */
#colour-scheme-cycler {
background: transparent;
border: none;
padding: 0;
cursor: pointer;
width: 1.2rem;
height: 1.2rem;
float: right;
transform: translate(0, 50%);
}
#colour-scheme-cycler svg {
color: var(--colour-rule-strong);
height: 1.2rem;
width: 1.2rem;
display: none;
}
:root[data-colour_scheme="auto"] #colour-scheme-cycler svg.colour-scheme-icon-when-auto {display: initial}
:root[data-colour_scheme="dark"] #colour-scheme-cycler svg.colour-scheme-icon-when-dark {display: initial}
:root[data-colour_scheme="light"] #colour-scheme-cycler svg.colour-scheme-icon-when-light {display: initial}
/* Admonitions rules */
div.admonition {
background-color: var(--colour-background-accent-medium);
margin-bottom: 1rem;
margin-top: 1rem;
padding: 0.5rem 0.75rem;
}
div.admonition a {
color: var(--colour-links-light);
}
div.danger,
div.error {
background-color: var(--colour-error);
}
div.warning {
background-color: var(--colour-warning);
}
div.attention,
div.caution {
background-color: var(--colour-caution);
}
div.important {
background-color: var(--colour-attention);
}
div.hint,
div.tip {
background-color: var(--colour-tip);
}
p.admonition-title {
font-weight: bold;
}
/* PEP Header / references rules */
dl.rfc2822,
dl.footnote {
display: grid;
grid-template-columns: fit-content(30%) auto;
width: 100%;
}
dl.footnote {
border-top: 1px solid var(--colour-rule-strong);
line-height: 1.875;
}
dl.rfc2822 > dt,
dl.rfc2822 > dd {
padding: .1rem .3rem .1rem;
}
dl.footnote > dt,
dl.footnote > dd {
padding: .25rem .5rem .2rem;
border-bottom: 1px solid var(--colour-rule-strong);
}
dl.rfc2822 > dt {
text-align: right;
}
dl.footnote > dt {
font-weight: normal;
border-right: 1px solid var(--colour-background);
}
dl.rfc2822 > dd,
dl.footnote > dd {
margin: 0;
}
/* Sidebar formatting */
#pep-sidebar {
overflow-y: auto;
position: sticky;
top: 0;
height: 100vh;
}
#pep-sidebar > h2 {
font-size: 1.4rem;
}
#contents ol,
#contents ul,
#pep-sidebar ol,
#pep-sidebar ul {
padding: 0;
margin: 0 0 0 1.5rem;
}
#pep-sidebar ul {
font-size: .9rem;
margin-left: 1rem;
}
#pep-sidebar ul a {
text-decoration: none;
}
#source {
padding-bottom: 2rem;
font-weight: bold;
}
.reference.external > strong {
font-weight: normal; /* Fix strong links for :pep: and :rfc: roles */
}
.visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip-path: polygon(0px 0px, 0px 0px,0px 0px, 0px 0px) !important;
white-space: nowrap !important;
border: 0 !important;
}
/* Sticky banners */
/* Default styles, sticky for larger screens */
.sticky-banner {
top: 0;
position: sticky;
z-index: 1;
}
/* Override for smaller screens, non-sticky */
@media (max-width: 600px) {
.sticky-banner {
position: static;
padding: 5px;
font-size: 12px;
}
}
.close-button {
cursor: pointer;
position: absolute;
top: 0;
right: 0;
padding: 0.5em;
font-size: 1.5em;
border: none;
background: transparent;
color: inherit;
margin-top: 0;
}