- @page size and margins
- size accepts paper keywords (A4, A5, Letter, Legal, Tabloid) plus portrait or landscape, or a width and height with a unit. Margins use the standard top, right, bottom, left order. @page only applies inside the print context, so on-screen layout is unaffected.
- print-color-adjust
- exact forces the browser to render every background color, image, and gradient on paper, even though most browsers strip them by default to save ink. economy is the default. The -webkit- prefix ships alongside the unprefixed property for Safari.
- Hidden selectors
- The hide list collapses nav, header, footer, sidebars, cookie banners, share widgets, and any element you tag .no-print. The !important wins over component styles without you having to touch the markup.
- Inlining link URLs
- a[href^="http"]::after appends the URL after every absolute link so the printed copy still tells the reader where the source is. Relative anchors and mailto: links are skipped to keep paper clean.
- Page break properties
- break-before and break-after force a new page; break-inside: avoid keeps tables, figures, code blocks, and headings together. The legacy page-break-* counterparts ship in the same block so older WebKit and print engines pick the right value.
- Orphans and widows
- orphans is the minimum number of lines left at the bottom of a page; widows is the minimum left at the top. Three is the CSS-wide default; four reads better for long reports.