Files
upstream-zulip/web/styles/print.css
upstream-mirror 64898b2c79
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
2026-09-15 15:05:30 +05:00

148 lines
4.2 KiB
CSS

/* The container used by info_overlay.print_current_pane() to print
an informational overlay's full scrollable content. Hidden on
screen; the @media print rules below display only it. This rule
must precede them so that they win in the cascade. */
#zulip-print-container {
display: none;
}
@media print {
/* Hide unnecessary blocks. */
#navbar_alerts_wrapper,
#streamlist-toggle,
#left-sidebar-container,
#right-sidebar-container,
.column-left,
.top-messages-logo,
#userlist-toggle,
.message_length_controller,
#loading_older_messages_indicator,
#page_loading_indicator,
#message_feed_errors_container,
#bottom_whitespace,
#mark_read_on_scroll_state_banner,
#mark_read_on_scroll_state_banner_place_holder,
.trailing_bookend,
#compose {
display: none;
}
/* Allow printer to set the margins, and
prevent Safari from using screen-based ones. */
.column-middle {
margin: 0;
}
/* Prevent headers from running on every page. */
#navbar-fixed-container,
.message-feed .message_header {
position: static;
}
/* Save a bit of paper by removing height, which
otherwise creates a blank final page, and padding. */
html,
body {
height: auto;
}
#message_feed_container {
padding-top: 0;
}
/* Hide unnecessary controls, but leave them
in the document flow. */
.search_icon,
#search_exit,
.settings-dropdown-cog,
.recipient_bar_controls {
visibility: hidden;
}
/* Try to keep the message header with the messages
that follow in interleaved views. */
.message_header_stream {
break-after: avoid;
}
/* Don't highlight the selected message. */
.selected_message .messagebox-content {
outline: 0;
}
.messagebox-content {
.message_edit_notice,
.message-time {
/* Firefox seems to have a bug that fuzzes out
small text with opacity; this unsets that
value, and replaces with a matching gray. */
opacity: unset;
color: hsl(0deg 0% 0% / 48%);
}
}
/* Show collapsed content for printing. Note that
CSS Grid does not yet break very intelligently
in all browsers, so longer messages may sometimes
appear at the top of new pages. */
.message_content.collapsed,
.message_content.condensed {
max-height: unset !important;
min-height: unset !important;
overflow: auto !important;
height: auto !important;
mask-image: none;
}
/* Print links in the same color as text, with any
likely full URL values in parentheses. */
.message_content a {
color: inherit;
&[href^="http"]::after {
content: " (" attr(href) ")";
}
}
/* Ensure that emoji print. They are background-images,
which ordinarily do not print, so these properties
should ensure proper printing of inline, status, and
other emoji. */
.emoji {
color-adjust: exact;
print-color-adjust: exact;
}
/* When a print container has been injected, print only it and
hide the rest of the app UI. Use :not() to exclude the
container itself, since the `display: none !important` here
would otherwise beat the container's `display: block` below,
regardless of selector specificity. */
body:has(#zulip-print-container) > *:not(#zulip-print-container) {
display: none !important;
}
#zulip-print-container {
display: block;
/* Print the pane with its on-screen colors. Dark theme is
scoped to `@media screen` (see dark_theme.css), so these
resolve to light-theme colors regardless of the user's
theme. */
color-adjust: exact;
print-color-adjust: exact;
}
/* Keep each row's keys and description together across a page
break. This also avoids a Firefox bug where a row's borders
disappear when it starts at the top of a new printed page. */
#zulip-print-container tr {
break-inside: avoid;
}
.zulip-print-title {
font-size: 1.5714em; /* 22px at 14px/1em */
margin: 0 0 12px;
}
}