| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- /* -----------------------/*
- * 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%;
- }
- 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;
- }
- /* 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;
- }
- .slick-dots,
- .slick-arrow {
- display: none;
- }
- .top_right {
- width: 100% !important;
- }
- }
- .top_bottom {
- width: 100% !important;
- }
- }
- .layout__region--first {
- display: none;
- }
- .layout__region--second {
- flex: 0 1 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();
- /* --- Couverture : header-top en page 1 --- */
- .layout-container header {
- position: static !important; // ne plus être fixed en print
- width: 100% !important;
- box-shadow: none !important;
- }
-
- #header-top {
- display: flex !important;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-
- height: 100vh; // occupe la hauteur de la "page"
- padding: 2cm 1.5cm; // marges internes
- text-align: center;
- page-break-after: always; // 👉 le contenu commence sur la page suivante
-
- background: #ffffff !important;
- color: #000000 !important;
- }
-
- /* On cache le menu du bas du header (la barre de navigation horizontale) */
- .region-header-bottom {
- display: none !important;
- }
-
- /* Si tu as un logo + titre dans #header-top, tu peux les grossir un peu : */
- #header-top .region-header-top-left img {
- max-height: 3cm;
- height: auto;
- width: auto;
- }
-
- #header-top .region-header-top-rigth #block-eql-identitedusite {
- font-size: 1.4rem;
- text-transform: uppercase;
- }
- }
- /* 2) MODE DEBUG : voir la version print en écran via body.debug-print */
- @media screen {
- body.debug-print {
- @include print-base();
- }
- }
|