/* the geometry of the page */ /* the size of the crop marks*/ /* the size of bleed */ /** * Computation */ /* EXTRA SPACE AROUND THE PAGE: BLEED + CROP */ /* GEOMETRY OF THE PAPER SHEET */ /* SIZE OF SPREAD */ /** * DEFINITION OF THE PAPER SHEET */ @page { size: 172mm 235mm; margin: 0; } /** * CANVAS */ @media all { body { margin: 0; } .paper { width: 172mm; height: 234mm; box-sizing: border-box; counter-increment: page-counter; page-break-inside: avoid; page-break-after: always; overflow: hidden; /* Crop marks */ padding: 12mm; position: relative; } .paper .crops { width: 172mm; height: 234mm; position: absolute; top: 0; left: 0; } .paper .crops div { border-style: solid; border-color: black; border-width: 0; width: 12mm; height: 12mm; position: absolute; box-sizing: border-box; } .paper .crops div span { width: 5mm; height: 5mm; background-color: white; position: absolute; } .paper .crops .crop-top-left { border-right-width: 1px; border-bottom-width: 1px; top: 0; left: 0; } .paper .crops .crop-top-left span { right: -1px; bottom: -1px; } .paper .crops .crop-top-right { border-left-width: 1px; border-bottom-width: 1px; top: 0; right: 0; } .paper .crops .crop-top-right span { left: -1px; bottom: -1px; } .paper .crops .crop-bottom-right { border-left-width: 1px; border-top-width: 1px; right: 0; bottom: 0; } .paper .crops .crop-bottom-right span { left: -1px; top: -1px; } .paper .crops .crop-bottom-left { border-right-width: 1px; border-top-width: 1px; left: 0; bottom: 0; } .paper .crops .crop-bottom-left span { right: -1px; top: -1px; } .page { width: 148mm; height: 210mm; position: relative; } .spread .paper { float: left; } .spread .paper:nth-child(odd) { margin-left: -12mm; } .spread .paper:nth-child(even) { margin-right: -12mm; } .spread .paper:first-child { margin-left: 148mm; } } @media print { html { width: 172mm; } body { /* Allows printing of background colors */ background-color: white; -webkit-print-color-adjust: exact; print-color-adjust: exact; /* Activate opentype features and kernings */ -webkit-font-feature-settings: "liga", "dlig", "clig", "kern"; text-rendering: optimizeLegibility; } } /** * Helpers */ .region-break { /* Apply this class to an element to put it on a new region. * Hint: * You can also use an empty
* if you want to put manual page breaks without attaching it to an HTML element */ -webkit-region-break-before: always; } .header, .body, .footer { box-sizing: border-box; } /* __________________________________ HEADER __________________________________ */ .header { top: 0; margin: 0; padding-top: 10mm; width: 100%; height: 10mm; text-align: left; } .header:after { content: " Running title"; } /* __________________________________ MAIN SECTION __________________________________ */ .body { height: 190mm; width: 148mm; margin-bottom: 15mm; padding-top: 20mm; padding-bottom: 15mm; position: absolute; } .recipient { -webkit-flow-from: myStory; flow-from: myStory; } #my-story { -webkit-flow-into: myStory; flow-into: myStory; } /* __________________________________ FOOTER __________________________________ */ .footer { position: absolute; bottom: 0; margin: 0; width: 100%; height: 10mm; text-align: center; } .footer:after { content: counter(page-counter); } /* mirrored pages */ .paper:nth-child(odd) .header { text-align: right; } .paper:nth-child(odd) .header, .paper:nth-child(odd) .body, .paper:nth-child(odd) .footer { padding-left: 20mm; padding-right: 10mm; } .paper:nth-child(even) .header, .paper:nth-child(even) .body, .paper:nth-child(even) .footer { padding-left: 10mm; padding-right: 20mm; } img { max-width: 100%; } h1, h2, h3, h4, h5, h6 { /* Avoids headings to be cut or to be orphans. * But it doesn't seem to work * if the element after has a page-break-inside avoid. It tries its best! */ -webkit-region-break-inside: avoid; -webkit-region-break-after: avoid; } /* AN EXAMPLE TO AVOID PAGE BREAK INSIDE, * HERE NO PARAGRAPH WILL BE CUT, * BUT YOU MIGHT WANT TO DEACTIVATE THIS */ p { /*-webkit-region-break-inside: avoid;*/ } /** * DEBUG STYLES */ .debug .header { outline: 1px solid pink; } .debug .body { outline: 1px solid purple; } .debug .footer { outline: 1px solid pink; } .debug .region-break { border-top: 1px dashed blue; box-sizing: border-box; } .debug img { outline: 1px solid blue; } /** * User Interface */ @media screen { body { background-color: #F0F0F0; } #pages { width: 172mm; height: 234mm; margin-left: auto; margin-right: auto; } .spread #pages { width: 344mm; height: 468mm; } .paper { /* centrer la page à l'écran */ background-color: white; margin-top: 1em; margin-bottom: 1em; } .normal .page { outline: 1px dashed lightsalmon; } .preview .paper { background: none; } .preview .page { outline: 1px solid lightgray; background-color: white; } .button { z-index: 1000; background-color: black; font-family: sans-serif; text-transform: uppercase; font-size: 9pt !important; letter-spacing: 1pt; color: white; margin: 0; padding: 5pt 7pt; cursor: pointer; border: 0; } .button:hover { background-color: white; color: black; outline: 1pt solid black; } .button-active { background-color: white; color: black; outline: 1pt solid black; } .lo-res { outline: 10px solid red; } #interface { font-family: sans-serif; text-transform: uppercase; font-size: 10pt !important; line-height: 14pt; letter-spacing: 1pt; position: fixed; bottom: 10pt; right: 10pt; } #interface a { text-decoration: none; position: static; } div.dropdown { display: inline-block; position: relative; } div.dropdown ul { padding: 0.5em 0; display: none; background-color: black; position: absolute; right: 0; bottom: 2em; height: 200pt; width: 80pt; overflow: auto; } div.dropdown ul a { padding: 0 1em; color: white; display: block; } div.dropdown ul a:hover { background-color: white; color: black; } div.dropdown button { width: 80pt; } #toc { display: inline-block; } #toc-pages { padding: 0.5em 0; display: none; background-color: black; position: absolute; right: 0; bottom: 2em; height: 200pt; width: 80pt; overflow: auto; } #toc-pages a { padding: 0 1em; color: white; } #toc-pages a:hover { background-color: white; color: black; } #toc-pages button { width: 80pt; } } @media print { #interface { display: none; } } /* Here you can put your specific typography, layout styles. */