re_integrated html2print boilerplate from osp
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
Vendored
+64
@@ -0,0 +1,64 @@
|
||||
#viewport {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 25px;
|
||||
left: 0;
|
||||
right: 0; }
|
||||
|
||||
#toolbar {
|
||||
background-color: black;
|
||||
position: fixed;
|
||||
height: 25px;
|
||||
bottom: 0em;
|
||||
left: 0;
|
||||
right: 0;
|
||||
color: white;
|
||||
font-family: sans;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
padding: 3px 0;
|
||||
display: flex;
|
||||
display: -webkit-flex;
|
||||
align-items: center;
|
||||
-webkit-align-items: center; }
|
||||
|
||||
label {
|
||||
margin-left: 1.5em;
|
||||
margin-right: 3px; }
|
||||
|
||||
input {
|
||||
border: 1px solid white;
|
||||
background-color: white;
|
||||
font-size: 11px;
|
||||
vertical-align: -2px; }
|
||||
|
||||
input[type=number] {
|
||||
width: 50px;
|
||||
vertical-align: 0px;
|
||||
margin-left: 2px; }
|
||||
|
||||
input:hover {
|
||||
cursor: pointer;
|
||||
background-color: yellow; }
|
||||
|
||||
button {
|
||||
border: 1px solid white;
|
||||
background-color: white;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
margin-right: 1em;
|
||||
height: 19px; }
|
||||
|
||||
button:hover {
|
||||
cursor: pointer;
|
||||
background-color: yellow; }
|
||||
|
||||
.separator {
|
||||
content: " ";
|
||||
flex-grow: 2;
|
||||
-webkit-flex-grow: 2; }
|
||||
|
||||
iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0; }
|
||||
Vendored
+338
@@ -0,0 +1,338 @@
|
||||
<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>
|
||||
Vendored
-257
@@ -1,257 +0,0 @@
|
||||
<style type="text/css">
|
||||
/* 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; }
|
||||
.page {
|
||||
width: 210mm;
|
||||
height: 290mm;
|
||||
position: relative; } }
|
||||
|
||||
@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
|
||||
*/
|
||||
.page-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
|
||||
*/
|
||||
break-after: region; }
|
||||
|
||||
/* __________________________________ LAYOUT __________________________________ */
|
||||
.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: "Ethica Lectures"; }
|
||||
|
||||
/* __________________________________ MAIN SECTION __________________________________ */
|
||||
.body {
|
||||
height: 270mm;
|
||||
width: 210mm;
|
||||
margin-bottom: 12mm;
|
||||
padding-top: 18mm;
|
||||
padding-bottom: 12mm;
|
||||
position: absolute; }
|
||||
|
||||
.recipient {
|
||||
-webkit-flow-from: contentFlow;
|
||||
flow-from: contentFlow; }
|
||||
|
||||
#content > * {
|
||||
-webkit-flow-into: contentFlow;
|
||||
flow-into: contentFlow contents; }
|
||||
|
||||
/* __________________________________ 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,
|
||||
.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;
|
||||
-webkit-region-break-after: avoid;
|
||||
break-inside: 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;*/ }
|
||||
|
||||
/**
|
||||
* DEBUG STYLES
|
||||
*/
|
||||
.debug .paper {
|
||||
outline: 1px solid blue; }
|
||||
|
||||
.debug .page {
|
||||
outline: 1px solid green; }
|
||||
|
||||
.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; }
|
||||
|
||||
/**
|
||||
* Style
|
||||
*/
|
||||
@media screen {
|
||||
body {
|
||||
background-color: #EEE; }
|
||||
.paper {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 10px 7px #AAA;
|
||||
margin: 20px; } }
|
||||
|
||||
h1 {
|
||||
font-family: "amiri", serif;
|
||||
font-weight: bold; }
|
||||
|
||||
h2 {
|
||||
font-family: "amiri", serif;
|
||||
font-weight: 500; }
|
||||
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: 'Open Sans', sans-serif; }
|
||||
|
||||
h1 {
|
||||
font-size: 42pt; }
|
||||
|
||||
h2 {
|
||||
font-size: 32pt; }
|
||||
|
||||
h3 {
|
||||
font-size: 14pt; }
|
||||
|
||||
h4 {
|
||||
font-size: 11pt; }
|
||||
|
||||
h5 {
|
||||
font-size: 11pt; }
|
||||
|
||||
h6 {
|
||||
font-size: 11pt; }
|
||||
|
||||
h2 {
|
||||
margin: 0.2em 0 0.4em 0; }
|
||||
|
||||
p, table, li, figcaption {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 10pt; }
|
||||
|
||||
figure {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 4mm 0 0; }
|
||||
figure img {
|
||||
border: 1px solid #ccc; }
|
||||
figure figcaption {
|
||||
font-size: 8pt; }
|
||||
|
||||
img[alt="logo"] {
|
||||
max-height: 0.9cm;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 5mm 5mm 0 0; }
|
||||
img[alt="logo"] + br {
|
||||
display: none; }
|
||||
|
||||
img[alt~="visuel"] {
|
||||
margin: 0 4mm 0 0; }
|
||||
img[alt~="visuel"] + figcaption {
|
||||
display: none; }
|
||||
img[alt~="visuel"]:not([alt~="full"]) {
|
||||
max-height: 6.5cm; }
|
||||
img[alt~="visuel"][alt~="full"] {
|
||||
max-width: 85%; }
|
||||
|
||||
a {
|
||||
color: inherit; }
|
||||
|
||||
.header:after {
|
||||
font-family: "amiri", serif;
|
||||
font-weight: normal;
|
||||
font-size: 9pt; }
|
||||
|
||||
.footer {
|
||||
text-align: left; }
|
||||
.footer:after {
|
||||
font-family: "amiri", serif;
|
||||
font-weight: bold;
|
||||
font-size: 10pt; }
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,70 @@
|
||||
#viewport {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 25px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
background-color: black;
|
||||
position: fixed;
|
||||
height: 25px;
|
||||
bottom: 0em;
|
||||
left: 0;
|
||||
right: 0;
|
||||
color: white;
|
||||
font-family: sans;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
padding: 3px 0;
|
||||
display: flex;
|
||||
display: -webkit-flex;
|
||||
align-items: center;
|
||||
-webkit-align-items: center;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-left: 1.5em;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
input {
|
||||
border: 1px solid white;
|
||||
background-color: white;
|
||||
font-size: 11px;
|
||||
vertical-align: -2px;
|
||||
}
|
||||
input[type=number]{
|
||||
width: 50px;
|
||||
vertical-align: 0px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
input:hover {
|
||||
cursor: pointer;
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
button {
|
||||
border: 1px solid white;
|
||||
background-color: white;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
margin-right: 1em;
|
||||
height: 19px;
|
||||
}
|
||||
button:hover {
|
||||
cursor: pointer;
|
||||
background-color: yellow;
|
||||
}
|
||||
.separator {
|
||||
content: " ";
|
||||
flex-grow: 2;
|
||||
-webkit-flex-grow: 2;
|
||||
}
|
||||
|
||||
iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0;
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
/**
|
||||
* Computation
|
||||
*/
|
||||
|
||||
|
||||
/* EXTRA SPACE AROUND THE PAGE: BLEED + CROP */
|
||||
// TODO: find a more appropriate name
|
||||
$crop: $crop-size + $bleed;
|
||||
|
||||
/* GEOMETRY OF THE PAPER SHEET */
|
||||
$paper-width: $page-width + ( $crop * 2 );
|
||||
$paper-height: $page-height + ( $crop * 2 );
|
||||
|
||||
/* SIZE OF SPREAD */
|
||||
$spread: $page-width * 2;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* DEFINITION OF THE PAPER SHEET
|
||||
*/
|
||||
@page {
|
||||
size: $paper-width ($paper-height + 1);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* CANVAS
|
||||
*/
|
||||
|
||||
@media all {
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
.paper {
|
||||
width: $paper-width;
|
||||
height: $paper-height;
|
||||
box-sizing: border-box;
|
||||
|
||||
counter-increment: page-counter;
|
||||
|
||||
// To make sure that one paper sheet is not splitted into different pages in the PDF
|
||||
page-break-inside: avoid;
|
||||
page-break-after: always;
|
||||
overflow: hidden;
|
||||
|
||||
/* Crop marks */
|
||||
padding: $crop;
|
||||
position: relative;
|
||||
.crops {
|
||||
width: $paper-width;
|
||||
height: $paper-height;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
div {
|
||||
border-style: solid;
|
||||
border-color: black;
|
||||
border-width: 0;
|
||||
width: $crop;
|
||||
height: $crop;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
|
||||
span {
|
||||
width: $bleed;
|
||||
height: $bleed;
|
||||
background-color: white;
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
.crop-top-left {
|
||||
border-right-width: 1px;
|
||||
border-bottom-width: 1px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
span { right: -1px; bottom: -1px;}
|
||||
}
|
||||
.crop-top-right {
|
||||
border-left-width: 1px;
|
||||
border-bottom-width: 1px;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
||||
span { left: -1px; bottom: -1px;}
|
||||
}
|
||||
.crop-bottom-right {
|
||||
border-left-width: 1px;
|
||||
border-top-width: 1px;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
|
||||
span { left: -1px; top: -1px;}
|
||||
}
|
||||
.crop-bottom-left {
|
||||
border-right-width: 1px;
|
||||
border-top-width: 1px;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
|
||||
span { right: -1px; top: -1px;}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page {
|
||||
width: $page-width;
|
||||
height: $page-height;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// TODO: changer le format du papier en spread pour pouvoir imprimer en planche
|
||||
.spread {
|
||||
.paper {
|
||||
float: left;
|
||||
}
|
||||
.paper:nth-child(odd) {
|
||||
margin-left: -$crop;
|
||||
}
|
||||
.paper:nth-child(even) {
|
||||
margin-right: -$crop;
|
||||
}
|
||||
.paper:first-child {
|
||||
margin-left: $page-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
html {
|
||||
width: $paper-width;
|
||||
}
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
.header,
|
||||
.body,
|
||||
.footer {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* __________________________________ HEADER __________________________________ */
|
||||
.header {
|
||||
top: 0;
|
||||
margin: 0;
|
||||
padding-top: $page-margin-top;
|
||||
width: 100%;
|
||||
height: $header-height;
|
||||
text-align: left;
|
||||
|
||||
&:after {
|
||||
content: $header-text;
|
||||
}
|
||||
}
|
||||
/* __________________________________ MAIN SECTION __________________________________ */
|
||||
.body {
|
||||
height: $page-height - $header-height - $footer-height;
|
||||
width: $page-width;
|
||||
margin-bottom: $page-margin-bottom;
|
||||
padding-top: $page-margin-top + $header-height;
|
||||
padding-bottom: $page-margin-bottom;
|
||||
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: $footer-height;
|
||||
text-align: center;
|
||||
|
||||
&:after {
|
||||
content: $footer-text;
|
||||
}
|
||||
}
|
||||
|
||||
/* mirrored pages */
|
||||
.paper {
|
||||
&:nth-child(odd) .header {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
&:nth-child(odd) .header,
|
||||
&:nth-child(odd) .body,
|
||||
&:nth-child(odd) .footer {
|
||||
padding-left: $page-margin-inside;
|
||||
padding-right: $page-margin-outside;
|
||||
}
|
||||
&:nth-child(even) .header,
|
||||
&:nth-child(even) .body,
|
||||
&:nth-child(even) .footer {
|
||||
padding-left: $page-margin-outside;
|
||||
padding-right: $page-margin-inside;
|
||||
}
|
||||
}
|
||||
|
||||
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;*/
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
@import "setup.scss";
|
||||
@import "html2print.scss";
|
||||
@import "layout.scss";
|
||||
@import "debug.scss";
|
||||
@import "ui.scss";
|
||||
@import "styles.scss";
|
||||
@@ -20,6 +20,6 @@ $page-margin-bottom: 12mm;
|
||||
|
||||
// Header & footer variables
|
||||
$header-height: 10mm;
|
||||
$header-text: "Ethica Lectures";
|
||||
$header-text: "TDSM";
|
||||
$footer-height: 10mm;
|
||||
$footer-text: counter(page-counter);
|
||||
|
||||
+1
-245
@@ -1,245 +1 @@
|
||||
@import "setup.scss";
|
||||
|
||||
/**
|
||||
* Computation
|
||||
*/
|
||||
|
||||
|
||||
/* EXTRA SPACE AROUND THE PAGE: BLEED + CROP */
|
||||
// TODO: find a more appropriate name
|
||||
$crop: $crop-size + $bleed;
|
||||
|
||||
/* GEOMETRY OF THE PAPER SHEET */
|
||||
$paper-width: $page-width + ( $crop * 2 );
|
||||
$paper-height: $page-height + ( $crop * 2 );
|
||||
|
||||
/* SIZE OF SPREAD */
|
||||
$spread: $page-width * 2;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* DEFINITION OF THE PAPER SHEET
|
||||
*/
|
||||
@page {
|
||||
size: $paper-width ($paper-height + 1);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* CANVAS
|
||||
*/
|
||||
|
||||
@media all {
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
.paper {
|
||||
width: $paper-width;
|
||||
height: $paper-height;
|
||||
box-sizing: border-box;
|
||||
|
||||
counter-increment: page-counter;
|
||||
|
||||
// To make sure that one paper sheet is not splitted into different pages in the PDF
|
||||
page-break-inside: avoid;
|
||||
page-break-after: always;
|
||||
overflow: hidden;
|
||||
|
||||
|
||||
}
|
||||
.page {
|
||||
width: $page-width;
|
||||
height: $page-height;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media print {
|
||||
html {
|
||||
width: $paper-width;
|
||||
}
|
||||
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
|
||||
*/
|
||||
|
||||
.page-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-after: region;
|
||||
}
|
||||
|
||||
// section.level1, section.level2{
|
||||
// break-after: always;
|
||||
// }
|
||||
|
||||
/* __________________________________ LAYOUT __________________________________ */
|
||||
|
||||
.header,
|
||||
.body,
|
||||
.footer {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* __________________________________ HEADER __________________________________ */
|
||||
.header {
|
||||
top: 0;
|
||||
margin: 0;
|
||||
padding-top: $page-margin-top;
|
||||
width: 100%;
|
||||
height: $header-height;
|
||||
text-align: left;
|
||||
|
||||
&:after {
|
||||
content: $header-text;
|
||||
}
|
||||
}
|
||||
/* __________________________________ MAIN SECTION __________________________________ */
|
||||
.body {
|
||||
height: $page-height - $header-height - $footer-height;
|
||||
width: $page-width;
|
||||
margin-bottom: $page-margin-bottom;
|
||||
padding-top: $page-margin-top + $header-height;
|
||||
padding-bottom: $page-margin-bottom;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.recipient {
|
||||
-webkit-flow-from: contentFlow;
|
||||
flow-from: contentFlow;
|
||||
}
|
||||
|
||||
#content > * {
|
||||
-webkit-flow-into: contentFlow;
|
||||
flow-into: contentFlow contents;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* __________________________________ FOOTER __________________________________ */
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: $footer-height;
|
||||
text-align: center;
|
||||
|
||||
&:after {
|
||||
content: $footer-text;
|
||||
}
|
||||
}
|
||||
|
||||
/* mirrored pages */
|
||||
.paper {
|
||||
|
||||
&:nth-child(odd) .header {
|
||||
@if $page-layout == 2 {text-align: right;}
|
||||
}
|
||||
|
||||
&:nth-child(odd) .header,
|
||||
&:nth-child(odd) .body,
|
||||
&:nth-child(odd) .footer {
|
||||
padding-left: $page-margin-inside;
|
||||
padding-right: $page-margin-outside;
|
||||
}
|
||||
&:nth-child(even) .header,
|
||||
&:nth-child(even) .body,
|
||||
&:nth-child(even) .footer {
|
||||
padding-left: $page-margin-outside;
|
||||
padding-right: $page-margin-inside;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
break-inside: 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;*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* DEBUG STYLES
|
||||
*/
|
||||
.debug .paper {
|
||||
outline: 1px solid blue;
|
||||
}
|
||||
.debug .page {
|
||||
outline: 1px solid green;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Style
|
||||
*/
|
||||
|
||||
@media screen{
|
||||
body{
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
.paper{
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 10px 7px #AAA;
|
||||
margin: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@import "custom.scss";
|
||||
// your styles here
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
/**
|
||||
* User Interface
|
||||
*/
|
||||
@media screen {
|
||||
// C A N V A S
|
||||
body {
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
#pages {
|
||||
width: $paper-width;
|
||||
height: $paper-height;
|
||||
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.spread #pages {
|
||||
width: $paper-width * 2;
|
||||
height: $paper-height * 2;
|
||||
}
|
||||
.paper {
|
||||
/* centrer la page à l'écran */
|
||||
background-color: white;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.normal .paper {
|
||||
//outline: 1px solid lightgray;
|
||||
}
|
||||
.normal .page {
|
||||
outline: 1px dashed lightsalmon;
|
||||
}
|
||||
.preview .paper {
|
||||
background: none;
|
||||
}
|
||||
.preview .page {
|
||||
outline: 1px solid lightgray;
|
||||
background-color: white;
|
||||
}
|
||||
.preview .crops { visibility: hidden; }
|
||||
|
||||
|
||||
|
||||
// M E N U
|
||||
.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;
|
||||
|
||||
ul {
|
||||
padding: 0.5em 0;
|
||||
display: none;
|
||||
background-color: black;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 2em;
|
||||
height: 200pt;
|
||||
width: 80pt;
|
||||
overflow: auto;
|
||||
|
||||
a {
|
||||
padding: 0 1em;
|
||||
color: white;
|
||||
display: block;
|
||||
|
||||
&:hover {
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user