fix(pitch-deck): use imported CSS for print styles instead of inline style tag
Inline <style> tags in React body are unreliable for @media print in Chrome. Move all print CSS to app/pitch-print/print.css imported via a layout.tsx — Next.js injects this as a proper <link> in <head>, which is guaranteed to be applied before print rendering. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -30,35 +30,6 @@ export default function PrintDeck({ pitchData, versionName, fmResults, fmAssumpt
|
||||
|
||||
return (
|
||||
<>
|
||||
<style>{`
|
||||
@media print {
|
||||
@page { size: A4 landscape; margin: 0; }
|
||||
body { margin: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
||||
.no-print { display: none !important; }
|
||||
.print-page {
|
||||
page-break-after: always !important;
|
||||
break-after: page !important;
|
||||
page-break-inside: avoid !important;
|
||||
break-inside: avoid !important;
|
||||
margin: 0 !important;
|
||||
box-shadow: none !important;
|
||||
width: 297mm !important;
|
||||
height: 210mm !important;
|
||||
}
|
||||
.print-page-cover {
|
||||
page-break-after: always !important;
|
||||
break-after: page !important;
|
||||
margin: 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.print-deck-wrapper { padding: 0 !important; }
|
||||
}
|
||||
@media screen {
|
||||
body { background: #d1d5db; }
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
`}</style>
|
||||
|
||||
{/* Toolbar — screen only */}
|
||||
<div className="no-print" style={{
|
||||
position: 'sticky', top: 0, zIndex: 100,
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import './print.css'
|
||||
|
||||
export default function PrintLayout({ children }: { children: React.ReactNode }) {
|
||||
return <>{children}</>
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
@media screen {
|
||||
body { background: #d1d5db; }
|
||||
}
|
||||
|
||||
@media print {
|
||||
@page {
|
||||
size: A4 landscape;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
|
||||
.no-print {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.print-deck-wrapper {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.print-page {
|
||||
page-break-after: always !important;
|
||||
break-after: page !important;
|
||||
page-break-inside: avoid !important;
|
||||
break-inside: avoid !important;
|
||||
margin: 0 !important;
|
||||
box-shadow: none !important;
|
||||
width: 297mm !important;
|
||||
height: 210mm !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user