summaryrefslogtreecommitdiffstats
path: root/browser/themes/windows
diff options
context:
space:
mode:
Diffstat (limited to 'browser/themes/windows')
-rw-r--r--browser/themes/windows/browser.css395
-rw-r--r--browser/themes/windows/customizableui/panelUI.css12
-rw-r--r--browser/themes/windows/downloads/allDownloadsView.css61
-rw-r--r--browser/themes/windows/downloads/downloads.css33
-rw-r--r--browser/themes/windows/jar.mn37
-rw-r--r--browser/themes/windows/monitor-base.pngbin0 -> 1087 bytes
-rw-r--r--browser/themes/windows/monitor-border.pngbin0 -> 3268 bytes
-rw-r--r--browser/themes/windows/moz.build9
-rw-r--r--browser/themes/windows/notification-icons/camera.pngbin0 -> 1356 bytes
-rw-r--r--browser/themes/windows/notification-icons/microphone.pngbin0 -> 1694 bytes
-rw-r--r--browser/themes/windows/notification-icons/screen.pngbin0 -> 1619 bytes
-rw-r--r--browser/themes/windows/pageInfo.pngbin0 -> 7850 bytes
-rw-r--r--browser/themes/windows/places/organizer.css425
-rw-r--r--browser/themes/windows/preferences/alwaysAsk.pngbin0 -> 355 bytes
-rw-r--r--browser/themes/windows/preferences/application.pngbin0 -> 332 bytes
-rw-r--r--browser/themes/windows/preferences/applications.css43
-rw-r--r--browser/themes/windows/preferences/saveFile.pngbin0 -> 703 bytes
-rw-r--r--browser/themes/windows/sanitizeDialog.css16
-rw-r--r--browser/themes/windows/window-controls/close-highcontrast.svg6
-rw-r--r--browser/themes/windows/window-controls/close-themes.svg7
-rw-r--r--browser/themes/windows/window-controls/close.svg6
-rw-r--r--browser/themes/windows/window-controls/maximize-highcontrast.svg6
-rw-r--r--browser/themes/windows/window-controls/maximize-themes.svg7
-rw-r--r--browser/themes/windows/window-controls/maximize.svg6
-rw-r--r--browser/themes/windows/window-controls/minimize-highcontrast.svg6
-rw-r--r--browser/themes/windows/window-controls/minimize-themes.svg7
-rw-r--r--browser/themes/windows/window-controls/minimize.svg6
-rw-r--r--browser/themes/windows/window-controls/restore-highcontrast.svg7
-rw-r--r--browser/themes/windows/window-controls/restore-themes.svg8
-rw-r--r--browser/themes/windows/window-controls/restore.svg7
30 files changed, 1110 insertions, 0 deletions
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
new file mode 100644
index 0000000000..5698fb3d99
--- /dev/null
+++ b/browser/themes/windows/browser.css
@@ -0,0 +1,395 @@
+/* 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://browser/skin/browser-shared.css");
+@import url("chrome://browser/skin/contextmenu.css");
+@import url("chrome://browser/skin/browser-custom-colors.css");
+
+#menubar-items {
+ flex-direction: column; /* for flex hack */
+ justify-content: normal; /* align the menubar to the top also in customize mode */
+}
+
+#main-menubar > menu {
+ appearance: none;
+ color: inherit;
+
+ &[_moz-menuactive] {
+ background-color: light-dark(hsla(0,0%,0%,.12), hsla(0,0%,100%,.22));
+ color: inherit;
+
+ @media (prefers-contrast) {
+ background-color: -moz-menuhover;
+ color: -moz-menuhovertext;
+ }
+ }
+}
+
+@media (-moz-windows-accent-color-in-titlebar) {
+ :root[tabsintitlebar] {
+ /* stylelint-disable-next-line media-query-no-invalid */
+ @media (-moz-bool-pref: "browser.theme.windows.accent-color-in-tabs.enabled") {
+ --toolbox-non-lwt-bgcolor: ActiveCaption;
+ --toolbox-non-lwt-textcolor: CaptionText;
+ --toolbox-non-lwt-bgcolor-inactive: InactiveCaption;
+ --toolbox-non-lwt-textcolor-inactive: InactiveCaptionText;
+
+ #TabsToolbar:not(:-moz-lwtheme) {
+ /* These colors match the Linux/HCM default button colors. We need to
+ * override these on the tabs toolbar because the accent color is
+ * arbitrary, so the hardcoded colors from browser-custom-colors might
+ * not provide sufficient contrast. */
+ --toolbarbutton-icon-fill: currentColor;
+ --toolbarbutton-hover-background: color-mix(in srgb, currentColor 17%, transparent);
+ --toolbarbutton-active-background: color-mix(in srgb, currentColor 30%, transparent);
+ }
+ }
+
+ &[sizemode="normal"] #navigator-toolbox {
+ border-top: .5px solid ActiveBorder;
+ &:-moz-window-inactive {
+ border-top-color: InactiveBorder;
+ }
+ }
+ }
+}
+
+/* When temporarily showing the menu bar, make it at least as tall as the
+ * tab bar such that the window controls don't appear to move up. */
+:root[tabsintitlebar] #toolbar-menubar[autohide="true"] {
+ height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size));
+}
+
+#print-preview-toolbar:not(:-moz-lwtheme) {
+ appearance: auto;
+ -moz-default-appearance: toolbox;
+}
+
+/* Titlebar */
+
+.titlebar-buttonbox {
+ appearance: none;
+ /* The button box must appear on top of the navigator-toolbox in order for
+ * click and hover mouse events to work properly for the button in the restored
+ * window state. Otherwise, elements in the navigator-toolbox, like the menubar,
+ * can swallow those events. It will also place the buttons above the fog on
+ * Windows 7 with Aero Glass.
+ */
+ z-index: 1;
+}
+
+.titlebar-buttonbox-container {
+ align-items: stretch;
+
+ /* Prevent window controls from overlapping the nav bar's shadow on the tab
+ * bar. */
+ #TabsToolbar > & {
+ margin-bottom: var(--tabs-navbar-shadow-size);
+ }
+}
+
+/* Window control buttons */
+
+.titlebar-button {
+ appearance: none;
+ border: none;
+ margin: 0;
+ padding: 8px 17px;
+ -moz-context-properties: stroke;
+ stroke: currentColor;
+
+ :root[tabletmode] & {
+ display: none;
+ }
+
+ &:focus-visible {
+ outline: var(--focus-outline);
+ outline-offset: var(--focus-outline-inset);
+ }
+
+ > .toolbarbutton-icon {
+ width: 12px;
+ height: 12px;
+
+ &:-moz-locale-dir(rtl) {
+ transform: scaleX(-1);
+ }
+ }
+}
+
+.titlebar-min {
+ /* Even though we use appearance: none, -moz-default-appearance is necessary
+ * for Windows 11's "snap layouts" feature, see
+ * DealWithWindowsAppearanceHacks */
+ -moz-default-appearance: -moz-window-button-minimize;
+ list-style-image: url(chrome://browser/skin/window-controls/minimize.svg);
+}
+
+.titlebar-max {
+ -moz-default-appearance: -moz-window-button-maximize;
+ list-style-image: url(chrome://browser/skin/window-controls/maximize.svg);
+}
+
+.titlebar-restore {
+ -moz-default-appearance: -moz-window-button-restore;
+ list-style-image: url(chrome://browser/skin/window-controls/restore.svg);
+}
+
+.titlebar-close {
+ -moz-default-appearance: -moz-window-button-close;
+ list-style-image: url(chrome://browser/skin/window-controls/close.svg);
+}
+
+:root[lwtheme-image] {
+ .titlebar-button {
+ -moz-context-properties: unset;
+ }
+ .titlebar-min {
+ list-style-image: url(chrome://browser/skin/window-controls/minimize-themes.svg);
+ }
+ .titlebar-max {
+ list-style-image: url(chrome://browser/skin/window-controls/maximize-themes.svg);
+ }
+ .titlebar-restore {
+ list-style-image: url(chrome://browser/skin/window-controls/restore-themes.svg);
+ }
+ .titlebar-close {
+ list-style-image: url(chrome://browser/skin/window-controls/close-themes.svg);
+ }
+}
+
+@media not (prefers-contrast) {
+ .titlebar-button:hover {
+ background-color: light-dark(hsla(0,0%,0%,.12), hsla(0,0%,100%,.22));
+
+ &:active {
+ background-color: light-dark(hsla(0,0%,0%,.22), hsla(0,0%,100%,.32));
+ }
+ }
+
+ .titlebar-close:hover {
+ stroke: white;
+ background-color: hsl(355,86%,49%);
+
+ &:active {
+ background-color: hsl(355,82%,69%);
+ }
+ }
+}
+
+@media (prefers-contrast) {
+ .titlebar-button {
+ background-color: -moz-field;
+ stroke: ButtonText;
+
+ &:hover {
+ background-color: SelectedItem;
+ stroke: SelectedItemText;
+ }
+ }
+
+ .titlebar-min {
+ list-style-image: url(chrome://browser/skin/window-controls/minimize-highcontrast.svg);
+ }
+
+ .titlebar-max {
+ list-style-image: url(chrome://browser/skin/window-controls/maximize-highcontrast.svg);
+ }
+
+ .titlebar-restore {
+ list-style-image: url(chrome://browser/skin/window-controls/restore-highcontrast.svg);
+ }
+
+ .titlebar-close {
+ list-style-image: url(chrome://browser/skin/window-controls/close-highcontrast.svg);
+ }
+}
+
+/* the 12px image renders a 10px icon, and the 10px upscaled gets rounded to 12.5, which
+ * rounds up to 13px, which makes the icon one pixel too big on 1.25dppx. Fix: */
+@media (1.20dppx <= resolution <= 1.45dppx) {
+ .titlebar-button > .toolbarbutton-icon {
+ width: 11.5px;
+ height: 11.5px;
+ }
+}
+
+/* 175% dpi should result in the same device pixel sizes as 150% dpi. */
+@media (1.70dppx <= resolution <= 1.95dppx) {
+ .titlebar-button {
+ padding-inline: 14.1px;
+
+ > .toolbarbutton-icon {
+ width: 10.8px;
+ height: 10.8px;
+ }
+ }
+}
+
+/* 225% dpi should result in the same device pixel sizes as 200% dpi. */
+@media (2.20dppx <= resolution <= 2.45dppx) {
+ .titlebar-button {
+ padding-inline: 15.3333px;
+
+ > .toolbarbutton-icon {
+ width: 10.8px;
+ height: 10.8px;
+ }
+ }
+}
+
+/* 275% dpi should result in the same device pixel sizes as 250% dpi. */
+@media (2.70dppx <= resolution <= 2.95dppx) {
+ /* NB: todo: this should also change padding on the buttons
+ * themselves, but without a device to test this on, it's
+ * impossible to know by how much. */
+ .titlebar-button > .toolbarbutton-icon {
+ width: 10.8px;
+ height: 10.8px;
+ }
+}
+
+/* Bookmark menus */
+
+.bookmark-item {
+ &:is(menu, menuitem) {
+ min-width: 0;
+ max-width: 32em;
+ }
+
+ &:not(.subviewbutton) > .menu-iconic-left {
+ margin-block: 0;
+ }
+
+ &[cutting] {
+ > .toolbarbutton-icon,
+ > .menu-iconic-left > .menu-iconic-icon {
+ opacity: 0.5;
+ }
+
+ > .toolbarbutton-text,
+ > .menu-iconic-left > .menu-iconic-text {
+ opacity: 0.7;
+ }
+ }
+
+ &:is(toolbarbutton)[dragover="true"][open="true"] {
+ appearance: none;
+ background: SelectedItem !important;
+ color: SelectedItemText !important;
+ fill: SelectedItemText;
+ }
+}
+
+/* Bookmarks roots menu-items */
+
+#bookmarksToolbarFolderMenu,
+#BMB_bookmarksToolbar,
+#panelMenu_bookmarksToolbar {
+ list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.svg");
+}
+
+/* Address bar */
+
+#urlbar,
+#searchbar {
+ font-size: 1.15em;
+}
+
+/* stylelint-disable-next-line media-query-no-invalid */
+@media (-moz-bool-pref: "browser.urlbar.experimental.expandTextOnFocus") {
+ #urlbar[breakout-extend] {
+ font-size: 1.25em;
+ }
+}
+
+@media (prefers-contrast) {
+ :root {
+ /* Windows HCM conventions use these colors for chiclets. We can't use them on
+ other platforms because AccentColor can be shown atop SelectedItem,
+ which has zero contrast. */
+ --urlbar-box-hover-bgcolor: SelectedItem;
+ --urlbar-box-active-bgcolor: SelectedItem;
+ --urlbar-box-hover-text-color: SelectedItemText;
+ }
+
+ #urlbar:not(:-moz-lwtheme, [focused="true"]) > #urlbar-background,
+ #searchbar:not(:-moz-lwtheme, :focus-within),
+ .findbar-textbox:not(:-moz-lwtheme, :focus) {
+ border-color: ThreeDShadow;
+ }
+}
+
+/* Autocomplete */
+
+#PopupAutoComplete > richlistbox > richlistitem[originaltype~="datalist-first"] {
+ border-top: 1px solid ThreeDShadow;
+}
+
+/* Tabstrip */
+
+#TabsToolbar {
+ min-height: 0;
+ padding: 0;
+}
+
+@media (prefers-contrast) {
+ /* For high contrast themes. XXX is this needed anymore? */
+ #tabbrowser-tabpanels,
+ :root[privatebrowsingmode=temporary] #tabbrowser-tabpanels {
+ background-color: -moz-default-background-color;
+ }
+}
+
+/* All tabs menupopup */
+
+.alltabs-item[selected="true"] {
+ font-weight: bold;
+}
+
+#UITourTooltipButtons {
+ /**
+ * Override the --arrowpanel-padding so the background extends
+ * to the sides and bottom of the panel.
+ */
+ margin-inline: -10px;
+ margin-bottom: -10px;
+}
+
+/* Make menu items larger when opened through touch. */
+panel[touchmode],
+menupopup[touchmode] {
+ --arrowpanel-menuitem-padding-block: 12px;
+ --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline);
+ /* The value for the header back icon padding is selected in a way that the
+ * height of the header and its separator will be equal to the panel inner
+ * top padding plus standard menuitem, so that the header's separator will
+ * be located excatly where a normal toolbarseparator would be located after
+ * the first menuitem, in a menu without a header. */
+ --arrowpanel-header-back-icon-padding: 10px;
+}
+
+:root[uidensity="compact"] panel[touchmode] {
+ --arrowpanel-header-back-icon-padding: 12px;
+}
+
+menupopup[touchmode] :is(menu, menuitem, menucaption) {
+ /* Use the var set in the rule above to increase menu items height in menupopups when
+ * they are opened through touch.
+ * Panel menu items already have their padding set in panelUI-shared.css with the same var. */
+ padding-block: var(--arrowpanel-menuitem-padding-block);
+}
+
+#contentAreaContextMenu[touchmode] > #context-navigation > menuitem {
+ /* The navigation menuitems are bigger to begin with because of their inner padding,
+ * so calculate the padding-block to match normal menuitems height when in touchmode.
+ * 3.5em is the desired menuitem height (~42px), minus the menuitem actual height devided by 2. */
+ padding-block: calc((3.5em - 32px) / 2);
+}
+
+/* Other menu separators don't extend all the way to the menu edges, but the
+ one below the navigation buttons in the content context menu should. */
+#context-sep-navigation {
+ padding-inline: 0;
+}
diff --git a/browser/themes/windows/customizableui/panelUI.css b/browser/themes/windows/customizableui/panelUI.css
new file mode 100644
index 0000000000..d412d3011b
--- /dev/null
+++ b/browser/themes/windows/customizableui/panelUI.css
@@ -0,0 +1,12 @@
+/* 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 "chrome://browser/skin/customizableui/panelUI-shared.css";
+
+/* bookmark panel submenus */
+
+menupopup::part(drop-indicator) {
+ /* To account for the shadow margin + border of the panel */
+ margin-inline-start: 5px;
+}
diff --git a/browser/themes/windows/downloads/allDownloadsView.css b/browser/themes/windows/downloads/allDownloadsView.css
new file mode 100644
index 0000000000..6c71a5e01d
--- /dev/null
+++ b/browser/themes/windows/downloads/allDownloadsView.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/. */
+
+@import "chrome://browser/skin/downloads/allDownloadsView.inc.css";
+
+/*** List items ***/
+
+@media not (prefers-contrast) {
+ .downloadProgress::-moz-progress-bar {
+ background-color: #3c9af8;
+ }
+
+ .downloadProgress[paused]::-moz-progress-bar {
+ background-color: #a6a6a6;
+ }
+
+ /*** Highlighted list items ***/
+
+ /*
+ -moz-default-appearance: menuitem is almost right, but the hover effect is not
+ transparent and is lighter than desired.
+
+ Copied from the autocomplete richlistbox styling in
+ toolkit/themes/windows/global/autocomplete.css
+
+ This styling should be kept in sync with the style from the above file.
+ */
+ #downloadsListBox:focus > richlistitem[selected] {
+ color: inherit;
+ background-color: transparent;
+ /* four gradients for the bevel highlights on each edge, one for blue background */
+ background-image:
+ linear-gradient(to bottom, rgba(255,255,255,0.9) 3px, transparent 3px),
+ linear-gradient(to right, rgba(255,255,255,0.5) 3px, transparent 3px),
+ linear-gradient(to left, rgba(255,255,255,0.5) 3px, transparent 3px),
+ linear-gradient(to top, rgba(255,255,255,0.4) 3px, transparent 3px),
+ linear-gradient(to bottom, rgba(163,196,247,0.3), rgba(122,180,246,0.3));
+ background-clip: content-box;
+ border-radius: 6px;
+ outline: 1px solid rgb(124,163,206);
+ outline-offset: -2px;
+ }
+}
+
+/*** Progress bars ***/
+
+@media (prefers-contrast) {
+ .downloadProgress {
+ background-color: -moz-Dialog;
+ border: 1px solid ButtonText;
+ }
+
+ .downloadProgress::-moz-progress-bar {
+ --download-progress-fill-color: SelectedItem;
+ }
+
+ #downloadsListBox richlistitem[selected] .downloadProgress::-moz-progress-bar {
+ --download-progress-fill-color: ButtonText;
+ }
+}
diff --git a/browser/themes/windows/downloads/downloads.css b/browser/themes/windows/downloads/downloads.css
new file mode 100644
index 0000000000..2cc4b26195
--- /dev/null
+++ b/browser/themes/windows/downloads/downloads.css
@@ -0,0 +1,33 @@
+/* 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 "chrome://browser/skin/downloads/downloads.inc.css";
+
+/*** Panel and outer controls ***/
+
+#downloadsHistory {
+ border: 0;
+}
+
+/*** List items and similar elements in the summary ***/
+
+:root {
+ --downloads-item-height: 5.5em;
+ --downloads-item-font-size-factor: 0.9;
+ --downloads-item-details-opacity: 0.6;
+ --downloads-item-disabled-opacity: 0.6;
+}
+
+/*** Progress bars ***/
+
+@media (prefers-contrast) {
+ .downloadProgress {
+ background-color: -moz-Dialog;
+ border: 1px solid ButtonText;
+ }
+
+ .downloadProgress::-moz-progress-bar {
+ --download-progress-fill-color: SelectedItem;
+ }
+}
diff --git a/browser/themes/windows/jar.mn b/browser/themes/windows/jar.mn
new file mode 100644
index 0000000000..b8c19066e7
--- /dev/null
+++ b/browser/themes/windows/jar.mn
@@ -0,0 +1,37 @@
+# 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/.
+
+browser.jar:
+% skin browser classic/1.0 %skin/classic/browser/
+#include ../shared/jar.inc.mn
+ skin/classic/browser/sanitizeDialog.css
+ skin/classic/browser/browser.css
+ skin/classic/browser/browser-custom-colors.css (../shared/browser-custom-colors.css)
+ skin/classic/browser/contextmenu.css (../shared/contextmenu.css)
+ skin/classic/browser/monitor-base.png
+ skin/classic/browser/monitor-border.png
+ skin/classic/browser/pageInfo.png
+ skin/classic/browser/customizableui/panelUI.css (customizableui/panelUI.css)
+ skin/classic/browser/downloads/allDownloadsView.css (downloads/allDownloadsView.css)
+ skin/classic/browser/downloads/downloads.css (downloads/downloads.css)
+ skin/classic/browser/notification-icons/camera.png (notification-icons/camera.png)
+ skin/classic/browser/notification-icons/microphone.png (notification-icons/microphone.png)
+ skin/classic/browser/notification-icons/screen.png (notification-icons/screen.png)
+ skin/classic/browser/places/organizer.css (places/organizer.css)
+ skin/classic/browser/preferences/alwaysAsk.png (preferences/alwaysAsk.png)
+ skin/classic/browser/preferences/application.png (preferences/application.png)
+ skin/classic/browser/preferences/saveFile.png (preferences/saveFile.png)
+ skin/classic/browser/preferences/applications.css (preferences/applications.css)
+ skin/classic/browser/window-controls/close.svg (window-controls/close.svg)
+ skin/classic/browser/window-controls/close-highcontrast.svg (window-controls/close-highcontrast.svg)
+ skin/classic/browser/window-controls/close-themes.svg (window-controls/close-themes.svg)
+ skin/classic/browser/window-controls/maximize.svg (window-controls/maximize.svg)
+ skin/classic/browser/window-controls/maximize-highcontrast.svg (window-controls/maximize-highcontrast.svg)
+ skin/classic/browser/window-controls/maximize-themes.svg (window-controls/maximize-themes.svg)
+ skin/classic/browser/window-controls/minimize.svg (window-controls/minimize.svg)
+ skin/classic/browser/window-controls/minimize-highcontrast.svg (window-controls/minimize-highcontrast.svg)
+ skin/classic/browser/window-controls/minimize-themes.svg (window-controls/minimize-themes.svg)
+ skin/classic/browser/window-controls/restore.svg (window-controls/restore.svg)
+ skin/classic/browser/window-controls/restore-highcontrast.svg (window-controls/restore-highcontrast.svg)
+ skin/classic/browser/window-controls/restore-themes.svg (window-controls/restore-themes.svg)
diff --git a/browser/themes/windows/monitor-base.png b/browser/themes/windows/monitor-base.png
new file mode 100644
index 0000000000..45a2410217
--- /dev/null
+++ b/browser/themes/windows/monitor-base.png
Binary files differ
diff --git a/browser/themes/windows/monitor-border.png b/browser/themes/windows/monitor-border.png
new file mode 100644
index 0000000000..f05dcb7839
--- /dev/null
+++ b/browser/themes/windows/monitor-border.png
Binary files differ
diff --git a/browser/themes/windows/moz.build b/browser/themes/windows/moz.build
new file mode 100644
index 0000000000..20e4e3af75
--- /dev/null
+++ b/browser/themes/windows/moz.build
@@ -0,0 +1,9 @@
+# -*- 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"]
+
+DEFINES["MENUBAR_CAN_AUTOHIDE"] = 1
diff --git a/browser/themes/windows/notification-icons/camera.png b/browser/themes/windows/notification-icons/camera.png
new file mode 100644
index 0000000000..110f3e4728
--- /dev/null
+++ b/browser/themes/windows/notification-icons/camera.png
Binary files differ
diff --git a/browser/themes/windows/notification-icons/microphone.png b/browser/themes/windows/notification-icons/microphone.png
new file mode 100644
index 0000000000..e0fceee6f7
--- /dev/null
+++ b/browser/themes/windows/notification-icons/microphone.png
Binary files differ
diff --git a/browser/themes/windows/notification-icons/screen.png b/browser/themes/windows/notification-icons/screen.png
new file mode 100644
index 0000000000..3620c87135
--- /dev/null
+++ b/browser/themes/windows/notification-icons/screen.png
Binary files differ
diff --git a/browser/themes/windows/pageInfo.png b/browser/themes/windows/pageInfo.png
new file mode 100644
index 0000000000..684342f451
--- /dev/null
+++ b/browser/themes/windows/pageInfo.png
Binary files differ
diff --git a/browser/themes/windows/places/organizer.css b/browser/themes/windows/places/organizer.css
new file mode 100644
index 0000000000..68b0fd3866
--- /dev/null
+++ b/browser/themes/windows/places/organizer.css
@@ -0,0 +1,425 @@
+/* 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/. */
+
+:root {
+ --organizer-color: -moz-DialogText;
+ --organizer-deemphasized-color: GrayText;
+
+ --organizer-toolbar-background: -moz-Dialog;
+ --organizer-pane-background: -moz-Dialog;
+ --organizer-content-background: -moz-Dialog;
+
+ --organizer-hover-background: SelectedItem;
+ --organizer-hover-color: SelectedItemText;
+ --organizer-selected-background: -moz-cellhighlight;
+ --organizer-selected-color: -moz-cellhighlighttext;
+ --organizer-focus-selected-background: SelectedItem;
+ --organizer-focus-selected-color: SelectedItemText;
+ --organizer-outline-color: SelectedItem;
+
+ --organizer-separator-color: ThreeDDarkShadow;
+ --organizer-border-color: ThreeDShadow;
+
+ --organizer-toolbar-field-background: Field;
+ --organizer-toolbar-field-background-focused: Field;
+ --organizer-toolbar-field-border-color: ThreeDShadow;
+ --organizer-toolbar-field-focus-border-color: var(--organizer-outline-color);
+ --organizer-toolbar-field-focus-box-shadow: unset;
+ --organizer-pane-field-border-color: ThreeDShadow;
+}
+
+@media not (prefers-contrast) {
+ :root {
+ --organizer-color: rgb(21,20,26);
+ --organizer-deemphasized-color: rgb(91,91,102);
+
+ --organizer-toolbar-background: rgb(249,249,251);
+ --organizer-pane-background: rgb(240,240,244);
+ --organizer-content-background: white;
+
+ --organizer-hover-background: rgba(207,207,216,.66);
+ --organizer-hover-color: var(--organizer-color);
+ --organizer-selected-background: rgb(207,207,216);
+ --organizer-selected-color: var(--organizer-color);
+ --organizer-focus-selected-background: rgb(0,97,224);
+ --organizer-focus-selected-color: rgb(251,251,254);
+ --organizer-outline-color: rgb(0,97,224);
+
+ --organizer-separator-color: var(--organizer-pane-field-border-color);
+ --organizer-border-color: ThreeDLightShadow;
+
+ --organizer-toolbar-field-background: rgb(240,240,244);
+ --organizer-toolbar-field-background-focused: Field;
+ --organizer-toolbar-field-border-color: transparent;
+ --organizer-toolbar-field-focus-border-color: color-mix(in srgb, var(--organizer-outline-color) 50%, transparent);
+ --organizer-toolbar-field-focus-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.23);
+ --organizer-pane-field-border-color: color-mix(in srgb, currentColor 41%, transparent);
+ }
+
+ @media (prefers-color-scheme: dark) {
+ :root {
+ --organizer-color: rgb(251,251,254);
+ --organizer-deemphasized-color: rgb(191,191,201);
+
+ --organizer-toolbar-background: rgb(43,42,51);
+ --organizer-pane-background: rgb(35,34,43);
+ --organizer-content-background: rgb(28,27,34);
+
+ --organizer-hover-background: rgb(82,82,94);
+ --organizer-selected-background: rgb(91,91,102);
+ --organizer-focus-selected-background: color-mix(in srgb, rgb(0,221,255) 80%, currentColor);
+ --organizer-focus-selected-color: rgb(43,42,51);
+ --organizer-outline-color: rgb(0,221,255);
+
+ --organizer-toolbar-field-background: rgb(28,27,34);
+ --organizer-toolbar-field-background-focused: rgb(66,65,77);
+ scrollbar-color: rgba(249,249,250,.4) rgba(20,20,25,.3);
+ }
+ }
+}
+
+/* Toolbar and menus */
+
+#placesToolbar {
+ appearance: none;
+ background-color: var(--organizer-toolbar-background);
+ color: var(--organizer-color);
+ border-bottom: 1px solid var(--organizer-border-color);
+ padding: 4px;
+ padding-inline-end: 6px;
+}
+
+#placesToolbar > toolbarbutton {
+ appearance: none;
+ padding: 5px;
+ border-radius: 4px;
+}
+
+#placesToolbar > toolbarbutton[disabled] {
+ opacity: .6;
+}
+
+#placesToolbar > toolbarbutton:not([disabled]):hover {
+ background-color: var(--organizer-hover-background);
+ color: var(--organizer-hover-color);
+}
+
+#placesToolbar > toolbarbutton:not([disabled]):hover:active {
+ background-color: var(--organizer-selected-background);
+}
+
+#placesToolbar > toolbarbutton > .toolbarbutton-icon,
+#placesMenu > menu > image,
+#placesMenu > menu > .menubar-text {
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+#placesMenu {
+ margin-inline-start: 6px;
+}
+
+#placesMenu > menu {
+ appearance: none;
+ color: var(--organizer-color);
+ border-radius: 4px;
+ padding-block: 5px;
+ padding-inline-start: 5px;
+ margin-inline-end: 2px;
+}
+
+#placesMenu > menu:hover {
+ background-color: var(--organizer-hover-background);
+ color: var(--organizer-hover-color);
+}
+
+#placesMenu > menu:hover:active,
+#placesMenu > menu[open] {
+ background-color: var(--organizer-selected-background);
+ color: var(--organizer-selected-color);
+}
+
+#placesMenu > menu > .menubar-text {
+ margin-block: 0 !important; /* override menu.css */
+ padding-inline-end: 8px;
+ background: url(chrome://global/skin/icons/arrow-down-12.svg) right center no-repeat;
+ background-size: 6px;
+}
+
+#placesMenu > menu > .menubar-text:-moz-locale-dir(rtl) {
+ background-position-x: left;
+}
+
+/* Toolbar icons */
+
+#back-button {
+ list-style-image: url("chrome://browser/skin/back.svg");
+}
+
+#forward-button {
+ list-style-image: url("chrome://browser/skin/forward.svg");
+}
+
+#back-button:-moz-locale-dir(rtl) > .toolbarbutton-icon,
+#forward-button:-moz-locale-dir(rtl) > .toolbarbutton-icon {
+ transform: scaleX(-1);
+}
+
+#organizeButton {
+ list-style-image: url("chrome://global/skin/icons/settings.svg");
+}
+
+#viewMenu {
+ list-style-image: url("chrome://browser/skin/sort.svg");
+}
+
+#maintenanceButton {
+ list-style-image: url("chrome://browser/skin/import-export.svg");
+}
+
+/* Search bar */
+
+#searchFilter {
+ appearance: none;
+ background-color: var(--organizer-toolbar-field-background);
+ color: var(--organizer-color);
+ border: 1px solid var(--organizer-toolbar-field-border-color);
+ border-radius: 4px;
+ margin: 0;
+ padding-block: 2px;
+ min-height: 24px;
+}
+
+#searchFilter[focused] {
+ box-shadow: var(--organizer-toolbar-field-focus-box-shadow);
+ background-color: var(--organizer-toolbar-field-background-focused);
+ border-color: transparent;
+ outline: 2px solid var(--organizer-toolbar-field-focus-border-color);
+ outline-offset: -2px;
+}
+
+/* Sidebar and splitter */
+
+#placesList {
+ background-color: var(--organizer-pane-background);
+ width: 200px;
+ min-width: 100px;
+ max-width: 400px;
+}
+
+#placesView > splitter {
+ border: 0;
+ border-inline-end: 1px solid var(--organizer-border-color);
+ min-width: 0;
+ width: 3px;
+ background-color: transparent;
+ margin-inline-start: -3px;
+ position: relative;
+}
+
+/* Downloads pane */
+
+#downloadsListBox {
+ color: var(--organizer-color);
+ background-color: var(--organizer-content-background);
+}
+
+#clearDownloadsButton:focus-visible {
+ outline: 2px solid var(--organizer-outline-color);
+}
+
+/* Tree */
+
+#contentView treecol {
+ /* Use box-shadow to draw a bottom border instead of border-bottom
+ * because otherwise the items on contentView won't be perfectly
+ * aligned with the items on the sidebar. */
+ box-shadow: inset 0 -1px var(--organizer-border-color)
+}
+
+tree {
+ background-color: var(--organizer-content-background);
+ color: var(--organizer-color);
+}
+
+treechildren::-moz-tree-row {
+ background-color: transparent;
+}
+
+treechildren::-moz-tree-row(hover) {
+ background-color: var(--organizer-hover-background);
+}
+
+treechildren::-moz-tree-row(selected) {
+ background-color: var(--organizer-selected-background);
+ color: var(--organizer-selected-color);
+ border: 1px solid transparent;
+}
+
+treechildren::-moz-tree-row(selected, focus) {
+ background-color: var(--organizer-focus-selected-background);
+ color: var(--organizer-focus-selected-color);
+}
+
+treechildren::-moz-tree-image(hover),
+treechildren::-moz-tree-twisty(hover),
+treechildren::-moz-tree-cell-text(hover) {
+ color: var(--organizer-hover-color);
+}
+
+treechildren::-moz-tree-image(selected),
+treechildren::-moz-tree-twisty(selected),
+treechildren::-moz-tree-cell-text(selected) {
+ color: var(--organizer-selected-color);
+}
+
+treechildren::-moz-tree-image(selected, focus),
+treechildren::-moz-tree-twisty(selected, focus),
+treechildren::-moz-tree-cell-text(selected, focus) {
+ color: var(--organizer-focus-selected-color);
+}
+
+treechildren::-moz-tree-separator {
+ height: 1px;
+ border-color: var(--organizer-separator-color);
+}
+
+treechildren::-moz-tree-separator(hover) {
+ border-color: var(--organizer-hover-color);
+}
+
+treechildren::-moz-tree-separator(selected) {
+ border-color: var(--organizer-selected-color);
+}
+
+treechildren::-moz-tree-separator(selected, focus) {
+ border-color: var(--organizer-focus-selected-color);
+}
+
+/* Info box */
+#infoBox:not([hidden="true"]) {
+ display: block;
+}
+
+#editBookmarkPanelContent {
+ grid-template-columns: auto 1fr;
+}
+
+#editBookmarkPanelContent .caption-label:not([hidden="true"]) {
+ display: block;
+ grid-column: 2;
+}
+
+#editBookmarkPanelContent label {
+ align-self: center;
+}
+
+#editBMPanel_itemsCountText {
+ grid-column: auto / span 2;
+ justify-self: center;
+}
+
+#editBMPanel_tagsSelectorRow {
+ grid-column: auto / span 2;
+}
+
+#detailsPane {
+ background-color: var(--organizer-pane-background);
+ color: var(--organizer-color);
+ min-height: 16em;
+ padding: 5px;
+ border-top: 1px solid var(--organizer-border-color);
+}
+
+.expander-up,
+.expander-down {
+ appearance: none;
+ min-width: 0;
+ padding: 5px;
+ margin: 4px;
+ border: 1px solid var(--organizer-pane-field-border-color);
+ border-radius: 4px;
+ color: var(--organizer-color);
+ background-color: var(--organizer-content-background);
+ list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg");
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+.expander-up {
+ list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg");
+}
+
+.expander-up:hover,
+.expander-down:hover {
+ background-color: var(--organizer-hover-background);
+ color: var(--organizer-hover-color);
+}
+
+.expander-up:hover:active,
+.expander-down:hover:active {
+ background-color: var(--organizer-selected-background);
+ color: var(--organizer-selected-color);
+}
+
+.expander-up:focus-visible,
+.expander-down:focus-visible {
+ outline: 2px solid var(--organizer-outline-color);
+ outline-offset: -1px;
+}
+
+.expander-up > .button-box,
+.expander-down > .button-box {
+ padding: 0;
+}
+
+input {
+ border: 1px solid var(--organizer-pane-field-border-color);
+ border-radius: 4px;
+ background-color: var(--organizer-content-background);
+ color: var(--organizer-color);
+ min-height: 20px;
+ padding-inline: 4px;
+}
+
+input:focus {
+ outline: 2px solid var(--organizer-outline-color);
+ outline-offset: -1px;
+}
+
+input:not(:read-write):focus {
+ outline: none;
+}
+
+#editBookmarkPanelContent input {
+ margin: 4px;
+}
+
+.caption-label {
+ margin-inline-start: 8px;
+ color: var(--organizer-deemphasized-color);
+}
+
+#editBMPanel_tagsSelector {
+ appearance: none;
+ color: var(--organizer-color);
+ background-color: var(--organizer-content-background);
+ border: 1px solid var(--organizer-border-color);
+ border-radius: 4px;
+ margin: 4px;
+}
+
+#editBMPanel_tagsSelector > richlistitem {
+ border: 1px solid transparent;
+}
+
+#editBMPanel_tagsSelector > richlistitem:hover {
+ background-color: var(--organizer-hover-background);
+ color: var(--organizer-hover-color);
+}
+
+#editBMPanel_tagsSelector > richlistitem[selected] {
+ background-color: var(--organizer-selected-background);
+ color: var(--organizer-selected-color);
+}
diff --git a/browser/themes/windows/preferences/alwaysAsk.png b/browser/themes/windows/preferences/alwaysAsk.png
new file mode 100644
index 0000000000..b394da070b
--- /dev/null
+++ b/browser/themes/windows/preferences/alwaysAsk.png
Binary files differ
diff --git a/browser/themes/windows/preferences/application.png b/browser/themes/windows/preferences/application.png
new file mode 100644
index 0000000000..da3689e917
--- /dev/null
+++ b/browser/themes/windows/preferences/application.png
Binary files differ
diff --git a/browser/themes/windows/preferences/applications.css b/browser/themes/windows/preferences/applications.css
new file mode 100644
index 0000000000..bd019d1415
--- /dev/null
+++ b/browser/themes/windows/preferences/applications.css
@@ -0,0 +1,43 @@
+/* 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[appHandlerIcon="handleInternally"],
+menuitem[appHandlerIcon="handleInternally"] {
+ list-style-image: url("chrome://branding/content/icon32.png");
+}
+
+richlistitem[appHandlerIcon="ask"],
+menuitem[appHandlerIcon="ask"] {
+ list-style-image: url("chrome://browser/skin/preferences/alwaysAsk.png");
+}
+
+richlistitem[appHandlerIcon="save"],
+menuitem[appHandlerIcon="save"] {
+ list-style-image: url("chrome://browser/skin/preferences/saveFile.png");
+}
+
+richlistitem[appHandlerIcon="plugin"],
+menuitem[appHandlerIcon="plugin"] {
+ list-style-image: url("chrome://global/skin/icons/plugin.svg");
+}
+
+#appList {
+ min-height: 212px;
+}
+
+#appList > richlistitem {
+ align-items: center;
+}
+
+#appList > richlistitem > image {
+ margin: 5px;
+ width: 32px;
+ height: 32px;
+}
+
+#appList > richlistitem > label {
+ margin: 0px;
+ padding: 5px;
+ white-space: nowrap;
+}
diff --git a/browser/themes/windows/preferences/saveFile.png b/browser/themes/windows/preferences/saveFile.png
new file mode 100644
index 0000000000..a1089af09b
--- /dev/null
+++ b/browser/themes/windows/preferences/saveFile.png
Binary files differ
diff --git a/browser/themes/windows/sanitizeDialog.css b/browser/themes/windows/sanitizeDialog.css
new file mode 100644
index 0000000000..dbe51cf157
--- /dev/null
+++ b/browser/themes/windows/sanitizeDialog.css
@@ -0,0 +1,16 @@
+/* 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/. */
+
+#sanitizeDurationChoice {
+ margin-inline-end: 0;
+}
+
+/* Align the duration label with the warning box and item list */
+#sanitizeDurationLabel {
+ margin-inline-start: 3px;
+}
+
+#sanitizeEverythingWarningIcon {
+ list-style-image: url("chrome://global/skin/icons/warning-large.png");
+}
diff --git a/browser/themes/windows/window-controls/close-highcontrast.svg b/browser/themes/windows/window-controls/close-highcontrast.svg
new file mode 100644
index 0000000000..b37b28a28b
--- /dev/null
+++ b/browser/themes/windows/window-controls/close-highcontrast.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="12" height="12" xmlns="http://www.w3.org/2000/svg">
+ <path stroke="context-stroke" stroke-width="1.9" fill="none" d="M1,1 l 10,10 M1,11 l 10,-10"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/close-themes.svg b/browser/themes/windows/window-controls/close-themes.svg
new file mode 100644
index 0000000000..e6eac2fc55
--- /dev/null
+++ b/browser/themes/windows/window-controls/close-themes.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 width="12" height="12" xmlns="http://www.w3.org/2000/svg">
+ <path stroke="black" stroke-width="3.6" stroke-opacity=".75" d="M1,1 l 10,10 M1,11 l 10,-10"/>
+ <path stroke="white" stroke-width="1.9" d="M1.75,1.75 l 8.5,8.5 M1.75,10.25 l 8.5,-8.5"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/close.svg b/browser/themes/windows/window-controls/close.svg
new file mode 100644
index 0000000000..9d0a252357
--- /dev/null
+++ b/browser/themes/windows/window-controls/close.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="12" height="12" xmlns="http://www.w3.org/2000/svg">
+ <path stroke="context-stroke" stroke-width=".9" fill="none" d="M1,1 l 10,10 M1,11 l 10,-10"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/maximize-highcontrast.svg b/browser/themes/windows/window-controls/maximize-highcontrast.svg
new file mode 100644
index 0000000000..48ea6166f3
--- /dev/null
+++ b/browser/themes/windows/window-controls/maximize-highcontrast.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="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
+ <rect stroke="context-stroke" stroke-width="1.9" fill="none" x="2" y="2" width="8" height="8"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/maximize-themes.svg b/browser/themes/windows/window-controls/maximize-themes.svg
new file mode 100644
index 0000000000..5740a992ae
--- /dev/null
+++ b/browser/themes/windows/window-controls/maximize-themes.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 width="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges" fill="none">
+ <rect stroke="black" stroke-width="3.6" stroke-opacity=".75" x="2" y="2" width="8" height="8"/>
+ <rect stroke="white" stroke-width="1.9" x="2" y="2" width="8" height="8"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/maximize.svg b/browser/themes/windows/window-controls/maximize.svg
new file mode 100644
index 0000000000..e9cc939af3
--- /dev/null
+++ b/browser/themes/windows/window-controls/maximize.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="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
+ <rect stroke="context-stroke" stroke-width=".9" fill="none" x="1.5" y="1.5" width="9" height="9"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/minimize-highcontrast.svg b/browser/themes/windows/window-controls/minimize-highcontrast.svg
new file mode 100644
index 0000000000..2ba29a839d
--- /dev/null
+++ b/browser/themes/windows/window-controls/minimize-highcontrast.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="12" height="12" xmlns="http://www.w3.org/2000/svg">
+ <line stroke="context-stroke" stroke-width="1.9" fill="none" shape-rendering="crispEdges" x1="1" y1="6" x2="11" y2="6"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/minimize-themes.svg b/browser/themes/windows/window-controls/minimize-themes.svg
new file mode 100644
index 0000000000..d74f16bdbc
--- /dev/null
+++ b/browser/themes/windows/window-controls/minimize-themes.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 width="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
+ <line stroke="black" stroke-width="3.6" stroke-opacity=".75" x1="0" y1="6" x2="12" y2="6"/>
+ <line stroke="white" stroke-width="1.9" x1="1" y1="6" x2="11" y2="6"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/minimize.svg b/browser/themes/windows/window-controls/minimize.svg
new file mode 100644
index 0000000000..7ffa1fecbb
--- /dev/null
+++ b/browser/themes/windows/window-controls/minimize.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="12" height="12" xmlns="http://www.w3.org/2000/svg">
+ <line stroke="context-stroke" stroke-width=".9" fill="none" shape-rendering="crispEdges" x1="1" y1="5.5" x2="11" y2="5.5"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/restore-highcontrast.svg b/browser/themes/windows/window-controls/restore-highcontrast.svg
new file mode 100644
index 0000000000..f2cdfa8a9c
--- /dev/null
+++ b/browser/themes/windows/window-controls/restore-highcontrast.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 width="12" height="12" xmlns="http://www.w3.org/2000/svg" stroke="context-stroke" stroke-width="1.9" fill="none" shape-rendering="crispEdges">
+ <rect x="2" y="4" width="6" height="6"/>
+ <polyline points="3.5,1.5 10.5,1.5 10.5,8.5" stroke-width=".9"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/restore-themes.svg b/browser/themes/windows/window-controls/restore-themes.svg
new file mode 100644
index 0000000000..e3c92f58a2
--- /dev/null
+++ b/browser/themes/windows/window-controls/restore-themes.svg
@@ -0,0 +1,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 width="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges" fill="none" stroke="white">
+ <path stroke="black" stroke-width="3.6" stroke-opacity=".75" d="M2,4 l 6,0 l 0,6 l -6,0z M2.5,1.5 l 8,0 l 0,8"/>
+ <rect stroke-width="1.9" x="2" y="4" width="6" height="6"/>
+ <polyline stroke-width=".9" points="3.5,1.5 10.5,1.5 10.5,8.5"/>
+</svg>
diff --git a/browser/themes/windows/window-controls/restore.svg b/browser/themes/windows/window-controls/restore.svg
new file mode 100644
index 0000000000..80b71b178d
--- /dev/null
+++ b/browser/themes/windows/window-controls/restore.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 width="12" height="12" xmlns="http://www.w3.org/2000/svg" stroke="context-stroke" stroke-width=".9" fill="none" shape-rendering="crispEdges">
+ <rect x="1.5" y="3.5" width="7" height="7"/>
+ <polyline points="3.5,3.5 3.5,1.5 10.5,1.5 10.5,8.5 8.5,8.5"/>
+</svg>