summaryrefslogtreecommitdiffstats
path: root/toolkit/themes/shared/popupnotification.css
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--toolkit/themes/shared/popupnotification.css158
1 files changed, 158 insertions, 0 deletions
diff --git a/toolkit/themes/shared/popupnotification.css b/toolkit/themes/shared/popupnotification.css
new file mode 100644
index 0000000000..8b90efeace
--- /dev/null
+++ b/toolkit/themes/shared/popupnotification.css
@@ -0,0 +1,158 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+.popup-notification-panel::part(content) {
+ /* To keep the rounded borders of the panel, we use overflow: hidden; from the
+ * panel-no-padding class to ensure the contents are clipped to the border box.
+ * That causes us to override the "display" property so that the height of the
+ * contents is computed correctly. */
+ display: flex;
+ /* Make multiple popupnotifications stack vertically. */
+ flex-direction: column;
+}
+
+.popup-notification-panel > popupnotification:not([hidden]) {
+ /* Since the anonymous parent (::part(content)) has display: flex, sizing
+ * computations work better with display: block; than with the XUL default
+ * display: flex;
+ * TODO(emilio): we can probably remove this. */
+ display: block;
+}
+
+popupnotification {
+ font: caption;
+}
+
+popupnotificationcontent {
+ margin-top: .5em;
+}
+
+.popup-notification-header-container,
+.popup-notification-footer-container {
+ display: flex;
+ /** Padding + Icon width + border-radius + popup-notification-body-width **/
+ max-width: calc(2 * var(--arrowpanel-padding) + 32px + 4px + var(--popup-notification-body-width));
+}
+
+.popup-notification-body-container {
+ padding: var(--arrowpanel-padding);
+}
+
+.popup-notification-icon {
+ width: 32px;
+ height: 32px;
+ margin-inline-end: var(--arrowpanel-padding);
+}
+
+.popup-notification-body {
+ width: var(--popup-notification-body-width);
+ flex: 1 auto;
+}
+
+.popup-notification-closebutton {
+ margin-inline-end: -8px;
+ margin-top: -8px;
+}
+
+.popup-notification-origin:not([value]),
+.popup-notification-learnmore-link:not([href]) {
+ display: none;
+}
+
+.popup-notification-origin {
+ margin-bottom: .3em !important;
+}
+
+.popup-notification-hint-text {
+ margin-top: .5em !important;
+}
+
+.popup-notification-hint-text:empty {
+ display: none;
+}
+
+@media (-moz-platform: windows) {
+ /* Swap the primary and secondary action, because Windows
+ * platform conventions put the primary action on the left. */
+ .panel-footer > .popup-notification-primary-button:not([default]) {
+ order: -1;
+ }
+}
+
+.popup-notification-secondary-button:not([dropmarkerhidden="true"]) {
+ border-start-end-radius: 0;
+ border-end-end-radius: 0;
+}
+
+/**
+ * The focus ring is an outline thicker than 1px, meaning that for split buttons,
+ * if the main button part of the split button has :focus-visible, the ring will
+ * be partially hidden behind the dropmarker button. We work around this by
+ * temporarily boosting the z-index of the main button while showing its focus
+ * ring.
+ */
+.popup-notification-secondary-button:not([dropmarkerhidden="true"]):focus-visible {
+ z-index: 2;
+}
+
+.popup-notification-dropmarker {
+ border-start-start-radius: 0 !important;
+ border-end-start-radius: 0 !important;
+ margin-inline-start: 1px !important;
+ padding: 8px !important;
+ max-width: 32px;
+}
+
+.popup-notification-dropmarker > .button-box > hbox {
+ display: none;
+}
+
+.popup-notification-dropmarker > .button-box > .button-menu-dropmarker {
+ /* This is to override the linux !important */
+ appearance: none !important;
+ display: flex;
+ padding: 0;
+ margin: 0;
+}
+
+@media (-moz-platform: windows) {
+ /* Override default icon size which is too small for this dropdown */
+ .popup-notification-dropmarker > .button-box > .button-menu-dropmarker {
+ width: 16px;
+ height: 16px;
+ }
+}
+
+.popup-notification-dropmarker > .button-box > .button-menu-dropmarker::part(icon) {
+ width: 16px;
+ height: 16px;
+ list-style-image: url(chrome://global/skin/icons/arrow-down.svg);
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+.popup-notification-warning {
+ color: #d74345;
+}
+
+.popup-notification-icon:not([hasicon]) {
+ display: none;
+}
+
+.popup-notification-icon {
+ height: 16px;
+ width: 16px;
+ margin-inline-end: 6px;
+}
+
+.popup-notification-checkbox > .checkbox-label-box > .checkbox-label {
+ opacity: 0.7;
+}
+
+.popup-notification-learnmore-link {
+ text-decoration: underline;
+ margin-block: 4px 0;
+}