An Official Website of the Principality of KaharagiaHere's how you know

Print Styles

Ensure your content is readable and usable when users print pages from government websites.

Why Print Matters

Users print government pages to:

  • Keep a record of their application
  • Share information with others
  • Complete forms offline
  • Reference guidance while doing a task
  • Create accessible alternative formats

Basic Print Styles

@media print {
  /* Reset backgrounds and use black text */
  body {
    background: white;
    color: black;
  }

  /* Hide navigation and interactive elements */
  header,
  footer,
  nav,
  .sidebar,
  .back-link,
  button,
  .btn,
  .skip-link {
    display: none !important;
  }

  /* Show URLs for links */
  a[href^="http"]:after {
    content: " (" attr(href) ")";
    font-size: 0.875em;
    color: #666;
  }

  /* Don't show URLs for internal links */
  a[href^="/"]:after,
  a[href^="#"]:after {
    content: "";
  }

  /* Ensure content uses full width */
  main,
  article {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  /* Avoid page breaks inside elements */
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    break-after: avoid;
  }

  p, li, blockquote {
    orphans: 3;
    widows: 3;
  }

  table, figure, img {
    page-break-inside: avoid;
    break-inside: avoid;
  }
}

Hide Interactive Elements

Elements that don't work on paper should be hidden:

  • Navigation menus
  • Buttons and form controls
  • Search boxes
  • Skip links
  • Cookie banners
  • Videos and audio players

Expand Collapsed Content

Content hidden in accordions or details elements should be visible in print:

@media print {
  details[open] summary ~ *,
  .accordion-content,
  .details-text {
    display: block !important;
  }

  details summary::marker,
  .accordion-icon {
    display: none;
  }
}

Tables

Ensure tables print correctly across pages:

@media print {
  table {
    border-collapse: collapse;
    width: 100%;
  }

  th, td {
    border: 1px solid #000;
    padding: 0.5em;
  }

  thead {
    display: table-header-group;
  }

  tr {
    page-break-inside: avoid;
  }
}

Images

Handle images appropriately for print:

@media print {
  img {
    max-width: 100%;
    page-break-inside: avoid;
  }

  /* Hide decorative images */
  img[alt=""],
  .decorative-image {
    display: none;
  }

  /* Ensure logos print clearly */
  .logo img {
    filter: none;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

Links

Show URLs for external links so users can access them later:

@media print {
  /* Show full URL for external links */
  a[href^="http"]:not([href*="gov.kaharagia.org"]):after {
    content: " [" attr(href) "]";
    font-size: 0.75em;
    word-break: break-all;
  }

  /* Hide URLs for email and phone */
  a[href^="mailto:"]:after,
  a[href^="tel:"]:after {
    content: "";
  }
}

Page Headers and Footers

Add useful information to printed pages:

@media print {
  @page {
    margin: 2cm;

    @top-center {
      content: "Principality of Kaharagia";
    }

    @bottom-left {
      content: "Page " counter(page) " of " counter(pages);
    }

    @bottom-right {
      content: "Printed on " date();
    }
  }
}

Testing Print Styles

To test print styles:

  1. Open browser dev tools
  2. Open the Rendering panel
  3. Set "Emulate CSS media type" to "print"
  4. Or use Ctrl/Cmd + P to open print preview

Print Button

Optionally provide a print button for pages users commonly print:

<button class="btn btn-secondary" onclick="window.print()">
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
    <polyline points="6 9 6 2 18 2 18 9"></polyline>
    <path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path>
    <rect x="6" y="14" width="12" height="8"></rect>
  </svg>
  Print this page
</button>

PDF Alternative

For forms and documents, consider providing a downloadable PDF as an alternative to printing web pages.