zulip/web/styles/dark_theme.css

1524 lines
37 KiB
CSS

@import url("flatpickr/dist/themes/dark.css");
%dark-theme {
color-scheme: dark;
body {
color: hsl(236, 33%, 90%);
}
.placeholder {
color: hsl(0, 0%, 55%);
opacity: 1;
}
textarea::placeholder,
input::placeholder {
@extend .placeholder;
}
a:hover {
color: hsl(200, 79%, 66%);
}
ul.filters a:hover {
color: inherit;
}
/************************* MODAL DARK THEME *******************/
.dialog_cancel_button {
background-color: hsl(211, 29%, 14%);
color: hsl(0, 0%, 100%);
border: 1px solid hsla(0, 0%, 0%, 0.6);
}
.modal__btn:disabled {
opacity: 1;
background-color: hsla(0, 0%, 83%, 0.5);
}
.modal__content.simplebar-scrollable-y + .modal__footer {
border-top: 1px solid hsla(0, 0%, 100%, 0.2);
}
.modal-bg,
.modal__container {
background-color: hsl(212, 28%, 18%);
}
.modal__close {
&::before {
color: hsl(236, 33%, 90%);
}
&:hover {
background: hsla(0, 0%, 91%, 0.1);
}
}
.modal-footer {
box-shadow: inset 0 1px 0 hsla(0, 0%, 0%, 0.2);
}
.enter_sends,
.enter_sends_choices {
color: hsl(236, 33%, 90%);
kbd {
background-color: hsl(211, 29%, 14%);
border-color: hsl(211, 29%, 14%);
box-shadow: inset 0 -1px 0 hsl(210, 5%, 34%, 0.2);
text-shadow: none;
color: hsl(236, 33%, 90%);
}
.enter_sends_minor {
color: hsl(0, 0%, 80%);
}
}
table.table-striped thead.table-sticky-headers th {
background-color: hsl(0, 0%, 0%);
&[data-sort]:hover {
background-color: hsl(211, 29%, 14%) !important;
}
}
/* Extend the 'light-border' TippyJS theme, which is intended for
popovers/menus that should use default background colors, to use
our dark theme colors in Zulip's dark theme.
*/
.tippy-box[data-theme~="light-border"] {
.tippy-content a {
color: hsl(236, 33%, 90%);
&.compose_control_button:hover {
color: hsl(200, 79%, 66%);
}
}
&[data-placement^="top"] {
> .tippy-arrow {
&::before {
border-top-color: hsl(235, 18%, 7%);
}
}
}
&[data-placement^="bottom"] {
> .tippy-arrow {
&::before {
border-bottom-color: hsl(235, 18%, 7%);
}
}
}
&[data-placement^="left"] {
> .tippy-arrow {
&::before {
border-left-color: hsl(235, 18%, 7%);
}
}
}
&[data-placement^="right"] {
> .tippy-arrow {
&::before {
border-right-color: hsl(235, 18%, 7%);
}
}
}
}
.tippy-box:not([data-theme]) {
background: hsla(0, 0%, 0%, 1);
&[data-placement^="top"] > .tippy-arrow::before {
border-top-color: hsla(0, 0%, 0%, 1);
}
&[data-placement^="bottom"] > .tippy-arrow::before {
border-bottom-color: hsla(0, 0%, 0%, 1);
}
&[data-placement^="left"] > .tippy-arrow::before {
border-left-color: hsla(0, 0%, 0%, 1);
}
&[data-placement^="right"] > .tippy-arrow::before {
border-right-color: hsla(0, 0%, 0%, 1);
}
}
body,
.app-main,
.header-main,
.column-middle,
#compose,
.column-left .left-sidebar,
.column-right .right-sidebar,
#groups_overlay .right,
#subscription_overlay .right,
#settings_page .right,
#streams_header,
.private_messages_container,
.message_header,
.header {
background-color: hsl(212, 28%, 18%);
}
#scroll-to-bottom-button-container {
background: transparent;
span {
color: hsl(0, 0%, 27%);
}
}
.compose_banner {
.above_compose_banner_action_link {
color: hsl(200, 100%, 50%);
}
&.success {
background-color: hsl(147, 100%, 8%);
border-color: hsla(149, 48%, 52%, 0.4);
color: hsl(147, 51%, 80%);
.compose_banner_close_button {
color: hsl(147, 51%, 55%, 0.5);
&:hover {
color: hsl(147, 51%, 55%);
}
&:active {
color: hsl(147, 51%, 55%, 0.75);
}
}
}
&.warning {
background-color: hsl(53, 100%, 11%);
border-color: hsla(38, 44%, 60%, 0.4);
color: hsl(50, 45%, 80%);
.compose_banner_close_button {
color: hsl(50, 45%, 61%, 0.5);
&:hover {
color: hsl(50, 45%, 61%);
}
&:active {
color: hsl(50, 45%, 61%, 0.75);
}
}
.compose_banner_action_button {
background-color: hsla(50, 45%, 61%, 0.1);
color: hsl(50, 45%, 61%);
&:hover {
background-color: hsla(50, 45%, 61%, 0.15);
}
&:active {
background-color: hsla(50, 45%, 61%, 0.2);
}
}
}
&.error {
background-color: hsl(0, 60%, 19%);
border-color: hsla(3, 73%, 74%, 0.4);
color: hsl(3, 73%, 80%);
.compose_banner_close_button {
color: hsla(3, 73%, 74%, 0.5);
&:hover {
color: hsl(3, 73%, 74%);
}
&:active {
color: hsl(3, 73%, 74%, 0.75);
}
}
.compose_banner_action_button {
background-color: hsla(3, 73%, 74%, 0.1);
color: hsl(3, 73%, 74%);
&:hover {
background: hsla(3, 73%, 74%, 0.15);
}
&:active {
background: hsla(3, 73%, 74%, 0.2);
}
}
}
&.info {
background-color: hsl(204, 100%, 12%);
border-color: hsla(205, 58%, 69%, 0.4);
position: relative;
color: hsl(205, 58%, 80%);
.compose_banner_close_button {
color: hsla(205, 58%, 69%, 0.5);
&:hover {
color: hsl(205, 58%, 69%);
}
&:active {
color: hsla(205, 58%, 69%, 0.75);
}
}
}
}
.upload_banner {
.moving_bar {
background: hsl(204, 63%, 18%);
}
}
textarea.new_message_textarea {
&.invalid,
&.invalid:focus {
border-color: hsl(3, 73%, 74%);
box-shadow: 0 0 2px hsl(3, 73%, 74%);
}
}
.message_embed .data-container::after {
background: linear-gradient(0deg, hsl(212, 28%, 18%), transparent 100%);
}
.column-left .left-sidebar,
.stream_name_search_section,
.group_name_search_section,
.column-right .right-sidebar {
border-color: hsla(0, 0%, 0%, 0.2);
}
.dark .message_label_clickable.stream_label,
.dark .stream_label,
.stream_label {
color: hsl(212, 28%, 18%);
}
.new-style label.checkbox input[type="checkbox"] ~ span {
border-color: hsla(0, 0%, 100%, 0.4);
}
.streams_popover .sp-container {
background-color: transparent;
button {
background-color: hsl(208, 35%, 11%);
border: 1px solid hsl(210, 36%, 4%);
color: hsl(236, 31%, 90%);
}
.sp-picker-container {
border-left: solid 1px hsl(210, 36%, 4%);
}
}
/* this one is because in the app we have blue and in dark-theme it should be white. */
.popover a {
color: inherit;
}
.dark_background a,
a.dark_background:hover,
.dark_background,
.message_reactions .message_reaction_count,
.message_reactions .reaction_button i,
.message_reactions:hover .message_reaction + .reaction_button {
color: inherit !important;
}
/* It's a little annoying that we need to specify the different
background colors for these, but this alert feature can't use a
transparent background without creating other problems */
.alert-msg {
background-color: hsl(212, 28%, 18%);
}
.private-message .alert-msg {
background-color: hsl(208, 17%, 29%);
}
.active_private_messages_section {
#private_messages_section,
#private_messages_list,
#hide_more_private_messages {
background-color: hsla(199, 33%, 46%, 0.2);
}
}
/* do not turn the .message_header .stream_label text dark on hover because they're
on a dark background, and don't change the dark labels dark either. */
.message_header:not(.dark_background)
a.stream_label:not(.dark_background):hover {
color: hsl(212, 28%, 18%);
}
.message_header {
box-shadow: 0 -1px 0 0 hsl(212, 28%, 18%);
}
/* these are converting grey things to "new grey" */
:disabled,
input:not([type="radio"]):read-only,
textarea:read-only {
color: inherit;
opacity: 0.5;
}
.sidebar-title {
color: inherit;
opacity: 0.75;
}
.rendered_markdown button,
.new-style .button {
background-color: hsla(0, 0%, 0%, 0.2);
&:not(
.sea-green,
.btn-danger,
.btn-warning,
.btn-link,
.poll-vote,
button.poll-option,
button.add-task
) {
border-color: hsla(0, 0%, 0%, 0.6);
color: inherit;
}
&.btn-link {
border-color: hsla(0, 0%, 0%, 0.6);
color: hsl(200, 79%, 66%);
}
&:hover,
&:focus,
&:active {
background-color: hsla(0, 0%, 0%, 0.15);
}
}
.rendered_markdown .message_inline_image {
background: hsla(0, 0%, 100%, 0.03);
&:hover {
background: hsla(0, 0%, 100%, 0.15);
}
}
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="url"],
input[type="date"],
textarea,
.new-style .tab-switcher .ind-tab:not(.selected),
select,
.pill-container,
.user_status_content_wrapper {
background-color: hsla(0, 0%, 0%, 0.2);
border-color: hsla(0, 0%, 0%, 0.6);
color: inherit;
}
select option {
background-color: hsl(212, 28%, 18%);
color: hsl(236, 33%, 90%);
}
.unread_count,
/* The actions_popover unread_count object has its own variable CSS,
and thus needs to be repeated here with all three classes for precedence) */
.actions_popover .mark_as_unread .unread_count {
background-color: hsla(105, 2%, 50%, 0.5);
}
.pill-container {
border-style: solid;
border-width: 1px;
}
.deactivated-pill {
background-color: hsl(0, 86%, 14%) !important;
}
#search_arrows .pill,
.pm_recipient .pill-container .pill {
color: inherit;
border: 1px solid hsla(0, 0%, 0%, 0.5);
background-color: hsla(0, 0%, 0%, 0.25);
font-weight: 600;
}
#search_arrows .pill:focus,
.pm_recipient .pill-container .pill:focus {
color: hsl(0, 0%, 100%);
border: 1px solid hsla(176, 78%, 28%, 0.6);
background-color: hsla(176, 49%, 42%, 0.4);
}
.new-style .button.no-style {
background-color: transparent;
}
.create_user_group_plus_button,
.create_stream_plus_button {
color: hsl(0, 0%, 100%);
background-color: hsla(0, 0%, 0%, 0.2);
border-color: hsla(0, 0%, 0%, 0.6);
}
.emoji-info-popover
.emoji-popover
.emoji-popover-category-tabs
.emoji-popover-tab-item.active {
background-color: hsla(0, 0%, 0%, 0.5);
}
.new-style .tab-switcher .ind-tab.selected,
div.message_content thead,
.table-striped thead th,
.emoji-popover .reaction.reacted,
.message_reactions .message_reaction.reacted {
background-color: hsla(0, 0%, 0%, 0.5);
border-color: hsla(0, 0%, 0%, 0.9);
}
.ind-tab.disabled {
color: hsla(0, 0%, 42%, 0.9) !important;
}
.message_reactions:hover .message_reaction + .reaction_button,
.message_reactions .message_reaction {
background-color: transparent;
border-color: hsla(0, 0%, 0%, 0.8);
color: inherit;
&:hover {
border-color: hsl(236, 33%, 90%);
}
}
.emoji-popover .reaction:focus {
box-shadow: 0 0 1px hsl(0, 0%, 98%);
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
textarea:focus,
textarea.new_message_textarea:focus,
.compose_table .recipient_box:focus {
border-color: hsla(0, 0%, 0%, 0.9);
}
.message-header-contents,
.message_header_private_message .message-header-contents {
background-color: hsla(0, 0%, 0%, 0.2);
border-color: transparent;
}
.compose_control_buttons_container .divider {
color: hsla(236, 33%, 90%, 0.5);
}
/* Not that .message_row (below) needs to be more contrast on dark theme */
#compose-content,
.message_list .recipient_row,
.message_row,
.draft-row .draft-info-box,
.preview_message_area {
border-color: hsla(0, 0%, 0%, 0.2);
}
.recipient_row {
.message_row.unread {
.date_row {
background-color: hsl(212, 28%, 18%);
}
}
.private-message.unread {
.date_row {
background-color: hsl(208, 17%, 29%);
}
}
.message_row.unread ~ .message_row.unread {
.date_row {
background-color: transparent;
}
}
.private-message.unread ~ .private-message.unread {
.date_row {
background-color: hsl(208, 17%, 29%);
}
}
}
.spectator_narrow_login_button,
.top-navbar-border {
border-color: hsla(0, 0%, 0%, 0.6);
}
#message_view_header .sub_count {
&::before,
&::after {
color: hsla(0, 0%, 100%, 0.5);
}
}
#message_view_header .stream {
color: hsl(236, 33%, 90%);
}
#message_view_header .sub_count,
#message_view_header .narrow_description {
color: hsla(0, 0%, 90%, 1);
}
div.overlay,
#subscription_overlay
#stream-creation
#stream_creation_form
#stream_creating_indicator:not(:empty),
#groups_overlay
#user-group-creation
#user_group_creation_form
#user_group_creating_indicator:not(:empty),
.emoji-info-popover
.emoji-popover
.emoji-popover-emoji:not(.reacted):focus {
background-color: hsla(212, 28%, 8%, 0.75);
}
div.overlay .flex.overlay-content > div,
.dropdown-menu.typeahead,
#settings_page,
.informational-overlays .overlay-content {
box-shadow: 0 0 30px hsl(212, 32%, 7%);
}
.tippy-box[data-theme~="light-border"],
.dropdown-menu ul,
.dropdown .dropdown-menu,
.popover,
.popover-title,
.popover-content {
background-color: hsl(212, 32%, 14%);
}
.dropdown-menu a {
color: inherit;
}
.dropdown .dropdown-menu li.divider,
.popover hr,
hr {
color: hsl(212, 28%, 18%);
opacity: 0.2;
}
#gear_menu_about_zulip {
.white_zulip_icon_without_text {
filter: invert(10%) sepia(16%) saturate(175%) hue-rotate(194deg)
brightness(99%) contrast(89%);
}
}
#gear-menu {
.dark-theme {
display: none;
}
.light-theme {
display: block;
}
.dropdown-menu a:hover {
color: hsl(0, 0%, 100%);
}
}
.nav .dropdown-menu::after,
.popover.bottom .arrow {
border-bottom-color: hsl(235, 18%, 7%);
}
.popover.left .arrow {
border-left-color: hsl(235, 18%, 7%);
}
.popover.top .arrow {
border-top-color: hsl(235, 18%, 7%);
}
.popover.right .arrow {
border-right-color: hsl(235, 18%, 7%);
}
.narrow_to_compose_recipients,
.expand_composebox_button,
.collapse_composebox_button,
#message_edit_tooltip,
.clear_search_button,
.clear_search_button:focus,
.clear_search_button:active,
.clear_search_button:disabled:hover,
#user-groups .save-instructions,
.close,
#user_presences li:hover .user-list-sidebar-menu-icon,
li.top_left_all_messages:hover .all-messages-sidebar-menu-icon,
li.top_left_starred_messages:hover .starred-messages-sidebar-menu-icon,
li.top_left_drafts:hover .drafts-sidebar-menu-icon,
#stream_filters li:hover .stream-sidebar-menu-icon,
li.topic-list-item:hover .topic-sidebar-menu-icon {
color: hsl(236, 33%, 80%);
}
#message_edit_tooltip:hover,
.clear_search_button:hover {
color: hsl(0, 0%, 100%);
}
.spectator_login_buttons a {
color: hsl(236, 33%, 90%);
&:hover {
color: hsl(0, 0%, 100%);
}
}
.spectator_narrow_login_button .login_button i {
color: hsl(236, 33%, 90%);
}
#user_presences li .user-list-sidebar-menu-icon:hover,
.all-messages-sidebar-menu-icon:hover,
.starred-messages-sidebar-menu-icon:hover,
.drafts-sidebar-menu-icon:hover,
.stream-sidebar-menu-icon:hover,
.topic-sidebar-menu-icon:hover {
color: hsl(0, 0%, 100%) !important;
}
#streamlist-toggle,
#userlist-toggle {
color: inherit;
border-color: hsla(0, 0%, 0%, 0.6);
}
#streamlist-toggle-button {
color: inherit;
background-color: inherit;
}
#userlist-toggle-button {
color: hsl(221, 9%, 54%);
&:hover {
color: inherit;
}
}
li.active-filter,
li.active-sub-filter {
background-color: hsla(199, 33%, 46%, 0.2);
}
:not(.active-sub-filter) {
&.top_left_row:hover,
&.bottom_left_row:hover,
&#stream_filters li.highlighted_stream {
background-color: hsla(136, 25%, 73%, 0.2);
}
}
#stream_filters .narrow-filter.active-filter {
.topic-list .filter-topics,
> .bottom_left_row {
background-color: hsl(208, 31%, 24%);
}
}
.zoom-in {
#topics_header,
.narrow-filter > .bottom_left_row,
#stream_filters .topic-list .filter-topics {
background-color: hsl(212, 28%, 18%);
}
}
#topics_header {
.show-all-streams {
color: hsl(236, 33%, 90%);
opacity: 0.75;
}
}
#user_presences li:hover,
#user_presences li.highlighted_user {
background-color: hsla(136, 25%, 73%, 0.2);
}
.group-row.active,
.stream-row.active,
.emoji-info-popover .emoji-showcase-container,
.emoji-info-popover .emoji-popover .emoji-popover-category-tabs,
.emoji-info-popover .emoji-popover .emoji-popover-top {
background-color: hsla(0, 0%, 0%, 0.2);
}
.recent_topics_participant_overflow {
color: hsl(0, 0%, 100%) !important;
background-color: hsl(211, 18%, 25%) !important;
}
.recent_topics_container #recent_topics_table .btn-recent-filters {
background-color: hsl(211, 29%, 14%);
border-color: hsl(0, 0%, 0%);
color: hsl(0, 0%, 100%);
&:focus {
background-color: hsla(0, 0%, 0%, 0.5) !important;
outline: 0;
}
&.fake_disabled_button {
cursor: not-allowed;
opacity: 0.5;
&:hover {
background-color: hsla(0, 0%, 0%, 0.5);
border-color: hsl(0, 0%, 0%);
}
}
}
.recent_topics_container {
background-color: hsl(212, 28%, 18%) !important;
}
#recent_topics_table tr {
background-color: hsl(212, 28%, 18%);
&:hover {
background-color: hsl(208, 26%, 11%, 0.6);
}
}
#recent_topics_table .unread_topic {
background-color: hsla(212, 30%, 22%, 0.6);
}
.btn-recent-selected,
#recent_topics_table thead th {
background-color: hsl(0, 0%, 0%) !important;
&[data-sort]:hover {
background-color: hsl(211, 29%, 14%) !important;
}
}
#recent_topics_table td a {
color: hsl(206, 89%, 74%);
text-decoration: none;
&:hover {
color: hsl(208, 64%, 52%);
}
}
#recent_topics_table {
border-color: hsla(0, 0%, 0%, 0.6);
.fa-envelope,
.fa-group {
opacity: 0.7;
}
}
thead,
.drafts-container .drafts-header,
.nav > li > a:focus,
.nav > li > a:hover,
.subscriptions-container .subscriptions-header,
.user-groups-container .user-groups-header,
.grey-box,
.white-box,
.stream-email,
#settings_page .settings-header,
#settings_page .sidebar li.active,
#settings_page .sidebar-wrapper .tab-container,
.table-striped tbody tr:nth-child(even) td,
.table-striped tbody tr:nth-child(odd) th,
.modal-footer,
.modal-bg .modal-header {
border-color: hsla(0, 0%, 0%, 0.2);
background-color: hsla(0, 0%, 0%, 0.2);
}
.table-striped tbody tr:nth-child(odd) td {
background-color: hsl(212, 28%, 18%);
}
.user-groups-container .right .display-type,
.subscriptions-container .right .display-type,
.stream-row,
.group-row,
.subscriptions-container .left .search-container,
.subscriptions-container .left,
.user-groups-container .left,
.subscriber-list-box,
.subscriber-list-box .subscriber_list_container .subscriber-list tr,
.member-list-box,
.member-list-box .member_list_container .member-list tr,
#subscription_overlay .subsection-parent div,
#subscription_overlay .settings-radio-input-parent,
#settings_page .sidebar-wrapper,
#settings_page .sidebar-wrapper *,
table,
table th,
table td {
border-color: hsla(0, 0%, 0%, 0.2);
}
.draft-row .draft-info-box,
.message_header_private_message .message-header-contents {
box-shadow: none;
}
.draft-row .message_header_private_message .message_label_clickable {
padding: 4px 6px 3px;
color: inherit;
}
.nav-list > li > a,
.nav-list .nav-header {
text-shadow: none;
}
.group_mention .messagebox,
.direct_mention .messagebox {
background-color: hsla(8, 78%, 43%, 0.15);
}
.rendered_markdown {
.user-mention,
.user-group-mention {
background: linear-gradient(
to bottom,
hsla(0, 0%, 0%, 0.2) 0%,
hsla(0, 0%, 0%, 0.1) 100%
);
box-shadow: 0 0 0 1px hsla(0, 0%, 0%, 0.4);
}
.user-mention-me :not(.silent) {
background-color: hsla(355, 37%, 31%, 1);
box-shadow: 0 0 0 1px hsla(330, 40%, 20%, 1);
}
.codehilite code,
.codehilite pre {
color: hsl(212, 100%, 82%);
background-color: hsl(212, 25%, 15%);
}
.codehilite .hll {
background-color: hsl(0, 0%, 13%);
}
.codehilite .err {
color: hsl(1, 67%, 66%);
background-color: hsl(0, 7%, 22%);
}
.codehilite .k {
color: hsl(31, 85%, 59%);
}
.codehilite .p {
color: hsl(179, 27%, 35%);
}
.codehilite .cs {
color: hsl(0, 100%, 40%);
font-weight: 700;
}
.codehilite .gd {
color: hsl(0, 100%, 40%);
}
.codehilite .ge {
color: hsl(0, 0%, 80%);
font-style: italic;
}
.codehilite .gr {
color: hsl(0, 100%, 50%);
}
.codehilite .go {
color: hsl(0, 0%, 50%);
}
.codehilite .gs {
color: hsl(0, 0%, 80%);
font-weight: 700;
}
.codehilite .gu {
color: hsl(300, 100%, 25%);
font-weight: 700;
}
.codehilite .gt {
color: hsl(222, 100%, 41%);
}
.codehilite .kc {
color: hsl(0, 45%, 75%);
}
.codehilite .kd {
color: hsl(60, 100%, 76%);
}
.codehilite .kn {
color: hsl(24, 56%, 72%);
font-weight: 700;
}
.codehilite .kp {
color: hsl(62, 36%, 71%);
}
.codehilite .kr {
color: hsl(359, 58%, 56%);
}
.codehilite .ni {
color: hsl(359, 35%, 63%);
}
.codehilite .ne {
color: hsl(53, 23%, 69%);
font-weight: 700;
}
.codehilite .nn {
color: hsl(204, 54%, 72%);
}
.codehilite .vi {
color: hsl(60, 100%, 89%);
}
.codehilite .c,
.codehilite .g,
.codehilite .cm,
.codehilite .cp,
.codehilite .c1 {
color: hsl(209, 15%, 55%);
}
.codehilite .l,
.codehilite .x,
.codehilite .no,
.codehilite .nd,
.codehilite .nl,
.codehilite .nx,
.codehilite .py,
.codehilite .w {
color: hsl(0, 0%, 80%);
}
.codehilite .n,
.codehilite .nv,
.codehilite .vg {
color: hsl(60, 19%, 83%);
}
.codehilite .o,
.codehilite .ow {
color: hsl(58, 52%, 88%);
}
.codehilite .gh,
.codehilite .gp {
color: hsl(60, 19%, 83%);
font-weight: 700;
}
.codehilite .gi,
.codehilite .kt {
color: hsl(120, 100%, 40%);
}
.codehilite .ld,
.codehilite .s,
.codehilite .sb,
.codehilite .sc,
.codehilite .sd,
.codehilite .s2,
.codehilite .se,
.codehilite .sh,
.codehilite .si,
.codehilite .sx,
.codehilite .sr,
.codehilite .s1,
.codehilite .ss {
color: hsl(0, 36%, 69%);
}
.codehilite .m,
.codehilite .mf,
.codehilite .mh,
.codehilite .mi,
.codehilite .mo,
.codehilite .il {
color: hsl(183, 45%, 69%);
}
.codehilite .na,
.codehilite .nt {
color: hsl(127, 25%, 68%);
}
.codehilite .nb,
.codehilite .nc,
.codehilite .nf,
.codehilite .bp,
.codehilite .vc {
color: hsl(60, 75%, 75%);
}
}
#message-edit-history {
.message_edit_history_content {
.highlight_text_inserted {
color: hsl(122, 100%, 81%);
background-color: hsla(120, 64%, 95%, 0.3);
}
.highlight_text_deleted {
color: hsl(0, 90%, 67%);
background-color: hsla(7, 54%, 62%, 0.38);
}
}
}
time {
background: hsla(0, 0%, 0%, 0.2);
box-shadow: 0 0 0 1px hsla(0, 0%, 0%, 0.4);
}
.upgrade-tip,
.upgrade-or-sponsorship-tip,
.tip {
color: inherit;
background-color: hsla(46, 28%, 38%, 0.27);
border: 1px solid hsl(49, 38%, 46%);
}
#request-progress-status-banner {
background-color: hsl(212, 32%, 14%);
.alert-content {
color: hsl(236, 33%, 90%);
}
}
.alert.home-error-bar {
color: hsl(236, 33%, 90%);
background-color: hsla(35, 84%, 62%, 0.25);
border: 1px solid hsl(11, 46%, 54%);
}
.alert {
text-shadow: none;
.close {
color: inherit;
opacity: 0.8;
}
.close:hover {
opacity: 1;
}
}
.alert.alert-success {
color: inherit;
background-color: hsla(161, 60%, 46%, 0.2);
border-color: hsl(165, 68%, 37%);
}
.alert.alert-error,
.alert.alert-danger {
background-color: hsl(318, 12%, 21%);
color: inherit;
border: 1px solid hsl(0, 75%, 65%);
}
.alert-box .alert,
.alert-box .stacktrace,
.alert.alert-error {
background-color: hsl(318, 12%, 21%);
color: inherit;
border: 1px solid hsl(0, 75%, 65%);
}
.alert-box {
.alert.alert-error::before {
color: hsl(0, 75%, 65%);
}
.stacktrace {
color: hsl(314, 22%, 85%);
.expand {
color: hsl(318, 14%, 36%);
}
.subtle {
color: hsl(314, 19%, 63%);
}
.code-context {
color: hsl(314, 27%, 82%);
background-color: hsl(312, 7%, 14%);
box-shadow: inset 0 11px 10px -10px hsl(0, 0%, 6%),
inset 0 -11px 10px -10px hsl(0, 0%, 6%);
.line-number {
color: hsl(318, 14%, 44%);
}
.focus-line {
background-color: hsl(307, 9%, 19%);
}
}
}
}
/* Popover: */
.hotspot.overlay .hotspot-popover {
border-color: hsla(0, 0%, 0%, 0.2) !important;
/* Based on the `.hotspot-popover` shadow in `hotspots.css`, but with a new
color. */
box-shadow: 0 5px 10px hsla(0, 0%, 0%, 0.4);
}
#invite-user-modal {
#clipboard_image {
path {
fill: hsl(236, 33%, 90%);
}
}
}
#user-profile-modal {
#default-section {
.default-field {
.name {
color: hsl(236, 33%, 90%);
}
}
}
#content {
.field-section {
.name {
color: hsl(236, 33%, 90%);
}
}
}
.subscription-group-list,
.subscription-stream-list,
.subscription-stream-list .user-stream-list tr,
.subscription-group-list .user-group-list tr {
border-color: hsla(0, 0%, 0%, 0.4);
}
}
/* Arrows: */
.hotspot.overlay {
.hotspot-popover.arrow-right::before {
border-left-color: hsla(0, 0%, 0%, 0.2);
}
.hotspot-popover.arrow-right::after {
border-left-color: hsl(212, 28%, 18%);
}
.hotspot-popover.arrow-bottom::before {
border-top-color: hsla(0, 0%, 0%, 0.2);
}
.hotspot-popover.arrow-bottom::after {
border-top-color: hsl(212, 28%, 18%);
}
.hotspot-popover.arrow-left::before {
border-right-color: hsla(0, 0%, 0%, 0.2);
}
.hotspot-popover.arrow-left::after {
border-right-color: hsl(212, 28%, 18%);
}
.hotspot-popover.arrow-top::before {
border-bottom-color: hsla(0, 0%, 0%, 0.2);
}
.hotspot-popover.arrow-top::after {
border-bottom-color: hsl(212, 28%, 18%);
}
}
/* Content: */
.hotspot.overlay .hotspot-popover .hotspot-popover-content,
.hotspot.overlay .hotspot-popover .hotspot-popover-bottom {
background-color: hsl(212, 28%, 18%);
}
.alert-zulip-logo,
.top-messages-logo,
.bottom-messages-logo {
svg path {
fill: hsl(214, 27%, 18%);
stroke: hsl(214, 27%, 18%);
}
svg circle {
fill: hsl(0, 0%, 100%);
stroke: hsl(0, 0%, 100%);
}
}
.history-limited-box,
.all-messages-search-caution {
background-color: hsla(0, 0%, 0%, 0.2);
}
#feedback_container,
code,
.typeahead.dropdown-menu {
background-color: hsl(212, 25%, 15%);
border-color: hsla(0, 0%, 0%, 0.5);
color: inherit;
}
/* Search highlight used in both topics and rendered_markdown */
.highlight {
background-color: hsla(51, 100%, 64%, 0.42);
}
.sub-unsub-message span::before,
.sub-unsub-message span::after,
.date_row span::before,
.date_row span::after,
.streams_subheader span::before,
.streams_subheader span::after {
opacity: 0.5;
border-bottom: 1px solid hsl(0, 0%, 100%);
}
.star:not(.empty-star),
.empty-star:hover {
color: hsla(126, 66%, 72%, 0.75);
}
#bots_lists_navbar .active a {
color: hsl(0, 0%, 87%);
background-color: hsl(212, 28%, 18%);
border-color: hsl(0, 0%, 87%);
border-bottom-color: transparent;
}
.searching-for-more-topics img {
filter: invert(100%);
}
.simplebar-track .simplebar-scrollbar::before {
background-color: hsl(0, 0%, 100%);
box-shadow: 0 0 0 1px hsla(0, 0%, 0%, 0.33);
}
.collapse-settings-btn:hover {
color: hsl(200, 79%, 66%);
}
#request-progress-status-banner .loading-indicator,
#loading_older_messages_indicator,
#recent_topics_loading_messages_indicator {
path {
fill: hsl(0, 0%, 100%);
}
}
.small_square_button {
&.small_square_x {
background-color: hsl(0, 0%, 95%);
color: hsl(0, 0%, 42%);
&:hover {
color: hsl(0, 0%, 18%);
}
}
}
a:not(:active):focus,
button:focus,
.new-style label.checkbox input[type="checkbox"]:focus ~ span,
i.fa:focus,
i.zulip-icon:focus,
.auto-select:focus,
[role="button"]:focus {
outline-color: hsl(0, 0%, 67%);
}
.animated-purple-button:focus {
box-shadow: 0 1px 4px 0 hsl(0, 0%, 100%, 0.666);
}
.color_animated_button {
background-color: hsl(211, 29%, 14%);
* {
color: hsl(0, 0%, 100%);
}
&:hover {
background-color: hsl(240, 96%, 68%);
}
}
/* Widgets: Poll */
.poll-widget {
.poll-vote {
color: hsl(185, 35%, 65%);
border-color: hsl(185, 35%, 35%);
&:hover {
color: hsl(185, 50%, 70%);
border-color: hsl(185, 40%, 40%);
background-color: hsl(185, 20%, 20%);
}
&:focus {
color: hsl(185, 50%, 65%);
border-color: hsl(185, 40%, 50%);
background-color: hsl(185, 40%, 35%);
}
}
.poll-names {
color: hsl(236, 15%, 70%);
}
}
/* Widgets: Todo */
.todo-widget {
label.checkbox {
input[type="checkbox"] {
~ span {
border-color: hsl(185, 40%, 45%);
opacity: 0.7;
}
&:hover ~ span {
background-color: hsl(185, 20%, 20%);
border-color: hsl(185, 40%, 35%);
}
&:checked ~ span {
background-color: hsl(185, 40%, 45%);
}
&:focus ~ span {
outline-color: hsla(0, 0%, 100%, 0);
}
}
}
}
/* Originally the icon inherits the color of label, but when the setting
is disabled, the color of the label is changed and thus the icon becomes
too light. So, we set the color explicitly to original color of label to
keep the color of the icon same even when the setting is disabled. */
#id_realm_enable_spectator_access_label a {
color: hsl(236, 33%, 90%);
}
#stream-specific-notify-table .unmute_stream {
&:hover {
color: hsl(0, 0%, 100%);
}
}
#read_receipts_modal #read_receipts_list li {
&:hover {
background-color: hsla(0, 0%, 100%, 0.05);
}
&:active,
&:focus {
background-color: hsla(0, 0%, 100%, 0.1);
}
}
#settings_page,
#stream_settings {
.save-button-controls .discard-button {
color: hsl(0, 0%, 80%);
&:hover {
.save-discard-widget-button-text {
color: hsl(0, 0%, 100%);
}
}
}
}
}
@supports (-moz-appearance: none) {
%dark-theme #settings_page select {
background-color: hsla(0, 0%, 0%, 0.2);
}
}
:root.dark-theme {
@extend %dark-theme;
}
@media (prefers-color-scheme: dark) {
:root.color-scheme-automatic {
@extend %dark-theme;
}
}