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"][exists]:hover { */
148 #downloadsPanel:not([keyfocus]) > #downloadsListBox > richlistitem[type="download"]:hover {
150 background-color: #794900;
155 /*** Button icons ***/
157 .downloadButton.downloadCancel {
158 -moz-image-region: rect(0px, 16px, 16px, 0px);
160 richlistitem[type="download"]:hover > stack > .downloadButton.downloadCancel,
161 richlistitem[type="download"]:hover > stack > .downloadButton.downloadCancel:hover,
162 richlistitem[type="download"]:hover > stack > .downloadButton.downloadCancel:active {
163 -moz-image-region: rect(0px, 32px, 16px, 16px);
166 .downloadButton.downloadShow {
167 -moz-image-region: rect(16px, 16px, 32px, 0px);
169 richlistitem[type="download"]:hover > stack > .downloadButton.downloadShow,
170 richlistitem[type="download"]:hover > stack > .downloadButton.downloadShow:hover,
171 richlistitem[type="download"]:hover > stack > .downloadButton.downloadShow:active {
172 -moz-image-region: rect(16px, 32px, 32px, 16px);
175 .downloadButton.downloadRetry {
176 -moz-image-region: rect(32px, 16px, 48px, 0px);
178 richlistitem[type="download"]:hover > stack > .downloadButton.downloadRetry,
179 richlistitem[type="download"]:hover > stack > .downloadButton.downloadRetry:hover,
180 richlistitem[type="download"]:hover > stack > .downloadButton.downloadRetry:active {
181 -moz-image-region: rect(32px, 32px, 48px, 16px);
184 /*** Status and progress indicator ***/
186 #downloads-indicator-anchor {
187 /* Makes the outermost stack element positioned, so that its contents are
188 rendered over the main browser window in the Z order. This is required by
189 the animated event notification. */
193 /*** Main indicator icon ***/
195 #downloads-indicator-icon {
196 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
197 0, 108, 18, 90) center no-repeat;
202 #downloads-indicator:hover > #downloads-indicator-anchor > #downloads-indicator-icon,
203 #downloads-indicator[open="true"] > #downloads-indicator-anchor > #downloads-indicator-icon,
204 #downloads-indicator[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-icon {
205 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
206 18, 108, 36, 90) center no-repeat;
210 #downloads-indicator-icon:-moz-lwtheme-brighttext {
211 /* background: -moz-image-rect(url("chrome://browser/skin/Toolbar-inverted.png"),
212 0, 108, 18, 90) center no-repeat;*/
215 #downloads-indicator[attention] > #downloads-indicator-anchor > #downloads-indicator-icon {
216 background-image: url("chrome://browser/skin/downloads/download-glow.png");
219 /* In the next few rules, we use :not([counter]) as a shortcut that is
220 equivalent to -moz-any([progress], [paused]). */
222 #downloads-indicator:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
223 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
224 0, 108, 18, 90) center no-repeat;
225 background-size: 12px;
228 #downloads-indicator:not([counter])[attention] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
229 background-image: url("chrome://browser/skin/downloads/download-glow.png");
232 #downloads-indicator:not([counter]):hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
233 #downloads-indicator[open="true"]:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
234 #downloads-indicator:not([counter])[attention]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
235 background: -moz-image-rect(url("chrome://browser/skin/FxToolbar.png"),
236 18, 108, 36, 90) center no-repeat;
237 background-size: 12px;
240 /*** Download notifications ***/
242 #downloads-indicator-notification {
244 background-size: 16px;
245 background-position: center;
246 background-repeat: no-repeat;
249 @keyframes downloadsIndicatorNotificationStartRight {
250 from { opacity: 0; transform: translate(-128px, 128px) scale(8); }
251 20% { opacity: .85; animation-timing-function: ease-out; }
252 to { opacity: 0; transform: translate(0) scale(1); }
255 @keyframes downloadsIndicatorNotificationStartLeft {
256 from { opacity: 0; transform: translate(128px, 128px) scale(8); }
257 20% { opacity: .85; animation-timing-function: ease-out; }
258 to { opacity: 0; transform: translate(0) scale(1); }
261 #downloads-indicator[notification="start"] > #downloads-indicator-anchor > #downloads-indicator-notification {
262 background-image: url("chrome://browser/skin/downloads/download-notification-start.png");
263 animation-name: downloadsIndicatorNotificationStartRight;
264 animation-duration: 1s;
267 #downloads-indicator[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-anchor > #downloads-indicator-notification {
268 animation-name: downloadsIndicatorNotificationStartLeft;
271 @keyframes downloadsIndicatorNotificationFinish {
272 from { opacity: 0; transform: scale(1); }
273 20% { opacity: .65; animation-timing-function: ease-in; }
274 to { opacity: 0; transform: scale(8); }
277 #downloads-indicator[notification="finish"] > #downloads-indicator-anchor > #downloads-indicator-notification {
278 background-image: url("chrome://browser/skin/downloads/download-notification-finish.png");
279 animation-name: downloadsIndicatorNotificationFinish;
280 animation-duration: 1s;
283 /*** Progress bar and text ***/
285 #downloads-indicator-counter {
294 #downloads-indicator-counter:-moz-lwtheme-brighttext {
296 text-shadow: 0 0 1px rgba(0,0,0,.7),
297 0 1px 1.5px rgba(0,0,0,.5);*/
300 #downloads-indicator[counter]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter,
301 #downloads-indicator[counter][open="true"] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter {
305 #downloads-indicator-progress {
313 background-color: #795900;
316 #downloads-indicator-progress > .progress-bar {
317 -moz-appearance: none;
320 background-color: #008484;
321 border-radius: 2px 0 0 2px;
324 #downloads-indicator-progress > .progress-remainder {
327 background-color: #A09090;
328 border-radius: 0 2px 2px 0;
331 #downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-bar {
332 background-color: #8050B0;
335 #downloads-indicator[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-remainder {
336 background-color: #404048;
339 toolbar[mode="full"] > #downloads-indicator > .toolbarbutton-text {