* 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/. */
+/* === BEGIN indicator.inc.css === */
+
+#downloads-indicator-progress-icon {
+ background: var(--downloads-indicator-image) bottom no-repeat;
+ -moz-context-properties: fill;
+ fill: var(--toolbarbutton-icon-fill-attention);
+ background-size: 18px;
+ margin-top: 18px;
+ /* From javascript side we use animation delay from 0s to -100s to show
+ * corresponding frames needed for progress.
+ * animation-delay is set to a positive value to make nothing shown.
+ */
+ animation-play-state: paused;
+ animation-delay: 1s;
+ animation-duration: 100s;
+ animation-timing-function: linear;
+ animation-name: indicatorArrowProgress;
+}
+/*
+toolbar[brighttext] #downloads-indicator-progress-icon {
+ animation-name: indicatorArrowProgressDark;
+}
+*/
+@keyframes indicatorArrowProgress {
+ 0% {
+ margin-top: 12px;
+ filter: brightness(1.2);
+ }
+ 100% {
+ margin-top: 2px;
+ filter: brightness(1);
+ }
+}
+/*
+@keyframes indicatorArrowProgressDark {
+ 0% {
+ margin-top: 12px;
+ filter: brightness(0.7);
+ }
+ 100% {
+ margin-top: 2px;
+ filter: brightness(1);
+ }
+}
+*/
+#downloads-button[notification="start"] > #downloads-indicator-anchor > #downloads-indicator-icon {
+ animation-name: downloadsIndicatorStartJump;
+ /* Upon changing the overall duration below, please keep the delay time of
+ setTimeout() identical in indicator.js for this animation. */
+ animation-duration: 0.5s;
+ animation-delay: 1s;
+ animation-iteration-count: 2;
+}
+
+@keyframes downloadsIndicatorStartJump {
+ 0% {
+ transform: translateY(0);
+ animation-timing-function: ease-out;
+ }
+ 50% {
+ transform: translateY(-3px);
+ animation-timing-function: ease-in;
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+/* === END indicator.inc.css === */
+
/*** Status and progress indicator ***/
-#downloads-indicator-anchor {
- /* Makes the outermost stack element positioned, so that its contents are
- rendered over the main browser window in the Z order. This is required by
- the animated event notification. */
+#downloads-animation-container {
+ min-height: 1px;
+ min-width: 1px;
+ height: 1px;
+ margin-bottom: -1px;
+ /* Makes the outermost animation container element positioned, so that its
+ contents are rendered over the main browser window in the Z order.
+ This is required by the animated event notification. */
position: relative;
+ /* The selected tab may overlap #downloads-indicator-notification */
+ z-index: 5;
}
/*** Main indicator icon ***/
+#downloads-button {
+ --downloads-indicator-image: url("chrome://browser/skin/download.svg");
+}
+
#downloads-indicator-icon {
- background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
- 0, 108, 18, 90) center no-repeat;
- min-width: 18px;
- min-height: 18px;
+ background: var(--downloads-indicator-image) center no-repeat;
+ -moz-context-properties: fill;
+ fill: var(--toolbarbutton-icon-fill);
+ width: 18px;
+ height: 18px;
+ background-size: 18px;
}
-#downloads-indicator:hover > #downloads-indicator-anchor > #downloads-indicator-icon,
-#downloads-indicator[open="true"] > #downloads-indicator-anchor > #downloads-indicator-icon,
-#downloads-indicator[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-icon,
#downloads-button:hover > #downloads-indicator-anchor > #downloads-indicator-icon,
#downloads-button[open="true"] > #downloads-indicator-anchor > #downloads-indicator-icon,
#downloads-button[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-icon {
- background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
- 18, 108, 36, 90) center no-repeat;
+ fill: var(--toolbarbutton-icon-fill-inverted);
color: #000000;
}
-#downloads-indicator-icon:-moz-lwtheme-brighttext {
-/* background: -moz-image-rect(url("chrome://browser/skin/Toolbar-inverted.png"),
- 0, 108, 18, 90) center no-repeat;*/
+toolbar[brighttext] #downloads-button:not([attention="success"]) > #downloads-indicator-anchor > #downloads-indicator-icon {
+/* fill: var(--toolbarbutton-icon-fill-inverted);*/
}
-#downloads-indicator[attention] > #downloads-indicator-anchor > #downloads-indicator-icon,
-#downloads-button[attention] > #downloads-indicator-anchor > #downloads-indicator-icon {
- background-image: url("chrome://browser/skin/downloads/download-glow.png");
+#downloads-button[attention="warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
+#downloads-button[attention="severe"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
+ display: -moz-box;
+ height: 8px;
+ width: 8px;
+ min-width: 0;
+ border-radius: 50%;
+ /* "!important" is necessary to override the rule in toolbarbutton.css */
+ margin-top: -1px !important;
+ margin-right: -2px !important;
}
-/* In the next few rules, we use :not([counter]) as a shortcut that is
- equivalent to -moz-any([progress], [paused]). */
+#downloads-button[cui-areatype="toolbar"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
+ height: 7px;
+ width: 7px;
+}
+
+#downloads-button[attention="severe"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
+ background: #FF0000;
+}
+
+#downloads-button[attention="warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
+ background: #FFCF00;
+}
-#downloads-indicator:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
- background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
- 0, 108, 18, 90) center no-repeat;
- background-size: 12px;
+#downloads-button[attention="severe"] > .toolbarbutton-badge-stack > .toolbarbutton-badge:-moz-window-inactive,
+#downloads-button[attention="warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge:-moz-window-inactive {
+ filter: none;
}
-#downloads-indicator:not([counter])[attention] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button:not([counter])[attention] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
- background-image: url("chrome://browser/skin/downloads/download-glow.png");
+#downloads-button[attention="success"] > #downloads-indicator-anchor > #downloads-indicator-icon {
+ fill: var(--toolbarbutton-icon-fill-attention);
}
-#downloads-indicator:not([counter]):hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-indicator[open="true"]:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-indicator:not([counter])[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button:not([counter]):hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button[open="true"]:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button:not([counter])[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
- background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
- 18, 108, 36, 90) center no-repeat;
- background-size: 12px;
+#downloads-button[cui-areatype="menu-panel"][attention="success"] {
+ list-style-image: url("chrome://browser/skin/downloads/download-glow-menuPanel.png");
+ -moz-image-region: auto;
}
/*** Download notifications ***/
background-size: 16px;
background-position: center;
background-repeat: no-repeat;
+ width: 16px;
+ height: 16px;
}
@keyframes downloadsIndicatorNotificationStartRight {
to { opacity: 0; transform: translate(0) scale(1); }
}
-#downloads-indicator[notification="start"] > #downloads-indicator-anchor > #downloads-indicator-notification,
-#downloads-button[notification="start"] > #downloads-indicator-anchor > #downloads-indicator-notification {
+#downloads-notification-anchor[notification="start"] > #downloads-indicator-notification {
background-image: url("chrome://browser/skin/downloads/download-notification-start.png");
animation-name: downloadsIndicatorNotificationStartRight;
animation-duration: 1s;
}
-#downloads-indicator[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-anchor > #downloads-indicator-notification,
-#downloads-button[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-anchor > #downloads-indicator-notification {
+#downloads-notification-anchor[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-notification {
animation-name: downloadsIndicatorNotificationStartLeft;
}
to { opacity: 0; transform: scale(8); }
}
-#downloads-indicator[notification="finish"] > #downloads-indicator-anchor > #downloads-indicator-notification,
-#downloads-button[notification="finish"] > #downloads-indicator-anchor > #downloads-indicator-notification {
+#downloads-notification-anchor[notification="finish"] > #downloads-indicator-notification {
background-image: url("chrome://browser/skin/downloads/download-notification-finish.png");
animation-name: downloadsIndicatorNotificationFinish;
animation-duration: 1s;
}
-/*** Progress bar and text ***/
-
-#downloads-indicator-counter {
- height: 9px;
- margin: -3px 0 0;
- color: #FFCF00;
- font-size: 9px;
- line-height: 9px;
- text-align: center;
-}
-
-#downloads-indicator-counter:-moz-lwtheme-brighttext {
-/* color: white;
- text-shadow: 0 0 1px rgba(0,0,0,.7),
- 0 1px 1.5px rgba(0,0,0,.5);*/
-}
-
-#downloads-indicator[counter]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-indicator[counter][open="true"] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button[counter]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
-#downloads-button[counter][open="true"] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
- color: #000000;
-}
-
-#downloads-indicator-progress {
- width: 16px;
- height: 5px;
- min-width: 0;
- min-height: 0;
- margin-top: 1px;
- margin-bottom: 2px;
- border-radius: 2px;
- background-color: #795900;
-}
-
-#downloads-indicator-progress > .progress-bar {
- -moz-appearance: none;
- min-width: 0;
- min-height: 0;
- background-color: #008484;
- border-radius: 2px 0 0 2px;
-}
-
-#downloads-indicator-progress > .progress-remainder {
- min-width: 0;
- min-height: 0;
- background-color: #A09090;
- border-radius: 0 2px 2px 0;
-}
-
-#downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-bar,
-#downloads-button[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-bar {
- background-color: #8050B0;
-}
-
-#downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-remainder,
-#downloads-button[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-remainder {
- background-color: #404048;
-}
-
-toolbar[mode="full"] > #downloads-indicator > .toolbarbutton-text {
+toolbar[mode="full"] > #downloads-button > .toolbarbutton-text {
margin: 0;
text-align: center;
}