summaryrefslogtreecommitdiffstats
path: root/toolkit/themes/linux
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/themes/linux')
-rw-r--r--toolkit/themes/linux/global/autocomplete.css88
-rw-r--r--toolkit/themes/linux/global/button.css75
-rw-r--r--toolkit/themes/linux/global/dropmarker.css8
-rw-r--r--toolkit/themes/linux/global/global.css93
-rw-r--r--toolkit/themes/linux/global/icons/Authentication.pngbin0 -> 2223 bytes
-rw-r--r--toolkit/themes/linux/global/icons/errorGhosted-64.pngbin0 -> 825 bytes
-rw-r--r--toolkit/themes/linux/global/icons/informationGhosted-64.pngbin0 -> 905 bytes
-rw-r--r--toolkit/themes/linux/global/icons/questionGhosted-64.pngbin0 -> 999 bytes
-rw-r--r--toolkit/themes/linux/global/icons/warningGhosted-64.pngbin0 -> 1155 bytes
-rw-r--r--toolkit/themes/linux/global/in-content/common.css42
-rw-r--r--toolkit/themes/linux/global/jar.mn24
-rw-r--r--toolkit/themes/linux/global/menu.css156
-rw-r--r--toolkit/themes/linux/global/menulist.css49
-rw-r--r--toolkit/themes/linux/global/moz.build7
-rw-r--r--toolkit/themes/linux/global/popup.css85
-rw-r--r--toolkit/themes/linux/global/radio.css51
-rw-r--r--toolkit/themes/linux/global/richlistbox.css58
-rw-r--r--toolkit/themes/linux/global/splitter.css53
-rw-r--r--toolkit/themes/linux/global/tabbox.css53
-rw-r--r--toolkit/themes/linux/global/toolbar.css61
-rw-r--r--toolkit/themes/linux/global/toolbarbutton.css88
-rw-r--r--toolkit/themes/linux/moz.build7
-rw-r--r--toolkit/themes/linux/mozapps/jar.mn7
-rw-r--r--toolkit/themes/linux/mozapps/moz.build7
-rw-r--r--toolkit/themes/linux/mozapps/update/updates.css90
-rw-r--r--toolkit/themes/linux/mozapps/viewsource/viewsource.css113
26 files changed, 1215 insertions, 0 deletions
diff --git a/toolkit/themes/linux/global/autocomplete.css b/toolkit/themes/linux/global/autocomplete.css
new file mode 100644
index 0000000000..9c3543eb17
--- /dev/null
+++ b/toolkit/themes/linux/global/autocomplete.css
@@ -0,0 +1,88 @@
+/* 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"] {
+ --panel-color: FieldText;
+ --panel-background: Field;
+}
+
+/* ::::: richlistbox autocomplete ::::: */
+
+.autocomplete-richlistbox {
+ appearance: none;
+ margin: 1px;
+ background-color: transparent;
+}
+
+.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/linux/global/button.css b/toolkit/themes/linux/global/button.css
new file mode 100644
index 0000000000..1793a2da26
--- /dev/null
+++ b/toolkit/themes/linux/global/button.css
@@ -0,0 +1,75 @@
+/* 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;
+ text-shadow: none;
+}
+
+.button-text {
+ margin: 0;
+ margin-inline-start: 2px;
+ text-align: center;
+}
+
+/* .......... hover state .......... */
+
+button:where(:hover:not([checked="true"])) {
+ color: -moz-buttonhovertext;
+}
+
+/* .......... active state .......... */
+
+button:where(:hover:active, [open="true"]) {
+ color: -moz-buttonactivetext;
+}
+
+/* .......... disabled state .......... */
+
+button:where([disabled="true"]) {
+ color: GrayText;
+}
+
+/* .......... focused state .......... */
+
+button:where(:focus-visible) {
+ outline: auto;
+}
+
+/* ::::: menu buttons ::::: */
+
+.button-menu-dropmarker {
+ appearance: auto;
+ -moz-default-appearance: toolbarbutton-dropdown;
+}
+
+/* ::::: 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/linux/global/dropmarker.css b/toolkit/themes/linux/global/dropmarker.css
new file mode 100644
index 0000000000..d72bf30f96
--- /dev/null
+++ b/toolkit/themes/linux/global/dropmarker.css
@@ -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/. */
+
+:host {
+ appearance: auto;
+ -moz-default-appearance: -moz-menulist-arrow-button;
+}
diff --git a/toolkit/themes/linux/global/global.css b/toolkit/themes/linux/global/global.css
new file mode 100644
index 0000000000..d7b7420660
--- /dev/null
+++ b/toolkit/themes/linux/global/global.css
@@ -0,0 +1,93 @@
+/* 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");
+
+@media (-moz-menubar-drag) {
+ xul|toolbar[type="menubar"] {
+ -moz-window-dragging: drag;
+ }
+}
+
+:root {
+ background-color: -moz-Dialog;
+ color: -moz-DialogText;
+ font: message-box;
+}
+
+/* ::::: Alert icons :::::*/
+
+.message-icon {
+ list-style-image: url("moz-icon://stock/gtk-dialog-info?size=dialog");
+}
+
+.alert-dialog #infoIcon,
+.alert-icon {
+ list-style-image: url("moz-icon://stock/gtk-dialog-warning?size=dialog");
+}
+
+.error-icon {
+ list-style-image: url("moz-icon://stock/gtk-dialog-error?size=dialog");
+}
+
+.question-icon {
+ list-style-image: url("moz-icon://stock/gtk-dialog-question?size=dialog");
+}
+
+.authentication-icon {
+ list-style-image: url("chrome://global/skin/icons/Authentication.png");
+}
+
+/* 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;
+}
+
+/* Other margins */
+
+html|input {
+ margin: 2px 4px;
+}
+
+xul|notification > xul|hbox > xul|button {
+ margin-block: 0;
+}
diff --git a/toolkit/themes/linux/global/icons/Authentication.png b/toolkit/themes/linux/global/icons/Authentication.png
new file mode 100644
index 0000000000..6fbd24b91e
--- /dev/null
+++ b/toolkit/themes/linux/global/icons/Authentication.png
Binary files differ
diff --git a/toolkit/themes/linux/global/icons/errorGhosted-64.png b/toolkit/themes/linux/global/icons/errorGhosted-64.png
new file mode 100644
index 0000000000..5ef152a960
--- /dev/null
+++ b/toolkit/themes/linux/global/icons/errorGhosted-64.png
Binary files differ
diff --git a/toolkit/themes/linux/global/icons/informationGhosted-64.png b/toolkit/themes/linux/global/icons/informationGhosted-64.png
new file mode 100644
index 0000000000..edd5b4187f
--- /dev/null
+++ b/toolkit/themes/linux/global/icons/informationGhosted-64.png
Binary files differ
diff --git a/toolkit/themes/linux/global/icons/questionGhosted-64.png b/toolkit/themes/linux/global/icons/questionGhosted-64.png
new file mode 100644
index 0000000000..568e4d88f9
--- /dev/null
+++ b/toolkit/themes/linux/global/icons/questionGhosted-64.png
Binary files differ
diff --git a/toolkit/themes/linux/global/icons/warningGhosted-64.png b/toolkit/themes/linux/global/icons/warningGhosted-64.png
new file mode 100644
index 0000000000..92680780d1
--- /dev/null
+++ b/toolkit/themes/linux/global/icons/warningGhosted-64.png
Binary files differ
diff --git a/toolkit/themes/linux/global/in-content/common.css b/toolkit/themes/linux/global/in-content/common.css
new file mode 100644
index 0000000000..7032648dec
--- /dev/null
+++ b/toolkit/themes/linux/global/in-content/common.css
@@ -0,0 +1,42 @@
+/* - 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";
+
+@media (prefers-color-scheme: dark) {
+ /* Don't apply scrollbar-color since it removes the native scrollbar style on Linux */
+ :root {
+ scrollbar-color: initial;
+ }
+}
+
+xul|tab[visuallyselected] {
+ /* Override styles for tab[selected] from
+ toolkit/themes/linux/global/tabbox.css */
+ margin-bottom: 0;
+}
+
+/* Overriding appearance also avoids incorrect selection background color with
+ light text. */
+xul|menulist::part(label-box),
+xul|*.radio-label-box,
+xul|*.checkbox-label-box {
+ appearance: none;
+}
+
+xul|button[type="menu"] > xul|*.button-box > xul|*.button-menu-dropmarker {
+ appearance: none !important;
+}
+
+xul|menulist {
+ font-size: inherit;
+}
+
+html|button {
+ /* XUL button min-width */
+ min-width: 6.3em;
+}
diff --git a/toolkit/themes/linux/global/jar.mn b/toolkit/themes/linux/global/jar.mn
new file mode 100644
index 0000000000..51b1033412
--- /dev/null
+++ b/toolkit/themes/linux/global/jar.mn
@@ -0,0 +1,24 @@
+# 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/global.css
+ skin/classic/global/menu.css
+ skin/classic/global/menulist.css
+ skin/classic/global/popup.css
+ skin/classic/global/radio.css
+ skin/classic/global/richlistbox.css
+ skin/classic/global/splitter.css
+ skin/classic/global/tabbox.css
+ skin/classic/global/toolbar.css
+ skin/classic/global/toolbarbutton.css
+
+ skin/classic/global/icons/Authentication.png (icons/Authentication.png)
+
+ skin/classic/global/in-content/common.css (in-content/common.css)
diff --git a/toolkit/themes/linux/global/menu.css b/toolkit/themes/linux/global/menu.css
new file mode 100644
index 0000000000..f10c3a0f1e
--- /dev/null
+++ b/toolkit/themes/linux/global/menu.css
@@ -0,0 +1,156 @@
+/* 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 {
+ border-radius: calc(var(--panel-border-radius) / 2);
+ align-items: center;
+ flex-shrink: 0;
+ padding: 4px 6px;
+ max-width: 42em;
+ list-style-image: none;
+}
+
+menu:where([_moz-menuactive]:not([disabled="true"])),
+menuitem:where([_moz-menuactive]:not([disabled="true"])) {
+ color: -moz-menuhovertext;
+ background-color: -moz-menuhover;
+}
+
+menu:where([disabled="true"]),
+menuitem:where([disabled="true"]),
+menucaption:where([disabled="true"]) {
+ color: GrayText;
+}
+
+menubar > menu {
+ color: inherit;
+ background-color: transparent;
+ border-radius: 0;
+ padding-bottom: 1px;
+ border-bottom: 3px solid transparent;
+}
+
+menubar > menu[open] {
+ border-bottom-color: AccentColor;
+}
+
+menuitem[default="true"],
+menuitem.spell-suggestion,
+menucaption {
+ font-weight: bold;
+}
+
+/* ::::: menu/menuitems in menulist popups ::::: */
+
+menulist > menupopup {
+ font: inherit;
+}
+
+menulist > menupopup > :is(menuitem, menucaption, menu) {
+ max-width: none;
+}
+
+/* ..... internal content .... */
+
+.menu-text,
+.menu-iconic-left,
+.menu-iconic-text {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ margin-inline-start: 0 !important;
+ margin-inline-end: 2px !important;
+}
+
+.menu-text {
+ /* This is (18 + the size of end-padding on .menu-iconic-left)px */
+ margin-inline-start: 21px !important;
+}
+
+.menu-accel,
+.menu-iconic-accel {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ margin-inline-start: 7px !important;
+}
+
+.menu-accel-container {
+ justify-content: flex-end;
+}
+
+.menu-iconic-left {
+ min-width: 16px;
+ /* We can only hardcode this, to make the default GTK icon<->label spacing */
+ padding-inline-end: 3px !important;
+}
+
+.menu-iconic-icon {
+ width: 16px;
+ height: 16px;
+}
+
+.menu-right {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-inline-start: 6px;
+ margin-inline-end: 0;
+ width: 1ex;
+ height: 1ex;
+ /* These next two rules are needed to prevent inheritance and thus ugliness */
+ list-style-image: none;
+ appearance: auto;
+ -moz-default-appearance: menuarrow;
+}
+
+.menubar-left {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-inline-start: 0;
+ margin-inline-end: 2px;
+}
+
+.menubar-text {
+ margin: 0 1px !important;
+}
+
+menulist > menupopup > :is(menuitem, menucaption, menu) > .menu-iconic-left {
+ display: none;
+}
+
+menuitem:is([type="checkbox"], [checked="true"]) .menu-iconic-icon {
+ appearance: auto;
+ -moz-default-appearance: checkbox;
+}
+
+menuitem[type="radio"] .menu-iconic-icon {
+ appearance: auto;
+ -moz-default-appearance: radio;
+}
+
+menuseparator {
+ margin-block: 2px;
+ border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);
+}
+
+@media (prefers-contrast) {
+ menuseparator {
+ border-top-color: var(--panel-border-color);
+ }
+}
diff --git a/toolkit/themes/linux/global/menulist.css b/toolkit/themes/linux/global/menulist.css
new file mode 100644
index 0000000000..5117078620
--- /dev/null
+++ b/toolkit/themes/linux/global/menulist.css
@@ -0,0 +1,49 @@
+/* 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: 1px 3px;
+}
+
+:host([native]) {
+ appearance: auto;
+ -moz-default-appearance: menulist;
+ margin: 2px 4px;
+ color: -moz-DialogText;
+ font: menu;
+ text-shadow: none;
+}
+
+:host([native]:not([disabled="true"]):hover) {
+ color: -moz-buttonhovertext;
+}
+
+:host([native]:not([disabled="true"]):hover:active),
+:host([native]:not([disabled="true"])[open="true"]) {
+ color: -moz-buttonactivetext;
+}
+
+:host([native][disabled="true"]) {
+ color: GrayText;
+}
+
+/* Label box */
+
+#label-box[native] {
+ appearance: auto;
+ -moz-default-appearance: menulist-text;
+ align-items: center;
+ justify-content: center;
+ color: inherit;
+}
+
+/* Dropmarker */
+
+dropmarker[native] {
+ display: none;
+}
diff --git a/toolkit/themes/linux/global/moz.build b/toolkit/themes/linux/global/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/toolkit/themes/linux/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/linux/global/popup.css b/toolkit/themes/linux/global/popup.css
new file mode 100644
index 0000000000..acd11c9359
--- /dev/null
+++ b/toolkit/themes/linux/global/popup.css
@@ -0,0 +1,85 @@
+/* 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-padding-block: max(0px, var(--panel-border-radius) / 2 - 1px);
+ --panel-padding: var(--panel-padding-block) 0;
+ --panel-color: MenuText;
+ --panel-background: Menu;
+ --panel-border-radius: 8px;
+ --panel-border-color: ThreeDShadow;
+ --panel-width: initial;
+ --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0,0%,0%,.2);
+ /* To account for the box-shadow below */
+ --panel-shadow-margin: 4px;
+ margin: calc(-1 * var(--panel-shadow-margin));
+ -moz-window-input-region-margin: var(--panel-shadow-margin);
+}
+
+menupopup {
+ /* Also apply the padding in the inline axis for menus */
+ --panel-padding: var(--panel-padding-block);
+}
+
+@media (prefers-contrast) {
+ menupopup,
+ panel {
+ --panel-border-color: color-mix(in srgb, currentColor 60%, transparent);
+ }
+}
+
+menupopup > menu > menupopup {
+ /* Vertically align nested menupopups: the shadow plus the top padding */
+ margin-top: calc(-1 * (var(--panel-shadow-margin) + var(--panel-padding-block)));
+}
+
+/* ::::: arrow panel ::::: */
+
+:is(panel, menupopup)[type="arrow"] {
+ border: none;
+ background-color: transparent;
+}
+
+:is(panel, menupopup)::part(content) {
+ display: flex;
+ box-sizing: border-box;
+ padding: var(--panel-padding);
+ 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));
+
+ box-shadow: var(--panel-shadow);
+ margin: 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 */
+}
+
+/* rules for popups associated with menulists */
+
+menulist > menupopup {
+ padding: 0;
+ min-width: 0;
+}
diff --git a/toolkit/themes/linux/global/radio.css b/toolkit/themes/linux/global/radio.css
new file mode 100644
index 0000000000..c7ce720531
--- /dev/null
+++ b/toolkit/themes/linux/global/radio.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/. */
+
+/* ===== 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;
+}
+
+.radio-check {
+ appearance: auto;
+ -moz-default-appearance: radio;
+ margin: 2px;
+}
+
+.radio-label-box {
+ appearance: auto;
+ -moz-default-appearance: radio-label;
+}
+
+.radio-icon[src] {
+ margin-inline-end: 2px;
+}
+
+.radio-label {
+ margin: 0;
+}
+
+/* ..... focused state ..... */
+
+radiogroup:focus-visible > radio[focused="true"] > .radio-label-box {
+ /* Native theming should take care of this but it appears to be broken with
+ some Gtk themes. Bug 1312169. */
+ outline: var(--focus-outline);
+}
+
+/* ..... disabled state ..... */
+
+radio[disabled="true"] {
+ color: GrayText;
+}
diff --git a/toolkit/themes/linux/global/richlistbox.css b/toolkit/themes/linux/global/richlistbox.css
new file mode 100644
index 0000000000..358643c28e
--- /dev/null
+++ b/toolkit/themes/linux/global/richlistbox.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/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+richlistbox {
+ appearance: auto;
+ -moz-default-appearance: listbox;
+ margin: 2px 4px;
+ background-color: Field;
+ color: FieldText;
+}
+
+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:not(:focus) > richlistitem[selected="true"] {
+ background-color: -moz-cellhighlight;
+ color: -moz-cellhighlighttext;
+}
+
+richlistbox.theme-listbox > richlistitem > label {
+ margin: 0px;
+ padding-top: 0px;
+ padding-bottom: 1px;
+ padding-inline-start: 4px;
+ padding-inline-end: 0px;
+ white-space: nowrap;
+}
+
+listheader {
+ background-color: -moz-Dialog;
+ color: -moz-DialogText;
+}
diff --git a/toolkit/themes/linux/global/splitter.css b/toolkit/themes/linux/global/splitter.css
new file mode 100644
index 0000000000..75f829fa31
--- /dev/null
+++ b/toolkit/themes/linux/global/splitter.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/. */
+
+/* ===== splitter.css ===================================================
+ == Styles used by the XUL splitter element.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* ::::: splitter (vertical) ::::: */
+
+splitter {
+ appearance: auto;
+ -moz-default-appearance: splitter;
+ align-items: center;
+ justify-content: center;
+ cursor: ew-resize;
+}
+
+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;
+}
+
+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/linux/global/tabbox.css b/toolkit/themes/linux/global/tabbox.css
new file mode 100644
index 0000000000..75fe7bdbf7
--- /dev/null
+++ b/toolkit/themes/linux/global/tabbox.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/. */
+
+/* ===== tabbox.css =================================================
+ == Styles used by XUL tab-related elements.
+ ======================================================================= */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+
+/* ::::: tabs ::::: */
+
+tabs {
+ position: relative;
+ z-index: 0;
+}
+
+/* ::::: tabpanels ::::: */
+
+tabpanels {
+ appearance: auto;
+ -moz-default-appearance: tabpanels;
+ padding: 8px;
+ color: -moz-DialogText;
+}
+
+/* ::::: tab ::::: */
+
+tab {
+ position: relative;
+ appearance: auto;
+ -moz-default-appearance: tab;
+ margin-top: 2px;
+ padding: 3px 4px;
+ color: -moz-DialogText;
+}
+
+tab:where([visuallyselected="true"]) {
+ z-index: 1;
+ margin-top: 0;
+ margin-bottom: -2px;
+ padding-top: 4px;
+ padding-bottom: 6px;
+}
+
+tab:where(:not(:first-of-type)) {
+ margin-inline-start: -2px;
+}
+
+.tab-text {
+ margin: 0 !important;
+}
diff --git a/toolkit/themes/linux/global/toolbar.css b/toolkit/themes/linux/global/toolbar.css
new file mode 100644
index 0000000000..6a0ecb6bfe
--- /dev/null
+++ b/toolkit/themes/linux/global/toolbar.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/. */
+
+/* ===== 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: 20px;
+ padding: 2px 0;
+}
+
+toolbar[type="menubar"] {
+ appearance: none;
+ padding: 1px 0;
+}
+
+toolbar:-moz-lwtheme {
+ appearance: none;
+}
+
+toolbarseparator {
+ appearance: auto;
+ -moz-default-appearance: separator;
+ margin: 0;
+ min-width: 2px;
+}
+
+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/linux/global/toolbarbutton.css b/toolkit/themes/linux/global/toolbarbutton.css
new file mode 100644
index 0000000000..c269b356f0
--- /dev/null
+++ b/toolkit/themes/linux/global/toolbarbutton.css
@@ -0,0 +1,88 @@
+/* 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;
+}
+
+:root[lwtheme-image] toolbarbutton {
+ text-shadow: none;
+}
+
+.toolbarbutton-text {
+ margin: 0;
+}
+
+toolbarbutton:where([checked="true"]) {
+ color: ButtonText;
+}
+
+toolbarbutton:where(:hover) {
+ color: -moz-buttonhovertext;
+}
+
+toolbarbutton:where(:hover:active:not([disabled="true"])),
+toolbarbutton:where([open="true"]) {
+ color: ButtonText;
+}
+
+toolbarbutton:where([disabled="true"]) {
+ color: GrayText;
+}
+
+toolbarbutton:-moz-lwtheme:not(:hover, [checked="true"], [open="true"], [disabled="true"]) {
+ text-shadow: inherit;
+}
+
+/* ::::: toolbarbutton menu ::::: */
+
+.toolbarbutton-menu-dropmarker {
+ appearance: auto;
+ -moz-default-appearance: toolbarbutton-dropdown;
+}
+
+.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;
+ 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/linux/moz.build b/toolkit/themes/linux/moz.build
new file mode 100644
index 0000000000..096017b685
--- /dev/null
+++ b/toolkit/themes/linux/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/linux/mozapps/jar.mn b/toolkit/themes/linux/mozapps/jar.mn
new file mode 100644
index 0000000000..4976c3b0ad
--- /dev/null
+++ b/toolkit/themes/linux/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/linux/mozapps/moz.build b/toolkit/themes/linux/mozapps/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/toolkit/themes/linux/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/linux/mozapps/update/updates.css b/toolkit/themes/linux/mozapps/update/updates.css
new file mode 100644
index 0000000000..ed54fa398e
--- /dev/null
+++ b/toolkit/themes/linux/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;
+}
+
+.update-header-box-1 {
+ padding: 5px 0;
+}
+
+.update-content {
+ padding: 10px;
+}
+
+.update-header-label {
+ font-weight: bold;
+}
+
+#update-button-box {
+ margin: 0;
+ padding: 6px 10px 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 5px;
+}
+
+#historyItems .update {
+ padding: 5px;
+ display: flex;
+ flex-direction: column;
+}
+
+.update-name {
+ flex: 1;
+}
diff --git a/toolkit/themes/linux/mozapps/viewsource/viewsource.css b/toolkit/themes/linux/mozapps/viewsource/viewsource.css
new file mode 100644
index 0000000000..af9b85d1f8
--- /dev/null
+++ b/toolkit/themes/linux/mozapps/viewsource/viewsource.css
@@ -0,0 +1,113 @@
+/* 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/. */
+
+#menu_savePage {
+ list-style-image: url("moz-icon://stock/gtk-save-as?size=menu");
+}
+
+#menu_print {
+ list-style-image: url("moz-icon://stock/gtk-print?size=menu");
+}
+
+#menu_close {
+ list-style-image: url("moz-icon://stock/gtk-close?size=menu");
+}
+
+#menu_undo {
+ list-style-image: url("moz-icon://stock/gtk-undo?size=menu");
+}
+
+#menu_undo[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-undo?size=menu&state=disabled");
+}
+
+#menu_redo {
+ list-style-image: url("moz-icon://stock/gtk-redo?size=menu");
+}
+
+#menu_redo[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-redo?size=menu&state=disabled");
+}
+
+#menu_cut {
+ list-style-image: url("moz-icon://stock/gtk-cut?size=menu");
+}
+
+#menu_cut[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-cut?size=menu&state=disabled");
+}
+
+#cMenu_copy,
+#menu_copy {
+ list-style-image: url("moz-icon://stock/gtk-copy?size=menu");
+}
+
+#menu_copy[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-copy?size=menu&state=disabled");
+}
+
+#menu_paste {
+ list-style-image: url("moz-icon://stock/gtk-paste?size=menu");
+}
+
+#menu_paste[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-paste?size=menu&state=disabled");
+}
+
+#menu_delete {
+ list-style-image: url("moz-icon://stock/gtk-delete?size=menu");
+}
+
+#menu_delete[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-delete?size=menu&state=disabled");
+}
+
+#cMenu_selectAll,
+#menu_selectAll {
+ list-style-image: url("moz-icon://stock/gtk-select-all?size=menu");
+}
+
+#menu_find {
+ list-style-image: url("moz-icon://stock/gtk-find?size=menu");
+}
+
+#menu_find[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-find?size=menu&state=disabled");
+}
+
+#menu_goToLine {
+ list-style-image: url("moz-icon://stock/gtk-jump-to?size=menu");
+}
+
+#menu_goToLine[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-jump-to?size=menu&state=disabled");
+}
+
+#menu_reload {
+ list-style-image: url("moz-icon://stock/gtk-refresh?size=menu");
+}
+
+#menu_reload[disabled] {
+ list-style-image: url("moz-icon://stock/gtk-refresh?size=menu&state=disabled");
+}
+
+#menu_textEnlarge {
+ list-style-image: url("moz-icon://stock/gtk-zoom-in?size=menu");
+}
+
+#menu_textReduce {
+ list-style-image: url("moz-icon://stock/gtk-zoom-out?size=menu");
+}
+
+#menu_textReset {
+ list-style-image: url("moz-icon://stock/gtk-zoom-100?size=menu");
+}
+
+#menu_openHelp {
+ list-style-image: url("moz-icon://stock/gtk-help?size=menu");
+}
+
+#aboutName {
+ list-style-image: url("moz-icon://stock/gtk-about?size=menu");
+}