4,431
edits
No edit summary |
No edit summary |
||
(48 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
/* -- | /* =========================== | ||
Softwear — A4 Narrow Print | |||
One-column ~half-A4 width | |||
(compact typography) | |||
=========================== */ | |||
/* 1) Font face */ | |||
@font-face { | @font-face { | ||
font-family: 'HALColant-TextRegular'; | font-family: 'HALColant-TextRegular'; | ||
Line 9: | Line 15: | ||
} | } | ||
/* 2) Print color fidelity */ | |||
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; } | * { -webkit-print-color-adjust: exact; print-color-adjust: exact; } | ||
/* | /* 3) Base visibility & typography */ | ||
.print-only { display: block !important; } | .print-only { display: block !important; } | ||
html, body { | html, body { | ||
margin: 0; | margin: 0; | ||
padding: 0; | padding: 0; | ||
font-family: 'HALColant-TextRegular', Georgia, "Times New Roman", serif; | font-family: 'HALColant-TextRegular', Georgia, "Times New Roman", serif; | ||
color: # | color: #292828 !important; | ||
background: #fff !important; | |||
} | } | ||
/* | /* 4) Page & narrow column | ||
@page { | A4 portrait; 12mm outer margin. | ||
Content column = 93mm centered. | |||
*/ | |||
@page { size: A4 portrait; margin: 12mm; } | |||
.entry-wrapper.print-a4-narrow { | |||
.entry-wrapper.print- | |||
box-sizing: border-box; | box-sizing: border-box; | ||
/* | width: 93mm; /* ~half A4 minus gutter */ | ||
/* | margin: 0 auto; /* center on page */ | ||
padding: 3mm; /* small inner padding */ | |||
} | |||
.entry-wrapper { | |||
border: 1px solid; | |||
padding: 10px 10px; | |||
position: relative; | |||
} | |||
/* 5) Titles & people (COMPACT) */ | |||
.article-title { | |||
font-size: 16px; | |||
line-height: 18px; | |||
letter-spacing: 0.5px; | |||
text-align: center; | |||
margin: 0; | |||
} | |||
.article-people { | |||
font-size: 14px; | |||
line-height: 18px; | |||
letter-spacing: 0.4px; | |||
text-align: center; | |||
text-decoration: underline; | |||
margin: 0; | |||
padding-top: 6px; | |||
} | } | ||
.article-people a { text-decoration: underline; color: #292828 !important; } | |||
/* | /* === Hairline rules via pseudo-element (Blink) === */ | ||
.article-entry-number, | |||
.article- | .link-pdf, | ||
.article-type, | |||
.article-metadata, | |||
.article-images, | .article-images, | ||
.article-description, | .article-description, | ||
.article-reflection, | .article-reflection, | ||
.article-external-reference, | .article-external-reference, | ||
.article-quote { | .article-quote, | ||
.article-mod-line { | |||
position: relative; | |||
padding-bottom: 6px; | |||
border-bottom: none !important; | |||
} | |||
.article-entry-number::after, | |||
.link-pdf::after, | |||
.article-type::after, | |||
.article-metadata::after, | |||
.article-images::after, | |||
.article-description::after, | |||
.article-reflection::after, | |||
.article-external-reference::after, | |||
.article-quote::after, | |||
.article-mod-line::after { | |||
content: ""; | |||
position: absolute; | |||
left: 0; right: 0; bottom: 0; | |||
height: 1px; | |||
background: #292828; | |||
transform: scaleY(0.5); | |||
transform-origin: 50% 100%; | |||
} | } | ||
/* | /* === Firefox fallback: real thin border === */ | ||
@-moz-document url-prefix() { | |||
.article-entry-number::after, | |||
.link-pdf::after, | |||
.article-type::after, | |||
.article-metadata::after, | |||
.article-images::after, | |||
.article-description::after, | |||
.article-reflection::after, | |||
.article-external-reference::after, | |||
.article-quote::after, | |||
.article-mod-line::after { | |||
content: none !important; | |||
} | |||
.article-entry-number, | |||
.link-pdf, | |||
.article-type, | |||
.article-metadata, | |||
.article-images, | |||
.article-description, | |||
.article-reflection, | |||
.article-external-reference, | |||
.article-quote, | |||
.article-mod-line { | |||
border-bottom: 0.5pt solid #292828 !important; | |||
} | |||
#article-content > :last-child { border-bottom: 0 !important; } | |||
/* Add top spacer so first element isn't flush */ | |||
.entry-wrapper.print-a4-narrow::before, | |||
.entry-wrapper.print-a5::before, | |||
.print-only::before { | |||
content: ""; | |||
display: block; | |||
height: 6mm; /* match your @page top margin */ | |||
} | |||
html, body { | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
} | |||
} | } | ||
/* 7) Entry number row */ | |||
.article-entry-number { | .article-entry-number { | ||
font-size: 12px; | |||
line-height: 16px; | |||
margin: 0; | |||
} | } | ||
/* 8) Centered link row ([PDF⤴] [WEB⤴]) */ | |||
.link-pdf { | .link-pdf { | ||
text-align: center; | |||
color: #292828 !important; | |||
text-decoration: none; | |||
margin: 2px 0 0 0; | |||
padding-top: 0; | |||
} | } | ||
.link-pdf a, .link-pdf p { | .link-pdf a, .link-pdf p { | ||
display: inline-block; | |||
text-decoration: none; | |||
color: #292828 !important; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
} | } | ||
.article-type { | /* 9) Type line */ | ||
.article-type { | |||
font-size: 12px; | |||
line-height: 1.1; | |||
margin: 0; | |||
padding-top: 4px; | |||
color: #292828 !important; | |||
} | } | ||
.article-type a { text-decoration: none; color: #292828 !important; } | |||
/* | /* 10) Metadata grid (COMPACT) */ | ||
.article-metadata, | .article-metadata, | ||
.article-metadata * { | .article-metadata * { | ||
Line 146: | Line 188: | ||
} | } | ||
.article-metadata { | .article-metadata { | ||
display: grid; | |||
grid-template-columns: repeat(3, 1fr); | |||
gap: 1.5mm; | |||
padding-top: 6px; | |||
line-height: 1.05 !important; | |||
} | } | ||
.article-metadata-label { | .article-metadata-label { | ||
font-size: 9px; | |||
text-transform: uppercase; | |||
letter-spacing: 0.3px; | |||
} | } | ||
.article-metadata-value { | .article-metadata-value { | ||
font-size: 11px; | |||
text-transform: capitalize; | |||
} | } | ||
.article-metadata-value a { | .article-metadata-value a { | ||
color: #292828 !important; | |||
text-decoration: none; | |||
} | } | ||
/* 11) Images (shorter to favor text) */ | |||
.article-metadata + .article-images { margin-top: 0 !important; padding-top: 0 !important; } | |||
.article-images { margin: 0 !important; padding-top: 0 !important; } | |||
.article-images .image-container { | .article-images .image-container { | ||
display: inline-flex; | |||
flex-direction: column; | |||
align-items: flex-start; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
} | } | ||
.article-images .image-container img, | |||
.article-images .image-container img | |||
.image-container img { | .image-container img { | ||
display: block; | |||
max-height: 60mm; /* was 85mm */ | |||
height: auto; | |||
width: auto; | |||
max-width: 100%; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
object-fit: contain; | |||
line-height: 0; | |||
} | } | ||
.caption-image1 { | .caption-image1 { | ||
margin: 0 !important; | |||
padding: 0 !important; | |||
line-height: 1.1 !important; | |||
font-size: 8px; /* smaller captions */ | |||
color: #555; | |||
text-align: left; | |||
width: 100%; | |||
} | } | ||
.caption-image1:empty { display: none; } | |||
/* 12) Labels & bodies (COMPACT) */ | |||
.article-label-description, | .article-label-description, | ||
.article-label-reflection, | .article-label-reflection, | ||
Line 237: | Line 247: | ||
.article-label-quote, | .article-label-quote, | ||
.article-label-modification-date { | .article-label-modification-date { | ||
text-transform: uppercase; | |||
margin: 6px 0 0 0 !important; | |||
padding: 0 !important; | |||
text-indent: 20px; | |||
line-height: 1.05; | |||
font-size: 10px; | |||
letter-spacing: 0.4px; | |||
break-after: avoid; page-break-after: avoid; | |||
} | |||
.article-metadata + .article-label-description, | |||
.article-images + .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 { | |||
margin-top: 6px !important; | |||
} | } | ||
.article-description, | .article-description, | ||
Line 251: | Line 268: | ||
.article-external-reference, | .article-external-reference, | ||
.article-quote, | .article-quote, | ||
.article- | .article-mod-line { | ||
text-indent: 20px; | |||
line-height: 1.15; /* tighter */ | |||
font-size: 11.5px; /* down from 20px */ | |||
letter-spacing: 0.4px; | |||
margin-top: 0 !important; | |||
padding-top: 0 !important; | |||
} | |||
.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; | |||
} | |||
/* 13) Quote (COMPACT) */ | |||
.article-quote { | |||
font-size: 13px; | |||
line-height: 1.2; | |||
font-style: italic; | |||
} | } | ||
/* | /* 14) Mod line */ | ||
.article-mod-line { | |||
white-space: nowrap; | |||
color: grey; | |||
line-height: 1.05; | |||
font-size: 10px; | |||
letter-spacing: 0.3px; | |||
margin: 5px 0 0 0 !important; | |||
padding-top: 0 !important; | |||
} | |||
.article-mod-line > span { display: inline; margin: 0; padding: 0; } | |||
.article-mod-line > span + span { margin-left: 4px; } | |||
.article-modification-date { font-size: 11px; letter-spacing: 0.3px; } | |||
/* 15) Vector resets */ | |||
.vector-body p { margin: 0 !important; padding: 0 !important; } | |||
/* 16) Links */ | |||
a[href]:after { content: none !important; } | a[href]:after { content: none !important; } | ||
.article-external-reference a { | .article-external-reference a { | ||
word-break: break-word; | word-break: break-word; | ||
overflow-wrap: anywhere; | overflow-wrap: anywhere; | ||
text-decoration: none; | |||
color: #292828 !important; | |||
font-size: 11px; /* smaller */ | |||
line-height: 1.15; | |||
letter-spacing: 0; | |||
} | } | ||
/* | /* 17) Page control */ | ||
.article-label-description { break-after: | #article-content { orphans: 2; widows: 2; } | ||
.article-label-description + .article-description { | |||
/* 18) Prevent bad splits */ | |||
#article-title, | |||
.article-title-link, | |||
.article-metadata, | |||
.article-images { break-inside: avoid; page-break-inside: avoid; } | |||
/* === Chrome/Blink-specific print overrides === */ | |||
@media print and (-webkit-min-device-pixel-ratio:0) { | |||
.article-label-description, | |||
.article-label-reflection, | |||
.article-label-external-reference, | |||
.article-label-quote, | |||
.article-label-modification-date { | |||
break-after: auto !important; | |||
page-break-after: auto !important; | |||
} | |||
.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: auto !important; | |||
page-break-before: auto !important; | |||
} | |||
.article-description p, | |||
.article-reflection p, | |||
.article-external-reference p, | |||
.article-quote p { | |||
page-break-inside: avoid; | |||
break-inside: avoid; | |||
} | |||
} | } | ||
/* | /* === FORCE narrow column on print (robust) === */ | ||
. | @media print { | ||
. | /* 1) Make sure the column itself is 93mm and centered */ | ||
.entry-wrapper.print-a4-narrow, | |||
} | .print-only.entry-wrapper, | ||
.print-only .entry-wrapper { | |||
width: 93mm !important; | |||
max-width: 93mm !important; | |||
margin-left: auto !important; | |||
margin-right: auto !important; | |||
box-sizing: border-box !important; | |||
} | |||
/* 2) If the wrapper class isn't present, fall back to constraining .print-only itself */ | |||
.print-only { | |||
width: 93mm !important; | |||
max-width: 93mm !important; | |||
margin-left: auto !important; | |||
margin-right: auto !important; | |||
box-sizing: border-box !important; | |||
} | |||
. | /* 3) Prevent descendants from stretching the width */ | ||
. | .print-only *, | ||
.entry-wrapper.print-a4-narrow * { | |||
} | max-width: 100% !important; | ||
} | |||
. | /* Common stretchers — make them auto width within the column */ | ||
. | .print-only .mw-body, | ||
.print-only .vector-body, | |||
} | .print-only .content, | ||
.print-only .list-container, | |||
.print-only table { | |||
width: auto !important; | |||
max-width: 100% !important; | |||
} | |||
. | /* Images never force the layout wider */ | ||
.print-only img { | |||
width: auto !important; | |||
max-width: 100% !important; | |||
height: auto !important; | |||
} | |||
} | } | ||