ecmarkup
Version:
Custom element definitions and core utilities for markup that specifies ECMAScript and related technologies.
1,631 lines (1,391 loc) • 32.1 kB
CSS
:root {
--foreground-color: #111;
--background-color: #fff;
--link-foreground-color: #206ca7;
--link-hover-foreground-color: #239dee;
--user-code-foreground-color: brown;
--var-foreground-color: #218379;
--referenced0-background-color: #ffff6c;
--referenced1-background-color: #ffa4a8;
--referenced2-background-color: #96e885;
--referenced3-background-color: #3eeed2;
--referenced4-background-color: #eacfb6;
--referenced5-background-color: #82ddff;
--referenced6-background-color: #ffbcf2;
--note-background-color: #e9fbe9;
--note-border-color: #52e052;
--note-editor-border-color: #faa;
--nt-link-foreground-color: #333;
--production-rhs-background-color: #f0f0f0;
--production-rhs-border-color: #888;
--params-foreground-color: #2aa198;
--opt-foreground-color: #b58900;
--title-foreground-color: #f60;
--caption-foreground-color: #555555;
--table-header-background-color: #eeeeee;
--highlight-background-color-start: rgba(249, 241, 172, 1);
--highlight-background-color-end: rgba(249, 241, 172, 0);
--highlight-background-color: rgba(249, 241, 172, 1);
--ins-background-color: #e0f8e0;
--ins-border-color: #396;
--del-background-color: #fee;
--control-foreground-color: #eee;
--control-dimmed-foreground-color: #666;
--control-background-color: #ddd;
--control-dark-background-color: #ccc;
--control-border-color: #aaa;
--control-light-border-color: #bbb;
--control-shortcut-background-color: #eee;
--control-shortcut-shadow-color: #ccc;
--control-dialog-fade-color: rgba(255, 255, 255, 0.6);
--control-link-foreground-color: #1567a2;
--control-input-background-color: #bbb;
--control-input-border-color: #999;
--menu-header-background-color: #bbb;
--menu-revealed-link-foreground-color: #206ca7;
--menu-unpin-hover-foreground-color: #bb1212;
--menu-trace-list-foreground-color: #999;
--menu-trace-list-background-color: #222;
--toolbox-tail-background-outside-color: rgba(0, 0, 0, 0);
--toolbox-tail-border-outside-color: rgba(204, 204, 204, 0);
--normative-optional-background-color: #ffeedd;
--normative-optional-border-color: #ff6600;
--attributes-tag-foreground-color: #884400;
--figure-background: #fff;
}
@supports (color-scheme: dark) {
@media only screen and (prefers-color-scheme: dark) {
:root {
--foreground-color: #fcfcfc;
--background-color: #171717;
--link-foreground-color: #439de2;
--link-hover-foreground-color: #80cafb;
--user-code-foreground-color: brown;
--var-foreground-color: #4fb6ab;
--referenced0-background-color: #6d6d1e;
--referenced1-background-color: #7e171c;
--referenced2-background-color: #1f6211;
--referenced3-background-color: #1a7a6b;
--referenced4-background-color: #7b4719;
--referenced5-background-color: #185870;
--referenced6-background-color: #731761;
--note-background-color: #1b2f1b;
--note-border-color: #31a331;
--note-editor-border-color: #801e1e;
--nt-link-foreground-color: #d0d0d0;
--production-rhs-background-color: #4d4d4d;
--production-rhs-border-color: #888;
--params-foreground-color: #57d0c7;
--opt-foreground-color: #d8b750;
--title-foreground-color: #f60;
--caption-foreground-color: #b0b0b0;
--table-header-background-color: #303030;
--highlight-background-color-start: rgba(114, 105, 24, 1);
--highlight-background-color-end: rgba(114, 105, 24, 0);
--highlight-background-color: rgba(114, 105, 24, 1);
--ins-background-color: #1e4a1e;
--ins-border-color: #61d89b;
--del-background-color: #4a1f1f;
--control-foreground-color: #101010;
--control-dimmed-foreground-color: #d0d0d0;
--control-background-color: #202020;
--control-dark-background-color: #303030;
--control-border-color: #505050;
--control-light-border-color: #606060;
--control-shortcut-background-color: #505050;
--control-shortcut-shadow-color: #000000;
--control-dialog-fade-color: rgba(0, 0, 0, 0.6);
--control-link-foreground-color: #7ebce9;
--control-input-background-color: #606060;
--control-input-border-color: #a0a0a0;
--menu-header-background-color: #404040;
--menu-revealed-link-foreground-color: #9bd0f7;
--menu-unpin-hover-foreground-color: #f29c9c;
--menu-trace-list-foreground-color: #222;
--menu-trace-list-background-color: #999;
--toolbox-tail-background-outside-color: rgba(0, 0, 0, 0);
--toolbox-tail-border-outside-color: rgba(204, 204, 204, 0);
--normative-optional-background-color: #352c24;
--normative-optional-border-color: #ff6600;
--attributes-tag-foreground-color: #e6a96d;
--figure-background: #fff;
}
}
}
/* IBM Plex fonts (Latin subset) have been downloaded from Google Fonts and modified to add support back in for the `zero` substitution (slashed zeroes) */
/* https://fonts.googleapis.com/css2?family=IBM%20Plex%20Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap */
@font-face {
font-family: 'IBM Plex Serif';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local(IBM Plex Serif Regular), local(IBMPlexSerif-Regular);
}
@font-face {
font-family: 'IBM Plex Serif';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local(IBM Plex Serif Bold), local(IBMPlexSerif-Bold);
}
@font-face {
font-family: 'IBM Plex Serif';
font-style: italic;
font-weight: 400;
font-display: swap;
src: local(IBM Plex Serif Italic), local(IBMPlexSerif-Italic);
}
@font-face {
font-family: 'IBM Plex Serif';
font-style: italic;
font-weight: 700;
font-display: swap;
src: local(IBM Plex Serif Bold Italic), local(IBMPlexSerif-BoldItalic);
}
/* https://fonts.googleapis.com/css2?family=IBM%20Plex%20Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap */
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local(IBM Plex Sans Regular), local(IBMPlexSans-Regular);
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local(IBM Plex Sans Bold), local(IBMPlexSans-Bold);
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: italic;
font-weight: 400;
font-display: swap;
src: local(IBM Plex Sans Italic), local(IBMPlexSans-Italic);
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: italic;
font-weight: 700;
font-display: swap;
src: local(IBM Plex Sans Bold Italic), local(IBMPlexSans-BoldItalic);
}
/* https://fonts.googleapis.com/css2?family=IBM%20Plex%20Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap */
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local(IBM Plex Mono Regular), local(IBMPlexMono-Regular);
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local(IBM Plex Mono Bold), local(IBMPlexMono-Bold);
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: italic;
font-weight: 400;
font-display: swap;
src: local(IBM Plex Mono Italic), local(IBMPlexMono-Italic);
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: italic;
font-weight: 700;
font-display: swap;
src: local(IBM Plex Mono Bold Italic), local(IBMPlexMono-BoldItalic);
}
html {
background-color: var(--background-color);
}
body {
display: flex;
word-wrap: break-word;
font-size: 18px;
line-height: 1.5;
font-family:
'IBM Plex Serif',
serif;
font-variant-numeric: slashed-zero;
padding: 0;
margin: 0;
color: var(--foreground-color);
}
#spec-container {
padding: 0 20px;
max-width: 80rem;
margin: 0 auto;
flex-grow: 1;
flex-basis: 66%;
box-sizing: border-box;
overflow: hidden;
padding-bottom: 1em;
}
h1.shortname { display: none; }
body.oldtoc {
margin: 0 auto;
}
span[aria-hidden='true'] {
font-size: 0;
white-space: pre;
}
a {
text-decoration: none;
color: var(--link-foreground-color);
}
a:visited {
color: var(--link-foreground-color);
}
a:hover {
text-decoration: underline;
color: var(--link-hover-foreground-color);
}
a.e-user-code,
span.e-user-code {
white-space: nowrap;
}
a.e-user-code::before,
span.e-user-code::before {
display: none;
color: var(--user-code-foreground-color);
background-color: var(--background-color);
border: 2pt solid var(--user-code-foreground-color);
padding: 0.3ex;
margin: 0 0.25em 0 0;
line-height: normal;
vertical-align: middle;
text-transform: uppercase;
font-family:
'IBM Plex Sans',
sans-serif;
font-weight: 900;
font-size: x-small;
}
a.e-user-code:hover::before,
span.e-user-code:hover::before {
background-color: var(--user-code-foreground-color);
color: var(--background-color);
}
html.show-ao-annotations a.e-user-code::before,
html.show-ao-annotations span.e-user-code::before {
display: inline-block;
}
a.e-user-code::before,
span.e-user-code::before {
content: 'UC';
}
code {
font-weight: bold;
font-family:
'Comic Code',
'IBM Plex Mono',
monospace;
white-space: pre;
}
pre code {
font-weight: inherit;
}
pre code.hljs {
background-color: var(--background-color);
margin: 0;
padding: 0;
}
ol.toc {
list-style: none;
padding-left: 0;
}
ol.toc ol.toc {
padding-left: 2ex;
list-style: none;
}
var {
border-radius: 5px;
color: var(--var-foreground-color);
transition: all 0.25s ease-out;
cursor: pointer;
padding: 0 4px;
margin: 0 -4px;
mix-blend-mode: multiply;
}
@supports (color-scheme: dark) {
@media only screen and (prefers-color-scheme: dark) {
var {
mix-blend-mode: normal;
}
}
}
var.field {
font: inherit;
color: inherit;
}
/* suppress line break opportunities between `.` and `[[FieldName]]` */
var.field::before {
content: '\2060';
}
var.referenced {
color: inherit;
}
var.referenced0 {
background-color: var(--referenced0-background-color);
}
var.referenced1 {
background-color: var(--referenced1-background-color);
}
var.referenced2 {
background-color: var(--referenced2-background-color);
}
var.referenced3 {
background-color: var(--referenced3-background-color);
}
var.referenced4 {
background-color: var(--referenced4-background-color);
}
var.referenced5 {
background-color: var(--referenced5-background-color);
}
var.referenced6 {
background-color: var(--referenced6-background-color);
}
emu-const {
font-family:
'IBM Plex Sans',
sans-serif;
font-variant: small-caps;
text-transform: uppercase;
}
emu-val {
font-weight: bold;
}
/* depth 1 */
emu-alg ol,
/* depth 4 */
emu-alg ol ol ol ol,
emu-alg ol.nested-thrice,
emu-alg ol.nested-twice ol,
emu-alg ol.nested-once ol ol {
list-style-type: decimal;
}
/* depth 2 */
emu-alg ol ol,
emu-alg ol.nested-once,
/* depth 5 */
emu-alg ol ol ol ol ol,
emu-alg ol.nested-four-times,
emu-alg ol.nested-thrice ol,
emu-alg ol.nested-twice ol ol,
emu-alg ol.nested-once ol ol ol {
list-style-type: lower-alpha;
}
/* depth 3 */
emu-alg ol ol ol,
emu-alg ol.nested-twice,
emu-alg ol.nested-once ol,
/* depth 6 */
emu-alg ol ol ol ol ol ol,
emu-alg ol.nested-lots,
emu-alg ol.nested-four-times ol,
emu-alg ol.nested-thrice ol ol,
emu-alg ol.nested-twice ol ol ol,
emu-alg ol.nested-once ol ol ol ol,
/* depth 7+ */
emu-alg ol.nested-lots ol {
list-style-type: lower-roman;
}
emu-eqn {
display: block;
margin-left: 4em;
}
emu-eqn.inline {
display: inline;
margin: 0;
}
emu-eqn div:first-child {
margin-left: -2em;
}
emu-note {
margin: 1em 0;
display: flex;
gap: 1em;
flex-direction: row;
color: inherit;
border-left: 5px solid var(--note-border-color);
background: var(--note-background-color);
padding: 10px 10px 10px 0;
overflow-x: auto;
}
emu-note > span.note {
white-space: nowrap;
flex-grow: 0;
flex-shrink: 1;
text-transform: uppercase;
padding-left: 5px;
}
emu-note[type='editor'] {
border-left-color: var(--note-editor-border-color);
}
emu-note > div.note-contents {
flex-grow: 1;
flex-shrink: 1;
overflow: auto;
}
emu-note > div.note-contents > p:first-of-type {
margin-top: 0;
}
emu-note > div.note-contents > p:last-of-type {
margin-bottom: 0;
}
emu-table:not(.code) td code {
white-space: normal;
}
emu-figure {
display: block;
}
emu-example {
display: block;
margin: 1em 3em;
}
emu-example figure figcaption {
margin-top: 0.5em;
text-align: left;
}
emu-figure figure,
emu-example figure,
emu-table figure {
display: flex;
flex-direction: column;
align-items: center;
}
emu-production {
display: block;
}
emu-grammar[type='example'] emu-production,
emu-grammar[type='definition'] emu-production {
margin-top: 1em;
margin-bottom: 1em;
margin-left: 5ex;
}
emu-grammar.inline,
emu-production.inline,
emu-grammar.inline emu-production emu-rhs,
emu-production.inline emu-rhs,
emu-grammar[collapsed] emu-production emu-rhs,
emu-production[collapsed] emu-rhs {
display: inline;
padding-left: 0.5ex;
margin-left: 0;
}
emu-grammar[collapsed] emu-production,
emu-production[collapsed] {
margin: 0;
}
emu-constraints {
font-size: 0.75em;
margin-right: 0.5ex;
}
emu-gann {
margin-right: 0.5ex;
}
emu-gann emu-t:last-child,
emu-gann emu-gprose:last-child,
emu-gann emu-nt:last-child {
margin-right: 0;
}
emu-geq {
margin-left: 0.5ex;
font-weight: bold;
}
emu-oneof {
font-weight: bold;
margin-left: 0.5ex;
}
emu-nt {
display: inline-block;
font-style: italic;
white-space: nowrap;
text-indent: 0;
}
emu-nt a,
emu-nt a:visited {
color: var(--nt-link-foreground-color);
}
emu-rhs emu-nt {
margin-right: 0.5ex;
}
emu-t {
display: inline-block;
font-family:
'IBM Plex Mono',
monospace;
font-weight: bold;
white-space: nowrap;
text-indent: 0;
}
emu-production emu-t {
margin-right: 0.5ex;
}
emu-rhs {
display: block;
padding-left: 75px;
text-indent: -25px;
}
emu-production:not([collapsed]) emu-rhs {
border: 0.2ex dashed transparent;
}
emu-production:not([collapsed]) emu-rhs:hover {
border-color: var(--production-rhs-border-color);
background-color: var(--production-rhs-background-color);
}
emu-mods {
font-size: 0.85em;
vertical-align: sub;
font-style: normal;
font-weight: normal;
}
emu-params,
emu-opt {
margin-right: 1ex;
font-family:
'IBM Plex Mono',
monospace;
}
emu-params,
emu-constraints {
color: var(--params-foreground-color);
}
emu-opt {
color: var(--opt-foreground-color);
}
emu-gprose {
font-size: 0.9em;
font-family:
'IBM Plex Sans',
sans-serif;
}
emu-production emu-gprose {
margin-right: 1ex;
}
h1.shortname {
color: var(--title-foreground-color);
font-size: 1.5em;
margin: 0;
}
h1.version {
color: var(--title-foreground-color);
font-size: 1.5em;
}
h1.title {
color: var(--title-foreground-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
position: relative;
}
h1 .secnum {
text-decoration: none;
margin-right: 5px;
}
h1 span.title {
order: 2;
}
h1 {
font-size: 2.67em;
margin-bottom: 0;
line-height: 1em;
}
h2 {
font-size: 2em;
}
h3 {
font-size: 1.56em;
}
h4 {
font-size: 1.25em;
}
h5 {
font-size: 1.11em;
}
h6 {
font-size: 1em;
}
pre code.hljs {
background: transparent;
}
emu-clause[id],
emu-annex[id],
emu-intro[id] {
scroll-margin-top: 2ex;
}
emu-intro h1,
emu-clause h1,
emu-annex h1 {
font-size: 2em;
}
emu-intro h2,
emu-clause h2,
emu-annex h2 {
font-size: 1.56em;
}
emu-intro h3,
emu-clause h3,
emu-annex h3 {
font-size: 1.25em;
}
emu-intro h4,
emu-clause h4,
emu-annex h4 {
font-size: 1.11em;
}
emu-intro h5,
emu-clause h5,
emu-annex h5 {
font-size: 1em;
}
emu-intro h6,
emu-clause h6,
emu-annex h6 {
font-size: 0.9em;
}
emu-intro emu-intro h1,
emu-clause emu-clause h1,
emu-annex emu-annex h1 {
font-size: 1.56em;
}
emu-intro emu-intro h2,
emu-clause emu-clause h2,
emu-annex emu-annex h2 {
font-size: 1.25em;
}
emu-intro emu-intro h3,
emu-clause emu-clause h3,
emu-annex emu-annex h3 {
font-size: 1.11em;
}
emu-intro emu-intro h4,
emu-clause emu-clause h4,
emu-annex emu-annex h4 {
font-size: 1em;
}
emu-intro emu-intro h5,
emu-clause emu-clause h5,
emu-annex emu-annex h5 {
font-size: 0.9em;
}
emu-intro emu-intro emu-intro h1,
emu-clause emu-clause emu-clause h1,
emu-annex emu-annex emu-annex h1 {
font-size: 1.25em;
}
emu-intro emu-intro emu-intro h2,
emu-clause emu-clause emu-clause h2,
emu-annex emu-annex emu-annex h2 {
font-size: 1.11em;
}
emu-intro emu-intro emu-intro h3,
emu-clause emu-clause emu-clause h3,
emu-annex emu-annex emu-annex h3 {
font-size: 1em;
}
emu-intro emu-intro emu-intro h4,
emu-clause emu-clause emu-clause h4,
emu-annex emu-annex emu-annex h4 {
font-size: 0.9em;
}
emu-intro emu-intro emu-intro emu-intro h1,
emu-clause emu-clause emu-clause emu-clause h1,
emu-annex emu-annex emu-annex emu-annex h1 {
font-size: 1.11em;
}
emu-intro emu-intro emu-intro emu-intro h2,
emu-clause emu-clause emu-clause emu-clause h2,
emu-annex emu-annex emu-annex emu-annex h2 {
font-size: 1em;
}
emu-intro emu-intro emu-intro emu-intro h3,
emu-clause emu-clause emu-clause emu-clause h3,
emu-annex emu-annex emu-annex emu-annex h3 {
font-size: 0.9em;
}
emu-intro emu-intro emu-intro emu-intro emu-intro h1,
emu-clause emu-clause emu-clause emu-clause emu-clause h1,
emu-annex emu-annex emu-annex emu-annex emu-annex h1 {
font-size: 1em;
}
emu-intro emu-intro emu-intro emu-intro emu-intro h2,
emu-clause emu-clause emu-clause emu-clause emu-clause h2,
emu-annex emu-annex emu-annex emu-annex emu-annex h2 {
font-size: 0.9em;
}
emu-intro emu-intro emu-intro emu-intro emu-intro emu-intro h1,
emu-clause emu-clause emu-clause emu-clause emu-clause emu-clause h1,
emu-annex emu-annex emu-annex emu-annex emu-annex emu-annex h1 {
font-size: 0.9em;
}
emu-clause,
emu-intro,
emu-annex {
display: block;
}
/* these values are twice the font-size for the <h1> titles for clauses */
emu-intro,
emu-clause,
emu-annex {
margin-top: 4em;
}
emu-intro emu-intro,
emu-clause emu-clause,
emu-annex emu-annex {
margin-top: 3.12em;
}
emu-intro emu-intro emu-intro,
emu-clause emu-clause emu-clause,
emu-annex emu-annex emu-annex {
margin-top: 2.5em;
}
emu-intro emu-intro emu-intro emu-intro,
emu-clause emu-clause emu-clause emu-clause,
emu-annex emu-annex emu-annex emu-annex {
margin-top: 2.22em;
}
emu-intro emu-intro emu-intro emu-intro emu-intro,
emu-clause emu-clause emu-clause emu-clause emu-clause,
emu-annex emu-annex emu-annex emu-annex emu-annex {
margin-top: 2em;
}
emu-intro emu-intro emu-intro emu-intro emu-intro emu-intro,
emu-clause emu-clause emu-clause emu-clause emu-clause emu-clause,
emu-annex emu-annex emu-annex emu-annex emu-annex emu-annex {
margin-top: 1.8em;
}
#spec-container > emu-intro:first-of-type,
#spec-container > emu-clause:first-of-type,
#spec-container > emu-annex:first-of-type {
margin-top: 0;
}
/* Figures and tables */
figure {
display: block;
overflow-x: auto;
margin: 1.5em 0;
}
figure object {
display: block;
margin: 0 auto;
}
figure table.real-table {
margin: 0 auto;
}
figure figcaption {
display: block;
color: var(--caption-foreground-color);
font-weight: bold;
text-align: center;
}
figure img {
background: var(--figure-background);
}
emu-table table {
margin: 0 auto;
}
emu-table table,
table.real-table {
border-collapse: collapse;
}
emu-table td,
emu-table th,
table.real-table td,
table.real-table th {
border: 1px solid var(--foreground-color);
padding: 0.4em;
vertical-align: baseline;
}
emu-table th,
emu-table thead td,
table.real-table th {
background-color: var(--table-header-background-color);
}
emu-table td {
background: transparent;
}
td[colspan]:not([colspan="1"]), th[colspan]:not([colspan="1"]) {
text-align: center;
}
/* Note: the left content edges of table.lightweight-table >tbody >tr >td
and div.display line up. */
table.lightweight-table {
border-collapse: collapse;
margin: 0 0 0 1.5em;
}
table.lightweight-table td,
table.lightweight-table th {
border: none;
padding: 0 0.5em;
vertical-align: baseline;
}
/* for non-clause-like link targets, apply a fading highlight
and a persistent focus-associated highlight */
@keyframes highlight-target-bg {
0% {
background-color: var(--highlight-background-color-start);
}
100% {
background-color: var(--highlight-background-color-end);
}
}
#spec-container :target:not(emu-annex, emu-clause, emu-intro, emu-note, body) {
animation: highlight-target-bg 2.5s ease-out;
}
#spec-container :target:focus-within:not(:has(:not(a))) {
animation: none;
background-color: var(--highlight-background-color);
}
/* diff styles */
ins {
background-color: var(--ins-background-color);
text-decoration: none;
border-bottom: 1px solid var(--ins-border-color);
}
del {
background-color: var(--del-background-color);
}
ins.block,
del.block,
emu-production > ins,
emu-production > del,
emu-grammar > ins,
emu-grammar > del {
display: block;
}
emu-rhs > ins,
emu-rhs > del {
display: inline;
}
tr.ins > td > ins {
border-bottom: none;
}
tr.ins > td {
background-color: var(--ins-background-color);
}
tr.del > td {
background-color: var(--del-background-color);
}
/* Menu Styles */
#menu-toggle {
font-size: 2em;
position: fixed;
top: 0;
left: 0;
width: 1.5em;
height: 1.5em;
z-index: 3;
visibility: hidden;
color: var(--control-link-foreground-color);
background-color: var(--background-color);
line-height: 1.5em;
text-align: center;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
cursor: pointer;
}
#menu {
display: flex;
flex-direction: column;
width: 33%;
height: 100vh;
max-width: 500px;
box-sizing: border-box;
background: var(--control-background-color);
overflow: hidden;
transition: opacity 0.1s linear;
padding: 0 5px;
position: fixed;
left: 0;
top: 0;
border-right: 2px solid var(--control-light-border-color);
z-index: 2;
}
.menu-spacer {
flex-basis: 33%;
max-width: 500px;
flex-grow: 0;
flex-shrink: 0;
}
#menu a {
color: var(--control-link-foreground-color);
}
#menu.active {
display: flex;
opacity: 1;
z-index: 2;
}
#menu-pins {
flex-grow: 1;
display: none;
}
#menu-pins.active {
display: block;
}
#menu-pins .unpin-all {
border: none;
background: var(--control-dark-background-color);
border-radius: 4px;
height: 18px;
font-size: 12px;
margin: 0 5px 0 10px;
font-family: 'IBM Plex Sans', sans-serif;
}
#menu-pins .unpin-all:hover {
background: var(--control-background-color);
}
#menu-pins-list {
margin: 0;
padding: 0;
counter-reset: pins-counter;
}
#menu-pins-list > li {
display: flex;
align-items: stretch;
gap: 4px;
margin: 3px 1px;
border-radius: 4px;
}
#menu-pins-list > li > a {
flex-grow: 1;
align-self: center;
}
#menu-pins-list > li::before,
#menu-pins-list > li > .unpin {
flex-shrink: 0;
flex-grow: 0;
text-align: center;
padding: 1px 3px;
border-radius: 4px;
background: none;
border: none;
}
#menu-pins-list > li::before,
#menu-pins-list > li > .unpin:hover {
background: var(--control-dark-background-color);
}
#menu-pins-list > li > .unpin,
#menu-pins .unpin-all {
cursor: pointer;
color: var(--foreground-color);
}
#menu-pins-list > li > .unpin:hover,
#menu-pins .unpin-all:hover {
color: var(--menu-unpin-hover-foreground-color);
}
#menu-pins-list > li::before {
content: counter(pins-counter);
counter-increment: pins-counter;
font-size: 16px;
}
#menu-toc > ol {
padding: 0;
flex-grow: 1;
}
#menu-toc > ol li {
padding: 0;
}
#menu-toc > ol,
#menu-toc > ol ol {
list-style-type: none;
margin: 0;
padding: 0;
}
#menu-toc > ol ol {
padding-left: 0.75em;
}
#menu-toc li {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
#menu-toc .item-toggle {
display: inline-block;
transform: rotate(0deg);
transition: transform 0.1s ease;
background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMC42MDUiIGhlaWdodD0iMTUuNTU1Ij48cGF0aCBmaWxsPSIjODg5IiBkPSJtMi44MjggMTUuNTU1IDcuNzc3LTcuNzc5TDIuODI4IDAgMCAyLjgyOGw0Ljk0OSA0Ljk0OEwwIDEyLjcyN2wyLjgyOCAyLjgyOHoiLz48L3N2Zz4);
background-repeat: no-repeat;
background-position: center;
background-size: auto 50%;
text-align: center;
width: 1em;
color: transparent;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
cursor: pointer;
}
#menu-toc .item-toggle-none {
display: inline-block;
width: 1em;
}
#menu-toc li.active > .item-toggle,
#menu-toc li.revealed > .item-toggle {
transform: rotate(90deg);
}
#menu-toc li > ol {
display: none;
}
#menu-toc li.active > ol {
display: block;
}
#menu-toc li.revealed > a {
background-color: var(--control-dark-background-color);
font-weight: bold;
}
#menu-toc li.revealed-leaf > a {
color: var(--menu-revealed-link-foreground-color);
}
#menu-toc li.revealed > ol {
display: block;
}
#menu-toc li > a {
padding: 2px 5px;
}
#menu > * {
margin-bottom: 5px;
}
.menu-pane-header {
padding: 2px 8px;
background-color: var(--menu-header-background-color);
font-weight: bold;
letter-spacing: 1px;
flex-grow: 0;
flex-shrink: 0;
font-size: 80%;
user-select: none;
}
.menu-pane-header emu-opt,
.menu-pane-header emu-t,
.menu-pane-header emu-nt {
margin-right: 0px;
display: inline;
color: inherit;
}
.menu-pane-header emu-rhs {
display: inline;
padding-left: 0px;
text-indent: 0px;
}
.menu-pane-header emu-geq {
margin-left: 0px;
}
.menu-pane-header a {
color: var(--control-link-foreground-color);
}
a.menu-pane-header-production {
color: inherit;
}
.menu-pane-header-production {
text-transform: none;
letter-spacing: 1.5px;
padding-left: 0.5em;
}
#menu-toc {
display: flex;
flex-direction: column;
width: 100%;
overflow: hidden;
flex-grow: 1;
}
#menu-toc ol.toc {
overflow-x: hidden;
overflow-y: auto;
}
#menu-search {
position: relative;
flex-grow: 0;
flex-shrink: 0;
width: 100%;
display: flex;
flex-direction: column;
max-height: 300px;
}
#menu-trace-list {
display: none;
}
#menu-search-box {
box-sizing: border-box;
display: block;
width: 100%;
margin: 5px 0 0 0;
font-size: 1em;
padding: 2px;
color: var(--foreground-color);
background-color: var(--control-input-background-color);
border: 1px solid var(--control-input-border-color);
}
#menu-search-results {
overflow-x: hidden;
overflow-y: auto;
}
li.menu-search-result-clause::before {
content: 'clause';
width: 40px;
display: inline-block;
text-align: right;
padding-right: 1ex;
color: var(--control-dimmed-foreground-color);
font-size: 75%;
}
li.menu-search-result-op::before {
content: 'op';
width: 40px;
display: inline-block;
text-align: right;
padding-right: 1ex;
color: var(--control-dimmed-foreground-color);
font-size: 75%;
}
li.menu-search-result-prod::before {
content: 'prod';
width: 40px;
display: inline-block;
text-align: right;
padding-right: 1ex;
color: var(--control-dimmed-foreground-color);
font-size: 75%;
}
li.menu-search-result-term::before {
content: 'term';
width: 40px;
display: inline-block;
text-align: right;
padding-right: 1ex;
color: var(--control-dimmed-foreground-color);
font-size: 75%;
}
#menu-search-results ul {
padding: 0 5px;
margin: 0;
}
#menu-search-results li {
white-space: nowrap;
text-overflow: ellipsis;
}
#menu-trace-list {
counter-reset: item;
margin: 0 0 0 20px;
padding: 0;
}
#menu-trace-list li {
display: block;
white-space: nowrap;
}
#menu-trace-list li .secnum::after {
content: ' ';
}
#menu-trace-list li::before {
content: counter(item) ' ';
background-color: var(--menu-trace-list-background-color);
counter-increment: item;
color: var(--menu-trace-list-foreground-color);
width: 20px;
height: 20px;
line-height: 20px;
display: inline-block;
text-align: center;
margin: 2px 4px 2px 0;
}
@media (max-width: 1000px) {
body {
margin: 0;
display: block;
}
#menu {
display: none;
padding-top: 3em;
width: 450px;
}
#menu.active {
position: fixed;
height: 100%;
left: 0;
top: 0;
right: 300px;
}
#menu-toggle {
visibility: visible;
}
#spec-container {
padding: 0 5px;
}
#references-pane-spacer {
display: none;
}
}
@media only screen and (max-width: 800px) {
#menu {
width: 100%;
}
h1 .secnum:empty {
margin: 0;
padding: 0;
}
}
/* Toolbox */
.toolbox-container {
position: absolute;
display: none;
padding-bottom: 7px;
}
.toolbox-container.active {
display: inline-block;
}
.toolbox {
position: relative;
background: var(--control-background-color);
border: 1px solid var(--control-border-color);
color: var(--control-foreground-color);
padding: 5px 7px;
border-radius: 3px;
}
.toolbox a {
text-decoration: none;
padding: 0 3px;
white-space: nowrap;
}
.toolbox a:hover {
text-decoration: underline;
}
.toolbox::after,
.toolbox::before {
top: 100%;
left: 15px;
border: solid transparent;
content: ' ';
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.toolbox::after {
border-color: var(--toolbox-tail-background-outside-color);
border-top-color: var(--control-border-color);
border-width: 10px;
margin-left: -10px;
}
.toolbox::before {
border-color: var(--toolbox-tail-border-outside-color);
border-top-color: var(--control-border-color);
border-width: 12px;
margin-left: -12px;
}
#references-pane-container {
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: none;
background: var(--control-background-color);
z-index: 1;
}
#references-pane-table-container {
overflow-x: hidden;
overflow-y: auto;
min-height: 35px;
max-height: 85vh;
}
#references-pane {
flex-grow: 1;
overflow: hidden;
display: flex;
flex-direction: column;
}
#references-pane > .menu-pane-header {
cursor: row-resize;
}
#references-pane-container.active {
display: flex;
}
#references-pane-close::after {
content: '\2716';
float: right;
cursor: pointer;
}
#references-pane table tbody {
vertical-align: baseline;
}
#references-pane table tr td:first-child {
text-align: right;
padding-right: 5px;
}
emu-normative-optional {
display: block;
}
emu-normative-optional::before {
display: block;
color: var(--attributes-tag-foreground-color);
content: "NORMATIVE OPTIONAL";
}
emu-normative-optional,
[normative-optional],
[deprecated],
[legacy] {
border-left: 5px solid var(--normative-optional-border-color);
padding: 0.5em;
background: var(--normative-optional-background-color);
}
.attributes-tag {
text-transform: uppercase;
color: var(--attributes-tag-foreground-color);
}
.attributes-tag a {
color: var(--attributes-tag-foreground-color);
}
/* Shortcuts help dialog */
#shortcuts-help {
position: fixed;
left: 5%;
margin: 0 auto;
right: 5%;
z-index: 10;
top: 10%;
top: calc(5vw + 5vh);
padding: 30px 90px;
max-width: 500px;
outline: solid 10000px var(--control-dialog-fade-color);
border-radius: 5px;
border-width: 1px 1px 0 1px;
background: var(--control-background-color);
display: none;
}
#shortcuts-help.active {
display: block;
}
#shortcuts-help ul {
padding: 0;
}
#shortcuts-help li {
display: flex;
justify-content: space-between;
}
#shortcuts-help code {
padding: 3px 10px;
border-radius: 3px;
border-width: 1px 1px 0 1px;
border-color: var(--control-light-border-color);
background-color: var(--control-shortcut-background-color);
box-shadow: inset 0 -1px 0 var(--control-shortcut-shadow-color);
}
#ecma-logo {
background: var(--figure-background);
}