Bug 1244473 - Part 5 - Share rules for download items in the panel. r=jaws
--- a/browser/themes/linux/downloads/downloads.css
+++ b/browser/themes/linux/downloads/downloads.css
@@ -19,115 +19,43 @@
@keyfocus@ #downloadsHistory:focus > .button-box {
outline: 1px -moz-dialogtext dotted;
}
@keyfocus@ #downloadsSummary:focus {
outline-offset: -5px;
}
-/*** Downloads Summary and List items ***/
-
-#downloadsSummary,
-richlistitem[type="download"] {
- height: 6em;
- -moz-padding-end: 0;
- color: inherit;
-}
-
-richlistitem[type="download"] {
- margin: 0;
- border-top: 1px solid hsla(0,0%,100%,.2);
- border-bottom: 1px solid hsla(0,0%,0%,.15);
- background: transparent;
- padding: 8px;
-}
+/*** List items and similar elements in the summary ***/
-richlistitem[type="download"]:first-child {
- border-top: 1px solid transparent;
-}
-
-richlistitem[type="download"]:last-child {
- border-bottom: 1px solid transparent;
-}
-
-#downloadsPanel[keyfocus] > #downloadsListBox:focus > richlistitem[type="download"][selected] {
- outline: 1px -moz-dialogtext dotted;
- outline-offset: -1px;
-}
-
-.downloadTypeIcon {
- -moz-margin-end: 8px;
- /* Prevent flickering when changing states. */
- min-height: 32px;
- min-width: 32px;
+:root {
+ --downloads-item-height: 6em;
+ --downloads-item-border-top-color: hsla(0,0%,100%,.2);
+ --downloads-item-border-bottom-color: hsla(0,0%,0%,.15);
+ --downloads-item-font-size-factor: 0.9;
+ --downloads-item-target-margin-bottom: 7px;
+ --downloads-item-details-margin-top: 1px;
+ --downloads-item-details-opacity: 0.6;
}
.blockedIcon {
list-style-image: url("moz-icon://stock/gtk-dialog-error?size=dialog");
}
-/* We hold .downloadTarget, .downloadProgress and .downloadDetails inside of
- a vbox with class .downloadContainer. We set the font-size of the entire
- container to 90% because:
-
- 1) This is the size that we want .downloadDetails to be
- 2) The container's width is set by localizers by &downloadDetails.width;,
- which is a ch unit. Since this is the value that should control the
- panel width, we apply it to the outer container to constrain
- .downloadTarget and .downloadProgress.
-
- Finally, since we want .downloadTarget's font-size to be at 100% of the
- font-size of .downloadContainer's parent, we use calc to go from the
- smaller font-size back to the original font-size.
- */
-
-#downloadsSummaryDetails,
-.downloadContainer {
- font-size: 90%;
-}
-
-#downloadsSummaryDescription,
-.downloadTarget {
- margin-bottom: 7px;
- cursor: inherit;
-}
-
-.downloadTarget {
- font-size: calc(100%/0.9);
-}
-
-#downloadsSummaryDetails,
-.downloadDetails {
- margin-top: 1px;
- opacity: 0.6;
- cursor: inherit;
-}
-
-.downloadButton {
- -moz-appearance: none;
- min-width: 0;
- min-height: 0;
- margin: 3px;
- border: none;
- background: transparent;
- padding: 5px;
- list-style-image: url("chrome://browser/skin/downloads/buttons.png");
-}
-
-.downloadButton > .button-box {
- padding: 0;
-}
-
.downloadButton:focus > .button-box {
outline: 1px -moz-dialogtext dotted;
}
/*** Highlighted list items ***/
+#downloadsPanel[keyfocus] > #downloadsListBox:focus > richlistitem[type="download"][selected] {
+ outline: 1px -moz-dialogtext dotted;
+ outline-offset: -1px;
+}
+
#downloadsPanel:not([keyfocus]) > #downloadsListBox > richlistitem[type="download"][state="1"][exists]:hover {
border-radius: 3px;
border-top: 1px solid hsla(0,0%,100%,.3);
border-bottom: 1px solid hsla(0,0%,0%,.2);
background-color: Highlight;
background-image: linear-gradient(hsla(0,0%,100%,.1), transparent);
color: HighlightText;
cursor: pointer;
--- a/browser/themes/osx/downloads/downloads.css
+++ b/browser/themes/osx/downloads/downloads.css
@@ -25,107 +25,33 @@
@keyfocus@ #downloadsSummary:focus,
@keyfocus@ #downloadsHistory:focus {
outline: 2px -moz-mac-focusring solid;
outline-offset: -2px;
-moz-outline-radius-bottomleft: 4px;
-moz-outline-radius-bottomright: 4px;
}
-/*** Downloads Summary and List items ***/
-
-#downloadsSummary,
-richlistitem[type="download"] {
- height: 7em;
- -moz-padding-end: 0;
- color: inherit;
-}
-
-richlistitem[type="download"] {
- margin: 0;
- border-top: 1px solid hsla(0,0%,100%,.07);
- border-bottom: 1px solid hsla(0,0%,0%,.2);
- background: transparent;
- padding: 8px;
-}
-
-richlistitem[type="download"]:first-child {
- border-top: 1px solid transparent;
-}
-
-richlistitem[type="download"]:last-child {
- border-bottom: 1px solid transparent;
-}
-
-.downloadTypeIcon {
- -moz-margin-end: 8px;
- /* Prevent flickering when changing states. */
- height: 32px;
- width: 32px;
-}
-
-.blockedIcon {
- list-style-image: url("chrome://global/skin/icons/Error.png");
-}
-
-/* We hold .downloadTarget, .downloadProgress and .downloadDetails inside of
- a vbox with class .downloadContainer. We set the font-size of the entire
- container to 95% because:
+/*** List items and similar elements in the summary ***/
- 1) This is the size that we want .downloadDetails to be
- 2) The container's width is set by localizers by &downloadDetails.width;,
- which is a ch unit. Since this is the value that should control the
- panel width, we apply it to the outer container to constrain
- .downloadTarget and .downloadProgress.
-
- Finally, since we want .downloadTarget's font-size to be at 100% of the
- font-size of .downloadContainer's parent, we use calc to go from the
- smaller font-size back to the original font-size.
- */
-#downloadsSummaryDetails,
-.downloadContainer {
- font-size: 95%;
-}
-
-#downloadsSummaryDescription,
-.downloadTarget {
- margin-bottom: 6px;
- cursor: inherit;
-}
-
-.downloadTarget {
- font-size: calc(100%/0.95);
-}
-
-#downloadsSummaryDetails,
-.downloadDetails {
- opacity: 0.7;
- cursor: inherit;
-}
-
-.downloadButton {
- -moz-appearance: none;
- min-width: 0;
- min-height: 0;
- margin: 3px;
- border: none;
- background: transparent;
- padding: 5px;
- list-style-image: url("chrome://browser/skin/downloads/buttons.png");
+:root {
+ --downloads-item-height: 7em;
+ --downloads-item-border-top-color: hsla(0,0%,100%,.07);
+ --downloads-item-border-bottom-color: hsla(0,0%,0%,.2);
+ --downloads-item-font-size-factor: 0.95;
+ --downloads-item-target-margin-bottom: 6px;
+ --downloads-item-details-margin-top: 0;
+ --downloads-item-details-opacity: 0.7;
}
.downloadButton:focus > .button-box {
outline: 2px -moz-mac-focusring solid;
outline-offset: -2px;
}
-.downloadButton > .button-box {
- padding: 0;
-}
-
/*** Highlighted list items ***/
#downloadsPanel[keyfocus] > #downloadsListBox:focus > richlistitem[type="download"][selected],
#downloadsPanel:not([keyfocus]) > #downloadsListBox > richlistitem[type="download"][state="1"][exists]:hover {
border-radius: 3px;
border-top: 1px solid hsla(0,0%,100%,.2);
border-bottom: 1px solid hsla(0,0%,0%,.4);
background-color: Highlight;
--- a/browser/themes/shared/downloads/downloads.inc.css
+++ b/browser/themes/shared/downloads/downloads.inc.css
@@ -56,8 +56,101 @@
#downloadsHistory {
background: transparent;
cursor: pointer;
}
#downloadsHistory > .button-box {
margin: 1em;
}
+
+/*** List items and similar elements in the summary ***/
+
+#downloadsSummary,
+richlistitem[type="download"] {
+ height: var(--downloads-item-height);
+ -moz-padding-end: 0;
+ color: inherit;
+}
+
+richlistitem[type="download"] {
+ margin: 0;
+ border-top: 1px solid var(--downloads-item-border-top-color);
+ border-bottom: 1px solid var(--downloads-item-border-bottom-color);
+ background: transparent;
+ padding: 8px;
+}
+
+richlistitem[type="download"]:first-child {
+ border-top: 1px solid transparent;
+}
+
+%ifdef XP_WIN
+@media (-moz-windows-default-theme) {
+%endif
+richlistitem[type="download"]:last-child {
+ border-bottom: 1px solid transparent;
+}
+%ifdef XP_WIN
+}
+%endif
+
+.downloadTypeIcon {
+ -moz-margin-end: 8px;
+ /* Prevent flickering when changing states. */
+ height: 32px;
+ width: 32px;
+}
+
+.blockedIcon {
+ list-style-image: url("chrome://global/skin/icons/Error.png");
+}
+
+/* We hold .downloadTarget, .downloadProgress and .downloadDetails inside of
+ a vbox with class .downloadContainer. We set the font-size of the entire
+ container to --downloads-item-font-size-factor because:
+
+ 1) This is the size that we want .downloadDetails to be
+ 2) The container's width is set by localizers by &downloadDetails.width;,
+ which is a ch unit. Since this is the value that should control the
+ panel width, we apply it to the outer container to constrain
+ .downloadTarget and .downloadProgress.
+
+ Finally, since we want .downloadTarget's font-size to be at 100% of the
+ font-size of .downloadContainer's parent, we use calc to go from the
+ smaller font-size back to the original font-size.
+ */
+#downloadsSummaryDetails,
+.downloadContainer {
+ font-size: calc(100% * var(--downloads-item-font-size-factor));
+}
+
+#downloadsSummaryDescription,
+.downloadTarget {
+ margin-bottom: var(--downloads-item-target-margin-bottom);
+ cursor: inherit;
+}
+
+.downloadTarget {
+ font-size: calc(100% / var(--downloads-item-font-size-factor));
+}
+
+#downloadsSummaryDetails,
+.downloadDetails {
+ margin-top: var(--downloads-item-details-margin-top);
+ opacity: var(--downloads-item-details-opacity);
+ cursor: inherit;
+}
+
+.downloadButton {
+ -moz-appearance: none;
+ min-width: 0;
+ min-height: 0;
+ margin: 3px;
+ border: none;
+ background: transparent;
+ padding: 5px;
+ list-style-image: url("chrome://browser/skin/downloads/buttons.png");
+}
+
+.downloadButton > .button-box {
+ padding: 0;
+}
--- a/browser/themes/windows/downloads/downloads.css
+++ b/browser/themes/windows/downloads/downloads.css
@@ -63,124 +63,51 @@
outline-offset: -5px;
}
#downloadsHistory > .button-box {
/* Hide the border so we don't display an inner focus ring. */
border: none;
}
-/*** Downloads Summary and List items ***/
+/*** List items and similar elements in the summary ***/
-#downloadsSummary,
-richlistitem[type="download"] {
- height: 7em;
- -moz-padding-end: 0;
- color: inherit;
-}
-
-richlistitem[type="download"] {
- margin: 0;
- border-top: 1px solid hsla(0,0%,100%,.3);
- border-bottom: 1px solid hsla(220,18%,51%,.25);
- background: transparent;
- padding: 8px;
+:root {
+ --downloads-item-height: 7em;
+ --downloads-item-border-top-color: hsla(0,0%,100%,.3);
+ --downloads-item-border-bottom-color: hsla(220,18%,51%,.25);
+ --downloads-item-font-size-factor: 0.9;
+ --downloads-item-target-margin-bottom: 6px;
+ --downloads-item-details-margin-top: 0;
+ --downloads-item-details-opacity: 0.6;
}
@media (-moz-windows-default-theme) and (-moz-os-version: windows-vista),
(-moz-windows-default-theme) and (-moz-os-version: windows-win7) {
richlistitem[type="download"] {
border: 1px solid transparent;
border-bottom: 1px solid hsl(213,40%,90%);
}
}
-richlistitem[type="download"]:first-child {
- border-top: 1px solid transparent;
+.downloadButton > .button-box {
+ border: 1px solid transparent;
}
-@media (-moz-windows-default-theme) {
- richlistitem[type="download"]:last-child {
- border-bottom: 1px solid transparent;
- }
+@keyfocus@ .downloadButton:focus > .button-box {
+ border: 1px dotted ThreeDDarkShadow;
}
+/*** Highlighted list items ***/
+
#downloadsPanel[keyfocus] > #downloadsListBox:focus > richlistitem[type="download"][selected] {
outline: 1px -moz-dialogtext dotted;
outline-offset: -1px;
}
-.downloadTypeIcon {
- -moz-margin-end: 8px;
- /* Prevent flickering when changing states. */
- height: 32px;
- width: 32px;
-}
-
-.blockedIcon {
- list-style-image: url("chrome://global/skin/icons/Error.png");
-}
-
-/* We hold .downloadTarget, .downloadProgress and .downloadDetails inside of
- a vbox with class .downloadContainer. We set the font-size of the entire
- container to 90% because:
-
- 1) This is the size that we want .downloadDetails to be
- 2) The container's width is set by localizers by &downloadDetails.width;,
- which is a ch unit. Since this is the value that should control the
- panel width, we apply it to the outer container to constrain
- .downloadTarget and .downloadProgress.
-
- Finally, since we want .downloadTarget's font-size to be at 100% of the
- font-size of .downloadContainer's parent, we use calc to go from the
- smaller font-size back to the original font-size.
- */
-#downloadsSummaryDetails,
-.downloadContainer {
- font-size: 90%;
-}
-
-#downloadsSummaryDescription,
-.downloadTarget {
- margin-bottom: 6px;
- cursor: inherit;
-}
-
-.downloadTarget {
- font-size: calc(100%/0.9);
-}
-
-#downloadsSummaryDetails,
-.downloadDetails {
- opacity: 0.6;
- cursor: inherit;
-}
-
-.downloadButton {
- -moz-appearance: none;
- min-width: 0;
- min-height: 0;
- margin: 3px;
- border: none;
- background: transparent;
- padding: 5px;
- list-style-image: url("chrome://browser/skin/downloads/buttons.png");
-}
-
-.downloadButton > .button-box {
- border: 1px solid transparent;
- padding: 0;
-}
-
-#downloadsPanel[keyfocus] .downloadButton:focus > .button-box {
- border: 1px dotted ThreeDDarkShadow;
-}
-
-/*** Highlighted list items ***/
-
#downloadsPanel:not([keyfocus]) > #downloadsListBox > richlistitem[type="download"][state="1"][exists]:hover {
background-color: hsla(210,4%,10%,.08);
outline: 1px solid hsla(210,4%,10%,.1);
outline-offset: -1px;
cursor: pointer;
}
#downloadsPanel:not([keyfocus]) > #downloadsListBox > richlistitem[type="download"][state="1"][exists]:hover:active {