338 lines
7.4 KiB
CSS
338 lines
7.4 KiB
CSS
<style type="text/css">
|
|
@charset "UTF-8";
|
|
/* 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: 210mm 291mm;
|
|
margin: 0; }
|
|
|
|
/**
|
|
* CANVAS
|
|
*/
|
|
@media all {
|
|
body {
|
|
margin: 0; }
|
|
.paper {
|
|
width: 210mm;
|
|
height: 290mm;
|
|
box-sizing: border-box;
|
|
counter-increment: page-counter;
|
|
page-break-inside: avoid;
|
|
page-break-after: always;
|
|
overflow: hidden;
|
|
/* Crop marks */
|
|
padding: 0mm;
|
|
position: relative; }
|
|
.paper .crops {
|
|
width: 210mm;
|
|
height: 290mm;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0; }
|
|
.paper .crops div {
|
|
border-style: solid;
|
|
border-color: black;
|
|
border-width: 0;
|
|
width: 0mm;
|
|
height: 0mm;
|
|
position: absolute;
|
|
box-sizing: border-box; }
|
|
.paper .crops div span {
|
|
width: 0mm;
|
|
height: 0mm;
|
|
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: 210mm;
|
|
height: 290mm;
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
overflow: hidden; }
|
|
.spread .paper {
|
|
float: left; }
|
|
.spread .paper:nth-child(odd) {
|
|
margin-left: 0mm; }
|
|
.spread .paper:nth-child(even) {
|
|
margin-right: 0mm; }
|
|
.spread .paper:first-child {
|
|
margin-left: 210mm; } }
|
|
|
|
@media print {
|
|
html {
|
|
width: 210mm; }
|
|
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 <div class="page-break"></div>
|
|
* if you want to put manual page breaks without attaching it to an HTML element
|
|
*/
|
|
-webkit-region-break-before: always;
|
|
break-before: always; }
|
|
|
|
.header,
|
|
.body,
|
|
.footer {
|
|
box-sizing: border-box; }
|
|
|
|
/* __________________________________ HEADER __________________________________ */
|
|
.header {
|
|
top: 0;
|
|
margin: 0;
|
|
padding-top: 8mm;
|
|
width: 100%;
|
|
height: 10mm;
|
|
text-align: left; }
|
|
.header:after {
|
|
content: "TDSM"; }
|
|
|
|
/* __________________________________ MAIN SECTION __________________________________ */
|
|
.body {
|
|
height: 270mm;
|
|
width: 210mm;
|
|
margin-bottom: 12mm;
|
|
padding-top: 18mm;
|
|
padding-bottom: 12mm;
|
|
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: 20mm; }
|
|
|
|
.paper:nth-child(even) .header,
|
|
.paper:nth-child(even) .body,
|
|
.paper:nth-child(even) .footer {
|
|
padding-left: 20mm;
|
|
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;
|
|
break-inside: avoid;
|
|
-webkit-region-break-after: avoid;
|
|
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;*/
|
|
/* 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: 210mm;
|
|
height: 290mm;
|
|
margin-left: auto;
|
|
margin-right: auto; }
|
|
.spread #pages {
|
|
width: 420mm;
|
|
height: 580mm; }
|
|
.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; }
|
|
.preview .crops {
|
|
visibility: hidden; }
|
|
.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; } }
|
|
|
|
</style> |