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"][state="1"]: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/Toolbar.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/Toolbar.png"),
205 18, 108, 36, 90) center no-repeat;
208 #downloads-indicator-icon:-moz-lwtheme-brighttext {
209 /* background: -moz-image-rect(url("chrome://browser/skin/Toolbar-inverted.png"),
210 0, 108, 18, 90) center no-repeat;*/
213 #downloads-indicator[attention] > #downloads-indicator-anchor > #downloads-indicator-icon {
214 background-image: url("chrome://browser/skin/downloads/download-glow.png");
217 /* In the next few rules, we use :not([counter]) as a shortcut that is
218 equivalent to -moz-any([progress], [paused]). */
220 #downloads-indicator:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
221 background: -moz-image-rect(url("chrome://browser/skin/Toolbar.png"),
222 0, 108, 18, 90) center no-repeat;
223 background-size: 12px;
226 #downloads-indicator:not([counter])[attention] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
227 background-image: url("chrome://browser/skin/downloads/download-glow.png");
230 #downloads-indicator:not([counter]):hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
231 #downloads-indicator:not([counter])[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
232 background: -moz-image-rect(url("chrome://browser/skin/Toolbar.png"),
233 18, 108, 36, 90) center no-repeat;
236 /*** Download notifications ***/
238 #downloads-indicator-notification {
240 background-size: 16px;
241 background-position: center;
242 background-repeat: no-repeat;
245 @keyframes downloadsIndicatorNotificationStartRight {
246 from { opacity: 0; transform: translate(-128px, 128px) scale(8); }
247 20% { opacity: .85; animation-timing-function: ease-out; }
248 to { opacity: 0; transform: translate(0) scale(1); }
251 @keyframes downloadsIndicatorNotificationStartLeft {
252 from { opacity: 0; transform: translate(128px, 128px) scale(8); }
253 20% { opacity: .85; animation-timing-function: ease-out; }
254 to { opacity: 0; transform: translate(0) scale(1); }
257 #downloads-indicator[notification="start"] > #downloads-indicator-anchor > #downloads-indicator-notification {
258 background-image: url("chrome://browser/skin/downloads/download-notification-start.png");
259 animation-name: downloadsIndicatorNotificationStartRight;
260 animation-duration: 1s;
263 #downloads-indicator[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-anchor > #downloads-indicator-notification {
264 animation-name: downloadsIndicatorNotificationStartLeft;
267 @keyframes downloadsIndicatorNotificationFinish {
268 from { opacity: 0; transform: scale(1); }
269 20% { opacity: .65; animation-timing-function: ease-in; }
270 to { opacity: 0; transform: scale(8); }
273 #downloads-indicator[notification="finish"] > #downloads-indicator-anchor > #downloads-indicator-notification {
274 background-image: url("chrome://browser/skin/downloads/download-notification-finish.png");
275 animation-name: downloadsIndicatorNotificationFinish;
276 animation-duration: 1s;
279 /*** Progress bar and text ***/
281 #downloads-indicator-counter {
290 #downloads-indicator-counter:-moz-lwtheme-brighttext {
292 text-shadow: 0 0 1px rgba(0,0,0,.7),
293 0 1px 1.5px rgba(0,0,0,.5);*/
296 #downloads-indicator-progress {
304 background-color: #795900;
307 #downloads-indicator-progress > .progress-bar {
308 -moz-appearance: none;
311 background-color: #008484;
312 border-radius: 2px 0 0 2px;
315 #downloads-indicator-progress > .progress-remainder {
318 background-color: #A09090;
319 border-radius: 0 2px 2px 0;
322 #downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-bar {
323 background-color: #8050B0;
326 #downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-remainder {
327 background-color: #404048;