UNPKG

@browser.style/print-preview

Version:

Print preview component with page layout controls and templates support

152 lines (143 loc) 3.22 kB
@media screen { :host { --_gap: 2rem; background-color: #999; border: 0; height: 100dvh; inset: 0; padding: 0; width: 100vw; } paper-sheet, ::slotted(paper-sheet) { aspect-ratio: calc(1 / var(--page-ratio)); background-color: #FFF; box-shadow: 0 0 10px rgba(0,0,0,.1); box-sizing: border-box; color: #000; display: block; font-size: var(--page-root-size, 1rem); font-family: var(--page-font, inherit); margin-block-end: var(--_gap); margin-inline: auto; padding: var(--page-margin-top) var(--page-margin-right) var(--page-margin-bottom) var(--page-margin-left); max-width: var(--page-width, auto); width: 100%; } paper-tray { box-sizing: border-box; display: block; padding-block-end: var(--_gap); padding-inline: var(--_gap); } :host > form { align-items: center; background-color: #121212; color: #E1E1E1; color-scheme: light dark; display: flex; flex-wrap: wrap; font-family: system-ui; font-size: 14px; gap: 1ch; margin-block-end: var(--_gap); padding: 1ch; position: sticky; top: 0; button { background: #262626; border: 0; border-radius: 4px; color: inherit; display: grid; font-size: inherit; padding: 0; place-content: center; &[data-action="close"] { margin-inline-start: auto; } svg { scale: 1.25; } } fieldset { all: unset; label { border: 0; } } fieldset, label { align-items: center; background: #262626; border-radius: 4px; display: flex; padding-inline: .5ch; } input, select { appearance: none; background: #0000; border: 0; border-radius: inherit; color: inherit; font-family: inherit; font-size: inherit; } input[type=number] { -moz-appearance:textfield; } input::-webkit-inner-spin-button, input::-webkit-outer-spin-button { appearance: none; } svg { fill: none; height: 1.5em; padding: 0.125em; pointer-events: none; stroke: currentColor; stroke-width: 1.25; width: 1.5em; } /* focus */ button:focus-visible, label:focus-within { &, input, select { outline: none; } background: #304850; } } } @media print { :host([mode="hidden"]) { display: none !important; } :host { border: 0; margin: 0; max-width: none; padding: 0; width: 100%; form { display: none; } } :host, paper-tray { display: block !important; height: auto !important; overflow: visible !important; position: static !important; } paper-sheet, ::slotted(paper-sheet) { background: #0000; box-shadow: none; break-after: page; color: #000; display: block !important; font-size: var(--page-root-size, 1rem); font-family: var(--page-font, inherit); margin: 0; overflow: visible !important; page: sheet; page-break-after: always; position: relative; } paper-sheet:last-child, ::slotted(paper-sheet:last-child) { break-after: avoid; } }