1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 /*** Panel and outer controls ***/
7 #downloadsPanel > .panel-arrowcontainer > .panel-arrowcontent {
12 background-color: transparent;
17 #downloadsPanel:not([hasdownloads]) > #downloadsListBox {
23 margin: 4px !important;
26 #downloadsPanel[keyfocus] > #downloadsFooter > #downloadsHistory:focus {
27 outline: 1px #008484 dotted;
31 #downloadsHistory > .button-box {
35 /*** Downloads Summary and List items ***/
38 richlistitem[type="download"] {
45 padding: 8px 38px 8px 12px;
47 -moz-user-focus: normal;
50 #downloadsPanel[keyfocus] > #downloadsFooter > #downloadsSummary:focus {
51 outline: 1px #008484 dotted;
55 #downloadsSummary > .downloadTypeIcon {
56 list-style-image: url("chrome://browser/skin/downloads/download-summary.png");
59 #downloadsSummaryDescription {
63 richlistitem[type="download"] {
65 border-bottom: 1px dotted #9C9CFF;
66 background: transparent;
70 richlistitem[type="download"]:first-child {
71 /* border-top: 1px solid transparent;*/
74 #downloadsListBox:-moz-focusring > richlistitem[type="download"][selected] {
75 outline: 1px #008484 dotted;
77 /*-moz-outline-radius: 3px;*/
82 /* Prevent flickering when changing states. */
88 list-style-image: url("chrome://global/skin/icons/alert-error.gif");
91 /* We hold .downloadTarget, .downloadProgress and .downloadDetails inside of
92 a vbox with class .downloadContainer. We set the font-size of the entire
93 container to 90% because:
95 1) This is the size that we want .downloadDetails to be
96 2) The container's width is set by localizers by &downloadDetails.width;,
97 which is a ch unit. Since this is the value that should control the
98 panel width, we apply it to the outer container to constrain
99 .downloadTarget and .downloadProgress.
101 Finally, since we want .downloadTarget's font-size to be at 100% of the
102 font-size of .downloadContainer's parent, we use calc to go from the
103 smaller font-size back to the original font-size.
105 #downloadsSummaryDetails,
110 #downloadsSummaryDescription,
117 font-size: calc(100%/0.9);
120 #downloadsSummaryDetails,
131 background: transparent;
133 list-style-image: url("chrome://browser/skin/downloads/buttons.png");
136 .downloadButton > .button-box {
137 border: 1px solid transparent;
141 #downloadsPanel[keyfocus] .downloadButton:focus > .button-box {
142 border: 1px dotted #008484;
145 /*** Highlighted list items ***/
147 #downloadsPanel:not([keyfocus]) > #downloadsListBox > richlistitem[type="download"]:hover {
149 background-color: #794900;
154 /*** Button icons ***/
156 .downloadButton.downloadCancel {
157 -moz-image-region: rect(0px, 16px, 16px, 0px);
159 richlistitem[type="download"]:hover > stack > .downloadButton.downloadCancel,
160 richlistitem[type="download"]:hover > stack > .downloadButton.downloadCancel:hover,
161 richlistitem[type="download"]:hover > stack > .downloadButton.downloadCancel:active {
162 -moz-image-region: rect(0px, 32px, 16px, 16px);
165 .downloadButton.downloadShow {
166 -moz-image-region: rect(16px, 16px, 32px, 0px);
168 richlistitem[type="download"]:hover > stack > .downloadButton.downloadShow,
169 richlistitem[type="download"]:hover > stack > .downloadButton.downloadShow:hover,
170 richlistitem[type="download"]:hover > stack > .downloadButton.downloadShow:active {
171 -moz-image-region: rect(16px, 32px, 32px, 16px);
174 .downloadButton.downloadRetry {
175 -moz-image-region: rect(32px, 16px, 48px, 0px);
177 richlistitem[type="download"]:hover > stack > .downloadButton.downloadRetry,
178 richlistitem[type="download"]:hover > stack > .downloadButton.downloadRetry:hover,
179 richlistitem[type="download"]:hover > stack > .downloadButton.downloadRetry:active {
180 -moz-image-region: rect(32px, 32px, 48px, 16px);
183 /*** Status and progress indicator ***/
185 #downloads-indicator-anchor {
186 /* Makes the outermost stack element positioned, so that its contents are
187 rendered over the main browser window in the Z order. This is required by
188 the animated event notification. */
192 /*** Main indicator icon ***/
194 #downloads-indicator-icon {
195 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
196 0, 108, 18, 90) center no-repeat;
201 #downloads-indicator:hover > #downloads-indicator-anchor > #downloads-indicator-icon,
202 #downloads-indicator[open="true"] > #downloads-indicator-anchor > #downloads-indicator-icon,
203 #downloads-indicator[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-icon {
204 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
205 18, 108, 36, 90) center no-repeat;
209 #downloads-indicator-icon:-moz-lwtheme-brighttext {
210 /* background: -moz-image-rect(url("chrome://browser/skin/Toolbar-inverted.png"),
211 0, 108, 18, 90) center no-repeat;*/
214 #downloads-indicator[attention] > #downloads-indicator-anchor > #downloads-indicator-icon {
215 background-image: url("chrome://browser/skin/downloads/download-glow.png");
218 /* In the next few rules, we use :not([counter]) as a shortcut that is
219 equivalent to -moz-any([progress], [paused]). */
221 #downloads-indicator:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
222 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
223 0, 108, 18, 90) center no-repeat;
224 background-size: 12px;
227 #downloads-indicator:not([counter])[attention] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
228 background-image: url("chrome://browser/skin/downloads/download-glow.png");
231 #downloads-indicator:not([counter]):hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
232 #downloads-indicator[open="true"]:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
233 #downloads-indicator:not([counter])[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
234 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
235 18, 108, 36, 90) center no-repeat;
236 background-size: 12px;
239 /*** Download notifications ***/
241 #downloads-indicator-notification {
243 background-size: 16px;
244 background-position: center;
245 background-repeat: no-repeat;
248 @keyframes downloadsIndicatorNotificationStartRight {
249 from { opacity: 0; transform: translate(-128px, 128px) scale(8); }
250 20% { opacity: .85; animation-timing-function: ease-out; }
251 to { opacity: 0; transform: translate(0) scale(1); }
254 @keyframes downloadsIndicatorNotificationStartLeft {
255 from { opacity: 0; transform: translate(128px, 128px) scale(8); }
256 20% { opacity: .85; animation-timing-function: ease-out; }
257 to { opacity: 0; transform: translate(0) scale(1); }
260 #downloads-indicator[notification="start"] > #downloads-indicator-anchor > #downloads-indicator-notification {
261 background-image: url("chrome://browser/skin/downloads/download-notification-start.png");
262 animation-name: downloadsIndicatorNotificationStartRight;
263 animation-duration: 1s;
266 #downloads-indicator[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-anchor > #downloads-indicator-notification {
267 animation-name: downloadsIndicatorNotificationStartLeft;
270 @keyframes downloadsIndicatorNotificationFinish {
271 from { opacity: 0; transform: scale(1); }
272 20% { opacity: .65; animation-timing-function: ease-in; }
273 to { opacity: 0; transform: scale(8); }
276 #downloads-indicator[notification="finish"] > #downloads-indicator-anchor > #downloads-indicator-notification {
277 background-image: url("chrome://browser/skin/downloads/download-notification-finish.png");
278 animation-name: downloadsIndicatorNotificationFinish;
279 animation-duration: 1s;
282 /*** Progress bar and text ***/
284 #downloads-indicator-counter {
293 #downloads-indicator-counter:-moz-lwtheme-brighttext {
295 text-shadow: 0 0 1px rgba(0,0,0,.7),
296 0 1px 1.5px rgba(0,0,0,.5);*/
299 #downloads-indicator[counter]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
300 #downloads-indicator[counter][open="true"] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
304 #downloads-indicator-progress {
312 background-color: #795900;
315 #downloads-indicator-progress > .progress-bar {
316 -moz-appearance: none;
319 background-color: #008484;
320 border-radius: 2px 0 0 2px;
323 #downloads-indicator-progress > .progress-remainder {
326 background-color: #A09090;
327 border-radius: 0 2px 2px 0;
330 #downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-bar {
331 background-color: #8050B0;
334 #downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-remainder {
335 background-color: #404048;
338 toolbar[mode="full"] > #downloads-indicator > .toolbarbutton-text {