Files
d9-eql/web/themes/custom/eql/scss/global/_print.scss
T
2025-12-12 12:02:07 +01:00

311 lines
5.5 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* -----------------------/*
* Feuille de style Print "Bretzel" adaptée
* Made par Alsacréations + tweaks EQL
/* ---------------------- */
/*
* Ressources et documentations :
* 1- https://www.docuseal.co/blog/css-print-page-style
* 2- https://www.alsacreations.com/astuce/lire/1160-Une-feuille-de-styles-de-base-pour-le-media-print.html
*/
@import "variables/_colors";
@import "variables/_typography";
// Mixin commun pour les styles d'impression
@mixin print-base() {
/* Reset général */
* {
all: unset;
display: revert;
box-sizing: border-box;
}
img {
max-width: 100%;
}
ul{
list-style-type: none;
}
input,
textarea,
select {
all: revert;
}
/* Styles globaux (12pt = 16px) */
body,
p,
span {
width: auto;
margin: 0;
font-family: "Marianne", serif !important;
font-size: 12pt;
line-height: 1.5;
color: #000000 !important;
background-color: #ffffff !important;
}
.back-cover {
break-before: page;
display: flex;
flex-direction: column;
justify-content: center;
.region {
h2 {
margin-top: 0;
color: $blue-dark;
font-size: 1.2rem;
}
}
.view-id-partenaires {
.view-content {
img {
width: 5rem;
height: auto;
}
a[href^="http"]:after {
display: none;
}
}
.views-row-wrapper {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
}
}
/* Espacements typographiques (15pt = 20px) */
p,
blockquote,
label,
ul,
ol {
margin-block: 0 15pt;
}
p:last-child {
margin-bottom: 0;
}
/* Titrages */
h1 {
margin-block: 0 24pt;
font-weight: 700;
font-size: 18pt;
line-height: 1.1;
}
h2 {
margin-block: 0 18pt;
font-weight: 700;
font-size: 16pt;
line-height: 1.1;
}
h3 {
margin-block: 0 15pt;
font-weight: 700;
font-size: 14pt;
}
h4 {
margin-block: 0 12pt;
font-weight: 700;
font-size: 12pt;
}
/* Classes dédiées print / no-print */
.print {
display: revert;
}
.no-print {
display: none;
}
/* Veuves / orphelines */
p,
blockquote {
orphans: 3;
widows: 3;
}
/* Pas de saut de page au sein de ces éléments */
blockquote,
ul,
ol,
figure,
table,
.paragraph,
footer,
.top_top,
.top_bottom {
page-break-inside: avoid;
}
/* Pas de saut de page après ces éléments */
h1,
h2,
h3,
h4,
caption,
.field--name-field-titre {
page-break-after: avoid;
}
/* Pas de saut de page après ces éléments */
h1{
page-break-before: right;
}
/* Styles des liens */
a,
a:link,
a:visited {
background: transparent !important;
color: unset;
font-weight: 700;
text-decoration: underline !important;
}
/* Afficher l'URL des liens externes */
a[href^="http"]:after,
a[href^="https"]:after {
content: " (" attr(href) ")";
}
/* Masquer vidéos, header, nav… */
video,
object,
iframe,
nav {
display: none !important;
width: 0 !important;
height: 0 !important;
overflow: hidden !important;
}
/* Style page projet */
.page-node-type-projet {
.layout__region--top {
width: 100% !important;
padding-top: 0rem !important;
.top_top {
flex-direction: column !important;
.block-entity-fieldnodefield-photo {
width: 100% !important;
}
img{
}
.slick-dots,
.slick-arrow {
display: none !important;
}
.top_right {
width: 100% !important;
}
}
.top_bottom {
width: 100% !important;
}
}
.layout__region--first {
display: none;
}
.layout__region--second {
flex: 0 0 100% !important;
margin-left: 10%;
margin-right: 10%;
width: 100% !important;
}
}
}
/* 1) VRAIE feuille d'impression */
@media print {
/* Dimension et marges de page */
@page {
size: A4 portrait;
margin: 1.5cm 1.5cm;
@bottom-center {
content: "Page " counter(page) " / " counter(pages);
}
}
@include print-base();
/* 1) Le header du site ne simprime jamais */
.layout-container header[role="banner"] {
display: none !important;
}
/* 2) Couverture (print only) */
.cover.print-only {
display: flex !important;
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 2cm 1.5cm;
text-align: center;
page-break-after: always;
break-after: page;
background: #fff !important;
color: #000 !important;
}
/* Reprend tes règles “logo + titre” mais sur la cover */
.cover.print-only .region-header-top-left img {
max-height: 3cm;
height: auto;
width: auto;
}
.cover.print-only .region-header-top-rigth #block-eql-identitedusite {
font-size: 1.4rem;
text-transform: uppercase;
}
/* Optionnel : pas dURL affichée sur la cover */
.cover.print-only a[href^="http"]:after {
display: none;
}
}
/* 2) MODE DEBUG : voir la version print en écran via body.debug-print */
@media screen {
body.debug-print {
@include print-base();
}
.cover.print-only {
display: none;
}
body.debug-print .print-page {
width: 210mm;
height: 297mm;
margin: 2rem auto;
background: #fff;
box-shadow: 0 0 0 1px red; // limite page
}
/* cacher les éléments print-only à l'écran */
.print-only { display: none; }
}