246 lines
4.5 KiB
SCSS
246 lines
4.5 KiB
SCSS
@import "scss/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 "scss/custom.scss";
|