summaryrefslogtreecommitdiffstats
path: root/toolkit/themes/osx
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /toolkit/themes/osx
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/themes/osx')
-rw-r--r--toolkit/themes/osx/global/arrow/panelarrow-vertical.svg7
-rw-r--r--toolkit/themes/osx/global/autocomplete.css80
-rw-r--r--toolkit/themes/osx/global/button.css54
-rw-r--r--toolkit/themes/osx/global/dialog.css15
-rw-r--r--toolkit/themes/osx/global/global.css70
-rw-r--r--toolkit/themes/osx/global/icons/error-64.pngbin0 -> 2202 bytes
-rw-r--r--toolkit/themes/osx/global/icons/question-64.pngbin0 -> 3678 bytes
-rw-r--r--toolkit/themes/osx/global/icons/search-textbox.svg6
-rw-r--r--toolkit/themes/osx/global/icons/warning-64.pngbin0 -> 3025 bytes
-rw-r--r--toolkit/themes/osx/global/icons/warning-large.pngbin0 -> 2072 bytes
-rw-r--r--toolkit/themes/osx/global/in-content/common.css54
-rw-r--r--toolkit/themes/osx/global/jar.mn25
-rw-r--r--toolkit/themes/osx/global/menu.css110
-rw-r--r--toolkit/themes/osx/global/menulist.css23
-rw-r--r--toolkit/themes/osx/global/moz.build7
-rw-r--r--toolkit/themes/osx/global/richlistbox.css46
-rw-r--r--toolkit/themes/osx/global/tabbox.css64
-rw-r--r--toolkit/themes/osx/global/tabprompts.css62
-rw-r--r--toolkit/themes/osx/global/toolbar.css52
-rw-r--r--toolkit/themes/osx/global/wizard.css49
-rw-r--r--toolkit/themes/osx/moz.build7
-rw-r--r--toolkit/themes/osx/mozapps/downloads/unknownContentType.css32
-rw-r--r--toolkit/themes/osx/mozapps/handling/handling.css31
-rw-r--r--toolkit/themes/osx/mozapps/jar.mn9
-rw-r--r--toolkit/themes/osx/mozapps/moz.build7
-rw-r--r--toolkit/themes/osx/mozapps/update/updates.css103
-rw-r--r--toolkit/themes/osx/reftests/482681-ref.xhtml21
-rw-r--r--toolkit/themes/osx/reftests/checkboxsize-ref.xhtml33
-rw-r--r--toolkit/themes/osx/reftests/checkboxsize.xhtml31
-rw-r--r--toolkit/themes/osx/reftests/radiosize-ref.xhtml33
-rw-r--r--toolkit/themes/osx/reftests/radiosize.xhtml31
-rw-r--r--toolkit/themes/osx/reftests/reftest.list5
32 files changed, 1067 insertions, 0 deletions
diff --git a/toolkit/themes/osx/global/arrow/panelarrow-vertical.svg b/toolkit/themes/osx/global/arrow/panelarrow-vertical.svg
new file mode 100644
index 0000000000..3f9c7a02cf
--- /dev/null
+++ b/toolkit/themes/osx/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="18" height="10">
+ <path d="M 0,10 L 9,0 18,10 z" fill="context-stroke"/>
+ <path d="M 1,10 L 9,1 17,10 z" fill="context-fill"/>
+</svg> \ No newline at end of file
diff --git a/toolkit/themes/osx/global/autocomplete.css b/toolkit/themes/osx/global/autocomplete.css
new file mode 100644
index 0000000000..0f21ebf4f3
--- /dev/null
+++ b/toolkit/themes/osx/global/autocomplete.css
@@ -0,0 +1,80 @@
+/* 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");
+
+html|input[nomatch="true"][highlightnonmatches="true"] {
+ color: red;
+}
+
+/* ::::: autocomplete popups ::::: */
+
+panel[type="autocomplete-richlistbox"] {
+ appearance: none;
+ background-color: transparent;
+ font: icon;
+ --panel-padding: 0px;
+ --panel-color: FieldText;
+ --panel-background: Field;
+ --panel-border-color: ThreeDShadow;
+}
+
+/* ::::: richlistbox autocomplete ::::: */
+
+.autocomplete-richlistbox {
+ appearance: none;
+ margin: 0;
+}
+
+.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;
+ -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/osx/global/button.css b/toolkit/themes/osx/global/button.css
new file mode 100644
index 0000000000..1d4a114dfd
--- /dev/null
+++ b/toolkit/themes/osx/global/button.css
@@ -0,0 +1,54 @@
+/* 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");
+
+button {
+ /* The horizontal margin used here come from the Aqua Human Interface
+ Guidelines, there should be 12 pixels between two buttons. */
+ margin: 5px 6px 3px;
+ min-width: 79px;
+ color: ButtonText;
+ text-shadow: none;
+}
+
+button:where(:hover:active) {
+ color: -moz-buttonactivetext;
+}
+
+/* When the window isn't focused, the default button background isn't drawn,
+ * so don't change the text color then: */
+button:where([default="true"]:not(:-moz-window-inactive)) {
+ color: -moz-mac-defaultbuttontext;
+}
+
+.button-text {
+ margin-block: 1px;
+ margin-inline: 3px 2px;
+ text-align: center;
+}
+
+button[type="default"] {
+ font: menu;
+}
+
+/* .......... disabled state .......... */
+
+button:where([disabled="true"]) {
+ color: GrayText;
+}
+
+/* ::::: menu buttons ::::: */
+
+.button-menu-dropmarker {
+ display: none;
+ appearance: none;
+}
+
+/* ::::: plain buttons ::::: */
+
+button.plain {
+ margin: 0 !important;
+ padding: 0 !important;
+}
diff --git a/toolkit/themes/osx/global/dialog.css b/toolkit/themes/osx/global/dialog.css
new file mode 100644
index 0000000000..cf94ea04ca
--- /dev/null
+++ b/toolkit/themes/osx/global/dialog.css
@@ -0,0 +1,15 @@
+/* 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");
+
+:host {
+ padding: 14px;
+}
+
+/* ::::: dialog buttons ::::: */
+
+button {
+ font: menu;
+}
diff --git a/toolkit/themes/osx/global/global.css b/toolkit/themes/osx/global/global.css
new file mode 100644
index 0000000000..34f40dfc9c
--- /dev/null
+++ b/toolkit/themes/osx/global/global.css
@@ -0,0 +1,70 @@
+/* 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/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");
+
+/* ::::: Alert icons :::::*/
+
+.message-icon,
+.alert-icon,
+.error-icon,
+.question-icon {
+ width: 32px;
+ height: 32px;
+ margin: 6px;
+ margin-inline-end: 20px;
+}
+
+.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-64.png");
+}
+
+.error-icon {
+ list-style-image: url("chrome://global/skin/icons/error-64.png");
+}
+
+.question-icon {
+ list-style-image: url("chrome://global/skin/icons/question-64.png");
+}
+
+/* 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 #A3A3A3;
+ height: 0;
+ margin-block: 0.4em;
+}
+xul|separator.groove[orient="vertical"] {
+ border-left: 1px solid #A3A3A3;
+ width: 0;
+ margin-inline: 0.4em;
+}
+
+/* Input margins */
+
+html|input {
+ margin: 4px;
+}
diff --git a/toolkit/themes/osx/global/icons/error-64.png b/toolkit/themes/osx/global/icons/error-64.png
new file mode 100644
index 0000000000..a845928ede
--- /dev/null
+++ b/toolkit/themes/osx/global/icons/error-64.png
Binary files differ
diff --git a/toolkit/themes/osx/global/icons/question-64.png b/toolkit/themes/osx/global/icons/question-64.png
new file mode 100644
index 0000000000..d2d1bf9477
--- /dev/null
+++ b/toolkit/themes/osx/global/icons/question-64.png
Binary files differ
diff --git a/toolkit/themes/osx/global/icons/search-textbox.svg b/toolkit/themes/osx/global/icons/search-textbox.svg
new file mode 100644
index 0000000000..25c30b8c04
--- /dev/null
+++ b/toolkit/themes/osx/global/icons/search-textbox.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" width="12" height="12" viewBox="0 0 12 12">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" 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"/>
+</svg>
diff --git a/toolkit/themes/osx/global/icons/warning-64.png b/toolkit/themes/osx/global/icons/warning-64.png
new file mode 100644
index 0000000000..f2a38a6eec
--- /dev/null
+++ b/toolkit/themes/osx/global/icons/warning-64.png
Binary files differ
diff --git a/toolkit/themes/osx/global/icons/warning-large.png b/toolkit/themes/osx/global/icons/warning-large.png
new file mode 100644
index 0000000000..60b2f65ff5
--- /dev/null
+++ b/toolkit/themes/osx/global/icons/warning-large.png
Binary files differ
diff --git a/toolkit/themes/osx/global/in-content/common.css b/toolkit/themes/osx/global/in-content/common.css
new file mode 100644
index 0000000000..0c6c6a99bd
--- /dev/null
+++ b/toolkit/themes/osx/global/in-content/common.css
@@ -0,0 +1,54 @@
+/* - 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|tabs {
+ padding-inline: 0;
+ position: static;
+}
+
+xul|menupopup > xul|menuitem::after,
+xul|menupopup > xul|menuitem::before {
+ content: none;
+}
+
+xul|menulist > xul|menupopup xul|menu,
+xul|menulist > xul|menupopup xul|menuitem {
+ padding-inline-end: 34px;
+}
+
+xul|*.checkbox-icon,
+xul|*.radio-icon {
+ margin-inline-end: 0;
+}
+
+xul|*.text-link:-moz-focusring {
+ box-shadow: none;
+}
+
+xul|search-textbox::part(search-sign) {
+ -moz-context-properties: fill, fill-opacity;
+ fill: currentColor;
+ fill-opacity: 0.8;
+ list-style-image: url(chrome://global/skin/icons/search-textbox.svg);
+ margin-inline-end: 5px;
+}
+
+html|button {
+ /* XUL button min-width */
+ min-width: 79px;
+}
+
+html|input[type="email"],
+html|input[type="tel"],
+html|input[type="text"],
+html|input[type="password"],
+html|input[type="number"],
+html|textarea {
+ margin: 4px;
+}
diff --git a/toolkit/themes/osx/global/jar.mn b/toolkit/themes/osx/global/jar.mn
new file mode 100644
index 0000000000..19bf28220d
--- /dev/null
+++ b/toolkit/themes/osx/global/jar.mn
@@ -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/.
+
+#include ../../shared/desktop-jar.inc.mn
+
+toolkit.jar:
+ skin/classic/global/autocomplete.css
+ skin/classic/global/button.css
+ skin/classic/global/dialog.css
+ skin/classic/global/global.css
+ skin/classic/global/menu.css
+ skin/classic/global/menulist.css
+ skin/classic/global/richlistbox.css
+ skin/classic/global/tabprompts.css
+ skin/classic/global/tabbox.css
+ skin/classic/global/toolbar.css
+ skin/classic/global/wizard.css
+ skin/classic/global/arrow/panelarrow-vertical.svg (arrow/panelarrow-vertical.svg)
+ skin/classic/global/icons/search-textbox.svg (icons/search-textbox.svg)
+ skin/classic/global/icons/warning-64.png (icons/warning-64.png)
+ skin/classic/global/icons/warning-large.png (icons/warning-large.png)
+ skin/classic/global/icons/error-64.png (icons/error-64.png)
+ skin/classic/global/icons/question-64.png (icons/question-64.png)
+ skin/classic/global/in-content/common.css (in-content/common.css)
diff --git a/toolkit/themes/osx/global/menu.css b/toolkit/themes/osx/global/menu.css
new file mode 100644
index 0000000000..984b68c12b
--- /dev/null
+++ b/toolkit/themes/osx/global/menu.css
@@ -0,0 +1,110 @@
+/* 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-shared.css");
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+/* Internal content */
+
+.menu-text,
+.menu-iconic-text,
+.menu-accel,
+.menu-iconic-accel {
+ margin: 0;
+}
+
+.menu-iconic-icon {
+ height: 16px;
+ margin-block: -2px;
+ margin-inline-end: 6px;
+ /* Empty icons shouldn't take up room, so we need to compensate
+ * the 6px margin-end with a negative margin-start.
+ */
+ margin-inline-start: -6px;
+}
+
+/* menuitems with icons */
+.menuitem-iconic > .menu-iconic-left > .menu-iconic-icon,
+.menu-iconic > .menu-iconic-left > .menu-iconic-icon,
+menuitem[image] > .menu-iconic-left > .menu-iconic-icon {
+ margin-inline-start: 0;
+ width: 16px;
+}
+
+/* menu/menuitems in menubar */
+
+menubar > menu {
+ appearance: none;
+ padding-block: 2px;
+ padding-inline: 7px 5px;
+ margin: 1px 0;
+}
+
+menubar > menu[_moz-menuactive="true"] {
+ color: inherit;
+ background-color: transparent;
+}
+
+menubar > menu[_moz-menuactive="true"][open="true"] {
+ color: -moz-menuhovertext;
+ background-color: -moz-menuhover;
+}
+
+/* Internal content */
+
+.menubar-left {
+ margin: 0 2px;
+}
+
+.menubar-text {
+ margin: 0 1px;
+}
+
+/* menu/menuitems in popups */
+
+menupopup > menu,
+menupopup > menuitem,
+menupopup > menucaption {
+ max-width: 42em;
+}
+
+/* menu/menuitems in menulist popups */
+
+menulist > menupopup {
+ font: inherit;
+ color: FieldText;
+}
+
+menulist > menupopup > menuitem,
+menulist > menupopup > menucaption,
+menulist > menupopup > menu {
+ max-width: none;
+}
+
+/* checked menuitems */
+
+menupopup[needsgutter] {
+ /* although only menuitems may be checked, apply this to
+ menus and menucaptions as well to maintain alignment */
+ > menu,
+ > menuitem,
+ > menucaption {
+ padding-inline-start: 0;
+
+ &::before {
+ content: '\2713'; /* a checkmark */
+ display: inline-block;
+ vertical-align: middle;
+ line-height: 0;
+ visibility: hidden;
+ padding-inline: 4px;
+ font-weight: bold;
+ }
+ }
+
+ > menuitem:is([checked="true"], [selected="true"])::before {
+ visibility: inherit;
+ }
+}
diff --git a/toolkit/themes/osx/global/menulist.css b/toolkit/themes/osx/global/menulist.css
new file mode 100644
index 0000000000..86c4f9deee
--- /dev/null
+++ b/toolkit/themes/osx/global/menulist.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/menulist-shared.css");
+
+:host([native]) {
+ margin: 5px 2px 3px;
+ min-height: 20px;
+ color: -moz-DialogText;
+}
+
+:host([native]) #label-box {
+ margin-bottom: 1px;
+}
+
+:host([native]) label {
+ margin: 1px 3px;
+}
+
+:host([native]) dropmarker {
+ display: none;
+}
diff --git a/toolkit/themes/osx/global/moz.build b/toolkit/themes/osx/global/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/toolkit/themes/osx/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/osx/global/richlistbox.css b/toolkit/themes/osx/global/richlistbox.css
new file mode 100644
index 0000000000..0ab1e5157b
--- /dev/null
+++ b/toolkit/themes/osx/global/richlistbox.css
@@ -0,0 +1,46 @@
+/* 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-Dialog;
+ color: -moz-DialogText;
+}
+
+richlistbox:where(:focus) > richlistitem[selected="true"] {
+ background-color: SelectedItem;
+ color: SelectedItemText;
+}
+
+richlistbox.theme-listbox > richlistitem {
+ border: 1px solid transparent;
+}
+
+richlistbox.theme-listbox:not(:focus) > richlistitem[selected="true"] {
+ background-color: -moz-cellhighlight;
+}
+
+richlistbox.theme-listbox > richlistitem > label {
+ margin: 0px;
+ padding-bottom: 1px;
+ padding-inline-start: 4px;
+ white-space: nowrap;
+}
+
+listheader {
+ color: -moz-DialogText;
+}
diff --git a/toolkit/themes/osx/global/tabbox.css b/toolkit/themes/osx/global/tabbox.css
new file mode 100644
index 0000000000..aff23fa581
--- /dev/null
+++ b/toolkit/themes/osx/global/tabbox.css
@@ -0,0 +1,64 @@
+/* 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/. */
+
+/*
+ The default style of these tabs is that of an NSTabView with tabs at
+ the top in the "regular" size. These tabs can be used with or without
+ a tabbox element.
+*/
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+tabbox {
+ margin: 0 5px;
+}
+
+tabpanels {
+ appearance: auto;
+ -moz-default-appearance: tabpanels;
+ padding: 33px 15px 15px;
+}
+
+tabs {
+ align-items: center;
+ font: menu;
+ padding: 0 10px;
+ margin-bottom: -12px;
+ position: relative;
+ /* Needs to sort on top of the tabbox, which is a grid container (and thus
+ * causes pseudo stacking contexts to be created) */
+ z-index: 1;
+}
+
+tab {
+ appearance: auto;
+ -moz-default-appearance: tab;
+ padding-top: 1px;
+}
+
+tab:-moz-focusring {
+ /* Tab focus rings need to overlay adjacent tabs. */
+ position: relative;
+}
+
+tab:where(:first-of-type) {
+ padding-inline-start: 2px;
+}
+
+tab:where(:last-of-type) {
+ padding-inline-end: 2px;
+}
+
+tab:where([visuallyselected]:not(:-moz-window-inactive)) {
+ color: #FFF;
+}
+
+.tab-middle {
+ padding: 1px 6px 2px;
+}
+
+.tabs-left,
+.tabs-right {
+ flex: 1;
+}
diff --git a/toolkit/themes/osx/global/tabprompts.css b/toolkit/themes/osx/global/tabprompts.css
new file mode 100644
index 0000000000..7259cf1829
--- /dev/null
+++ b/toolkit/themes/osx/global/tabprompts.css
@@ -0,0 +1,62 @@
+/* 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 */
+ font-size: 110%;
+}
+
+.tabmodalprompt-mainContainer {
+ color: black;
+ background-color: hsla(0,0%,100%,.95);
+ background-clip: padding-box;
+ border-radius: 2px;
+ border: 1px solid hsla(0,0%,0%,.5);
+}
+
+.tabmodalprompt-buttonContainer {
+ background-color: hsla(0,0%,0%,.05);
+ border-top: 1px solid hsla(0,0%,0%,.05);
+}
+
+.tabmodalprompt-buttonContainer > button {
+ appearance: none;
+ padding: 2px 0;
+ margin: 0;
+ margin-inline-start: 8px;
+ border-radius: 2px;
+ color: black !important;
+ background-color: hsl(0,0%,90%);
+ background-image: linear-gradient(hsla(0,0%,100%,.7), transparent);
+ background-clip: padding-box;
+ border: 1px solid;
+ border-color: hsl(0,0%,65%) hsl(0,0%,60%) hsl(0,0%,50%);
+ box-shadow: 0 1px 0 hsla(0,0%,100%,.9) inset,
+ 0 1px 2px hsla(0,0%,0%,.1);
+}
+
+.tabmodalprompt-buttonContainer > button[default=true] {
+ background-color: hsl(0,0%,79%);
+}
+
+.tabmodalprompt-buttonContainer > button:hover {
+ background-color: hsl(0,0%,96%);
+}
+
+.tabmodalprompt-buttonContainer > button:hover:active {
+ background-image: linear-gradient(hsla(0,0%,100%,.2), transparent);
+ background-color: hsl(0,0%,70%);
+ box-shadow: 0 1px 0 hsla(0,0%,100%,.2) inset,
+ 0 1px 3px hsla(0,0%,0%,.2);
+}
+
+.tabmodalprompt-buttonContainer > button:focus-visible {
+ outline: var(--focus-outline);
+}
diff --git a/toolkit/themes/osx/global/toolbar.css b/toolkit/themes/osx/global/toolbar.css
new file mode 100644
index 0000000000..0a60ae57d9
--- /dev/null
+++ b/toolkit/themes/osx/global/toolbar.css
@@ -0,0 +1,52 @@
+/* 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");
+
+toolbox {
+ /* Setting -moz-default-appearance:toolbox causes sheets to attach under the
+ * toolbox and has no other effects. It doesn't render anything. */
+ appearance: auto;
+ -moz-default-appearance: toolbox;
+}
+
+toolbar {
+ min-width: 1px;
+ min-height: 20px;
+ appearance: auto;
+ -moz-default-appearance: toolbar;
+}
+
+toolbar:-moz-lwtheme {
+ appearance: none;
+}
+
+toolbarseparator {
+ appearance: auto;
+ -moz-default-appearance: separator;
+ margin: 3px 4px;
+}
+
+toolbarpaletteitem {
+ cursor: grab;
+}
+
+toolbarspacer {
+ min-width: 24px !important;
+}
+
+/* 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/osx/global/wizard.css b/toolkit/themes/osx/global/wizard.css
new file mode 100644
index 0000000000..3c9831ffc5
--- /dev/null
+++ b/toolkit/themes/osx/global/wizard.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/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+@namespace html url("http://www.w3.org/1999/xhtml");
+
+:host {
+ padding: 14px;
+}
+
+.wizard-header-box-text {
+ padding: 6px 10px;
+ font: menu;
+ font-weight: bold;
+}
+
+.wizard-header-label {
+ margin-inline-start: 23px;
+ font-weight: bold;
+}
+
+.wizard-header-box-icon {
+ margin-block: 3px 0;
+ margin-inline: 3px 20px;
+}
+
+:host([data-branded="true"]) .wizard-header-icon {
+ list-style-image: url("chrome://branding/content/icon128.png");
+ width: 48px;
+ height: 48px;
+}
+
+html|*.wizard-page-box {
+ padding: 15px 23px;
+}
+
+.wizard-buttons-separator {
+ margin: 0 !important;
+ border-bottom: 1px solid #fff !important;
+}
+
+.wizard-buttons-btm {
+ padding: 3px 6px 6px;
+}
+
+.wizard-button {
+ font: menu !important;
+}
diff --git a/toolkit/themes/osx/moz.build b/toolkit/themes/osx/moz.build
new file mode 100644
index 0000000000..096017b685
--- /dev/null
+++ b/toolkit/themes/osx/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/osx/mozapps/downloads/unknownContentType.css b/toolkit/themes/osx/mozapps/downloads/unknownContentType.css
new file mode 100644
index 0000000000..96145f1f2c
--- /dev/null
+++ b/toolkit/themes/osx/mozapps/downloads/unknownContentType.css
@@ -0,0 +1,32 @@
+/* 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/. */
+
+#unknownContentType {
+ font: menu;
+}
+
+description {
+ font-weight: bold;
+}
+
+#contentTypeImage {
+ margin-inline-end: 3px;
+ width: 16px;
+}
+
+#type {
+ flex: 1;
+ background-color: transparent;
+ color: inherit;
+}
+
+#container > .small-indent,
+.small-indent label {
+ margin-inline-start: 0;
+}
+
+#source,
+#location {
+ contain: inline-size;
+}
diff --git a/toolkit/themes/osx/mozapps/handling/handling.css b/toolkit/themes/osx/mozapps/handling/handling.css
new file mode 100644
index 0000000000..1f18f18ba5
--- /dev/null
+++ b/toolkit/themes/osx/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/osx/mozapps/jar.mn b/toolkit/themes/osx/mozapps/jar.mn
new file mode 100644
index 0000000000..d61c0ec0dd
--- /dev/null
+++ b/toolkit/themes/osx/mozapps/jar.mn
@@ -0,0 +1,9 @@
+# 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/downloads/unknownContentType.css (downloads/unknownContentType.css)
+ skin/classic/mozapps/update/updates.css (update/updates.css)
+ skin/classic/mozapps/handling/handling.css (handling/handling.css)
diff --git a/toolkit/themes/osx/mozapps/moz.build b/toolkit/themes/osx/mozapps/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/toolkit/themes/osx/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/osx/mozapps/update/updates.css b/toolkit/themes/osx/mozapps/update/updates.css
new file mode 100644
index 0000000000..42aea32e3c
--- /dev/null
+++ b/toolkit/themes/osx/mozapps/update/updates.css
@@ -0,0 +1,103 @@
+/* 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 {
+ margin: 12px 12px 0 12px;
+}
+
+.update-header-box-1 {
+ color: #000;
+}
+
+.update-header-box-text {
+ margin: 0;
+ padding: 0;
+ font: menu;
+ font-weight: bold;
+}
+
+.update-header-label {
+ font-weight: bold;
+}
+
+.update-content {
+ padding: 6px 12px 12px 12px;
+}
+
+.update-buttons-separator {
+ display: none;
+}
+
+#update-button-box {
+ padding: 10px 12px 12px 12px;
+ appearance: auto;
+ -moz-default-appearance: statusbar;
+ -moz-window-dragging: drag;
+}
+
+#update-button-box button {
+ appearance: auto;
+ -moz-default-appearance: toolbarbutton;
+ color: ButtonText;
+ min-height: 22px;
+}
+
+#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 5px;
+}
+
+#historyItems .update {
+ padding: 5px;
+ display: flex;
+ flex-direction: column;
+}
+
+.update-name {
+ flex: 1;
+}
diff --git a/toolkit/themes/osx/reftests/482681-ref.xhtml b/toolkit/themes/osx/reftests/482681-ref.xhtml
new file mode 100644
index 0000000000..62fb4bb8d5
--- /dev/null
+++ b/toolkit/themes/osx/reftests/482681-ref.xhtml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="data:text/css,
+vbox { height: 50px; }
+box {
+ -moz-appearance: button;
+}
+" type="text/css"?>
+
+<window title="Reference for mini, small and regular button sizes"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <vbox>
+ <hbox><box width="79" height="16"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox><box width="79" height="19"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox><box width="79" height="22"/></hbox>
+ </vbox>
+</window>
diff --git a/toolkit/themes/osx/reftests/checkboxsize-ref.xhtml b/toolkit/themes/osx/reftests/checkboxsize-ref.xhtml
new file mode 100644
index 0000000000..30ed9dfe90
--- /dev/null
+++ b/toolkit/themes/osx/reftests/checkboxsize-ref.xhtml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Reference for mini, small and regular checkbox sizes"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <style xmlns="http://www.w3.org/1999/xhtml">
+ vbox { height: 50px; }
+ box {
+ appearance: auto;
+ -moz-default-appearance: checkbox;
+ margin-left: 2px;
+ margin-top: 1px;
+ }
+ </style>
+ <vbox>
+ <hbox><box style="width: 11px; height: 11px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox><box style="width: 13px; height: 13px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox><box style="width: 16px; height: 16px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox checked="true"><box style="width: 11px; height: 11px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox checked="true"><box style="width: 13px; height: 13px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox checked="true"><box style="width: 16px; height: 16px"/></hbox>
+ </vbox>
+</window>
diff --git a/toolkit/themes/osx/reftests/checkboxsize.xhtml b/toolkit/themes/osx/reftests/checkboxsize.xhtml
new file mode 100644
index 0000000000..1e5c62535e
--- /dev/null
+++ b/toolkit/themes/osx/reftests/checkboxsize.xhtml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="data:text/css,
+vbox { height: 50px; }
+checkbox {
+ color: transparent;
+ margin: 0;
+}
+" type="text/css"?>
+
+<window title="Checkboxes with mini, small and regular control font"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <vbox style="font-size: 9px">
+ <hbox><checkbox native="true" label="Mini"/></hbox>
+ </vbox>
+ <vbox style="font: message-box">
+ <hbox><checkbox native="true" label="Small"/></hbox>
+ </vbox>
+ <vbox style="font: menu">
+ <hbox><checkbox native="true" label="Regular"/></hbox>
+ </vbox>
+ <vbox style="font-size: 9px">
+ <hbox><checkbox native="true" label="Mini" checked="true"/></hbox>
+ </vbox>
+ <vbox style="font: message-box">
+ <hbox><checkbox native="true" label="Small" checked="true"/></hbox>
+ </vbox>
+ <vbox style="font: menu">
+ <hbox><checkbox native="true" label="Regular" checked="true"/></hbox>
+ </vbox>
+</window>
diff --git a/toolkit/themes/osx/reftests/radiosize-ref.xhtml b/toolkit/themes/osx/reftests/radiosize-ref.xhtml
new file mode 100644
index 0000000000..219d898082
--- /dev/null
+++ b/toolkit/themes/osx/reftests/radiosize-ref.xhtml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window title="Reference for mini, small and regular radio button sizes"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <style xmlns="http://www.w3.org/1999/xhtml">
+ vbox { height: 50px; }
+ box {
+ appearance: auto;
+ -moz-default-appearance: radio;
+ margin-left: 2px;
+ margin-top: 1px;
+ }
+ </style>
+ <vbox>
+ <hbox><box style="width: 11px; height: 11px;"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox><box style="width: 13px; height: 13px;"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox><box style="width: 16px; height: 16px;"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox selected="true"><box style="width: 11px; height: 11px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox selected="true"><box style="width: 13px; height: 13px"/></hbox>
+ </vbox>
+ <vbox>
+ <hbox selected="true"><box style="width: 16px; height: 16px"/></hbox>
+ </vbox>
+</window>
diff --git a/toolkit/themes/osx/reftests/radiosize.xhtml b/toolkit/themes/osx/reftests/radiosize.xhtml
new file mode 100644
index 0000000000..15b4d5dd92
--- /dev/null
+++ b/toolkit/themes/osx/reftests/radiosize.xhtml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="data:text/css,
+vbox { height: 50px; }
+radio {
+ color: transparent;
+ margin: 0;
+}
+" type="text/css"?>
+
+<window title="Radio buttons with mini, small and regular control font"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <vbox style="font-size: 9px">
+ <hbox><radio label="Mini"/></hbox>
+ </vbox>
+ <vbox style="font: message-box">
+ <hbox><radio label="Small"/></hbox>
+ </vbox>
+ <vbox style="font: menu">
+ <hbox><radio label="Regular"/></hbox>
+ </vbox>
+ <vbox style="font-size: 9px">
+ <hbox><radio label="Mini" selected="true"/></hbox>
+ </vbox>
+ <vbox style="font: message-box">
+ <hbox><radio label="Small" selected="true"/></hbox>
+ </vbox>
+ <vbox style="font: menu">
+ <hbox><radio label="Regular" selected="true"/></hbox>
+ </vbox>
+</window>
diff --git a/toolkit/themes/osx/reftests/reftest.list b/toolkit/themes/osx/reftests/reftest.list
new file mode 100644
index 0000000000..35a890d4b3
--- /dev/null
+++ b/toolkit/themes/osx/reftests/reftest.list
@@ -0,0 +1,5 @@
+# This folder is registered in the chrome manifest at layout/tools/reftest/jar.mn.
+defaults pref(widget.non-native-theme.enabled,false) # These are tests for the native theme.
+
+skip-if(!cocoaWidget) == chrome://reftest/content/osx-theme/radiosize.xhtml chrome://reftest/content/osx-theme/radiosize-ref.xhtml
+skip-if(!cocoaWidget) == chrome://reftest/content/osx-theme/checkboxsize.xhtml chrome://reftest/content/osx-theme/checkboxsize-ref.xhtml