/* 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/. */ /* === BEGIN indicator.inc.css === */ #downloads-indicator-progress-icon { background: var(--downloads-indicator-image-attention) bottom no-repeat; 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 { background-image: var(--downloads-indicator-image-attention-inverted); 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-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 ***/ /*@media not all and (min-resolution: 1.1dppx) {*/ #downloads-button { --downloads-indicator-image: -moz-image-rect(url("chrome://browser/skin/ToolbarFx.png"), 0, 198, 18, 180); --downloads-indicator-image-hover: -moz-image-rect(url("chrome://browser/skin/ToolbarFx.png"), 18, 198, 36, 180); --downloads-indicator-image-attention: -moz-image-rect(url("chrome://browser/skin/ToolbarFx.png"), 36, 198, 54, 180); /* --downloads-indicator-image-inverted: -moz-image-rect(url("chrome://browser/skin/Toolbar-inverted.png"), 0, 198, 18, 180); --downloads-indicator-image-attention-inverted: -moz-image-rect(url("chrome://browser/skin/Toolbar-inverted.png"), 18, 198, 36, 180);*/ } /*}*/ #downloads-indicator-icon { background: var(--downloads-indicator-image) center no-repeat; width: 18px; height: 18px; background-size: 18px; } #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-image: var(--downloads-indicator-image-hover); color: #000000; } toolbar[brighttext] #downloads-button:not([attention="success"]) > #downloads-indicator-anchor > #downloads-indicator-icon { /* background-image: var(--downloads-indicator-image-inverted); */ } #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; } #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-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-button[attention="success"] > #downloads-indicator-anchor > #downloads-indicator-icon { background-image: var(--downloads-indicator-image-attention); } #downloads-button[cui-areatype="menu-panel"][attention="success"] { list-style-image: url("chrome://browser/skin/downloads/download-glow-menuPanel.png"); -moz-image-region: auto; } /* In the next few rules, we use :not([counter]) as a shortcut that is equivalent to -moz-any([progress], [paused]). */ #downloads-button:not([counter]) > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter { background: var(--downloads-indicator-image) center no-repeat; background-size: 12px; } #downloads-button:not([counter])[attention="success"] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter { background-image: var(--downloads-indicator-image-attention); } #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="success"]:hover > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-counter { background-image: var(--downloads-indicator-image-hover); background-size: 12px; } /*** Download notifications ***/ #downloads-indicator-notification { opacity: 0; background-size: 16px; background-position: center; background-repeat: no-repeat; width: 16px; height: 16px; } @keyframes downloadsIndicatorNotificationStartRight { from { opacity: 0; transform: translate(-128px, 128px) scale(8); } 20% { opacity: .85; animation-timing-function: ease-out; } to { opacity: 0; transform: translate(0) scale(1); } } @keyframes downloadsIndicatorNotificationStartLeft { from { opacity: 0; transform: translate(128px, 128px) scale(8); } 20% { opacity: .85; animation-timing-function: ease-out; } to { opacity: 0; transform: translate(0) scale(1); } } #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-notification-anchor[notification="start"]:-moz-locale-dir(rtl) > #downloads-indicator-notification { animation-name: downloadsIndicatorNotificationStartLeft; } @keyframes downloadsIndicatorNotificationFinish { from { opacity: 0; transform: scale(1); } 20% { opacity: .65; animation-timing-function: ease-in; } to { opacity: 0; transform: scale(8); } } #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; } toolbar[brighttext] #downloads-indicator-counter { /* color: white; text-shadow: 0 0 1px rgba(0,0,0,.7), 0 1px 1.5px rgba(0,0,0,.5);*/ } #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-button[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-bar { background-color: #8050B0; } #downloads-button[paused] > #downloads-indicator-anchor > #downloads-indicator-progress-area > #downloads-indicator-progress > .progress-remainder { background-color: #404048; } toolbar[mode="full"] > #downloads-button > .toolbarbutton-text { margin: 0; text-align: center; }