/*
* Style sheet for the CSS3 specification,
* to be used in addition to http://www.w3.org/StyleSheets/TR/W3C-{WD,PR,REC}
*/
body {
counter-reset: exampleno figure issue;
max-width: 50em;
margin: 0 auto !important;
line-height: 1.5;
}
/******************************************************************************/
/* Sectioning */
/******************************************************************************/
/** Headings ******************************************************************/
h1, h2, h3, h4, h5, h6, dt {
page-break-after: avoid;
}
h2, h3, h5, h6 {
margin-top: 3em;
}
h4 {
margin-top: 4em;
}
/** Subheadings ***************************************************************/
h1 + h2,
#subtitle + h2 {
/* #subtitle is a subtitle in an H2 under the H1 */
margin-top: 0;
}
h2 + h3,
h3 + h4,
h4 + h5,
h5 + h6 {
margin-top: 1.2em; /* = 1 x line-height */
}
/** Section divider ***********************************************************/
/*
used to separate TMI into the second half of a section */
hr:not([title]) {
font-size: 1.5em;
text-align: center;
margin: 1em auto;
height: auto;
border: transparent solid 0;
background: transparent;
}
hr:not([title])::before {
content: "\1F411\2003\2003\1F411\2003\2003\1F411";
}
/* note:
with title separates document header from contents */
/******************************************************************************/
/* Paragraphs and Lists */
/******************************************************************************/
p {
margin: 1em 0;
}
dd > p:first-child,
li > p:first-child {
margin-top: 0;
}
ul, ol {
margin-left: 0;
padding-left: 2em;
}
li {
margin: 0.25em 2em 0.5em 0;
padding-left: 0;
}
dl dd {
margin: 0 0 1em 2em;
}
.head dd {
margin-bottom: 0;
}
/* Style for algorithms */
ol.algorithm ol {
border-left: 1px solid #90b8de;
margin-left: 1em;
}
ol.algorithm ol.algorithm {
border-left: none;
margin-left: 0;
}
/* Style for switch/case s */
dl.switch > dd > ol.only {
margin-left: 0;
}
dl.switch > dd > ol.algorithm {
margin-left: -2em;
}
dl.switch {
padding-left: 2em;
}
dl.switch > dt {
text-indent: -1.5em;
margin-top: 1em;
}
dl.switch > dt + dt {
margin-top: 0;
}
dl.switch > dt:before {
content: '\21AA';
padding: 0 0.5em 0 0;
display: inline-block;
width: 1em;
text-align: right;
line-height: 0.5em;
}
/* Style for paragraphs I know are in MD-genned lists */
[data-md] > :first-child {
margin-top: 0;
}
[data-md] > :last-child {
margin-bottom: 0;
}
/** Inline Lists **************************************************************/
/* This is mostly to make the list inside the CR exit criteria more compact. */
ol.inline, ol.inline li {
display: inline;
padding: 0; margin: 0;
}
ol.inline {
counter-reset: list-item;
}
ol.inline li {
counter-increment: list-item;
}
ol.inline li:before {
content: "(" counter(list-item) ") ";
font-weight: bold;
}
/** Terminology Markup ********************************************************/
/******************************************************************************/
/* Inline Markup */
/******************************************************************************/
/** Terminology Markup ********************************************************/
dfn { /* Defining instance */
font-weight: bolder;
}
a > i { /* Instance of term */
font-style: normal;
}
dt dfn code, code.idl {
font-size: inherit;
}
dfn var {
font-style: normal;
}
/** Change Marking ************************************************************/
del { color: red; text-decoration: line-through; }
ins { color: #080; text-decoration: underline; }
/** Miscellaneous improvements to inline formatting ***************************/
sup {
vertical-align: super;
font-size: 80%
}
/******************************************************************************/
/* Code */
/******************************************************************************/
/** General monospace/pre rules ***********************************************/
pre, code {
font-family: Menlo, Consolas, "DejaVu Sans Mono", monospace;
font-size: .9em;
page-break-inside: avoid;
}
pre {
margin-top: 1em;
margin-bottom: 1em;
overflow: auto;
}
/** Syntax-Highlighted Code ***************************************************/
.example pre[class*="language-"],
.example [class*="language-"] pre,
.example pre[class*="lang-"],
.example [class*="lang-"] pre {
background: transparent; /* Prism applies a gray background that doesn't work well in the template. */
}
/** Example Code **************************************************************/
div.html, div.xml,
pre.html, pre.xml {
padding: 0.5em;
margin: 1em 0;
position: relative;
clear: both;
color: #600;
}
pre.example,
pre.html,
pre.xml {
padding-top: 1.5em;
}
pre.illegal, .illegal pre
pre.deprecated, .deprecated pre {
color: red;
}
/** IDL fragments *************************************************************/
pre.idl {
/* Match blue propdef boxes */
padding: .5em 1em;
background: #DEF;
margin: 1.2em 0;
border-left: 0.5em solid #8CCBF2;
}
pre.idl :link, pre.idl :visited {
color:inherit;
background:transparent;
}
/** Inline CSS fragments ******************************************************/
.css.css, .property.property, .descriptor.descriptor {
color: #005a9c;
font-size: inherit;
font-family: inherit;
}
.css::before, .property::before, .descriptor::before {
content: "‘";
}
.css::after, .property::after, .descriptor::after {
content: "’";
}
.property, .descriptor {
/* Don't wrap property and descriptor names */
white-space: nowrap;
}
.type { /* CSS value */
font-style: italic;
}
pre .property::before, pre .property::after {
content: "";
}
/** Inline markup fragments ***************************************************/
code.html, code.xml {
color: #660000;
}
/** Autolinks produced using Bikeshed *****************************************/
[data-link-type="property"]::before,
[data-link-type="propdesc"]::before,
[data-link-type="descriptor"]::before,
[data-link-type="value"]::before,
[data-link-type="function"]::before,
[data-link-type="at-rule"]::before,
[data-link-type="selector"]::before,
[data-link-type="maybe"]::before {
content: "‘";
}
[data-link-type="property"]::after,
[data-link-type="propdesc"]::after,
[data-link-type="descriptor"]::after,
[data-link-type="value"]::after,
[data-link-type="function"]::after,
[data-link-type="at-rule"]::after,
[data-link-type="selector"]::after,
[data-link-type="maybe"]::after {
content: "’";
}
[data-link-type].production::before,
[data-link-type].production::after,
.prod [data-link-type]::before,
.prod [data-link-type]::after {
content: "";
}
[data-link-type=element] { font-family: monospace; }
[data-link-type=element]::before { content: "<" }
[data-link-type=element]::after { content: ">" }
[data-link-type=biblio] {
white-space: pre;
}
/******************************************************************************/
/* Links */
/******************************************************************************/
/** General Hyperlinks ********************************************************/
/* We hyperlink a lot, so make it less intrusive */
a:link, a:visited {
color: inherit;
text-decoration: none;
border-bottom: 1px solid silver;
}
@supports (text-decoration-color: silver) {
a:link, a:visited {
border-bottom: none;
text-decoration: underline;
text-decoration-color: silver;
}
a:visited {
text-decoration-style: dotted;
}
}
a.logo:link, a.logo:visited { /* backout above styling for W3C logo */
padding: 0;
border: none;
text-decoration: none;
}
/** Self-Links ****************************************************************/
/* Auto-generated links from an element to its own anchor, for usability */
.heading, .issue, .note, .example, li, dt {
position: relative;
}
a.self-link {
position: absolute;
top: 0;
left: -2.5em;
width: 2em;
height: 2em;
text-align: center;
border: none;
transition: opacity .2s;
opacity: .5;
}
a.self-link:hover {
opacity: 1;
}
.heading > a.self-link {
font-size: 83%;
}
li > a.self-link {
left: -3.5em;
}
dfn > a.self-link {
top: auto;
left: auto;
opacity: 0;
width: 1.5em;
height: 1.5em;
background: gray;
color: white;
font-style: normal;
transition: opacity .2s, background-color .2s, color .2s;
}
dfn:hover > a.self-link {
opacity: 1;
}
dfn > a.self-link:hover {
color: black;
}
a.self-link::before { content: "¶"; }
.heading > a.self-link::before { content: "§"; }
dfn > a.self-link::before { content: "#"; }
/******************************************************************************/
/* Images */
/******************************************************************************/
img {
border-style: none;
color: white;
}
figure, div.figure, div.sidefigure {
page-break-inside: avoid;
}
div.figure, p.figure, div.sidefigure, figure {
text-align: center;
margin: 2.5em 0;
}
div.figure pre, div.sidefigure pre, figure pre {
text-align: left;
display: table;
margin: 1em auto;
}
.figure table, figure table {
margin: auto;
}
div.sidefigure, figure.sidefigure {
float: right;
width: 50%;
margin: 0 0 0.5em 0.5em
}
div.figure img, div.sidefigure img, figure img,
div.figure object, div.sidefigure object, figure object {
display: block;
margin: auto;
max-width: 100%
}
p.caption, figcaption, caption {
text-align: center;
font-style: italic;
font-size: 90%;
}
p.caption:before, figcaption:before {
content: "Figure " counter(figure) ". ";
font-weight: bold;
}
p.caption, figcaption {
counter-increment: figure;
}
/* DL list is indented 2em, but figure inside it is not */
dd > div.figure, dd > figure { margin-left: -2em }
pre.ascii-art {
display: table; /* shrinkwrap */
margin: 1em auto;
}
/* Displaying the output of text layout, particularly when
line-breaking is being invoked, and thus having a
visible width is good. */
pre.output {
margin: 1em;
border: solid thin silver;
padding: 0.25em;
display: table;
}
/******************************************************************************/
/* Colored Boxes */
/******************************************************************************/
.issue, .note, .example, .why, .advisement, blockquote {
padding: .5em;
border: .5em;
border-left-style: solid;
page-break-inside: avoid;
}
span.issue, span.note {
padding: .1em .5em .15em;
border-right-style: solid;
}
div.issue,
div.note,
div.example,
details.why,
blockquote {
margin: 1em auto;
}
.note > p:first-child,
.issue > p:first-child,
blockquote > :first-child {
margin-top: 0;
}
blockquote > :last-child {
margin-bottom: 0;
}
/** Blockquotes ***************************************************************/
blockquote {
border-color: silver;
}
/** Open issue ****************************************************************/
/* not intended for CR+ publication */
.issue {
border-color: #E05252;
background: #FBE9E9;
counter-increment: issue;
overflow: auto;
}
.issue:before {
content: "Issue " counter(issue);
padding-right: 1em;
text-transform: uppercase;
color: #E05252;
}
/** Example *******************************************************************/
.example {
border-color: #E0CB52;
background: #FCFAEE;
counter-increment: exampleno;
overflow: auto;
clear: both;
}
.example:before {
color: #B9AB2D;
font-family: sans-serif;
}
.example:before {
content: "Example";
content: "Example " counter(exampleno);
min-width: 7.5em;
text-transform: uppercase;
display: block;
}
.illegal.example:before,
.illegal.example:before {
content: "Invalid Example";
content: "Invalid Example" counter(exampleno);
color: red;
}
/** Non-normative Note ********************************************************/
.note, .why {
border-color: #52E052;
background: #E9FBE9;
overflow: auto;
}
/** Advisement Box ************************************************************/
/* for attention-grabbing normative statements */
.advisement {
border-color: orange;
border-style: none solid;
background: #FFEECC;
text-align: center;
}
strong.advisement {
display: block;
}
/*.advisement:before { color: #FF8800; } */
/** ??? ***********************************************************************/
details.why {
border-color: #52E052;
background: #E9FBE9;
display: block;
}
details.why > summary {
font-style: italic;
display: block;
}
details.why[open] > summary {
border-bottom: 1px silver solid;
}
/** Spec Obsoletion Notice ****************************************************/
/* obnoxious obsoletion notice for older/abandoned specs. */
details.annoying-warning {
display: block;
}
details.annoying-warning[open] {
background: #fdd;
color: red;
font-weight: bold;
text-align: center;
padding: .5em;
border: thick solid red;
border-radius: 1em;
}
@media not print {
details.annoying-warning[open] {
position: fixed;
left: 1em;
right: 1em;
bottom: 1em;
z-index: 1000;
}
}
details.annoying-warning:not([open]) > summary {
background: #fdd;
color: red;
font-weight: bold;
text-align: center;
padding: .5em;
}
/******************************************************************************/
/* Tables */
/******************************************************************************/
/** Property/Descriptor Definition Tables *************************************/
table.propdef, table.propdef-extra,
table.descdef, table.definition-table {
page-break-inside: avoid;
width: 100%;
margin: 1.2em 0;
border-left: 0.5em solid #8CCBF2;
padding: 0.5em 1em;
background: #DEF;
border-spacing: 0;
}
table.propdef td, table.propdef-extra td,
table.descdef td, table.definition-table td,
table.propdef th, table.propdef-extra th,
table.descdef th, table.definition-table th {
padding: 0.5em;
vertical-align: baseline;
border-bottom: 1px solid #bbd7e9;
}
table.propdef > tbody > tr:last-child th,
table.propdef-extra > tbody > tr:last-child th,
table.descdef > tbody > tr:last-child th,
table.definition-table > tbody > tr:last-child th,
table.propdef > tbody > tr:last-child td,
table.propdef-extra > tbody > tr:last-child td,
table.descdef > tbody > tr:last-child td,
table.definition-table > tbody > tr:last-child td {
border-bottom: 0;
}
table.propdef th,
table.propdef-extra th,
table.descdef th,
table.definition-table th {
font-style: italic;
font-weight: normal;
width: 8.3em;
padding-left: 1em;
}
/* For when values are extra-complex and need formatting for readability */
table td.pre {
white-space: pre-wrap;
}
/* A footnote at the bottom of a propdef */
table.propdef td.footnote,
table.propdef-extra td.footnote,
table.descdef td.footnote,
table.definition-table td.footnote {
padding-top: 0.6em;
}
table.propdef td.footnote:before,
table.propdef-extra td.footnote:before,
table.descdef td.footnote:before,
table.definition-table td.footnote:before {
content: " ";
display: block;
height: 0.6em;
width: 4em;
border-top: thin solid;
}
/** Profile Tables ************************************************************/
/* table of required features in a CSS profile */
table.features th {
background: #00589f;
color: #fff;
text-align: left;
padding: 0.2em 0.2em 0.2em 0.5em;
}
table.features td {
vertical-align: top;
border-bottom: 1px solid #ccc;
padding: 0.3em 0.3em 0.3em 0.7em;
}
/** Data tables (and properly marked-up proptables) ***************************/
/*
highlights structural relationships in a table
when correct markup is used (e.g. thead/tbody, th vs. td, scope attribute)
Use class="complex data" for particularly complicated tables --
(This will draw more lines: busier, but clearer.)
Use class="long" on table cells with paragraph-like contents
(This will adjust text alignment accordingly.)
*/
.data, .proptable {
margin: 1em auto;
border-collapse: collapse;
width: 100%;
border: hidden;
}
.data {
text-align: center;
width: auto;
}
.data caption {
width: 100%;
}
.data td, .data th,
.proptable td, .proptable th {
padding: 0.5em;
border-width: 1px;
border-color: silver;
border-top-style: solid;
}
.data thead td:empty {
padding: 0;
border: 0;
}
.data thead th[scope="row"],
.proptable thead th[scope="row"] {
text-align: right;
color: inherit;
}
.data thead,
.proptable thead,
.data tbody,
.proptable tbody {
color: inherit;
border-bottom: 2px solid;
}
.data colgroup {
border-left: 2px solid;
}
.data tbody th:first-child,
.proptable tbody th:first-child ,
.data tbody td[scope="row"]:first-child,
.proptable tbody td[scope="row"]:first-child {
text-align: right;
color: inherit;
border-right: 2px solid;
border-top: 1px solid silver;
padding-right: 1em;
}
.data.define td:last-child {
text-align: left;
}
.data tbody th[rowspan],
.proptable tbody th[rowspan],
.data tbody td[rowspan],
.proptable tbody td[rowspan]{
border-left: 1px solid silver;
}
.data tbody th[rowspan]:first-child,
.proptable tbody th[rowspan]:first-child,
.data tbody td[rowspan]:first-child,
.proptable tbody td[rowspan]:first-child{
border-left: 0;
border-right: 1px solid silver;
}
.complex.data th,
.complex.data td {
border: 1px solid silver;
}
.data td.long {
vertical-align: baseline;
text-align: left;
}
.data img {
vertical-align: middle;
}
/******************************************************************************/
/* Indices */
/******************************************************************************/
/** Table of Contents *********************************************************/
/* ToC not indented, but font style shows hierarchy */
ul.toc { margin: 1em 0; font-weight: bold; /*text-transform: uppercase;*/ }
ul.toc ul { margin: 0; font-weight: normal; text-transform: none; }
ul.toc ul ul { margin: 0 0 0 2em; font-style: italic; }
ul.toc ul ul ul { margin: 0; }
ul.toc > li { margin: 1.5em 0; }
ul.toc ul.toc li { margin: 0.3em 0 0 0; }
ul.toc, ul.toc ul, ul.toc li { padding: 0; line-height: 1.3; }
ul.toc a { text-decoration: none; border-bottom-style: none; }
ul.toc a:hover, ul.toc a:focus { border-bottom-style: solid; }
@supports (text-decoration-style: solid) {
ul.toc a:hover, ul.toc a:focus {
border-bottom-style: none;
text-decoration-style: solid;
}
}
/*
ul.toc li li li, ul.toc li li li ul {margin-left: 0; display: inline}
ul.toc li li li ul, ul.toc li li li ul li {margin-left: 0; display: inline}
*/
/* Section numbers in a column of their own */
ul.toc {
margin-left: 5em
}
ul.toc span.secno {
float: left;
width: 4em;
margin-left: -5em;
}
ul.toc ul ul span.secno {
margin-left: -7em;
}
/*ul.toc span.secno {text-align: right}*/
ul.toc li {
clear: both;
}
/* If we had 'tab', floats would not be needed here:
ul.toc span.secno {tab: 5em right; margin-right: 1em}
ul.toc li {text-indent: 5em hanging}
The second line in case items wrap
*/
/** At-risk List **************************************************************/
/* Style for At Risk features (intended as editorial aid, not intended for publishing) */
.atrisk::before {
float: right;
margin-top: -0.25em;
padding: 0.5em 1em 0.5em 0;
text-indent: -0.9em;
border: 1px solid;
content: '\25C0 Not yet widely implemented';
white-space: pre;
font-size: small;
background-color: white;
color: gray;
text-align: center;
}
.toc .atrisk::before { content:none }
/** Index *********************************************************************/
/* Index Lists: Layout */
ul.indexlist { margin-left: 0; columns: 13em; }
ul.indexlist li { margin-left: 0; list-style: none }
ul.indexlist li li { margin-left: 1em }
ul.indexlist dl { margin-top: 0; }
ul.indexlist dt { margin: .2em 0 .2em 20px;}
ul.indexlist dd { margin: .2em 0 .2em 40px;}
/* Index Lists: Typography */
ul.indexlist ul,
ul.indexlist dl { font-size: smaller; }
ul.indexlist a { font-weight: bold; }
/** Property Index Tables *****************************************************/
/* See also the data table styling section, which this effectively subclasses */
table.proptable {
font-size: small;
border-collapse: collapse;
border-spacing: 0;
text-align: left;
margin: 1em 0;
}
table.proptable td,
table.proptable th {
padding: 0.4em;
text-align: center;
}
table.proptable tr:hover td {
background: #DEF;
}
.propdef th {
font-style: italic;
font-weight: normal;
text-align: left;
width: 3em;
}
/* The link in the first column in the property table (formerly a TD) */
table.proptable td .property,
table.proptable th .property {
display: block;
text-align: left;
font-weight: bold;
}
/******************************************************************************/
/* Print */
/******************************************************************************/
@media print {
html {
margin: 0 !important; }
body {
font-family: serif; }
th, td {
font-family: inherit; }
a {
color: inherit !important; }
a:link, a:visited {
text-decoration: none !important }
a:link:after, a:visited:after { /* create a cross-ref "see..." */ }
.example:before {
font-family: serif !important; }
}
@page {
margin: 1.5cm 1.1cm;
}