summaryrefslogtreecommitdiffstats
path: root/toolkit/themes/windows
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--toolkit/themes/windows/global/arrow/panelarrow-vertical.svg7
-rw-r--r--toolkit/themes/windows/global/autocomplete.css90
-rw-r--r--toolkit/themes/windows/global/button.css108
-rw-r--r--toolkit/themes/windows/global/dialog.css23
-rw-r--r--toolkit/themes/windows/global/dropmarker.css10
-rw-r--r--toolkit/themes/windows/global/global.css168
-rw-r--r--toolkit/themes/windows/global/icons/Landscape.pngbin0 -> 369 bytes
-rw-r--r--toolkit/themes/windows/global/icons/Portrait.pngbin0 -> 413 bytes
-rw-r--r--toolkit/themes/windows/global/icons/menu-check.svg6
-rw-r--r--toolkit/themes/windows/global/icons/search-textbox.svg7
-rw-r--r--toolkit/themes/windows/global/icons/warning-large.pngbin0 -> 2443 bytes
-rw-r--r--toolkit/themes/windows/global/in-content/common.css23
-rw-r--r--toolkit/themes/windows/global/jar.mn28
-rw-r--r--toolkit/themes/windows/global/menu.css386
-rw-r--r--toolkit/themes/windows/global/menulist.css58
-rw-r--r--toolkit/themes/windows/global/moz.build7
-rw-r--r--toolkit/themes/windows/global/popup.css125
-rw-r--r--toolkit/themes/windows/global/printPageSetup.css26
-rw-r--r--toolkit/themes/windows/global/radio.css61
-rw-r--r--toolkit/themes/windows/global/richlistbox.css152
-rw-r--r--toolkit/themes/windows/global/splitter.css61
-rw-r--r--toolkit/themes/windows/global/tabbox.css51
-rw-r--r--toolkit/themes/windows/global/tabprompts.css25
-rw-r--r--toolkit/themes/windows/global/toolbar.css58
-rw-r--r--toolkit/themes/windows/global/toolbarbutton.css98
-rw-r--r--toolkit/themes/windows/global/tree/sort-asc.svg6
-rw-r--r--toolkit/themes/windows/global/tree/sort-dsc.svg6
-rw-r--r--toolkit/themes/windows/global/wizard.css53
-rw-r--r--toolkit/themes/windows/moz.build7
-rw-r--r--toolkit/themes/windows/mozapps/downloads/unknownContentType.css38
-rw-r--r--toolkit/themes/windows/mozapps/handling/handling.css31
-rw-r--r--toolkit/themes/windows/mozapps/jar.mn7
-rw-r--r--toolkit/themes/windows/mozapps/moz.build7
-rw-r--r--toolkit/themes/windows/mozapps/update/updates.css90
-rw-r--r--toolkit/themes/windows/mozapps/viewsource/viewsource.css5
35 files changed, 1828 insertions, 0 deletions
diff --git a/toolkit/themes/windows/global/arrow/panelarrow-vertical.svg b/toolkit/themes/windows/global/arrow/panelarrow-vertical.svg
new file mode 100644
index 0000000000..50fe6b63b4
--- /dev/null
+++ b/toolkit/themes/windows/global/arrow/panelarrow-vertical.svg
@@ -0,0 +1,7 @@
+<!-- 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/. -->
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="10">
+ <path d="M 0,10 L 10,0 20,10 z" fill="context-stroke"/>
+ <path d="M 1,10 L 10,1 19,10 z" fill="context-fill"/>
+</svg>
diff --git a/toolkit/themes/windows/global/autocomplete.css b/toolkit/themes/windows/global/autocomplete.css
new file mode 100644
index 0000000000..9932dd4bb7
--- /dev/null
+++ b/toolkit/themes/windows/global/autocomplete.css
@@ -0,0 +1,90 @@
+/* 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/. */
+
+/* ===== autocomplete.css =================================================
+ == Styles used by the autocomplete widget.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+@namespace html url("http://www.w3.org/1999/xhtml");
+
+/* ::::: autocomplete ::::: */
+
+html|input[nomatch="true"][highlightnonmatches="true"] {
+ color: red;
+}
+
+/* ::::: autocomplete popups ::::: */
+
+panel[type="autocomplete-richlistbox"] {
+ appearance: none;
+ --panel-color: FieldText;
+ --panel-background: Field;
+ --panel-padding: 0;
+}
+
+/* ::::: richlistbox autocomplete ::::: */
+
+.autocomplete-richlistbox {
+ appearance: none;
+ margin: 0;
+ border: 0;
+}
+
+.autocomplete-richlistitem[selected] {
+ background-color: SelectedItem;
+ color: SelectedItemText;
+}
+
+.ac-type-icon {
+ display: none;
+ min-width: 16px;
+ min-height: 16px;
+ max-width: 16px;
+ max-height: 16px;
+ margin-inline-start: 6px;
+ margin-inline-end: 6px;
+}
+
+.ac-site-icon {
+ display: none;
+ min-width: 16px;
+ min-height: 16px;
+ max-width: 16px;
+ max-height: 16px;
+ margin-inline-start: 6px;
+ margin-inline-end: 8px;
+ list-style-image: url("chrome://global/skin/icons/defaultFavicon.svg");
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+.ac-title {
+ margin-inline-start: 0;
+ margin-inline-end: 6px;
+}
+
+.ac-separator {
+ display: none;
+ margin-inline-start: 0;
+ margin-inline-end: 6px;
+}
+
+.ac-url {
+ display: none;
+}
+
+/* Better align the URL with the title. */
+.ac-separator,
+.ac-url {
+ margin-bottom: -2px;
+}
+
+.ac-title-text,
+.ac-separator-text,
+.ac-url-text,
+.ac-text-overflow-container {
+ padding: 0 !important;
+ margin: 0 !important;
+}
diff --git a/toolkit/themes/windows/global/button.css b/toolkit/themes/windows/global/button.css
new file mode 100644
index 0000000000..14a6be2e93
--- /dev/null
+++ b/toolkit/themes/windows/global/button.css
@@ -0,0 +1,108 @@
+/* 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/. */
+
+/* ===== button.css =====================================================
+ == Styles used by the XUL button element.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* :::::::::: button :::::::::: */
+
+button {
+ margin: 1px 5px 2px;
+ min-width: 6.3em;
+ color: ButtonText;
+ background-color: ButtonFace;
+ text-shadow: none;
+ border: 1px solid ThreeDLightShadow;
+ padding: 2px 3px;
+ /* TODO: In Windows 11 perhaps we want some border-radius */
+}
+
+button:where(:hover) {
+ background-color: -moz-ButtonHoverFace;
+}
+
+button:where(:hover:active) {
+ background-color: -moz-ButtonActiveFace;
+}
+
+.button-text {
+ margin: 0;
+ text-align: center;
+}
+
+/* .......... focused state .......... */
+
+button:focus-visible {
+ outline: var(--default-focusring);
+ outline-offset: calc(-1 * var(--default-focusring-width) - 2px);
+}
+
+@media (prefers-color-scheme: dark) {
+ button:focus-visible {
+ outline: 1px auto;
+ outline-offset: initial;
+ }
+}
+
+/* .......... default/hover/focused state .......... */
+
+@media (prefers-contrast) and (-moz-windows-compositor) {
+ /* This is for high-contrast black and white themes on Windows 8 and later,
+ where the native appearance renders a different background (which
+ appears to be equivalent to the Highlight color) if the button is in the
+ default, hovered or focused state. However, if these states overlap with
+ the active, disabled, open or checked state, the appearance reverts back
+ to the default background. */
+ button:where([default="true"],:hover,:focus):where(:not(:active,[disabled="true"],[open="true"],[checked="true"])) {
+ color: HighlightText;
+ }
+}
+
+/* .......... disabled state .......... */
+
+button:where([disabled="true"]) {
+ color: GrayText;
+ background-color: ButtonFace;
+}
+
+@media (-moz-windows-classic) {
+ button:where([disabled="true"]) {
+ color: ThreeDShadow;
+ text-shadow: 1px 1px ThreeDHighlight;
+ }
+}
+
+/* ::::: menu buttons ::::: */
+
+.button-menu-dropmarker {
+ appearance: none;
+ list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg");
+ -moz-context-properties: fill;
+ fill: currentColor;
+ width: 12px;
+ height: 12px;
+}
+
+/* ::::: plain buttons ::::: */
+
+button.plain {
+ margin: 0 !important;
+ padding: 0 !important;
+}
+
+button[type="disclosure"] {
+ margin: 0;
+ appearance: none;
+ list-style-image: url("chrome://global/skin/icons/arrow-right-12.svg");
+ -moz-context-properties: fill;
+ fill: currentColor;
+ min-width: 0;
+}
+
+button[type="disclosure"][open="true"] {
+ list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg");
+}
diff --git a/toolkit/themes/windows/global/dialog.css b/toolkit/themes/windows/global/dialog.css
new file mode 100644
index 0000000000..16e47fa412
--- /dev/null
+++ b/toolkit/themes/windows/global/dialog.css
@@ -0,0 +1,23 @@
+/* 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/. */
+
+/* ===== dialog.css =====================================================
+ == Styles used by the XUL dialog element.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* ::::: dialog ::::: */
+
+:host {
+ padding-block: 8px 10px;
+ padding-inline: 8px 10px;
+}
+
+/* ::::: dialog buttons ::::: */
+
+button {
+ font: menu;
+ margin-top: 6px;
+}
diff --git a/toolkit/themes/windows/global/dropmarker.css b/toolkit/themes/windows/global/dropmarker.css
new file mode 100644
index 0000000000..823e77f18e
--- /dev/null
+++ b/toolkit/themes/windows/global/dropmarker.css
@@ -0,0 +1,10 @@
+/* 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/. */
+
+:host {
+ appearance: auto;
+ -moz-default-appearance: -moz-menulist-arrow-button;
+ width: 16px;
+ height: 16px;
+}
diff --git a/toolkit/themes/windows/global/global.css b/toolkit/themes/windows/global/global.css
new file mode 100644
index 0000000000..94ad3f064a
--- /dev/null
+++ b/toolkit/themes/windows/global/global.css
@@ -0,0 +1,168 @@
+/* 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/. */
+
+/* ===== global.css =====================================================
+ == Styles that apply everywhere.
+ ======================================================================= */
+
+@import url("chrome://global/skin/global-shared.css");
+
+@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+@namespace html url("http://www.w3.org/1999/xhtml");
+
+:root {
+ background-color: -moz-Dialog;
+ color: -moz-DialogText;
+ font: message-box;
+}
+
+@media (-moz-windows-non-native-menus) {
+ :root {
+ /* Override some menu color variables for light browser themes. */
+ --menu-icon-opacity: 0.7;
+ }
+
+ /* Override the menu color variables for dark browser themes. */
+ @media (prefers-color-scheme: dark) {
+ :root {
+ --menu-icon-opacity: 1;
+ }
+ }
+}
+
+@media (prefers-contrast) {
+ :root {
+ /* In high-contrast mode on Windows, ThreeDLightShadow provides more
+ contrast than ThreeDShadow. See bug 1022564. */
+ --arrowpanel-border-color: ThreeDLightShadow;
+ }
+}
+
+/* ::::: Alert icons :::::*/
+
+.message-icon,
+.alert-dialog #infoIcon,
+.alert-icon,
+.error-icon,
+.question-icon {
+ width: 32px;
+ height: 32px;
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+.message-icon {
+ list-style-image: url("chrome://global/skin/icons/info.svg");
+}
+
+.alert-dialog #infoIcon,
+.alert-icon {
+ list-style-image: url("chrome://global/skin/icons/warning.svg");
+ fill: #ffa436;
+}
+
+.error-icon {
+ list-style-image: url("chrome://global/skin/icons/error.svg");
+ fill: #e22850;
+}
+
+.question-icon {
+ list-style-image: url("chrome://global/skin/icons/help.svg");
+ -moz-context-properties: fill, fill-opacity;
+ fill-opacity: 0.8;
+}
+
+/* XXX(ntim): [mode="text"] is only used by comm-central */
+
+xul|toolbar[mode="text"] .toolbarbutton-text {
+ padding: 0 !important;
+ margin: 3px 5px !important;
+}
+
+/* Separators */
+
+xul|separator:not([orient="vertical"]) {
+ height: 1.5em;
+}
+xul|separator[orient="vertical"] {
+ width: 1.5em;
+}
+
+xul|separator.thin:not([orient="vertical"]) {
+ height: 0.5em;
+}
+xul|separator.thin[orient="vertical"] {
+ width: 0.5em;
+}
+
+xul|separator.groove:not([orient="vertical"]) {
+ border-top: 1px solid ThreeDShadow;
+ border-bottom: 1px solid ThreeDHighlight;
+ height: 0;
+ margin-block: 0.4em;
+}
+xul|separator.groove[orient="vertical"] {
+ border-left: 1px solid ThreeDShadow;
+ border-right: 1px solid ThreeDHighlight;
+ width: 0;
+ margin-inline: 0.4em;
+}
+
+/* Windows classic disabled labels */
+
+@media (-moz-windows-classic) {
+ xul|label[disabled="true"] {
+ color: ThreeDShadow;
+ text-shadow: 1px 1px ThreeDHighlight;
+ }
+}
+
+/* Input margins */
+
+html|input {
+ margin: 2px 4px;
+}
+
+/* Content select */
+
+.contentSelectDropdown-ingroup > .menu-iconic-text {
+ padding-inline-start: 20px;
+}
+
+#ContentSelectDropdown > menupopup > menucaption,
+#ContentSelectDropdown > menupopup > menuitem {
+ padding: 0 6px;
+ border-width: 0;
+}
+
+#ContentSelectDropdown > menupopup {
+ font: -moz-list;
+}
+
+#ContentSelectDropdown > menupopup > menucaption > .menu-iconic-text,
+#ContentSelectDropdown > menupopup > menuitem > .menu-iconic-text {
+ /* Padding should follow the 4/12 ratio, where 12px is the default font-size
+ with 4px being the preferred padding size. */
+ padding-block: .3333em;
+}
+
+#ContentSelectDropdown > menupopup > menucaption > .menu-iconic-text {
+ font-weight: bold;
+}
+
+#ContentSelectDropdown > menupopup > menuitem[_moz-menuactive="true"][disabled="true"] {
+ color: GrayText;
+ background-color: unset;
+}
+
+#ContentSelectDropdown > menupopup > menucaption[disabled="true"] {
+ color: GrayText;
+}
+
+#ContentSelectDropdown > .isOpenedViaTouch > menucaption > .menu-iconic-text,
+#ContentSelectDropdown > .isOpenedViaTouch > menuitem > .menu-iconic-text {
+ /* Touch padding should follow the 11/12 ratio, where 12px is the default
+ font-size with 11px being the preferred padding size. */
+ padding-block: .9167em;
+}
diff --git a/toolkit/themes/windows/global/icons/Landscape.png b/toolkit/themes/windows/global/icons/Landscape.png
new file mode 100644
index 0000000000..fad822281e
--- /dev/null
+++ b/toolkit/themes/windows/global/icons/Landscape.png
Binary files differ
diff --git a/toolkit/themes/windows/global/icons/Portrait.png b/toolkit/themes/windows/global/icons/Portrait.png
new file mode 100644
index 0000000000..afe9ee83f0
--- /dev/null
+++ b/toolkit/themes/windows/global/icons/Portrait.png
Binary files differ
diff --git a/toolkit/themes/windows/global/icons/menu-check.svg b/toolkit/themes/windows/global/icons/menu-check.svg
new file mode 100644
index 0000000000..48778afb42
--- /dev/null
+++ b/toolkit/themes/windows/global/icons/menu-check.svg
@@ -0,0 +1,6 @@
+<!-- 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/. -->
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+ <path d="M13.8639 3.65609C14.0533 3.85704 14.0439 4.17348 13.8429 4.36288L5.91309 11.8368C5.67573 12.0605 5.30311 12.0536 5.07417 11.8213L2.39384 9.10093C2.20003 8.90422 2.20237 8.58765 2.39907 8.39384C2.59578 8.20003 2.91235 8.20237 3.10616 8.39908L5.51192 10.8407L13.1571 3.63517C13.358 3.44577 13.6745 3.45513 13.8639 3.65609Z" fill="context-fill" fill-opacity="context-fill-opacity"/>
+</svg>
diff --git a/toolkit/themes/windows/global/icons/search-textbox.svg b/toolkit/themes/windows/global/icons/search-textbox.svg
new file mode 100644
index 0000000000..c2d9f3a8eb
--- /dev/null
+++ b/toolkit/themes/windows/global/icons/search-textbox.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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/. -->
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+ <path fill="#939393" fill-rule="evenodd" d="M11.354,10.646l-0.707.707L7.295,8A4.483,4.483,0,1,1,9,4.5,4.458,4.458,0,0,1,8,7.295ZM4.5,1A3.5,3.5,0,1,0,8,4.5,3.5,3.5,0,0,0,4.5,1Z" transform="scale(-1, 1) translate(-12, 0)"/>
+</svg> \ No newline at end of file
diff --git a/toolkit/themes/windows/global/icons/warning-large.png b/toolkit/themes/windows/global/icons/warning-large.png
new file mode 100644
index 0000000000..7e30398c8c
--- /dev/null
+++ b/toolkit/themes/windows/global/icons/warning-large.png
Binary files differ
diff --git a/toolkit/themes/windows/global/in-content/common.css b/toolkit/themes/windows/global/in-content/common.css
new file mode 100644
index 0000000000..d9ee9ba31b
--- /dev/null
+++ b/toolkit/themes/windows/global/in-content/common.css
@@ -0,0 +1,23 @@
+/* - 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/. */
+
+@import url("chrome://global/skin/in-content/common-shared.css");
+
+@namespace html "http://www.w3.org/1999/xhtml";
+@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+
+xul|checkbox,
+xul|radio {
+ padding-inline-start: 0;
+}
+
+/* Override menulist.css */
+xul|menulist[disabled="true"] {
+ background-color: var(--in-content-button-background);
+}
+
+html|button {
+ /* XUL button min-width */
+ min-width: 6.3em;
+}
diff --git a/toolkit/themes/windows/global/jar.mn b/toolkit/themes/windows/global/jar.mn
new file mode 100644
index 0000000000..bfb49980a9
--- /dev/null
+++ b/toolkit/themes/windows/global/jar.mn
@@ -0,0 +1,28 @@
+# 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/.
+
+#include ../../shared/desktop-non-mac.jar.inc.mn
+
+toolkit.jar:
+ skin/classic/global/autocomplete.css
+ skin/classic/global/button.css
+ skin/classic/global/dropmarker.css
+ skin/classic/global/menu.css
+ skin/classic/global/menulist.css
+ skin/classic/global/radio.css
+ skin/classic/global/tabbox.css
+ skin/classic/global/global.css
+ skin/classic/global/popup.css
+ skin/classic/global/printPageSetup.css
+ skin/classic/global/richlistbox.css
+ skin/classic/global/splitter.css
+ skin/classic/global/toolbar.css
+ skin/classic/global/toolbarbutton.css
+ skin/classic/global/icons/Landscape.png (icons/Landscape.png)
+ skin/classic/global/icons/menu-check.svg (icons/menu-check.svg)
+ skin/classic/global/icons/Portrait.png (icons/Portrait.png)
+ skin/classic/global/icons/warning-large.png (icons/warning-large.png)
+ skin/classic/global/in-content/common.css (in-content/common.css)
+ skin/classic/global/tree/sort-asc.svg (tree/sort-asc.svg)
+ skin/classic/global/tree/sort-dsc.svg (tree/sort-dsc.svg)
diff --git a/toolkit/themes/windows/global/menu.css b/toolkit/themes/windows/global/menu.css
new file mode 100644
index 0000000000..2f294076d5
--- /dev/null
+++ b/toolkit/themes/windows/global/menu.css
@@ -0,0 +1,386 @@
+/* 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/. */
+
+@import url("chrome://global/skin/menu-scrolling.css");
+
+/* ===== menu.css =======================================================
+ == Styles used by XUL menu-related elements.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* ::::: menu/menuitem ::::: */
+
+menupopup,
+menubar {
+ font: menu;
+}
+
+menu,
+menuitem,
+menucaption {
+ appearance: auto;
+ -moz-default-appearance: menuitem;
+ flex-shrink: 0;
+ align-items: center;
+ list-style-image: none;
+}
+
+@media (-moz-windows-non-native-menus) {
+ /* For Windows 10, prevent using native OS drawing of certain menu elements,
+ especially background colors and shadows. */
+ menu, menuitem, menucaption {
+ appearance: none;
+ }
+
+ /* Menu item text also needs native drawing disabled. */
+ menu > .menu-text,
+ menuitem > .menu-text,
+ menu > .menu-iconic-text,
+ menuitem > .menu-iconic-text {
+ appearance: none;
+ margin-inline-start: 0 !important; /* need !important to override the other !important below... */
+ padding-inline-end: 0;
+ }
+}
+
+menu:where([disabled="true"]),
+menuitem:where([disabled="true"]),
+menu:where([_moz-menuactive="true"][disabled="true"]),
+menuitem:where([_moz-menuactive="true"][disabled="true"]) {
+ color: GrayText;
+ text-shadow: none;
+}
+
+@media (-moz-windows-non-native-menus) {
+ menu:where([_moz-menuactive="true"][disabled="true"]),
+ menuitem:where([_moz-menuactive="true"][disabled="true"]) {
+ background-color: -moz-menuhoverdisabled;
+ }
+}
+
+@media (-moz-windows-classic) {
+ menu[disabled="true"],
+ menubar > menu[disabled="true"][_moz-menuactive="true"],
+ menuitem[disabled="true"] {
+ color: ThreeDShadow;
+ text-shadow: 1px 1px ThreeDHighlight;
+ }
+}
+
+menuitem[default="true"],
+menuitem.spell-suggestion,
+menucaption {
+ font-weight: bold;
+}
+
+menubar > menu:-moz-window-inactive {
+ color: ThreeDShadow;
+}
+
+/* ..... Internal content .... */
+
+.menu-accel,
+.menu-iconic-accel,
+.menu-text,
+.menu-iconic-text {
+ margin: 0 !important;
+ padding: 1px 0;
+}
+
+.menu-text {
+ padding-inline-start: 1.45em !important;
+ appearance: auto;
+ -moz-default-appearance: menuitemtext;
+}
+
+.menu-text,
+.menu-iconic-text {
+ margin-inline-start: 2px !important;
+ padding-inline-end: 2px;
+}
+
+.menu-accel,
+.menu-iconic-accel {
+ margin-inline: 0.74em 1.35em !important;
+}
+
+.menu-iconic-left {
+ width: 1.45em;
+}
+
+.menu-iconic-icon {
+ width: 16px;
+ height: 16px;
+}
+
+.menu-iconic > .menu-iconic-left,
+.menuitem-iconic > .menu-iconic-left {
+ appearance: auto;
+ -moz-default-appearance: menuimage;
+ padding-top: 2px;
+}
+
+/* Don't leave space for icons on Win10. */
+@media (-moz-windows-non-native-menus) {
+ .menu-text {
+ padding-inline-start: 0 !important;
+ }
+}
+
+/* ..... menu arrow box ..... */
+
+.menu-right {
+ appearance: auto;
+ -moz-default-appearance: menuarrow;
+ margin-inline-end: -2px;
+ list-style-image: none;
+ width: 1.28em;
+ padding-top: 1px;
+}
+
+/* Override the native menu arrow with a custom one for Win10. */
+@media (-moz-windows-non-native-menus) {
+ .menu-right {
+ appearance: none;
+ width: unset;
+ list-style-image: url("chrome://global/skin/icons/arrow-right.svg");
+ -moz-context-properties: fill, fill-opacity;
+ fill: currentColor;
+ fill-opacity: var(--menu-icon-opacity);
+ margin-inline-end: 1em;
+ padding-top: 0;
+ }
+
+ .menu-right > image {
+ /* Do not make this smaller than the size of the svg, but upscale for
+ * people with large fonts. */
+ width: max(1em, 16px);
+ }
+
+ .menu-right:-moz-locale-dir(rtl) {
+ list-style-image: url("chrome://global/skin/icons/arrow-left.svg");
+ }
+}
+
+/* ::::: menu/menuitems in menubar ::::: */
+
+menubar > menu[_moz-menuactive="true"]:not([disabled="true"]) {
+ color: -moz-menubarhovertext;
+}
+
+@media (-moz-windows-classic) {
+ menubar > menu {
+ border: 2px solid transparent;
+ }
+
+ menubar > menu[_moz-menuactive="true"][open="true"] {
+ border-width: 3px 1px 1px 3px;
+ }
+}
+
+menubar > menu:-moz-lwtheme {
+ appearance: none;
+ border-color: transparent;
+}
+
+menubar > menu:-moz-lwtheme:not([disabled="true"]) {
+ color: inherit;
+}
+
+menubar > menu:-moz-lwtheme[_moz-menuactive="true"]:not([disabled="true"]) {
+ background-color: SelectedItem;
+ color: SelectedItemText;
+ text-shadow: none;
+}
+
+@media (-moz-windows-default-theme) {
+ menubar > menu:-moz-lwtheme {
+ appearance: auto;
+ -moz-default-appearance: menuitem;
+ }
+
+ menubar > menu:-moz-lwtheme[_moz-menuactive="true"]:not([disabled="true"]) {
+ color: inherit !important;
+ text-shadow: inherit;
+ }
+}
+
+/* ..... internal content .... */
+
+.menubar-text {
+ margin: 1px 6px 2px !important;
+}
+
+/* ::::: menu/menuitems in popups ::::: */
+
+menupopup > menu,
+menupopup > menuitem,
+menupopup > menucaption {
+ max-width: 42em;
+}
+
+menu:where([_moz-menuactive="true"]:not([disabled="true"])),
+menuitem:where([_moz-menuactive="true"]:not([disabled="true"])) {
+ background-color: -moz-menuhover;
+ color: -moz-menuhovertext;
+}
+
+/* ::::: menu/menuitems in menulist popups ::::: */
+
+menulist > menupopup > menuitem,
+menulist > menupopup > menucaption,
+menulist > menupopup > menu {
+ max-width: none;
+}
+
+@media (-moz-windows-non-native-menus) {
+ menulist > menupopup > menuitem {
+ padding-inline-end: 1em;
+ }
+}
+
+@media not (-moz-windows-non-native-menus) {
+ menulist > menupopup > menuitem,
+ menulist > menupopup > menucaption,
+ menulist > menupopup > menu {
+ appearance: none !important;
+ border: 1px solid transparent;
+ padding-inline: 5px;
+ }
+
+ menulist > menupopup > menuitem[_moz-menuactive="true"],
+ menulist > menupopup > menu[_moz-menuactive="true"] {
+ background-color: highlight;
+ color: highlighttext;
+ }
+}
+
+menulist > menupopup > menuitem > .menu-iconic-left,
+menulist > menupopup > menucaption > .menu-iconic-left,
+menulist > menupopup > menu > .menu-iconic-left {
+ display: none;
+}
+
+menulist > menupopup > menuitem > label,
+menulist > menupopup > menucaption > label,
+menulist > menupopup > menu > label {
+ padding-block: 0;
+}
+
+menulist > menupopup > menuitem[_moz-menuactive="true"][disabled="true"] {
+ color: GrayText;
+}
+
+@media (-moz-windows-classic) {
+ menulist > menupopup > menuitem[disabled="true"]:not([_moz-menuactive="true"]) {
+ color: GrayText;
+ text-shadow: none;
+ }
+}
+
+menulist > menupopup > :is(menuitem, menucaption):not(.menuitem-iconic) > .menu-iconic-text {
+ margin: 0 !important;
+}
+
+/* ::::: checkbox and radio menuitems ::::: */
+
+menuitem:is([type="checkbox"], [checked="true"]) {
+ appearance: auto;
+ -moz-default-appearance: checkmenuitem;
+}
+
+menuitem:is([type="checkbox"], [checked="true"]) > .menu-iconic-left {
+ appearance: auto;
+ -moz-default-appearance: menucheckbox;
+ padding-top: 0;
+}
+
+menuitem[type="radio"] {
+ appearance: auto;
+ -moz-default-appearance: radiomenuitem;
+}
+
+menuitem[type="radio"] > .menu-iconic-left {
+ appearance: auto;
+ -moz-default-appearance: menuradio;
+ padding-top: 0;
+}
+
+menuitem:is([type="checkbox"], [checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon {
+ /* prevent .menu-iconic-icon from enforcing a minimal height of 16px (see bug 411064)
+ XXXzeniko apply that .menu-iconic-icon rule only for children of .menu-iconic */
+ display: none;
+}
+
+@media (-moz-windows-non-native-menus) {
+ menupopup[needsgutter] menu:not([icon], .menu-iconic),
+ menupopup[needsgutter] menuitem:not([checked="true"], [icon], .menuitem-iconic) {
+ padding-inline-start: 36px;
+ }
+
+ /* For Windows 10, checkbox, radio and iconified menuitems need the default
+ appearance disabled so they pick up our custom styles instead. */
+ .menu-iconic-left,
+ menuitem[type="checkbox"],
+ menuitem[type="radio"] {
+ appearance: none !important; /* to override more specific selectors above. */
+ width: unset;
+ }
+
+ .menu-iconic > .menu-iconic-left,
+ .menuitem-iconic > .menu-iconic-left {
+ margin-inline-end: 8px;
+ }
+
+ menuitem[checked="true"] {
+ padding-inline-start: 12px;
+ }
+
+ /* We need to do something to override the default style for selected
+ checkboxes and radio buttons because the native drawing we use on other
+ Windows versions looks pretty bad with the Win10 styles, so for now we'll
+ insert a generic checkmark icon for both types. */
+ menuitem[checked="true"] > .menu-iconic-left {
+ -moz-context-properties: fill, fill-opacity;
+ fill: currentColor;
+ fill-opacity: var(--menu-icon-opacity);
+ list-style-image: url("chrome://global/skin/icons/menu-check.svg");
+ width: 16px;
+ margin-inline-end: 8px;
+ }
+ menuitem[checked="true"] > .menu-iconic-left > .menu-iconic-icon {
+ display: initial;
+ }
+}
+
+/* ::::: menuseparator ::::: */
+
+menuseparator {
+ appearance: auto;
+ -moz-default-appearance: menuseparator;
+ padding: 3px 1px 4px;
+ border-top: 1px solid ThreeDShadow;
+ border-bottom: 1px solid ThreeDHighlight;
+}
+
+@media not (-moz-windows-non-native-menus) {
+ menulist > menupopup > menuseparator {
+ padding: 6px 0 5px;
+ border-top: 1px solid #000000;
+ border-bottom: none;
+ }
+}
+
+/* On Windows 10, separators get entirely custom rendering. */
+@media (-moz-windows-non-native-menus) {
+ menuseparator {
+ appearance: none;
+
+ border-bottom: none;
+ padding: 0;
+ /* The side margins should align with the start of the menu item text. */
+ margin: 2px 1em;
+ }
+}
diff --git a/toolkit/themes/windows/global/menulist.css b/toolkit/themes/windows/global/menulist.css
new file mode 100644
index 0000000000..44198fb6f0
--- /dev/null
+++ b/toolkit/themes/windows/global/menulist.css
@@ -0,0 +1,58 @@
+/* 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/. */
+
+@import url("chrome://global/skin/menulist-shared.css");
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+label {
+ margin: 0 3px;
+}
+
+:host([native]) {
+ appearance: auto;
+ -moz-default-appearance: menulist;
+ margin: 2px 4px;
+ color: FieldText;
+ text-shadow: none;
+}
+
+:host([native][disabled="true"]) {
+ background-color: -moz-Dialog;
+ color: GrayText;
+}
+
+/* Label box */
+
+#label-box[native] {
+ align-items: center;
+ justify-content: center;
+}
+
+:host([native]:not([open="true"]):focus) > #label-box {
+ background-color: SelectedItem;
+ color: SelectedItemText;
+}
+
+:host([native]:not([open="true"]):-moz-focusring) > #label-box {
+ outline: var(--default-focusring);
+}
+
+
+@media (-moz-windows-default-theme) {
+ #label-box[native] {
+ background-color: transparent !important;
+ color: inherit !important;
+ }
+
+ image[native],
+ label[native] {
+ margin-block: -1px !important;
+ }
+
+ dropmarker[native] {
+ margin-top: -2px;
+ margin-inline: 3px -3px;
+ }
+}
diff --git a/toolkit/themes/windows/global/moz.build b/toolkit/themes/windows/global/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/toolkit/themes/windows/global/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+JAR_MANIFESTS += ["jar.mn"]
diff --git a/toolkit/themes/windows/global/popup.css b/toolkit/themes/windows/global/popup.css
new file mode 100644
index 0000000000..54ffa2ec8e
--- /dev/null
+++ b/toolkit/themes/windows/global/popup.css
@@ -0,0 +1,125 @@
+/* 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/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+@namespace html url("http://www.w3.org/1999/xhtml");
+
+/* ::::: menupopup ::::: */
+
+menupopup,
+panel {
+ min-width: 1px;
+ --panel-background: Menu;
+ --panel-color: MenuText;
+ --panel-padding: 0;
+ --panel-border-radius: 0;
+ --panel-border-color: ThreeDShadow;
+ --panel-width: initial;
+
+ --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0,0%,0%,.2);
+ --panel-shadow-margin: 4px;
+ -moz-window-input-region-margin: var(--panel-shadow-margin);
+ margin: calc(-1 * var(--panel-shadow-margin));
+}
+
+@media not (-moz-windows-non-native-menus) {
+ menupopup {
+ appearance: auto;
+ -moz-default-appearance: menupopup;
+
+ /* Native menus are always light */
+ color-scheme: light !important;
+
+ /* We set the background-color / border here so that it doesn't interfere with native styling. */
+ background-color: Menu;
+ border: 1px solid ThreeDShadow;
+ --panel-background: transparent;
+ --panel-border-color: transparent;
+ --nested-margin: -3px;
+ --panel-shadow-margin: 0px;
+ }
+}
+
+@media (-moz-windows-non-native-menus) {
+ menupopup {
+ /* Disable the default appearance so we can override the native styling. */
+ appearance: none;
+
+ /* Prevent any background or border around the outside of the shadow. */
+ background-color: transparent;
+ border: none;
+
+ --panel-border-radius: 4px;
+ --panel-padding: 4px 0;
+ --panel-border-color: ThreeDShadow;
+ --panel-background: Menu;
+ --nested-margin: -10px;
+ }
+
+ menupopup > menuitem,
+ menupopup > menu {
+ padding-block: 0.5em;
+ padding-inline-start: 1em;
+ }
+}
+
+menupopup > menu > menupopup {
+ /* align submenus */
+ margin-inline-start: var(--nested-margin);
+ margin-top: var(--nested-margin);
+}
+
+:is(panel, menupopup)[type="arrow"] {
+ appearance: none;
+ background: transparent;
+ border: none;
+}
+
+:is(panel, menupopup)::part(content) {
+ display: flex;
+ box-sizing: border-box;
+ padding: var(--panel-padding);
+ margin: var(--panel-shadow-margin);
+ box-shadow: var(--panel-shadow);
+ color: var(--panel-color);
+ background: var(--panel-background);
+ border-radius: var(--panel-border-radius);
+ border: 1px solid var(--panel-border-color);
+ width: var(--panel-width);
+ min-width: 0;
+ min-height: 0;
+
+ /* Makes popup constraints work */
+ max-height: calc(100% - 2 * var(--panel-shadow-margin));
+ max-width: calc(100% - 2 * var(--panel-shadow-margin));
+}
+
+:is(panel, menupopup)[orient=vertical]::part(content) {
+ flex-direction: column;
+}
+
+panel[type="arrow"].panel-no-padding::part(content) {
+ padding: 0;
+ overflow: hidden; /* Don't let panel content overflow the border-radius */
+}
+
+/* rules for popups associated with menulists */
+
+menulist > menupopup {
+ font: inherit;
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ min-width: 0;
+}
+
+@media not (-moz-windows-non-native-menus) {
+ /* For Win10, the popup itself needs to have a transparent background because
+ otherwise the background color would appear behind the drop shadow. */
+ menulist > menupopup {
+ color: FieldText;
+ --panel-background: Field;
+ --panel-border-color: ThreeDShadow;
+ }
+}
diff --git a/toolkit/themes/windows/global/printPageSetup.css b/toolkit/themes/windows/global/printPageSetup.css
new file mode 100644
index 0000000000..eec8315f8b
--- /dev/null
+++ b/toolkit/themes/windows/global/printPageSetup.css
@@ -0,0 +1,26 @@
+/* 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/. */
+
+fieldset {
+ border: 0.5px groove ThreeDLightShadow;
+ margin: 6px 3px;
+}
+
+.groupbox-body {
+ /* We cannot use padding on the groupbox due to its -moz-appearance. */
+ margin: 3px 3px 6px;
+}
+
+.portrait-page .radio-icon {
+ list-style-image: url("chrome://global/skin/icons/Portrait.png");
+}
+
+.landscape-page .radio-icon {
+ list-style-image: url("chrome://global/skin/icons/Landscape.png");
+}
+
+#header-footer-grid {
+ display: grid;
+ grid-template-columns: auto auto auto;
+}
diff --git a/toolkit/themes/windows/global/radio.css b/toolkit/themes/windows/global/radio.css
new file mode 100644
index 0000000000..56c792fc49
--- /dev/null
+++ b/toolkit/themes/windows/global/radio.css
@@ -0,0 +1,61 @@
+/* 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/. */
+
+/* ===== radio.css ===================================================
+ == Styles used by the XUL radio element.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* ::::: radio ::::: */
+
+radio {
+ appearance: auto;
+ -moz-default-appearance: radio-container;
+ align-items: center;
+ margin: 2px 4px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-inline-start: 4px;
+ padding-inline-end: 2px;
+}
+
+.radio-check {
+ appearance: auto;
+ -moz-default-appearance: radio;
+ margin: 1px 0;
+}
+
+.radio-label-box {
+ margin-inline-start: 2px;
+ padding-bottom: 1px;
+ padding-inline-start: 1px;
+}
+
+.radio-icon[src] {
+ margin-inline-end: 2px;
+}
+
+.radio-label {
+ margin: 0;
+}
+
+/* ..... focused state ..... */
+
+radiogroup:focus-visible > radio[focused="true"] > .radio-label-box {
+ outline: var(--focus-outline);
+}
+
+/* ..... disabled state ..... */
+
+radio[disabled="true"] {
+ color: GrayText;
+}
+
+@media (-moz-windows-classic) {
+ radio[disabled="true"] {
+ color: ThreeDShadow;
+ text-shadow: 1px 1px ThreeDHighlight;
+ }
+}
diff --git a/toolkit/themes/windows/global/richlistbox.css b/toolkit/themes/windows/global/richlistbox.css
new file mode 100644
index 0000000000..7aff813299
--- /dev/null
+++ b/toolkit/themes/windows/global/richlistbox.css
@@ -0,0 +1,152 @@
+/* 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/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+richlistbox {
+ margin: 2px 4px;
+ background-color: Field;
+ color: FieldText;
+ border: 1px solid ThreeDShadow;
+}
+
+richlistbox[disabled="true"] {
+ color: GrayText;
+}
+
+richlistitem[selected="true"] {
+ background-color: -moz-cellhighlight;
+ color: -moz-cellhighlighttext;
+}
+
+richlistbox:where(:focus) > richlistitem[selected="true"] {
+ background-color: SelectedItem;
+ color: SelectedItemText;
+}
+
+richlistbox[seltype="multiple"]:focus > richlistitem[current="true"],
+richlistbox.theme-listbox:focus > richlistitem[current="true"] {
+ outline: var(--default-focusring);
+ outline-color: SelectedItem;
+ outline-offset: calc(-1 * var(--default-focusring-width));
+}
+
+richlistbox[seltype="multiple"]:focus > richlistitem[current="true"][selected="true"],
+richlistbox.theme-listbox:focus > richlistitem[current="true"][selected="true"] {
+ outline-color: #F3D982; /* TODO: find a suitable system color */
+}
+
+richlistbox.theme-listbox > richlistitem {
+ border: 1px solid transparent;
+}
+
+richlistbox.theme-listbox > richlistitem[selected="true"] {
+ background-color: -moz-cellhighlight;
+ color: -moz-cellhighlighttext;
+}
+
+richlistbox.theme-listbox:focus > richlistitem[selected="true"] {
+ background-color: SelectedItem;
+ color: SelectedItemText;
+}
+
+richlistbox.theme-listbox > richlistitem > label {
+ margin: 0;
+ padding-block: 0 1px;
+ padding-inline: 4px 0;
+ white-space: nowrap;
+}
+
+@media (-moz-windows-default-theme) {
+ richlistbox.theme-listbox > richlistitem {
+ --listitem-selectedTextColor: rgb(0,0,0);
+ --listitem-selectedColor: rgb(217,217,217);
+ --listitem-selectedBorder: var(--listitem-selectedColor);
+ --listitem-selectedBottomBorder: rgb(204,204,204);
+ --listitem-selectedBackground: var(--listitem-selectedColor);
+ --listitem-selectedImage: none;
+ --listitem-selectedCurrentBorder: rgb(123,195,255);
+ --listitem-selectedFocusColor: rgb(205,232,255);
+ --listitem-selectedFocusBorder: var(--listitem-selectedFocusColor);
+ --listitem-selectedFocusBottomBorder: rgb(165,214,255);
+ --listitem-selectedFocusBackground: var(--listitem-selectedFocusColor);
+ --listitem-selectedFocusImage: none;
+ --listitem-selectedFocusCurrentBorder: var(--listitem-selectedFocusColor);
+ --listitem-selectedFocusCurrentBottomBorder: var(--listitem-selectedFocusBottomBorder);
+ --listitem-selectedFocusCurrentBackground: var(--listitem-selectedFocusColor);
+
+ color: FieldText;
+ margin-inline: 1px;
+ padding-block: 1px;
+ border-width: 1px;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ richlistbox.theme-listbox > richlistitem[selected="true"] {
+ border-top-color: var(--listitem-selectedBorder);
+ border-inline-color: var(--listitem-selectedBorder);
+ border-bottom-color: var(--listitem-selectedBottomBorder);
+ background-image: var(--listitem-selectedImage);
+ background-color: var(--listitem-selectedBackground);
+ color: var(--listitem-selectedTextColor);
+ }
+
+ richlistbox.theme-listbox:focus > richlistitem[selected="true"] {
+ border-top-color: var(--listitem-selectedFocusBorder);
+ border-inline-color: var(--listitem-selectedFocusBorder);
+ border-bottom-color: var(--listitem-selectedFocusBottomBorder);
+ background-image: var(--listitem-selectedFocusImage);
+ background-color: var(--listitem-selectedFocusBackground);
+ color: var(--listitem-selectedTextColor);
+ }
+
+ richlistbox.theme-listbox:focus > richlistitem[current="true"] {
+ border-color: var(--listitem-selectedCurrentBorder);
+ outline: none;
+ }
+
+ richlistbox.theme-listbox:focus > richlistitem[selected="true"][current="true"] {
+ border-top-color: var(--listitem-selectedFocusCurrentBorder);
+ border-inline-color: var(--listitem-selectedFocusCurrentBorder);
+ border-bottom-color: var(--listitem-selectedFocusCurrentBottomBorder);
+ background-color: var(--listitem-selectedFocusCurrentBackground);
+ outline: none;
+ }
+
+ @media (-moz-platform: windows-win7) {
+ richlistbox.theme-listbox > richlistitem {
+ --listitem-selectedBottomBorder: var(--listitem-selectedColor);
+ --listitem-selectedBackground: rgba(190,190,190,.15);
+ --listitem-selectedImage: linear-gradient(rgba(190,190,190,.1), rgba(190,190,190,.4));
+ --listitem-selectedCurrentBorder: rgb(125,162,206);
+ --listitem-selectedFocusColor: rgb(132,172,221);
+ --listitem-selectedFocusBottomBorder: var(--listitem-selectedFocusColor);
+ --listitem-selectedFocusBackground: rgba(131,183,249,.02);
+ --listitem-selectedFocusImage: linear-gradient(rgba(131,183,249,.16), rgba(131,183,249,.375));
+ --listitem-selectedFocusCurrentBackground: rgba(131,183,249,.15);
+
+ border-radius: 3px;
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,.4), inset 0 -1px 0 1px rgba(255,255,255,.2);
+ }
+ }
+
+ @media (-moz-platform: windows-win8) {
+ richlistbox.theme-listbox > richlistitem {
+ --listitem-selectedBottomBorder: var(--listitem-selectedColor);
+ --listitem-selectedBackground: rgba(190,190,190,.15);
+ --listitem-selectedImage: linear-gradient(rgba(190,190,190,.4), rgba(190,190,190,.4));
+ --listitem-selectedCurrentBorder: rgb(125,162,206);
+ --listitem-selectedFocusColor: rgb(132,172,221);
+ --listitem-selectedFocusBottomBorder: var(--listitem-selectedFocusColor);
+ --listitem-selectedFocusBackground: rgba(131,183,249,.02);
+ --listitem-selectedFocusImage: linear-gradient(rgba(131,183,249,.375), rgba(131,183,249,.375));
+ --listitem-selectedFocusCurrentBackground: rgba(131,183,249,.15);
+ }
+ }
+}
+
+listheader {
+ color: -moz-DialogText;
+}
diff --git a/toolkit/themes/windows/global/splitter.css b/toolkit/themes/windows/global/splitter.css
new file mode 100644
index 0000000000..0baa8e7b8c
--- /dev/null
+++ b/toolkit/themes/windows/global/splitter.css
@@ -0,0 +1,61 @@
+/* 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/. */
+
+/* ===== splitter.css ===================================================
+ == Styles used by the XUL splitter element.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* ::::: splitter (vertical) ::::: */
+
+splitter {
+ align-items: center;
+ justify-content: center;
+ cursor: ew-resize;
+ border-width: 0 1px;
+ border-style: solid;
+ border-inline-start-color: ThreeDHighlight;
+ border-inline-end-color: ThreeDShadow;
+ min-width: 6px;
+ background-color: ThreeDFace;
+}
+
+splitter[state="collapsed"][collapse="before"],
+splitter[state="collapsed"][substate="before"],
+splitter[state="collapsed"][collapse="after"]:-moz-locale-dir(rtl),
+splitter[state="collapsed"][substate="after"]:-moz-locale-dir(rtl) {
+ cursor: e-resize;
+}
+
+splitter[state="collapsed"][collapse="after"],
+splitter[state="collapsed"][substate="after"],
+splitter[state="collapsed"][collapse="before"]:-moz-locale-dir(rtl),
+splitter[state="collapsed"][substate="before"]:-moz-locale-dir(rtl) {
+ cursor: w-resize;
+}
+
+/* ::::: splitter (horizontal) ::::: */
+
+splitter[orient="vertical"] {
+ cursor: ns-resize;
+ border-width: 1px 0;
+ border-top-color: ThreeDHighlight;
+ border-bottom-color: ThreeDShadow;
+ min-height: 6px;
+}
+
+splitter[orient="vertical"][state="collapsed"][collapse="before"],
+splitter[orient="vertical"][state="collapsed"][substate="before"] {
+ cursor: s-resize;
+}
+
+splitter[orient="vertical"][state="collapsed"][collapse="after"],
+splitter[orient="vertical"][state="collapsed"][substate="after"] {
+ cursor: n-resize;
+}
+
+splitter[disabled="true"] {
+ cursor: default !important;
+}
diff --git a/toolkit/themes/windows/global/tabbox.css b/toolkit/themes/windows/global/tabbox.css
new file mode 100644
index 0000000000..41fa020674
--- /dev/null
+++ b/toolkit/themes/windows/global/tabbox.css
@@ -0,0 +1,51 @@
+/* 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/. */
+
+/* ===== tabbox.css =================================================
+ == Styles used by XUL tab-related elements.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* ::::: tabpanels ::::: */
+
+tabpanels {
+ appearance: auto;
+ -moz-default-appearance: tabpanels;
+ padding: 8px;
+ color: -moz-DialogText;
+ /* These don't have non-native theme support, so force them to light mode to
+ * use the native windows theme. */
+ color-scheme: light;
+}
+
+/* ::::: tab ::::: */
+
+tab {
+ appearance: auto;
+ -moz-default-appearance: tab;
+ margin-top: 2px;
+ padding: 1px 4px 2px;
+ color: -moz-DialogText;
+ /* These don't have non-native theme support, so force them to light mode to
+ * use the native windows theme. */
+ color-scheme: light;
+}
+
+tab:where([visuallyselected="true"]) {
+ margin-top: 0;
+ padding: 1px 6px 4px;
+}
+
+tab:where(:first-of-type[visuallyselected="true"]) {
+ padding-inline: 5px;
+}
+
+.tab-text {
+ margin: 0 !important;
+}
+
+tab:-moz-focusring > .tab-middle {
+ outline: var(--default-focusring);
+}
diff --git a/toolkit/themes/windows/global/tabprompts.css b/toolkit/themes/windows/global/tabprompts.css
new file mode 100644
index 0000000000..2b5fbdf55f
--- /dev/null
+++ b/toolkit/themes/windows/global/tabprompts.css
@@ -0,0 +1,25 @@
+/* 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/. */
+
+/* Tab Modal Prompt boxes */
+.tabModalBackground,
+tabmodalprompt {
+ background-color: hsla(0,0%,10%,.5);
+}
+
+tabmodalprompt {
+ font-family: sans-serif; /* use content font not system UI font */
+}
+
+.tabmodalprompt-mainContainer {
+ color: FieldText;
+ background-color: Field;
+ border-radius: 2px;
+ border: 1px solid threeDDarkShadow;
+}
+
+.tabmodalprompt-buttonContainer {
+ background-color: hsla(0,0%,0%,.05);
+ border-top: 1px solid hsla(0,0%,0%,.05);
+}
diff --git a/toolkit/themes/windows/global/toolbar.css b/toolkit/themes/windows/global/toolbar.css
new file mode 100644
index 0000000000..45b79eafdd
--- /dev/null
+++ b/toolkit/themes/windows/global/toolbar.css
@@ -0,0 +1,58 @@
+/* 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/. */
+
+/* ===== toolbar.css ====================================================
+ == Styles used by XUL toolbar-related elements.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+toolbox {
+ appearance: auto;
+ -moz-default-appearance: toolbox;
+}
+
+toolbar {
+ appearance: auto;
+ -moz-default-appearance: toolbar;
+ min-width: 1px;
+ min-height: 19px;
+}
+
+toolbar:first-child {
+ min-width: 1px;
+}
+
+toolbox:-moz-lwtheme,
+toolbar:-moz-lwtheme {
+ appearance: none;
+}
+
+toolbarseparator {
+ appearance: auto;
+ -moz-default-appearance: separator;
+}
+
+toolbarspacer {
+ width: 15px;
+}
+
+toolbarpaletteitem {
+ cursor: grab;
+}
+
+/* Drag and drop feedback */
+
+toolbarpaletteitem[place="toolbar"] {
+ margin-inline: -2px;
+ border-inline: 2px solid transparent;
+}
+
+toolbarpaletteitem[dragover="left"] {
+ border-left-color: #000000;
+}
+
+toolbarpaletteitem[dragover="right"] {
+ border-right-color: #000000;
+}
diff --git a/toolkit/themes/windows/global/toolbarbutton.css b/toolkit/themes/windows/global/toolbarbutton.css
new file mode 100644
index 0000000000..33ed1acf25
--- /dev/null
+++ b/toolkit/themes/windows/global/toolbarbutton.css
@@ -0,0 +1,98 @@
+/* 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/. */
+
+/* ===== toolbarbutton.css =====================================================
+ == Styles used by the XUL button element.
+ ======================================================================= */
+
+/* ::::: toolbarbutton ::::: */
+
+toolbarbutton {
+ appearance: auto;
+ -moz-default-appearance: toolbarbutton;
+ margin: 0;
+ padding: 3px;
+}
+
+.toolbarbutton-text {
+ margin: 0;
+}
+
+toolbarbutton:-moz-focusring {
+ outline: var(--default-focusring);
+ outline-offset: calc(-1 * var(--default-focusring-width) - 1px);
+}
+
+toolbarbutton:where([disabled="true"]) {
+ color: GrayText;
+ text-shadow: none;
+}
+
+@media (-moz-windows-classic) {
+ @media not (prefers-contrast) {
+ toolbarbutton:where([disabled="true"]) {
+ text-shadow: 1px 1px ThreeDHighlight;
+ }
+ }
+ toolbarbutton:where([disabled="true"]) {
+ color: ThreeDShadow;
+ }
+}
+
+@media (-moz-windows-default-theme) {
+ :root[lwtheme-image] toolbarbutton {
+ text-shadow: none;
+ }
+
+ :root[lwtheme-image] toolbarbutton:not([disabled="true"]) {
+ text-shadow: inherit;
+ }
+}
+
+@media (-moz-windows-default-theme: 0) {
+ :root[lwtheme-image] toolbarbutton:not([disabled="true"]) {
+ text-shadow: inherit;
+ }
+}
+
+/* ::::: toolbarbutton menu ::::: */
+
+.toolbarbutton-menu-dropmarker,
+.toolbarbutton-combined-buttons-dropmarker {
+ appearance: none;
+ list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg");
+ -moz-context-properties: fill;
+ fill: currentColor;
+ width: auto;
+}
+
+/* ::::: toolbarbutton badged ::::: */
+
+.toolbarbutton-badge-stack > .toolbarbutton-icon[label]:not([label=""]) {
+ margin-inline-end: 0;
+}
+
+.toolbarbutton-badge {
+ box-sizing: border-box;
+ overflow: hidden;
+ white-space: nowrap;
+ background-color: #d90000;
+ font-size: 10px;
+ font-weight: bold;
+ padding: 0 2px 1px;
+ color: #fff;
+ text-shadow: none;
+ border-radius: 2px;
+ box-shadow: 0 1px 0 hsla(0, 100%, 100%, .2) inset,
+ 0 -1px 0 hsla(0, 0%, 0%, .1) inset,
+ 0 1px 0 hsla(206, 50%, 10%, .2);
+ margin: -5px 0 0 !important;
+ margin-inline-end: -4px !important;
+ min-width: 14px;
+ max-width: 20px;
+ line-height: 10px;
+ text-align: center;
+ align-self: start;
+ justify-self: end;
+}
diff --git a/toolkit/themes/windows/global/tree/sort-asc.svg b/toolkit/themes/windows/global/tree/sort-asc.svg
new file mode 100644
index 0000000000..917fa96cf3
--- /dev/null
+++ b/toolkit/themes/windows/global/tree/sort-asc.svg
@@ -0,0 +1,6 @@
+<!-- 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/. -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 7" width="9" height="7" fill="context-fill">
+ <path d="M4.5 1.24a.9.9 0 0 0-.7.2l-2.6 2.7c-.8.87.43 2.1 1.3 1.3l2-2 2 2c.84.53 1.8-.5 1.2-1.3l-2.6-2.7a.9.9 0 0 0-.6-.2z"/>
+</svg>
diff --git a/toolkit/themes/windows/global/tree/sort-dsc.svg b/toolkit/themes/windows/global/tree/sort-dsc.svg
new file mode 100644
index 0000000000..97cbfc6917
--- /dev/null
+++ b/toolkit/themes/windows/global/tree/sort-dsc.svg
@@ -0,0 +1,6 @@
+<!-- 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/. -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 7" width="9" height="7" fill="context-fill">
+ <path d="M4.5 5.67a.9.9 0 0 1-.7-.2l-2.6-2.7c-.8-.87.43-2.1 1.3-1.3l2 2 2-2c.84-.53 1.8.5 1.2 1.3l-2.6 2.7a.9.9 0 0 1-.6.2z"/>
+</svg>
diff --git a/toolkit/themes/windows/global/wizard.css b/toolkit/themes/windows/global/wizard.css
new file mode 100644
index 0000000000..5a097980dc
--- /dev/null
+++ b/toolkit/themes/windows/global/wizard.css
@@ -0,0 +1,53 @@
+/* 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/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+@namespace html url("http://www.w3.org/1999/xhtml");
+
+.wizard-header {
+ border-bottom: 2px groove ThreeDFace;
+ background-color: Window;
+ color: WindowText;
+}
+
+.wizard-header-box-1 {
+ padding: 5px 0;
+}
+
+.wizard-header-label {
+ margin-inline-start: 23px;
+ font-weight: bold;
+}
+
+.wizard-header-description {
+ margin-inline-start: 44px;
+}
+
+:host([data-branded="true"]) .wizard-header-icon {
+ list-style-image: url("chrome://branding/content/icon128.png");
+ width: 48px;
+ height: 48px;
+ margin-inline-end: 5px;
+}
+
+html|*.wizard-page-box {
+ margin: 10px 44px;
+}
+
+.wizard-buttons-separator {
+ margin-bottom: 0 !important;
+}
+
+.wizard-buttons-box-2 {
+ margin: 10px;
+}
+
+.wizard-button[dlgtype="finish"],
+.wizard-button[dlgtype="next"] {
+ margin-inline-start: 0 !important;
+}
+
+.wizard-button[dlgtype="back"] {
+ margin-inline-end: 0 !important;
+}
diff --git a/toolkit/themes/windows/moz.build b/toolkit/themes/windows/moz.build
new file mode 100644
index 0000000000..096017b685
--- /dev/null
+++ b/toolkit/themes/windows/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ["global", "mozapps"]
diff --git a/toolkit/themes/windows/mozapps/downloads/unknownContentType.css b/toolkit/themes/windows/mozapps/downloads/unknownContentType.css
new file mode 100644
index 0000000000..53e2f0ce00
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/downloads/unknownContentType.css
@@ -0,0 +1,38 @@
+/* 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/. */
+
+#type {
+ flex: 1;
+ background-color: transparent;
+ color: inherit;
+}
+
+#from {
+ margin-top: 1px;
+}
+
+#location {
+ font-weight: bold;
+}
+
+#contentTypeImage {
+ height: 16px;
+ width: 16px;
+ margin-block: 0;
+ margin-inline-start: 0;
+ margin-inline-end: 5px;
+}
+
+.small-indent {
+ margin-inline: 15px;
+}
+
+.small-indent label {
+ margin-inline-start: 0;
+}
+
+#source,
+#location {
+ contain: inline-size;
+}
diff --git a/toolkit/themes/windows/mozapps/handling/handling.css b/toolkit/themes/windows/mozapps/handling/handling.css
new file mode 100644
index 0000000000..1f18f18ba5
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/handling/handling.css
@@ -0,0 +1,31 @@
+/* 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/. */
+
+richlistitem[type] {
+ min-height: 36px; /* Don't forget to update the richlistbox height! */
+ padding-inline-start: 2px;
+ }
+
+richlistitem {
+ align-items: center;
+}
+
+richlistbox {
+ /* 3 items high, plus 4px for top and bottom margins, less 2px for border */
+ min-height: 110px;
+}
+
+.name {
+ font-weight: bold;
+}
+
+.description {
+ color: GrayText;
+}
+
+@media (prefers-contrast) {
+ richlistitem[selected] .description {
+ color: inherit;
+ }
+}
diff --git a/toolkit/themes/windows/mozapps/jar.mn b/toolkit/themes/windows/mozapps/jar.mn
new file mode 100644
index 0000000000..2f031eb5be
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/jar.mn
@@ -0,0 +1,7 @@
+# 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/.
+
+toolkit.jar:
+#include ../../shared/mozapps.inc.mn
+ skin/classic/mozapps/update/updates.css (update/updates.css)
diff --git a/toolkit/themes/windows/mozapps/moz.build b/toolkit/themes/windows/mozapps/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+JAR_MANIFESTS += ["jar.mn"]
diff --git a/toolkit/themes/windows/mozapps/update/updates.css b/toolkit/themes/windows/mozapps/update/updates.css
new file mode 100644
index 0000000000..d971beba90
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/update/updates.css
@@ -0,0 +1,90 @@
+/* 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/. */
+
+/* Elevation Dialog */
+/* Specify the size for the UI so it has a fixed size. 3rd
+ party themes should typically specify the same values. */
+#elevationBox, .update-content {
+ height: 360px;
+ width: 700px;
+}
+
+/* Remove margin and padding so the inner UI will extend to the edge of the
+ window. 3rd party themes should typically specify the same values. */
+#updates {
+ margin: 0;
+ padding: 0;
+}
+
+.update-header {
+ border-bottom: 2px groove ThreeDFace;
+ background-color: Window;
+ color: WindowText;
+ padding: 0 10px;
+}
+
+.update-header-box-1 {
+ padding: 5px 0;
+}
+
+.update-header-label {
+ font-weight: bold;
+}
+
+#update-button-box {
+ margin: 0;
+ padding: 5px 10px 10px;
+}
+
+.update-content {
+ padding: 10px;
+}
+
+.update-buttons-separator {
+ margin-block: 0 !important;
+}
+
+#updateFinishedName {
+ font-weight: bold;
+ font-size: larger;
+}
+
+/* Update History Window */
+update {
+ border-bottom: 1px dotted #C0C0C0;
+}
+
+.update-name {
+ font-weight: bold;
+}
+
+.update-label-column {
+ align-items: flex-end;
+}
+
+.update-type {
+ font-weight: bold;
+ color: #990000;
+}
+
+.update-status-value,
+.update-installedOn-value {
+ margin-inline-start: 1ch;
+}
+
+#historyItems {
+ height: 200px;
+ flex: 1 auto;
+ margin: 1px 5px;
+}
+
+#historyItems .update {
+ padding: 5px;
+ display: flex;
+ flex-direction: column;
+}
+
+.update-name {
+ flex: 1;
+}
diff --git a/toolkit/themes/windows/mozapps/viewsource/viewsource.css b/toolkit/themes/windows/mozapps/viewsource/viewsource.css
new file mode 100644
index 0000000000..76c7d00b9d
--- /dev/null
+++ b/toolkit/themes/windows/mozapps/viewsource/viewsource.css
@@ -0,0 +1,5 @@
+/* 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/. */
+
+/* This is for styling the menus of the viewsource window */