123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- @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";
|