MediaWiki:Print.css: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
No edit summary Tag: Reverted  | 
				No edit summary Tag: Manual revert  | 
				||
| Line 4: | Line 4: | ||
    =========================== */  |     =========================== */  | ||
/* 1) Font face (print-safe) */  | /* --- 1) Font face (print-safe) --- */  | ||
@font-face {  | @font-face {  | ||
   font-family: 'HALColant-TextRegular';  |    font-family: 'HALColant-TextRegular';  | ||
| Line 14: | Line 14: | ||
}  | }  | ||
/* 2) Browser print color fidelity */  | /* --- 2) Browser print color fidelity --- */  | ||
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }  | * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }  | ||
/* 3) Base print visibility & typography */  | /* --- 3) Base print visibility & typography --- */  | ||
.print-only { display: block !important; }   | .print-only { display: block !important; }  /* ensure print layout is visible */  | ||
html, body {  | html, body {  | ||
| Line 26: | Line 26: | ||
   color: #111;  |    color: #111;  | ||
}  | }  | ||
/* Use your preferred ink color */  | |||
body { color: #292828 !important; }  | body { color: #292828 !important; }  | ||
/* 4) Page size and margins */  | /* --- 4) Page size and margins --- */  | ||
@page {  | @page {  | ||
   size: A5 portrait;  |    size: A5 portrait;  | ||
   margin: 2.5mm;   |    margin: 2.5mm;            /* outer paper margin */  | ||
}  | }  | ||
/*   | /* Inner breathing room for the print block */  | ||
.entry-wrapper.print-a5 {  | .entry-wrapper.print-a5 {  | ||
   width: 100%;  |    width: 100%;  | ||
   box-sizing: border-box;  |    box-sizing: border-box;  | ||
   padding: 2.5mm;   |    padding: 2.5mm;           /* inner content padding */  | ||
}  | }  | ||
/*   | /* --- 5) Titles & people --- */  | ||
.article-title {  | .article-title {  | ||
   font-size: 22px;  |    font-size: 22px;  | ||
| Line 63: | Line 52: | ||
   margin: 0;  |    margin: 0;  | ||
}  | }  | ||
.article-people {  | .article-people {  | ||
   font-size: 22px;  |    font-size: 22px;  | ||
| Line 73: | Line 63: | ||
   padding-top: 15px;  |    padding-top: 15px;  | ||
}  | }  | ||
/*   | .article-people a {  | ||
  text-decoration: underline;  | |||
  color: #292828 !important;  | |||
}  | |||
/* --- 6) Hairline rule under entry number --- */  | |||
.article-entry-number {  | .article-entry-number {  | ||
   font-size: 16px;  |    font-size: 16px;  | ||
| Line 83: | Line 77: | ||
   padding-bottom: 4px;  |    padding-bottom: 4px;  | ||
   border-bottom: none;  |    border-bottom: none;  | ||
  /* draw a crisp hairline using a background gradient */  | |||
   background-image: linear-gradient(#000, #000);  |    background-image: linear-gradient(#000, #000);  | ||
   background-repeat: no-repeat;  |    background-repeat: no-repeat;  | ||
   background-position: 0 100%;  |    background-position: 0 100%;  | ||
   background-size: 100% 0.5px;   |    background-size: 100% 0.5px;  /* ~hairline */  | ||
}  | }  | ||
/*   | /* --- 7) Link row ([PDF⤴] [WEB⤴]) centered with hairline --- */  | ||
.link-pdf {  | .link-pdf {  | ||
   text-align: center;  |    text-align: center;  | ||
| Line 95: | Line 90: | ||
   text-decoration: none;  |    text-decoration: none;  | ||
   margin: 4px 0 0 0;  |    margin: 4px 0 0 0;  | ||
   padding: 0;  |    padding: 0 0 0 0;  | ||
   border-bottom: none;  |    border-bottom: none;  | ||
   background-image: linear-gradient(#000, #000);  |    background-image: linear-gradient(#000, #000);  | ||
| Line 102: | Line 97: | ||
   background-size: 100% 0.5px;  |    background-size: 100% 0.5px;  | ||
}  | }  | ||
.link-pdf a,  | .link-pdf a,  | ||
.link-pdf p {  | .link-pdf p {  | ||
| Line 111: | Line 107: | ||
}  | }  | ||
/*   | /* --- 8) Type line with hairline --- */  | ||
.article-type {  | .article-type {  | ||
   font-size: 16px;  |    font-size: 16px;  | ||
| Line 125: | Line 121: | ||
   background-size: 100% 0.5px;  |    background-size: 100% 0.5px;  | ||
}  | }  | ||
.article-type a { text-decoration: none; display: inline-block; color: #292828 !important; }  | .article-type a {  | ||
  text-decoration: none;  | |||
  display: inline-block;  | |||
  color: #292828 !important;  | |||
}  | |||
/*   | /* --- 9) Metadata grid (no margins/paddings; hairline under block) --- */  | ||
.article-metadata,  | .article-metadata,  | ||
.article-metadata * {  | .article-metadata * {  | ||
| Line 134: | Line 134: | ||
   background: none;  |    background: none;  | ||
}  | }  | ||
.article-metadata {  | .article-metadata {  | ||
   display: grid;  |    display: grid;  | ||
| Line 141: | Line 142: | ||
   line-height: 1 !important;  |    line-height: 1 !important;  | ||
   border-bottom: none;  |    border-bottom: none;  | ||
   background-image:   |    background-image: linear-gradient(#000, #000);  | ||
  background-repeat: no-repeat;  | |||
  background-position: 0 100%;  | |||
  background-size: 100% 0.5px;  | |||
}  | }  | ||
.article-metadata-label {  | .article-metadata-label {  | ||
   font-size: 13px;  |    font-size: 13px;  | ||
| Line 151: | Line 154: | ||
   letter-spacing: 0.3px;  |    letter-spacing: 0.3px;  | ||
}  | }  | ||
.article-metadata-value {  | .article-metadata-value {  | ||
   font-size: 15px;  |    font-size: 15px;  | ||
   text-transform: capitalize;  |    text-transform: capitalize;  | ||
}  | }  | ||
.article-metadata-value a { color: #292828 !important; text-decoration: none; }  | .article-metadata-value a {  | ||
  color: #292828 !important;  | |||
  text-decoration: none;  | |||
}  | |||
/*   | /* Remove any accidental gap before images */  | ||
.article-metadata + .article-images {  | |||
  margin-top: 0 !important;  | |||
  padding-top: 0 !important;  | |||
}  | |||
/* --- 10) Images & caption (no gaps; hairline under block) --- */  | |||
.article-images {  | .article-images {  | ||
   margin: 0 !important;  |    margin: 0 !important;  | ||
   padding: 0 !important;  |    padding: 0 !important;  | ||
   border-bottom: none;  |    border-bottom: none;  | ||
   background-image:   |    background-image: linear-gradient(#000, #000);  | ||
  background-repeat: no-repeat;  | |||
  background-position: 0 100%;  | |||
  background-size: 100% 0.5px;  | |||
}  | }  | ||
.article-images .image-container {  | .article-images .image-container {  | ||
   display: inline-flex;  |    display: inline-flex;  | ||
   flex-direction: column;   |    flex-direction: column;  /* stack image then caption */  | ||
   align-items: flex-start;   |    align-items: flex-start; /* left-align image & caption */  | ||
   margin: 0 !important;  |    margin: 0 !important;  | ||
   padding: 0 !important;  |    padding: 0 !important;  | ||
}  | }  | ||
.article-images .image-container img,  | .article-images .image-container img,  | ||
.image-container img {  | .image-container img {  | ||
   display: block;  |    display: block;  | ||
   max-height: 85mm;   |    max-height: 85mm;        /* cap instead of forcing height to reduce jumps */  | ||
   height: auto;  |    height: auto;  | ||
   width: auto;  |    width: auto;  | ||
| Line 185: | Line 202: | ||
   line-height: 0;  |    line-height: 0;  | ||
}  | }  | ||
.caption-image1 {  | .caption-image1 {  | ||
   margin: 0 !important;  |    margin: 0 !important;  | ||
   padding: 0 0 11px 0 !important;   |    padding: 0 0 11px 0 !important; /* small breathing room under caption */  | ||
   line-height: 1 !important;  |    line-height: 1 !important;  | ||
   font-size: 9pt;  |    font-size: 9pt;  | ||
| Line 194: | Line 212: | ||
   width: 100%;  |    width: 100%;  | ||
}  | }  | ||
/*   | /* Kill user-agent margins in Vector paragraphs that sneak in */  | ||
.vector-body p { margin: 0 !important; padding: 0 !important; }  | .vector-body p { margin: 0 !important; padding: 0 !important; }  | ||
/*   | /* --- 11) Section labels & bodies --- */  | ||
.article-label-description,  | .article-label-description,  | ||
.article-label-reflection,  | .article-label-reflection,  | ||
| Line 230: | Line 231: | ||
   /* prevent a break RIGHT AFTER the label (no orphan label) */  |    /* prevent a break RIGHT AFTER the label (no orphan label) */  | ||
   break-after: avoid; page-break-after: avoid;  |    break-after: avoid;  | ||
  page-break-after: avoid;  | |||
}  | }  | ||
.article-description,  | .article-description,  | ||
.article-reflection,  | .article-reflection,  | ||
| Line 242: | Line 245: | ||
   letter-spacing: 0.8px;  |    letter-spacing: 0.8px;  | ||
   margin-top: 0 !important;  |    margin-top: 0 !important;  | ||
   padding: 0 !important;  |    padding: 0 0 11px 0 !important;  | ||
   /* let long content flow normally; avoid hard blocking */  |    /* let long content flow normally; avoid hard blocking */  | ||
   page-break-inside: auto; break-inside: auto;  |    page-break-inside: auto;  | ||
  break-inside: auto;  | |||
   /* hairline   |    /* draw hairline below each section body */  | ||
   background-image:   |   border-bottom: none;  | ||
   background-image: linear-gradient(#000, #000);  | |||
  background-repeat: no-repeat;  | |||
  background-position: 0 100%;  | |||
   background-size: 100% 0.5px;  | |||
}  | }  | ||
/*   | /* Don’t allow a break BEFORE the first block following each label */  | ||
.article-label-description + .article-description,  | |||
.article-label-reflection + .article-reflection,  | |||
.article-label-external-reference + .article-external-reference,  | |||
.article-label-quote + .article-quote,  | |||
.article-label-modification-date + .article-modification-date {  | |||
   break-before: avoid; page-break-before: avoid;  |    break-before: avoid;  | ||
  page-break-before: avoid;  | |||
}  | }  | ||
/*   | /* Gentle control on widows/orphans globally */  | ||
#article-content { orphans: 2; widows: 2; }  | #article-content { orphans: 2; widows: 2; }  | ||
/*   | /* --- 12) Link handling for print --- */  | ||
a[href]:after { content: none !important; }  /* no raw URL echo */  | |||
.article-external-reference a {  | |||
  word-break: break-word;  | |||
  overflow-wrap: anywhere;  | |||
  text-decoration: none;  | |||
  color: #292828 !important;  | |||
  font-size: 17px;  | |||
  line-height: 1;  | |||
  letter-spacing: 0;  | |||
}  | |||
.article-quote {  | .article-quote {  | ||
   font-size: 26px;  |    font-size: 26px;  | ||
| Line 270: | Line 289: | ||
   letter-spacing: 1.2px;  |    letter-spacing: 1.2px;  | ||
   font-style: italic;  |    font-style: italic;  | ||
  margin-bottom: 7px!important;  | |||
  padding-bottom: 7px!important;  | |||
}  | |||
.article-mod-line{  | |||
  margin-top:7px!important;  | |||
  padding-top: 7px!important;  | |||
  white-space:nowrap;  | |||
  color:grey;  | |||
  line-height:1;  | |||
  font-size:14px;  | |||
  letter-spacing:0.5px;  | |||
  margin:0; padding:0;  | |||
  text-indent:35px;  | |||
}  | }  | ||
.article-mod-line {  | .article-mod-line > span{  | ||
   display:inline;  | |||
   margin:0; padding:0;  | |||
}  | }  | ||
.article-mod-line > span + span{ margin-left:6px; }  | |||
.article-mod-line > span + span { margin-left: 6px  | |||
.article-modification-date {  | |||
   font-size:15px;  | |||
.article-  |    letter-spacing:0.5px;  | ||
   margin:0; padding:0;  | |||
}  | }  | ||
/*   | /* wrappers: no internal spacing, only add gap if a wrapper actually exists */  | ||
.print-sec { margin: 0; padding: 0; }  | |||
.  | .print-sec + .print-sec { margin-top: 6mm; } /* tune spacing */  | ||
.  | |||
.  | /* make sure the label/content inside a wrapper don’t add surprise margins */  | ||
.  | .print-sec > * { margin: 0; padding: 0; }  | ||
.  | |||
/* optional: draw your “hairline” only on wrappers that exist */  | |||
   background-  | .print-sec {  | ||
  border-bottom: none;  | |||
   padding-bottom:   |   background-image: linear-gradient(#000, #000);  | ||
  background-repeat: no-repeat;  | |||
   background-position: 0 100%;  | |||
   background-size: 100% 0.5px;  | |||
   padding-bottom: 7px; /* room for the hairline; adjust if you like */  | |||
}  | }  | ||
/* avoid extra gap above the first .print-sec after metadata/images */  | |||
.article-metadata + .print-sec,  | |||
.article-images + .print-sec { margin-top: 4mm; }  | |||
/* hide empty caption if no text sneaks in */  | |||
.caption-image1:empty { display: none; }  | |||
Revision as of 10:37, 21 August 2025
/* ===========================
   Softwear — Print stylesheet
   A5 portrait, minimal margins
   =========================== */
/* --- 1) Font face (print-safe) --- */
@font-face {
  font-family: 'HALColant-TextRegular';
  src: url('/fonts/HALColant-TextRegular.woff2?v=20250820') format('woff2'),
       url('/fonts/HALColant-TextRegular.woff?v=20250820')  format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* --- 2) Browser print color fidelity --- */
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
/* --- 3) Base print visibility & typography --- */
.print-only { display: block !important; }  /* ensure print layout is visible */
html, body {
  margin: 0;
  padding: 0;
  font-family: 'HALColant-TextRegular', Georgia, "Times New Roman", serif;
  color: #111;
}
/* Use your preferred ink color */
body { color: #292828 !important; }
/* --- 4) Page size and margins --- */
@page {
  size: A5 portrait;
  margin: 2.5mm;            /* outer paper margin */
}
/* Inner breathing room for the print block */
.entry-wrapper.print-a5 {
  width: 100%;
  box-sizing: border-box;
  padding: 2.5mm;           /* inner content padding */
}
/* --- 5) Titles & people --- */
.article-title {
  font-size: 22px;
  line-height: 24px;
  letter-spacing: 0.8px;
  text-align: center;
  color: #292828 !important;
  margin: 0;
}
.article-people {
  font-size: 22px;
  line-height: 28px;
  letter-spacing: 0.8px;
  text-align: center;
  text-decoration: underline;
  color: #292828 !important;
  margin: 0;
  padding-top: 15px;
}
.article-people a {
  text-decoration: underline;
  color: #292828 !important;
}
/* --- 6) Hairline rule under entry number --- */
.article-entry-number {
  font-size: 16px;
  line-height: 23px;
  letter-spacing: 0;
  margin: 0;
  padding-bottom: 4px;
  border-bottom: none;
  /* draw a crisp hairline using a background gradient */
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;  /* ~hairline */
}
/* --- 7) Link row ([PDF⤴] [WEB⤴]) centered with hairline --- */
.link-pdf {
  text-align: center;
  color: #292828 !important;
  text-decoration: none;
  margin: 4px 0 0 0;
  padding: 0 0 0 0;
  border-bottom: none;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;
}
.link-pdf a,
.link-pdf p {
  display: inline-block;
  text-decoration: none;
  color: #292828 !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* --- 8) Type line with hairline --- */
.article-type {
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0;
  margin: 0;
  padding: 7px 0;
  color: #292828 !important;
  border-bottom: none;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;
}
.article-type a {
  text-decoration: none;
  display: inline-block;
  color: #292828 !important;
}
/* --- 9) Metadata grid (no margins/paddings; hairline under block) --- */
.article-metadata,
.article-metadata * {
  margin: 0 !important;
  border: none;
  background: none;
}
.article-metadata {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2mm;
  padding: 11px 0 7px 0;
  line-height: 1 !important;
  border-bottom: none;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;
}
.article-metadata-label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.article-metadata-value {
  font-size: 15px;
  text-transform: capitalize;
}
.article-metadata-value a {
  color: #292828 !important;
  text-decoration: none;
}
/* Remove any accidental gap before images */
.article-metadata + .article-images {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* --- 10) Images & caption (no gaps; hairline under block) --- */
.article-images {
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: none;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;
}
.article-images .image-container {
  display: inline-flex;
  flex-direction: column;  /* stack image then caption */
  align-items: flex-start; /* left-align image & caption */
  margin: 0 !important;
  padding: 0 !important;
}
.article-images .image-container img,
.image-container img {
  display: block;
  max-height: 85mm;        /* cap instead of forcing height to reduce jumps */
  height: auto;
  width: auto;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain;
  line-height: 0;
}
.caption-image1 {
  margin: 0 !important;
  padding: 0 0 11px 0 !important; /* small breathing room under caption */
  line-height: 1 !important;
  font-size: 9pt;
  color: #555;
  text-align: left;
  width: 100%;
}
/* Kill user-agent margins in Vector paragraphs that sneak in */
.vector-body p { margin: 0 !important; padding: 0 !important; }
/* --- 11) Section labels & bodies --- */
.article-label-description,
.article-label-reflection,
.article-label-external-reference,
.article-label-quote,
.article-label-modification-date {
  text-transform: uppercase;
  margin: 11px 0 0 0 !important;
  padding: 0 !important;
  text-indent: 35px;
  line-height: 1;
  font-size: 14px;
  letter-spacing: 0.5px;
  /* prevent a break RIGHT AFTER the label (no orphan label) */
  break-after: avoid;
  page-break-after: avoid;
}
.article-description,
.article-reflection,
.article-external-reference,
.article-quote,
.article-mod-line {
  text-indent: 35px;
  line-height: 1.3;
  font-size: 20px;
  letter-spacing: 0.8px;
  margin-top: 0 !important;
  padding: 0 0 11px 0 !important;
  /* let long content flow normally; avoid hard blocking */
  page-break-inside: auto;
  break-inside: auto;
  /* draw hairline below each section body */
  border-bottom: none;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;
}
/* Don’t allow a break BEFORE the first block following each label */
.article-label-description + .article-description,
.article-label-reflection + .article-reflection,
.article-label-external-reference + .article-external-reference,
.article-label-quote + .article-quote,
.article-label-modification-date + .article-modification-date {
  break-before: avoid;
  page-break-before: avoid;
}
/* Gentle control on widows/orphans globally */
#article-content { orphans: 2; widows: 2; }
/* --- 12) Link handling for print --- */
a[href]:after { content: none !important; }  /* no raw URL echo */
.article-external-reference a {
  word-break: break-word;
  overflow-wrap: anywhere;
  text-decoration: none;
  color: #292828 !important;
  font-size: 17px;
  line-height: 1;
  letter-spacing: 0;
}
.article-quote {
  font-size: 26px;
  line-height: 1;
  letter-spacing: 1.2px;
  font-style: italic;
  margin-bottom: 7px!important;
  padding-bottom: 7px!important;
}
.article-mod-line{
  margin-top:7px!important;
  padding-top: 7px!important;
  white-space:nowrap;
  color:grey;
  line-height:1;
  font-size:14px;
  letter-spacing:0.5px;
  margin:0; padding:0;
  text-indent:35px;
}
.article-mod-line > span{
  display:inline;
  margin:0; padding:0;
}
.article-mod-line > span + span{ margin-left:6px; }
.article-modification-date {
  font-size:15px;
  letter-spacing:0.5px;
  margin:0; padding:0;
}
/* wrappers: no internal spacing, only add gap if a wrapper actually exists */
.print-sec { margin: 0; padding: 0; }
.print-sec + .print-sec { margin-top: 6mm; } /* tune spacing */
/* make sure the label/content inside a wrapper don’t add surprise margins */
.print-sec > * { margin: 0; padding: 0; }
/* optional: draw your “hairline” only on wrappers that exist */
.print-sec {
  border-bottom: none;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.5px;
  padding-bottom: 7px; /* room for the hairline; adjust if you like */
}
/* avoid extra gap above the first .print-sec after metadata/images */
.article-metadata + .print-sec,
.article-images + .print-sec { margin-top: 4mm; }
/* hide empty caption if no text sneaks in */
.caption-image1:empty { display: none; }