@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; }