From b960c6f43fa0ccb66c66b6858ee308073f0b3b2e Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 1 Jan 2023 17:05:13 +0900 Subject: [PATCH 01/37] Add: Theme - Built In Color --- css/leptonChrome.css | 24 ++++++++++++++++++++++-- src/leptonChrome.scss | 5 +++++ src/theme/_built_in_color.scss | 18 ++++++++++++++++++ user.js | 1 + 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 src/theme/_built_in_color.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 8c8358de..aa06769d 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -1,6 +1,27 @@ @charset "UTF-8"; @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; @namespace html "http://www.w3.org/1999/xhtml"; +/** Default Theme - Built In Color ********************************************/ +@supports -moz-bool-pref("userChrome.theme.built_in_color") { + /*= Lightmode ================================================================*/ + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { + --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ + --lwt-accent-color: #f0f0f4 !important; /* Original: rgb(237,237,241) */ + --toolbar-bgcolor: #f9f9fb !important; /* white, rgb(255, 255, 255) */ + --toolbar-field-background-color: #f0f0f4 !important; /* rgb(249, 249, 251) */ + } + /*= Darkmode =================================================================*/ + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { + --lwt-selected-tab-background-color: rgb(66, 65, 77) !important; /* rgb(82, 82, 94) */ + --toolbar-bgcolor: rgb(43, 42, 51) !important; /* rgb(82, 82, 94) */ + --toolbar-field-background-color: rgb(28, 27, 34) !important; /* rgb(74, 74, 85) */ + --toolbar-field-focus-background-color: rgb(66, 65, 77) !important; /* black rgba(0, 0, 0, 1) */ + --button-hover-bgcolor: rgb(82, 82, 94) !important; + --button-active-bgcolor: rgb(91, 91, 102) !important; + } +} /** Default Theme - Contrast **************************************************/ @supports -moz-bool-pref("userChrome.theme.built_in_contrast") { /*= Lightmode - Color darker =================================================*/ @@ -7495,8 +7516,7 @@ .tab-icon-image[crashed] { display: none !important; } -} -/** Nav Bar UI ****************************************************************/ +} /** Nav Bar UI ****************************************************************/ /*= Nav Bar - Navbar comabine with sidebar===================================*/ @supports -moz-bool-pref("userChrome.navbar.as_sidebar") { :root { diff --git a/src/leptonChrome.scss b/src/leptonChrome.scss index 000d72e2..7f4c98b4 100644 --- a/src/leptonChrome.scss +++ b/src/leptonChrome.scss @@ -15,6 +15,11 @@ @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; @namespace html "http://www.w3.org/1999/xhtml"; +/** Default Theme - Built In Color ********************************************/ +@include Option("userChrome.theme.built_in_color") { + @import "theme/built_in_color"; +} + /** Default Theme - Contrast **************************************************/ @include Option("userChrome.theme.built_in_contrast") { @import "theme/built_in"; diff --git a/src/theme/_built_in_color.scss b/src/theme/_built_in_color.scss new file mode 100644 index 00000000..79ec3e45 --- /dev/null +++ b/src/theme/_built_in_color.scss @@ -0,0 +1,18 @@ +// https://github.com/mozilla/gecko-dev/commit/c6c9389373fc979b3ac4cdc15bfc019ced1e3151 +/*= Lightmode ================================================================*/ +#{built-in-light-theme()} { + --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ + --lwt-accent-color: #f0f0f4 !important; /* Original: rgb(237,237,241) */ + --toolbar-bgcolor: #f9f9fb !important; /* white, rgb(255, 255, 255) */ + --toolbar-field-background-color: #f0f0f4 !important; /* rgb(249, 249, 251) */ +} + +/*= Darkmode =================================================================*/ +#{built-in-dark-theme()} { + --lwt-selected-tab-background-color: rgb(66,65,77) !important; /* rgb(82, 82, 94) */ + --toolbar-bgcolor: rgb(43,42,51) !important; /* rgb(82, 82, 94) */ + --toolbar-field-background-color: rgb(28, 27, 34) !important; /* rgb(74, 74, 85) */ + --toolbar-field-focus-background-color: rgb(66,65,77) !important; /* black rgba(0, 0, 0, 1) */ + --button-hover-bgcolor: rgb(82,82,94) !important; + --button-active-bgcolor: rgb(91,91,102) !important; +} diff --git a/user.js b/user.js index d00aa344..1c8b552a 100644 --- a/user.js +++ b/user.js @@ -208,6 +208,7 @@ user_pref("userChrome.rounding.square_tab", false); user_pref("userChrome.compatibility.theme", true); user_pref("userChrome.compatibility.os", true); +user_pref("userChrome.theme.built_in_color", true); user_pref("userChrome.theme.built_in_contrast", true); user_pref("userChrome.theme.system_default", true); user_pref("userChrome.theme.proton_color", true); From 987a9f77daa3e0b979d018d18c8904081d15ba25 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 1 Jan 2023 22:34:01 +0900 Subject: [PATCH 02/37] Fix: Theme - Built In Light theme selector --- __tests__/theme.test.scss | 12 ++++++------ css/leptonChrome.css | 12 ++++++++---- src/utils/_theme.scss | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/__tests__/theme.test.scss b/__tests__/theme.test.scss index 0e964c89..6438a2a8 100644 --- a/__tests__/theme.test.scss +++ b/__tests__/theme.test.scss @@ -59,7 +59,7 @@ } } @include expect { - :root[lwtheme-mozlightdark], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) { + :root[lwtheme-mozlightdark], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) { @include example_property; } } @@ -74,7 +74,7 @@ } } @include expect { - :root[lwtheme-mozlightdark][inFullscreen=true], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"])[inFullscreen=true] { + :root[lwtheme-mozlightdark][inFullscreen=true], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"])[inFullscreen=true] { @include example_property; } } @@ -89,7 +89,7 @@ } } @include expect { - :root[lwtheme-mozlightdark] #navigator-toolbox, :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #navigator-toolbox { + :root[lwtheme-mozlightdark] #navigator-toolbox, :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #navigator-toolbox { @include example_property; } } @@ -106,7 +106,7 @@ } } @include expect { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]), :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]), :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { @include example_property; } } @@ -121,7 +121,7 @@ } } @include expect { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright])[inFullscreen=true], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][inFullscreen=true] { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright])[inFullscreen=true], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][inFullscreen=true], :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][inFullscreen=true] { @include example_property; } } @@ -136,7 +136,7 @@ } } @include expect { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]) #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]) #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { @include example_property; } } diff --git a/css/leptonChrome.css b/css/leptonChrome.css index aa06769d..e57adb94 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -5,7 +5,8 @@ @supports -moz-bool-pref("userChrome.theme.built_in_color") { /*= Lightmode ================================================================*/ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ --lwt-accent-color: #f0f0f4 !important; /* Original: rgb(237,237,241) */ --toolbar-bgcolor: #f9f9fb !important; /* white, rgb(255, 255, 255) */ @@ -26,18 +27,21 @@ @supports -moz-bool-pref("userChrome.theme.built_in_contrast") { /*= Lightmode - Color darker =================================================*/ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { --lwt-accent-color: rgb(229, 229, 235) !important; /* Original: rgb(240, 240, 244) */ } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { background-color: var(--lwt-accent-color) !important; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { background-color: var(--lwt-accent-color) !important; } } diff --git a/src/utils/_theme.scss b/src/utils/_theme.scss index 661954d5..769c4123 100644 --- a/src/utils/_theme.scss +++ b/src/utils/_theme.scss @@ -8,7 +8,7 @@ $_lightText: '[lwthemetextcolor="bright"]'; $_darkText: ":not(#{$_lightText})"; $_sysDark: "[lwt-default-theme-in-dark-mode]"; -$_lightStyle: '[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"]'; +$_lightStyle: '[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"]'; // --lwt-accent-color: rgb(237, 237, 241) is FF110 $_darkStyle: '[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]'; //== Mixin ===================================================================== From 00110fca89050dc8e77abb308af06e0027594f7c Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 1 Jan 2023 22:54:25 +0900 Subject: [PATCH 03/37] Clean: Theme - Hex to RGB --- css/leptonChrome.css | 7 +++---- src/theme/_built_in_color.scss | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index e57adb94..2d5b71c2 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -7,10 +7,9 @@ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { - --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ - --lwt-accent-color: #f0f0f4 !important; /* Original: rgb(237,237,241) */ - --toolbar-bgcolor: #f9f9fb !important; /* white, rgb(255, 255, 255) */ - --toolbar-field-background-color: #f0f0f4 !important; /* rgb(249, 249, 251) */ + --lwt-accent-color: rgb(240, 240, 244) !important; /* Original: rgb(237,237,241) */ + --toolbar-bgcolor: rgb(249, 249, 251) !important; /* white, rgb(255, 255, 255) */ + --toolbar-field-background-color: rgb(240, 240, 244) !important; /* rgb(249, 249, 251) */ } /*= Darkmode =================================================================*/ :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], diff --git a/src/theme/_built_in_color.scss b/src/theme/_built_in_color.scss index 79ec3e45..a2a0e01f 100644 --- a/src/theme/_built_in_color.scss +++ b/src/theme/_built_in_color.scss @@ -1,10 +1,10 @@ // https://github.com/mozilla/gecko-dev/commit/c6c9389373fc979b3ac4cdc15bfc019ced1e3151 /*= Lightmode ================================================================*/ #{built-in-light-theme()} { - --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ - --lwt-accent-color: #f0f0f4 !important; /* Original: rgb(237,237,241) */ - --toolbar-bgcolor: #f9f9fb !important; /* white, rgb(255, 255, 255) */ - --toolbar-field-background-color: #f0f0f4 !important; /* rgb(249, 249, 251) */ + // --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ + --lwt-accent-color: rgb(240, 240, 244) !important; /* Original: rgb(237,237,241) */ + --toolbar-bgcolor: rgb(249, 249, 251) !important; /* white, rgb(255, 255, 255) */ + --toolbar-field-background-color: rgb(240, 240, 244) !important; /* rgb(249, 249, 251) */ } /*= Darkmode =================================================================*/ From fff1b5b45913341d00c3a31fc5bbe653f434325c Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 1 Jan 2023 21:37:21 +0900 Subject: [PATCH 04/37] Bump: Packages --- __tests__/scss.spec.js | 5 +- css/leptonChrome.css | 228 +++++++++++++++++++++++++++++---- css/leptonContent.css | 18 ++- package.json | 6 +- yarn.lock | 281 +++++++++++++++++++---------------------- 5 files changed, 354 insertions(+), 184 deletions(-) diff --git a/__tests__/scss.spec.js b/__tests__/scss.spec.js index 0cf09714..2d7b4e63 100644 --- a/__tests__/scss.spec.js +++ b/__tests__/scss.spec.js @@ -10,5 +10,8 @@ const sassTestFiles = glob.sync([pattern]); // Run True on every file found with the describe and it methods provided sassTestFiles.forEach(file => { - describe(file, () => sassTrue.runSass({ file }, { describe, it })); + sassTrue.runSass( + {describe, it}, + file + ); }); diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 2d5b71c2..597548e1 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -762,15 +762,47 @@ --button-active-bgcolor: var(--win-button-active-bgcolor) !important; } :root:not(:-moz-lwtheme) - toolbarbutton.subviewbutton:not([disabled], [open], :active, #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is(:hover), + toolbarbutton.subviewbutton:not( + [disabled], + [open], + :active, + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is(:hover), :root[lwt-default-theme-in-dark-mode] - toolbarbutton.subviewbutton:not([disabled], [open], :active, #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is(:hover) { + toolbarbutton.subviewbutton:not( + [disabled], + [open], + :active, + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } :root:not(:-moz-lwtheme) - toolbarbutton.subviewbutton:not([disabled], #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is([open], :hover:active), + toolbarbutton.subviewbutton:not( + [disabled], + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is([open], :hover:active), :root[lwt-default-theme-in-dark-mode] - toolbarbutton.subviewbutton:not([disabled], #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is([open], :hover:active) { + toolbarbutton.subviewbutton:not( + [disabled], + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is([open], :hover:active) { background-color: var(--win-hover-active-bgcolor) !important; } /*- Others -----------------------------------------------------------------*/ @@ -796,7 +828,10 @@ > .tabbrowser-tab > .tab-stack > .tab-background[multiselected]:not([selected]), - :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -1411,9 +1446,15 @@ /* Default theme color preservation */ :root[lwtheme-mozlightdark] menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), :root[lwtheme-mozlightdark] menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup), - :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), - :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) { --menu-color: var(--toolbar-color, var(--in-content-page-color)) !important; --arrowpanel-background: var( @@ -6067,7 +6108,10 @@ box-shadow: unset !important; filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4)); } - :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([selected], [multiselected]) @@ -6075,11 +6119,17 @@ > .tab-background:-moz-lwtheme { filter: drop-shadow(0 0 1px var(--uc-tab-shadow-color, transparent)); } - :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected="true"]:not(:focus), - :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[multiselected]:not([visuallyselected]) { @@ -6087,7 +6137,10 @@ } /* For themes outside of Light and Dark (which are curated by Mozilla), show a thicker border around the tab to help themes that are dependent on tab_line to show the selected tab. */ - :root:not([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"]) + :root:not( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] + ) #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) @@ -6097,7 +6150,10 @@ filter: drop-shadow(-1px -0.5px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(1px -1px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(0 0 2px rgba(128, 128, 142, 0.5)); } - :root:not([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:not( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) @@ -6204,12 +6260,18 @@ opacity: 0.3; } } - :root:not([customizing="true"])::is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:not([customizing="true"])::is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected] .tab-background:-moz-lwtheme::before, - :root:not([customizing="true"])::is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:not([customizing="true"])::is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected] @@ -7320,7 +7382,11 @@ .tabbrowser-tab:not([image]):is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { opacity: 0 !important; /* Favicon hidden */ } - .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is( + [soundplaying], + [muted], + [activemedia-blocked] + ) .tab-label-container > * { transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); @@ -7337,7 +7403,11 @@ .tabbrowser-tab:is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { opacity: 0 !important; /* Favicon hidden */ } - .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is( + [soundplaying], + [muted], + [activemedia-blocked] + ) .tab-label-container > * { transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); @@ -9597,7 +9667,11 @@ } } @supports -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { - #sidebar-box:is([sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"]) + #sidebar-box:is( + [sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], + [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], + [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"] + ) #sidebar-header { display: none !important; } @@ -10373,9 +10447,29 @@ > menupopup > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), :not(menu, #ContentSelectDropdown) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10424,9 +10518,29 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10482,9 +10596,29 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10519,9 +10653,29 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10572,9 +10726,29 @@ } /* Global Menu */ @supports -moz-bool-pref("userChrome.icon.global_menu.mac") { - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic) { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; } diff --git a/css/leptonContent.css b/css/leptonContent.css index 6ad5f53a..66c0c99d 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -1830,7 +1830,14 @@ outline: 2px solid var(--in-content-focus-outline-color) !important; outline-offset: -1px !important; /* Prevents antialiasing around the corners */ } - input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):-moz-ui-invalid, + input:is( + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ):-moz-ui-invalid, textarea:-moz-ui-invalid { border-color: transparent !important; outline: 2px solid var(--in-content-border-invalid) !important; @@ -1866,7 +1873,14 @@ @supports -moz-bool-pref("userContent.page.field_border") { @media (prefers-reduced-motion: no-preference) { @-moz-document url-prefix("about:") { - html|input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):not(#newtab-search-text):hover, + html|input:is( + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ):not(#newtab-search-text):hover, html|textarea:hover, xul|search-textbox:hover { border-color: var(--in-content-focus-outline-color) !important; diff --git a/package.json b/package.json index 65ffe43c..a662c123 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,9 @@ "fast-glob": "^3.2.12", "jest": "^29.3.1", "jest-environment-node-single-context": "^29.0.0", - "prettier": "^2.7.1", - "sass": "^1.56.1", - "sass-true": "^6.1.0" + "prettier": "^2.8.1", + "sass": "^1.57.1", + "sass-true": "^7.0.0" }, "jest": { "testEnvironment": "jest-environment-node-single-context" diff --git a/yarn.lock b/yarn.lock index 922daca0..a97fdc1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,49 +17,50 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.20.0": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== +"@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" + integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.7" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== +"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/compat-data" "^7.20.0" + "@babel/compat-data" "^7.20.5" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" + lru-cache "^5.1.1" semver "^6.3.0" "@babel/helper-environment-visitor@^7.18.9": @@ -89,19 +90,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== +"@babel/helper-module-transforms@^7.20.7": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" "@babel/helper-simple-access" "^7.20.2" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0": version "7.20.2" @@ -137,14 +138,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== +"@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": version "7.18.6" @@ -155,10 +156,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -258,35 +259,35 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/template@^7.18.10", "@babel/template@^7.3.3": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" + integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" + "@babel/generator" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -572,9 +573,9 @@ integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== "@sinonjs/commons@^1.7.0": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764" - integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" @@ -612,9 +613,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -650,14 +651,14 @@ "@types/istanbul-lib-report" "*" "@types/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== "@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + version "2.7.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" + integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -670,9 +671,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== + version "17.0.18" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.18.tgz#466225ab4fbabb9aa711f5b406796daf1374a5b7" + integrity sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw== dependencies: "@types/yargs-parser" "*" @@ -713,9 +714,9 @@ ansi-styles@^5.0.0: integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -855,9 +856,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001400: - version "1.0.30001431" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== + version "1.0.30001441" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" + integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== chalk@^2.0.0: version "2.4.2" @@ -897,9 +898,9 @@ char-regex@^1.0.2: fsevents "~2.3.2" ci-info@^3.2.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.6.1.tgz#7594f1c95cb7fdfddee7af95a13af7dbc67afdcf" - integrity sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w== + version "3.7.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -981,11 +982,11 @@ cross-spawn@^7.0.3: which "^2.0.1" css-tree@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" - integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== dependencies: - mdn-data "2.0.28" + mdn-data "2.0.30" source-map-js "^1.0.1" css@^3.0.0: @@ -1033,11 +1034,6 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - diff-sequences@^29.3.1: version "29.3.1" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" @@ -1133,9 +1129,9 @@ fast-json-stable-stringify@^2.1.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: reusify "^1.0.4" @@ -1253,9 +1249,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== immutable@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" - integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + version "4.2.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" + integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== import-local@^3.0.2: version "3.1.0" @@ -1460,16 +1456,6 @@ jest-config@^29.3.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - jest-diff@^29.3.1: version "29.3.1" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" @@ -1517,11 +1503,6 @@ jest-environment-node@^29.0.1, jest-environment-node@^29.3.1: jest-mock "^29.3.1" jest-util "^29.3.1" -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" @@ -1788,9 +1769,9 @@ json-parse-even-better-errors@^2.3.0: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json5@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab" - integrity sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ== + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== kleur@^3.0.3: version "3.0.3" @@ -1819,6 +1800,13 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -1840,10 +1828,10 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -mdn-data@2.0.28: - version "2.0.28" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" - integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== merge-stream@^2.0.0: version "2.0.0" @@ -1891,9 +1879,9 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -1999,19 +1987,10 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" +prettier@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" + integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== pretty-format@^29.3.1: version "29.3.1" @@ -2035,11 +2014,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" @@ -2095,20 +2069,20 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -sass-true@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/sass-true/-/sass-true-6.1.0.tgz#cbcb78135071b1bae0882ea456a2b0dd9a6c8b3a" - integrity sha512-Qt6TpPe8Ogr8g9FvBSwXvzfrkbtHD7rej0X3lzyoiZ+I0kKV9NFeefcF560uMn5NFCA7g5rcVKxc9UHrrMcDrw== +sass-true@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/sass-true/-/sass-true-7.0.0.tgz#eabbc92f29b2d602a57234ec0fe65050fb0df930" + integrity sha512-sRdXX7MrrYdg+lPRm+/vIr8wVvDrNtWj3ttOVyIMHZQ8vNoV67+YjZKTsY9+B4Ecee+/U3ryXKJLi1YcMEkaJQ== dependencies: "@types/css" "^0.0.33" css "^3.0.0" - jest-diff "^27.5.1" + jest-diff "^29.3.1" lodash "^4.17.21" -sass@^1.56.1: - version "1.56.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" - integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== +sass@^1.57.1: + version "1.57.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" + integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -2350,6 +2324,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" From 0b4cce982706ced6814a57810c8c52224665db45 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Tue, 3 Jan 2023 18:45:16 +0900 Subject: [PATCH 05/37] Add: Tab - Selected bold --- css/leptonChrome.css | 12 ++++++++++++ src/tab/_selected_tab.scss | 3 +++ src/tab/selected_tab/_bold.scss | 8 ++++++++ user.js | 1 + 4 files changed, 24 insertions(+) create mode 100644 src/tab/selected_tab/_bold.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 597548e1..0f5e341a 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -6029,6 +6029,18 @@ } } /*= Selected Tab =============================================================*/ +/*= Selected Tab - Bold ======================================================*/ +@supports not -moz-bool-pref("userChrome.tab.selected_bold") { + .tab-label:is([selected], [attention]) { + font-weight: 400 !important; + } +} +@supports -moz-bool-pref("userChrome.tab.selected_bold") { + .tab-label:is([selected], [attention]) { + font-weight: 600; + } +} + /*= Selected Tab - Color like toolbar ========================================*/ @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { :root:not(:-moz-lwtheme) { diff --git a/src/tab/_selected_tab.scss b/src/tab/_selected_tab.scss index fc23332f..8614c6f5 100644 --- a/src/tab/_selected_tab.scss +++ b/src/tab/_selected_tab.scss @@ -1,3 +1,6 @@ +/*= Selected Tab - Bold ======================================================*/ +@import "selected_tab/bold"; + /*= Selected Tab - Color like toolbar ========================================*/ @include Option("userChrome.tab.color_like_toolbar") { @import "selected_tab/color_like_toolbar"; diff --git a/src/tab/selected_tab/_bold.scss b/src/tab/selected_tab/_bold.scss new file mode 100644 index 00000000..0b0fa2e4 --- /dev/null +++ b/src/tab/selected_tab/_bold.scss @@ -0,0 +1,8 @@ +.tab-label:is([selected], [attention]) { + @include NotOption("userChrome.tab.selected_bold") { + font-weight: 400 !important; + } + @include Option("userChrome.tab.selected_bold") { + font-weight: 600; + } +} diff --git a/user.js b/user.js index 1c8b552a..7179c62a 100644 --- a/user.js +++ b/user.js @@ -175,6 +175,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.tab.close_button_at_hover.always", true); // Need close_button_at_hover // user_pref("userChrome.tab.close_button_at_hover.with_selected", true); // Need close_button_at_hover // user_pref("userChrome.tab.sound_show_label", true); // Need remove sound_hide_label +// user_pref("userChrome.tab.selected_bold", true); // user_pref("userChrome.navbar.as_sidebar", true); From 3bfa27199fa42210f6fa7b23db90e8494cdd53da Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Wed, 4 Jan 2023 22:38:55 +0900 Subject: [PATCH 06/37] Add: Hidden - Private indicator --- css/leptonChrome.css | 6 ++++++ src/hidden/_index.scss | 12 ++++++++++++ user.js | 1 + 3 files changed, 19 insertions(+) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 0f5e341a..03ab3efe 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -9667,6 +9667,12 @@ } } } +@supports -moz-bool-pref("userChrome.hidden.private_indicator") { + .private-browsing-indicator, + #private-browsing-indicator-with-label { + display: none; + } +} @supports -moz-bool-pref("userChrome.hidden.titlebar_container") { .titlebar-buttonbox-container { display: none !important; diff --git a/src/hidden/_index.scss b/src/hidden/_index.scss index 3047a1c1..a21600ac 100644 --- a/src/hidden/_index.scss +++ b/src/hidden/_index.scss @@ -27,6 +27,18 @@ } } +@include Option("userChrome.hidden.private_indicator") { + // :root:not([privatebrowsingmode=temporary]) .private-browsing-indicator, + // :root[privatebrowsingnewindicator] .private-browsing-indicator, + // :root:not([privatebrowsingnewindicator]) #private-browsing-indicator-with-label, + // :root:not([privatebrowsingmode=temporary]) #private-browsing-indicator-with-label { + // } + .private-browsing-indicator, + #private-browsing-indicator-with-label { + display: none; + } +} + @include Option("userChrome.hidden.titlebar_container") { .titlebar-buttonbox-container { display: none !important; diff --git a/user.js b/user.js index 7179c62a..a466c733 100644 --- a/user.js +++ b/user.js @@ -94,6 +94,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.hidden.tab_icon.always", true); // user_pref("userChrome.hidden.tabbar", true); // user_pref("userChrome.hidden.navbar", true); +// user_pref("userChrome.hidden.private_indicator", true); // user_pref("userChrome.hidden.titlebar_container", true); // user_pref("userChrome.hidden.sidebar_header", true); // user_pref("userChrome.hidden.sidebar_header.vertical_tab_only", true); From 213160c7b6c9a83b8369dc4fc8147dff9881be76 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Wed, 18 Jan 2023 12:03:52 +0900 Subject: [PATCH 07/37] Theme - Private --- css/leptonChrome.css | 284 ++++++++++++---------------------------- css/leptonContent.css | 18 +-- src/theme/_index.scss | 5 + src/theme/_private.scss | 61 +++++++++ user.js | 1 + 5 files changed, 152 insertions(+), 217 deletions(-) create mode 100644 src/theme/_private.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 03ab3efe..2d415ccd 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -762,47 +762,15 @@ --button-active-bgcolor: var(--win-button-active-bgcolor) !important; } :root:not(:-moz-lwtheme) - toolbarbutton.subviewbutton:not( - [disabled], - [open], - :active, - #appMenu-fxa-label2, - #appMenu-zoomReduce-button2, - #appMenu-zoomReset-button2, - #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 - ):is(:hover), + toolbarbutton.subviewbutton:not([disabled], [open], :active, #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is(:hover), :root[lwt-default-theme-in-dark-mode] - toolbarbutton.subviewbutton:not( - [disabled], - [open], - :active, - #appMenu-fxa-label2, - #appMenu-zoomReduce-button2, - #appMenu-zoomReset-button2, - #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 - ):is(:hover) { + toolbarbutton.subviewbutton:not([disabled], [open], :active, #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } :root:not(:-moz-lwtheme) - toolbarbutton.subviewbutton:not( - [disabled], - #appMenu-fxa-label2, - #appMenu-zoomReduce-button2, - #appMenu-zoomReset-button2, - #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 - ):is([open], :hover:active), + toolbarbutton.subviewbutton:not([disabled], #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is([open], :hover:active), :root[lwt-default-theme-in-dark-mode] - toolbarbutton.subviewbutton:not( - [disabled], - #appMenu-fxa-label2, - #appMenu-zoomReduce-button2, - #appMenu-zoomReset-button2, - #appMenu-zoomEnlarge-button2, - #appMenu-fullscreen-button2 - ):is([open], :hover:active) { + toolbarbutton.subviewbutton:not([disabled], #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is([open], :hover:active) { background-color: var(--win-hover-active-bgcolor) !important; } /*- Others -----------------------------------------------------------------*/ @@ -828,10 +796,7 @@ > .tabbrowser-tab > .tab-stack > .tab-background[multiselected]:not([selected]), - :root:is( - [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -1132,6 +1097,62 @@ } } } +/*= Private Theme Mode =======================================================*/ +@supports -moz-bool-pref("userChrome.theme.private") { + :root[privatebrowsingmode="temporary"], + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] { + --lwt-additional-images: none !important; + --lwt-header-image: none !important; + --lwt-tab-text: rgba(232, 224, 255) !important; + --toolbar-color: var(--lwt-tab-text) !important; + --focus-outline-color: rgb(172, 112, 255) !important; + /* Toolbar */ + --toolbar-bgcolor: #322560 !important; + /* Behind Tabs */ + --lwt-accent-color: #19162f !important; + /* Search Bar Colour */ + --toolbar-field-background-color: #0b0724 !important; + /* Turns Tab Into Same Colour As Toolbar */ + --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; + /* What Happens When You Hover Over A Button */ + --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; + /* Click On A Button, This Colour Is What The Button Will Be */ + --toolbarbutton-active-background: #4d4175 !important; + /* Click A Button With A Context Menu? This Is The Menu Colour */ + --arrowpanel-background: #1d1935 !important; + /* Tool Bar Context Menu Outline */ + --arrowpanel-border-color: #322560 !important; + /* Line Between Toobar And Site */ + --chrome-content-separator-color: none !important; + /* Colour Of The Expanded Address Bar */ + --toolbar-field-focus-background-color: var(--toolbar-field-background-color) !important; + /* Hovering Over The Autocomplete Items Colour */ + --autocomplete-popup-hover-background: #1d1935 !important; + /* Clicking On Said Autocomplete Item Colour */ + --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; + } + :root[privatebrowsingmode="temporary"] menupopup, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] menupopup, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + menupopup, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + menupopup, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] menupopup, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + menupopup { + /* Right Click Menu */ + --menuitem-hover-background-color: #413d54 !important; + --menu-background-color: #1d1935 !important; + --menu-color: #eeeeee !important; + --menuitem-disabled-hover-background-color: #ffffff00 !important; + --menu-disabled-color: #ffffff50 !important; + --menu-border-color: #322560 !important; + } +} /*= Fully Theme Mode =========================================================*/ @supports -moz-bool-pref("userChrome.theme.proton_color") { /*= Default Colors - Hard Coded ==============================================*/ @@ -1446,15 +1467,9 @@ /* Default theme color preservation */ :root[lwtheme-mozlightdark] menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), :root[lwtheme-mozlightdark] menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup), - :root:is( - [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), - :root:is( - [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) { --menu-color: var(--toolbar-color, var(--in-content-page-color)) !important; --arrowpanel-background: var( @@ -6120,10 +6135,7 @@ box-shadow: unset !important; filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4)); } - :root:is( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([selected], [multiselected]) @@ -6131,17 +6143,11 @@ > .tab-background:-moz-lwtheme { filter: drop-shadow(0 0 1px var(--uc-tab-shadow-color, transparent)); } - :root:is( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected="true"]:not(:focus), - :root:is( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[multiselected]:not([visuallyselected]) { @@ -6149,10 +6155,7 @@ } /* For themes outside of Light and Dark (which are curated by Mozilla), show a thicker border around the tab to help themes that are dependent on tab_line to show the selected tab. */ - :root:not( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] - ) + :root:not([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"]) #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) @@ -6162,10 +6165,7 @@ filter: drop-shadow(-1px -0.5px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(1px -1px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(0 0 2px rgba(128, 128, 142, 0.5)); } - :root:not( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:not([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) @@ -6272,18 +6272,12 @@ opacity: 0.3; } } - :root:not([customizing="true"])::is( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:not([customizing="true"])::is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected] .tab-background:-moz-lwtheme::before, - :root:not([customizing="true"])::is( - [lwtheme-mozlightdark], - [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] - ) + :root:not([customizing="true"])::is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected] @@ -7394,11 +7388,7 @@ .tabbrowser-tab:not([image]):is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { opacity: 0 !important; /* Favicon hidden */ } - .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is( - [soundplaying], - [muted], - [activemedia-blocked] - ) + .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container > * { transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); @@ -7415,11 +7405,7 @@ .tabbrowser-tab:is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { opacity: 0 !important; /* Favicon hidden */ } - .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is( - [soundplaying], - [muted], - [activemedia-blocked] - ) + .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container > * { transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); @@ -9685,11 +9671,7 @@ } } @supports -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { - #sidebar-box:is( - [sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], - [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], - [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"] - ) + #sidebar-box:is([sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"]) #sidebar-header { display: none !important; } @@ -10465,29 +10447,9 @@ > menupopup > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), :not(menu, #ContentSelectDropdown) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10536,29 +10498,9 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10614,29 +10556,9 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10671,29 +10593,9 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10744,29 +10646,9 @@ } /* Global Menu */ @supports -moz-bool-pref("userChrome.icon.global_menu.mac") { - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menuitem:not(.menuitem-iconic, .bookmark-item), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) menu:not(.menu-iconic) { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; } diff --git a/css/leptonContent.css b/css/leptonContent.css index 66c0c99d..6ad5f53a 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -1830,14 +1830,7 @@ outline: 2px solid var(--in-content-focus-outline-color) !important; outline-offset: -1px !important; /* Prevents antialiasing around the corners */ } - input:is( - [type="email"], - [type="tel"], - [type="text"], - [type="password"], - [type="url"], - [type="number"] - ):-moz-ui-invalid, + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):-moz-ui-invalid, textarea:-moz-ui-invalid { border-color: transparent !important; outline: 2px solid var(--in-content-border-invalid) !important; @@ -1873,14 +1866,7 @@ @supports -moz-bool-pref("userContent.page.field_border") { @media (prefers-reduced-motion: no-preference) { @-moz-document url-prefix("about:") { - html|input:is( - [type="email"], - [type="tel"], - [type="text"], - [type="password"], - [type="url"], - [type="number"] - ):not(#newtab-search-text):hover, + html|input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):not(#newtab-search-text):hover, html|textarea:hover, xul|search-textbox:hover { border-color: var(--in-content-focus-outline-color) !important; diff --git a/src/theme/_index.scss b/src/theme/_index.scss index f9542fa6..f9ebe339 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -3,6 +3,11 @@ @import "system_default_theme"; } +/*= Private Theme Mode =======================================================*/ +@include Option("userChrome.theme.private") { + @import "private"; +} + /*= Fully Theme Mode =========================================================*/ // Default Themes // https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/extensions/default-theme/manifest.json diff --git a/src/theme/_private.scss b/src/theme/_private.scss new file mode 100644 index 00000000..46265e2c --- /dev/null +++ b/src/theme/_private.scss @@ -0,0 +1,61 @@ +:root, +#{built-in-light-theme()}, +#{built-in-dark-theme()} { + &[privatebrowsingmode="temporary"] { + // Init + --lwt-additional-images: none !important; + --lwt-header-image: none !important; + + // Like Alpen glow + --lwt-tab-text: rgba(232, 224, 255) !important; + --toolbar-color: var(--lwt-tab-text) !important; + + --focus-outline-color: rgb(172, 112, 255) !important; + + /* Toolbar */ + --toolbar-bgcolor: #322560 !important; + + /* Behind Tabs */ + --lwt-accent-color: #19162F !important; + + /* Search Bar Colour */ + --toolbar-field-background-color: #0B0724 !important; + + /* Turns Tab Into Same Colour As Toolbar */ + --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; + + /* What Happens When You Hover Over A Button */ + --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; + + /* Click On A Button, This Colour Is What The Button Will Be */ + --toolbarbutton-active-background: #4D4175 !important; + + /* Click A Button With A Context Menu? This Is The Menu Colour */ + --arrowpanel-background: #1D1935 !important; + + /* Tool Bar Context Menu Outline */ + --arrowpanel-border-color: #322560 !important; + + /* Line Between Toobar And Site */ + --chrome-content-separator-color: none !important; + + /* Colour Of The Expanded Address Bar */ + --toolbar-field-focus-background-color:var(--toolbar-field-background-color) !important; + + /* Hovering Over The Autocomplete Items Colour */ + --autocomplete-popup-hover-background: #1D1935 !important; + + /* Clicking On Said Autocomplete Item Colour */ + --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; + + menupopup { + /* Right Click Menu */ + --menuitem-hover-background-color: #413D54 !important; + --menu-background-color: #1D1935 !important; + --menu-color: #eeeeee !important; + --menuitem-disabled-hover-background-color: #ffffff00 !important; + --menu-disabled-color: #ffffff50 !important; + --menu-border-color: #322560 !important; + } + } +} diff --git a/user.js b/user.js index a466c733..97dce9aa 100644 --- a/user.js +++ b/user.js @@ -68,6 +68,7 @@ user_pref("userChrome.rounding.square_tab", false); // == Theme Custom Settings ==================================================== // -- User Chrome -------------------------------------------------------------- +// user_pref("userChrome.theme.private", true); // user_pref("userChrome.theme.proton_color.dark_blue_accent", true); // user_pref("userChrome.theme.monospace", true); From b00b164b8b13989aecdffaf42bbbb0ca9f141ef7 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Thu, 19 Jan 2023 10:15:12 +0900 Subject: [PATCH 08/37] Fix: Theme - Private for light, default themes --- css/leptonChrome.css | 82 ++++++++++++++++++++++++++++++++++------- src/theme/_private.scss | 53 +++++++++++++++++++------- 2 files changed, 109 insertions(+), 26 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 2d415ccd..e9761bb3 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -1108,32 +1108,89 @@ --lwt-additional-images: none !important; --lwt-header-image: none !important; --lwt-tab-text: rgba(232, 224, 255) !important; + --lwt-text-color: var(--lwt-tab-text) !important; --toolbar-color: var(--lwt-tab-text) !important; + --toolbar-non-lwt-textcolor: var(--lwt-tab-text) !important; + --arrowpanel-color: var(--lwt-tab-text) !important; --focus-outline-color: rgb(172, 112, 255) !important; - /* Toolbar */ --toolbar-bgcolor: #322560 !important; - /* Behind Tabs */ + --toolbar-non-lwt-bgcolor: var(--toolbar-bgcolor) !important; --lwt-accent-color: #19162f !important; - /* Search Bar Colour */ + --in-content-page-background: var(--lwt-accent-color) !important; --toolbar-field-background-color: #0b0724 !important; - /* Turns Tab Into Same Colour As Toolbar */ --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; - /* What Happens When You Hover Over A Button */ --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; - /* Click On A Button, This Colour Is What The Button Will Be */ --toolbarbutton-active-background: #4d4175 !important; - /* Click A Button With A Context Menu? This Is The Menu Colour */ --arrowpanel-background: #1d1935 !important; - /* Tool Bar Context Menu Outline */ --arrowpanel-border-color: #322560 !important; - /* Line Between Toobar And Site */ --chrome-content-separator-color: none !important; - /* Colour Of The Expanded Address Bar */ --toolbar-field-focus-background-color: var(--toolbar-field-background-color) !important; - /* Hovering Over The Autocomplete Items Colour */ --autocomplete-popup-hover-background: #1d1935 !important; - /* Clicking On Said Autocomplete Item Colour */ --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; + --button-bgcolor: color-mix(in srgb, currentColor 13%, transparent) !important; + --button-hover-bgcolor: color-mix(in srgb, currentColor 17%, transparent) !important; + --button-active-bgcolor: color-mix(in srgb, currentColor 30%, transparent) !important; + --urlbar-box-bgcolor: color-mix(in srgb, currentColor 16%, transparent) !important; + } + :root[privatebrowsingmode="temporary"] #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme { + --lwt-tabs-border-color: var(--focus-outline-color) !important; + } + :root[privatebrowsingmode="temporary"] #navigator-toolbox, + :root[privatebrowsingmode="temporary"][lwtheme-image] #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #navigator-toolbox, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #navigator-toolbox, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + } + :root[privatebrowsingmode="temporary"] #TabsToolbar, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #TabsToolbar, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #TabsToolbar { + --lwt-tab-line-color: var(--focus-outline-color) !important; + } + :root[privatebrowsingmode="temporary"] notification-message[message-bar-type="infobar"], + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"] { + --message-bar-text-color: var(--lwt-tab-text) !important; + --in-content-page-color: var(--lwt-tab-text) !important; } :root[privatebrowsingmode="temporary"] menupopup, :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] menupopup, @@ -1144,7 +1201,6 @@ :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] menupopup, :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] menupopup { - /* Right Click Menu */ --menuitem-hover-background-color: #413d54 !important; --menu-background-color: #1d1935 !important; --menu-color: #eeeeee !important; diff --git a/src/theme/_private.scss b/src/theme/_private.scss index 46265e2c..c2687b5c 100644 --- a/src/theme/_private.scss +++ b/src/theme/_private.scss @@ -8,48 +8,75 @@ // Like Alpen glow --lwt-tab-text: rgba(232, 224, 255) !important; + --lwt-text-color: var(--lwt-tab-text) !important; --toolbar-color: var(--lwt-tab-text) !important; + --toolbar-non-lwt-textcolor: var(--lwt-tab-text) !important; + --arrowpanel-color: var(--lwt-tab-text) !important; --focus-outline-color: rgb(172, 112, 255) !important; - /* Toolbar */ + // Toolbar --toolbar-bgcolor: #322560 !important; + --toolbar-non-lwt-bgcolor: var(--toolbar-bgcolor) !important; - /* Behind Tabs */ + // Behind Tabs --lwt-accent-color: #19162F !important; + --in-content-page-background: var(--lwt-accent-color) !important; - /* Search Bar Colour */ + // Search Bar Colour --toolbar-field-background-color: #0B0724 !important; - /* Turns Tab Into Same Colour As Toolbar */ + // Turns Tab Into Same Colour As Toolbar --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; - /* What Happens When You Hover Over A Button */ + // What Happens When You Hover Over A Button --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; - /* Click On A Button, This Colour Is What The Button Will Be */ + // Click On A Button, This Colour Is What The Button Will Be --toolbarbutton-active-background: #4D4175 !important; - /* Click A Button With A Context Menu? This Is The Menu Colour */ + // Click A Button With A Context Menu? This Is The Menu Colour --arrowpanel-background: #1D1935 !important; - /* Tool Bar Context Menu Outline */ + // Tool Bar Context Menu Outline --arrowpanel-border-color: #322560 !important; - /* Line Between Toobar And Site */ + // Line Between Toobar And Site --chrome-content-separator-color: none !important; - /* Colour Of The Expanded Address Bar */ + // Colour Of The Expanded Address Bar --toolbar-field-focus-background-color:var(--toolbar-field-background-color) !important; - /* Hovering Over The Autocomplete Items Colour */ + // Hovering Over The Autocomplete Items Colour --autocomplete-popup-hover-background: #1D1935 !important; - /* Clicking On Said Autocomplete Item Colour */ + // Clicking On Said Autocomplete Item Colour --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; + // Button + --button-bgcolor: color-mix(in srgb, currentColor 13%, transparent) !important; + --button-hover-bgcolor: color-mix(in srgb, currentColor 17%, transparent) !important; + --button-active-bgcolor: color-mix(in srgb, currentColor 30%, transparent) !important; + + // Others + --urlbar-box-bgcolor: color-mix(in srgb, currentColor 16%, transparent) !important; + + #navigator-toolbox:-moz-lwtheme { + --lwt-tabs-border-color: var(--focus-outline-color) !important; + } + #navigator-toolbox, + &[lwtheme-image] #navigator-toolbox:-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + } + #TabsToolbar { + --lwt-tab-line-color: var(--focus-outline-color) !important; + } + notification-message[message-bar-type="infobar"] { + --message-bar-text-color: var(--lwt-tab-text) !important; + --in-content-page-color: var(--lwt-tab-text) !important; + } menupopup { - /* Right Click Menu */ + // Right Click Menu --menuitem-hover-background-color: #413D54 !important; --menu-background-color: #1D1935 !important; --menu-color: #eeeeee !important; From f3f5f4bc80ec72961adcca5d3d6eb0f60d490b55 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 13 Feb 2023 05:59:19 +0900 Subject: [PATCH 09/37] Revert "Add: Theme - Built In Color" This reverts commit b960c6f43fa0ccb66c66b6858ee308073f0b3b2e. Revert "Fix: Theme - Built In Light theme selector" This reverts commit 987a9f77daa3e0b979d018d18c8904081d15ba25. Revert "Clean: Theme - Hex to RGB" This reverts commit 00110fca89050dc8e77abb308af06e0027594f7c. --- __tests__/theme.test.scss | 12 ++++++------ css/leptonChrome.css | 33 +++++---------------------------- src/leptonChrome.scss | 5 ----- src/theme/_built_in_color.scss | 18 ------------------ src/utils/_theme.scss | 2 +- user.js | 1 - 6 files changed, 12 insertions(+), 59 deletions(-) delete mode 100644 src/theme/_built_in_color.scss diff --git a/__tests__/theme.test.scss b/__tests__/theme.test.scss index 6438a2a8..0e964c89 100644 --- a/__tests__/theme.test.scss +++ b/__tests__/theme.test.scss @@ -59,7 +59,7 @@ } } @include expect { - :root[lwtheme-mozlightdark], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) { + :root[lwtheme-mozlightdark], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) { @include example_property; } } @@ -74,7 +74,7 @@ } } @include expect { - :root[lwtheme-mozlightdark][inFullscreen=true], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"])[inFullscreen=true] { + :root[lwtheme-mozlightdark][inFullscreen=true], :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"])[inFullscreen=true] { @include example_property; } } @@ -89,7 +89,7 @@ } } @include expect { - :root[lwtheme-mozlightdark] #navigator-toolbox, :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #navigator-toolbox { + :root[lwtheme-mozlightdark] #navigator-toolbox, :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) #navigator-toolbox { @include example_property; } } @@ -106,7 +106,7 @@ } } @include expect { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]), :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]), :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { @include example_property; } } @@ -121,7 +121,7 @@ } } @include expect { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright])[inFullscreen=true], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][inFullscreen=true], :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][inFullscreen=true] { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright])[inFullscreen=true], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][inFullscreen=true] { @include example_property; } } @@ -136,7 +136,7 @@ } } @include expect { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]) #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor=bright]) #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { @include example_property; } } diff --git a/css/leptonChrome.css b/css/leptonChrome.css index eee34fb0..2a47cd12 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -1,46 +1,22 @@ @charset "UTF-8"; @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; @namespace html "http://www.w3.org/1999/xhtml"; -/** Default Theme - Built In Color ********************************************/ -@supports -moz-bool-pref("userChrome.theme.built_in_color") { - /*= Lightmode ================================================================*/ - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { - --lwt-accent-color: rgb(240, 240, 244) !important; /* Original: rgb(237,237,241) */ - --toolbar-bgcolor: rgb(249, 249, 251) !important; /* white, rgb(255, 255, 255) */ - --toolbar-field-background-color: rgb(240, 240, 244) !important; /* rgb(249, 249, 251) */ - } - /*= Darkmode =================================================================*/ - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { - --lwt-selected-tab-background-color: rgb(66, 65, 77) !important; /* rgb(82, 82, 94) */ - --toolbar-bgcolor: rgb(43, 42, 51) !important; /* rgb(82, 82, 94) */ - --toolbar-field-background-color: rgb(28, 27, 34) !important; /* rgb(74, 74, 85) */ - --toolbar-field-focus-background-color: rgb(66, 65, 77) !important; /* black rgba(0, 0, 0, 1) */ - --button-hover-bgcolor: rgb(82, 82, 94) !important; - --button-active-bgcolor: rgb(91, 91, 102) !important; - } -} /** Default Theme - Contrast **************************************************/ @supports -moz-bool-pref("userChrome.theme.built_in_contrast") { /*= Lightmode - Color darker =================================================*/ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { --lwt-accent-color: rgb(229, 229, 235) !important; /* Original: rgb(240, 240, 244) */ } @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { background-color: var(--lwt-accent-color) !important; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { background-color: var(--lwt-accent-color) !important; } } @@ -7714,7 +7690,8 @@ .tab-icon-image[crashed] { display: none !important; } -} /** Nav Bar UI ****************************************************************/ +} +/** Nav Bar UI ****************************************************************/ /*= Nav Bar - Navbar comabine with sidebar===================================*/ @supports -moz-bool-pref("userChrome.navbar.as_sidebar") { :root { diff --git a/src/leptonChrome.scss b/src/leptonChrome.scss index 7f4c98b4..000d72e2 100644 --- a/src/leptonChrome.scss +++ b/src/leptonChrome.scss @@ -15,11 +15,6 @@ @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; @namespace html "http://www.w3.org/1999/xhtml"; -/** Default Theme - Built In Color ********************************************/ -@include Option("userChrome.theme.built_in_color") { - @import "theme/built_in_color"; -} - /** Default Theme - Contrast **************************************************/ @include Option("userChrome.theme.built_in_contrast") { @import "theme/built_in"; diff --git a/src/theme/_built_in_color.scss b/src/theme/_built_in_color.scss deleted file mode 100644 index a2a0e01f..00000000 --- a/src/theme/_built_in_color.scss +++ /dev/null @@ -1,18 +0,0 @@ -// https://github.com/mozilla/gecko-dev/commit/c6c9389373fc979b3ac4cdc15bfc019ced1e3151 -/*= Lightmode ================================================================*/ -#{built-in-light-theme()} { - // --lwt-selected-tab-background-color: #fff !important; /* Original: white, rgb(255, 255, 255) */ - --lwt-accent-color: rgb(240, 240, 244) !important; /* Original: rgb(237,237,241) */ - --toolbar-bgcolor: rgb(249, 249, 251) !important; /* white, rgb(255, 255, 255) */ - --toolbar-field-background-color: rgb(240, 240, 244) !important; /* rgb(249, 249, 251) */ -} - -/*= Darkmode =================================================================*/ -#{built-in-dark-theme()} { - --lwt-selected-tab-background-color: rgb(66,65,77) !important; /* rgb(82, 82, 94) */ - --toolbar-bgcolor: rgb(43,42,51) !important; /* rgb(82, 82, 94) */ - --toolbar-field-background-color: rgb(28, 27, 34) !important; /* rgb(74, 74, 85) */ - --toolbar-field-focus-background-color: rgb(66,65,77) !important; /* black rgba(0, 0, 0, 1) */ - --button-hover-bgcolor: rgb(82,82,94) !important; - --button-active-bgcolor: rgb(91,91,102) !important; -} diff --git a/src/utils/_theme.scss b/src/utils/_theme.scss index 769c4123..661954d5 100644 --- a/src/utils/_theme.scss +++ b/src/utils/_theme.scss @@ -8,7 +8,7 @@ $_lightText: '[lwthemetextcolor="bright"]'; $_darkText: ":not(#{$_lightText})"; $_sysDark: "[lwt-default-theme-in-dark-mode]"; -$_lightStyle: '[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"]'; // --lwt-accent-color: rgb(237, 237, 241) is FF110 +$_lightStyle: '[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"]'; $_darkStyle: '[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]'; //== Mixin ===================================================================== diff --git a/user.js b/user.js index c2fa3323..92b7278b 100644 --- a/user.js +++ b/user.js @@ -213,7 +213,6 @@ user_pref("userChrome.rounding.square_tab", false); user_pref("userChrome.compatibility.theme", true); user_pref("userChrome.compatibility.os", true); -user_pref("userChrome.theme.built_in_color", true); user_pref("userChrome.theme.built_in_contrast", true); user_pref("userChrome.theme.system_default", true); user_pref("userChrome.theme.proton_color", true); From 5415e5d568219af2335d04ad842b8cac1804ed93 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Tue, 14 Feb 2023 06:36:09 +0900 Subject: [PATCH 10/37] Clean: Build - Update --- css/leptonChrome.css | 241 +++++++++++++++++++++++++++++++++++------- css/leptonContent.css | 18 +++- 2 files changed, 217 insertions(+), 42 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 2a47cd12..7c6a9b92 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -746,15 +746,47 @@ --button-active-bgcolor: var(--win-button-active-bgcolor) !important; } :root:not(:-moz-lwtheme) - toolbarbutton.subviewbutton:not([disabled], [open], :active, #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is(:hover), + toolbarbutton.subviewbutton:not( + [disabled], + [open], + :active, + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is(:hover), :root[lwt-default-theme-in-dark-mode] - toolbarbutton.subviewbutton:not([disabled], [open], :active, #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is(:hover) { + toolbarbutton.subviewbutton:not( + [disabled], + [open], + :active, + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } :root:not(:-moz-lwtheme) - toolbarbutton.subviewbutton:not([disabled], #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is([open], :hover:active), + toolbarbutton.subviewbutton:not( + [disabled], + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is([open], :hover:active), :root[lwt-default-theme-in-dark-mode] - toolbarbutton.subviewbutton:not([disabled], #appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2):is([open], :hover:active) { + toolbarbutton.subviewbutton:not( + [disabled], + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is([open], :hover:active) { background-color: var(--win-hover-active-bgcolor) !important; } /*- Others -----------------------------------------------------------------*/ @@ -780,7 +812,10 @@ > .tabbrowser-tab > .tab-stack > .tab-background[multiselected]:not([selected]), - :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -1086,7 +1121,6 @@ :root[privatebrowsingmode="temporary"], :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"], :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] { --lwt-additional-images: none !important; @@ -1121,8 +1155,6 @@ #navigator-toolbox:-moz-lwtheme, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] #navigator-toolbox:-moz-lwtheme, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - #navigator-toolbox:-moz-lwtheme, :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #navigator-toolbox:-moz-lwtheme, :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] @@ -1138,10 +1170,6 @@ #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] #navigator-toolbox:-moz-lwtheme, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] - #navigator-toolbox:-moz-lwtheme, :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #navigator-toolbox, :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"][lwtheme-image] #navigator-toolbox:-moz-lwtheme, @@ -1155,8 +1183,6 @@ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #TabsToolbar, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] #TabsToolbar, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - #TabsToolbar, :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #TabsToolbar, :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] #TabsToolbar { @@ -1167,8 +1193,6 @@ notification-message[message-bar-type="infobar"], :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] notification-message[message-bar-type="infobar"], - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - notification-message[message-bar-type="infobar"], :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] notification-message[message-bar-type="infobar"], :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] @@ -1180,8 +1204,6 @@ :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] menupopup, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] menupopup, - :root[style*="--lwt-accent-color: rgb(237, 237, 241); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - menupopup, :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] menupopup, :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] menupopup { @@ -1507,9 +1529,15 @@ /* Default theme color preservation */ :root[lwtheme-mozlightdark] menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), :root[lwtheme-mozlightdark] menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup), - :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), - :root:is([style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) { --menu-color: var(--toolbar-color, var(--in-content-page-color)) !important; --arrowpanel-background: var( @@ -6238,7 +6266,10 @@ box-shadow: unset !important; filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4)); } - :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([selected], [multiselected]) @@ -6246,11 +6277,17 @@ > .tab-background:-moz-lwtheme { filter: drop-shadow(0 0 1px var(--uc-tab-shadow-color, transparent)); } - :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected="true"]:not(:focus), - :root:is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[multiselected]:not([visuallyselected]) { @@ -6258,7 +6295,10 @@ } /* For themes outside of Light and Dark (which are curated by Mozilla), show a thicker border around the tab to help themes that are dependent on tab_line to show the selected tab. */ - :root:not([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"]) + :root:not( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] + ) #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) @@ -6268,7 +6308,10 @@ filter: drop-shadow(-1px -0.5px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(1px -1px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(0 0 2px rgba(128, 128, 142, 0.5)); } - :root:not([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:not( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) @@ -6375,12 +6418,18 @@ opacity: 0.3; } } - :root:not([customizing="true"])::is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:not([customizing="true"])::is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected] .tab-background:-moz-lwtheme::before, - :root:not([customizing="true"])::is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) + :root:not([customizing="true"])::is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) #TabsToolbar[brighttext] #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab[visuallyselected] @@ -7491,7 +7540,11 @@ .tabbrowser-tab:not([image]):is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { opacity: 0 !important; /* Favicon hidden */ } - .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is( + [soundplaying], + [muted], + [activemedia-blocked] + ) .tab-label-container > * { transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); @@ -7508,7 +7561,11 @@ .tabbrowser-tab:is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { opacity: 0 !important; /* Favicon hidden */ } - .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is( + [soundplaying], + [muted], + [activemedia-blocked] + ) .tab-label-container > * { transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); @@ -9778,7 +9835,11 @@ } } @supports -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { - #sidebar-box:is([sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"]) + #sidebar-box:is( + [sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], + [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], + [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"] + ) #sidebar-header { display: none !important; } @@ -10571,9 +10632,29 @@ > menupopup > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), :not(menu, #ContentSelectDropdown) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10622,9 +10703,29 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10685,9 +10786,29 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10761,9 +10882,29 @@ :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic, .in-menulist, [checked="true"]), menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), @@ -10814,9 +10955,29 @@ } /* Global Menu */ @supports -moz-bool-pref("userChrome.icon.global_menu.mac") { - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menuitem:not(.menuitem-iconic, .bookmark-item), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #windowPopup, #menu_HelpPopup) + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) menu:not(.menu-iconic) { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; } diff --git a/css/leptonContent.css b/css/leptonContent.css index 0535be6f..24e7cf7e 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -1842,7 +1842,14 @@ outline: 2px solid var(--in-content-focus-outline-color) !important; outline-offset: -1px !important; /* Prevents antialiasing around the corners */ } - input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):-moz-ui-invalid, + input:is( + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ):-moz-ui-invalid, textarea:-moz-ui-invalid { border-color: transparent !important; outline: 2px solid var(--in-content-border-invalid) !important; @@ -1878,7 +1885,14 @@ @supports -moz-bool-pref("userContent.page.field_border") { @media (prefers-reduced-motion: no-preference) { @-moz-document url-prefix("about:") { - html|input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):not(#newtab-search-text):hover, + html|input:is( + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ):not(#newtab-search-text):hover, html|textarea:hover, xul|search-textbox:hover { border-color: var(--in-content-focus-outline-color) !important; From 5c14948aa4e41d8fae1ea3e7bc9869c66c0f660b Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Wed, 15 Feb 2023 02:54:33 +0900 Subject: [PATCH 11/37] Add: Theme - PDF contents darkmode --- CREDITS | 5 +++++ __tests__/moz_document.test.scss | 6 ++++++ css/leptonContent.css | 17 +++++++++++++++++ src/contents/_dark_mode.scss | 19 +++++++++++++++++++ src/utils/_moz_document.scss | 2 +- user.js | 1 + 6 files changed, 49 insertions(+), 1 deletion(-) diff --git a/CREDITS b/CREDITS index 9b18c90d..8561e05f 100644 --- a/CREDITS +++ b/CREDITS @@ -175,6 +175,11 @@ W: https://github.com/MrOtherGuy/firefox-csshacks C: Copyright (c) 2018 MrOtherGuy L: MPL 2.0 +N: Firefox Custom CSS +W: https://github.com/hakan-demirli/Firefox_Custom_CSS +C: Copyright (c) 2022 hakan-demirli +L: MIT + N: Fluent UI System Icons W: https://github.com/microsoft/fluentui-system-icons C: Copyright (c) 2020 Microsoft Corporation diff --git a/__tests__/moz_document.test.scss b/__tests__/moz_document.test.scss index 34f479a2..e96ea8da 100644 --- a/__tests__/moz_document.test.scss +++ b/__tests__/moz_document.test.scss @@ -6,6 +6,9 @@ @include test("simple") { @include assert { @include output { + @include moz-document(unobservable-document) { + @include example; + } @include moz-document(url "about:downloads") { @include example; } @@ -17,6 +20,9 @@ } } @include expect { + @-moz-document #{unobservable-document()} { // Invalid function name. + @include example; + } @-moz-document url("about:downloads") { @include example; } diff --git a/css/leptonContent.css b/css/leptonContent.css index 24e7cf7e..b5f29b2e 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -1640,6 +1640,23 @@ box-shadow: 0 0 0 3px color-mix(in srgb, var(--in-content-primary-button-background-hover) 80%, transparent) !important; } } + @supports -moz-bool-pref("userContent.page.dark_mode.pdf") { + @-moz-document unobservable-document() { + @-moz-document regexp("^(?!.*\\.pdf\\?n).*") { + #outerContainer { + --sidebaritem-bg-color: #38383d; + --uc-pdf-dark-filter: grayscale(10%) invert(90%); + } + #sidebarContainer > #sidebarContent > #thumbnailView .thumbnailImage { + filter: var(--uc-pdf-dark-filter); + box-shadow: 0 0 0 1px hsla(0deg, 0%, 100%, 0.5), 0 2px 8px hsla(0deg, 0%, 100%, 0.3) !important; + } + #viewerContainer > #viewer > .page > .canvasWrapper > canvas { + filter: var(--uc-pdf-dark-filter); + } + } + } + } } } /** Fully Proton Mode *********************************************************/ diff --git a/src/contents/_dark_mode.scss b/src/contents/_dark_mode.scss index 4d32bb6a..3ecd95f1 100644 --- a/src/contents/_dark_mode.scss +++ b/src/contents/_dark_mode.scss @@ -2,4 +2,23 @@ @import "dark_mode/addons_org"; @import "dark_mode/support_org"; @import "dark_mode/accounts_com"; + + @include Option("userContent.page.dark_mode.pdf") { + @include moz-document(unobservable-document) { + @include moz-document(regexp "^(?!.*\\.pdf\\?n).*") { + #outerContainer { + --sidebaritem-bg-color: #38383D; + --uc-pdf-dark-filter: grayscale(10%) invert(90%); + } + + #sidebarContainer > #sidebarContent > #thumbnailView .thumbnailImage { + filter: var(--uc-pdf-dark-filter); + box-shadow: 0 0 0 1px hsla(0, 0%, 100%, 0.5), 0 2px 8px hsla(0, 0%, 100%, 0.3) !important; + } + #viewerContainer > #viewer > .page > .canvasWrapper > canvas { + filter: var(--uc-pdf-dark-filter); + } + } + } + } } diff --git a/src/utils/_moz_document.scss b/src/utils/_moz_document.scss index 002b0df3..00bd3a7a 100644 --- a/src/utils/_moz_document.scss +++ b/src/utils/_moz_document.scss @@ -1,7 +1,7 @@ @mixin moz-document($urlList...) { $result: (); @each $prefix, $urlPattern in $urlList { - $result: append($result, #{$prefix}("#{$urlPattern}"), $separator: comma); + $result: append($result, #{$prefix}(if($urlPattern, "#{$urlPattern}", null)), $separator: comma); } @#{-moz-document} #{$result} { diff --git a/user.js b/user.js index 92b7278b..4f982734 100644 --- a/user.js +++ b/user.js @@ -206,6 +206,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userContent.page.proton_color.dark_blue_accent", true); // user_pref("userContent.page.proton_color.system_accent", true); +// user_pref("userContent.page.dark_mode.pdf", true); // user_pref("userContent.page.monospace", true); // == Theme Default Settings =================================================== From 2b6424e9d4c68fdf49f0de5faead62b00b084982 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Thu, 23 Feb 2023 15:20:38 +0900 Subject: [PATCH 12/37] Add: Theme - Win11 Default Theme Color --- css/leptonChrome.css | 46 ++++++++++++++++++++++ src/theme/system_default_theme/_win10.scss | 44 +++++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 7c6a9b92..43a215f2 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -528,6 +528,24 @@ --win-accent-active-color: -moz-accent-color; } } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme) { + --win-text-color: #1a1a1a; + --win-bgcolor: #e8e8e8; + --win-hover-bgcolor: #eaeaea; /* also button-bgcolor */ + --win-disabled-color: #9f9f9f; + --win-hover-active-bgcolor: #d9d9d9; /* also button-active-color */ + --win-button-hover-bgcolor: #d9d9d9; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-component-bgcolor: #f8f8f8; + --win-border-color: #e9e9e9; + --win-tab-separator-color: #dadada; + --win-sidebar-bgcolor: #ffffff; + --win-button-border: var(--win-border-color); + --win11-chrome-separator-color: #d6d6d6; + --win11-tab-border-color: #dadada; + } + } @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { @@ -565,6 +583,25 @@ --win-accent-active-color: -moz-accent-color; } } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-bgcolor: #202020; + --win-hover-bgcolor: #383838; /* also button-bgcolor */ + --win-disabled-color: #797979; + --win-hover-active-bgcolor: #454545; /* also button-active-color */ + --win-button-hover-bgcolor: #454545; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-field-bgcolor: #232323; + --win-component-bgcolor: #2c2c2c; + --win-border-color: #3d3d3d; + --win-tab-separator-color: #323232; + --win-sidebar-bgcolor: var(--win-component-bgcolor); + --win-button-border: var(--win-border-color); + --win11-chrome-separator-color: #3a3a3a; + --win11-tab-border-color: #1d1d1d; + } + } } :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { @@ -689,6 +726,15 @@ } } } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --chrome-content-separator-color: var(--win11-chrome-separator-color) !important; + } + #nav-bar { + --lwt-tabs-border-color: var(--win11-tab-border-color) !important; + } + } /*- Proton Tab Selected ----------------------------------------------------*/ @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { :root:not(:-moz-lwtheme), diff --git a/src/theme/system_default_theme/_win10.scss b/src/theme/system_default_theme/_win10.scss index 1bd608ee..8c92eda9 100644 --- a/src/theme/system_default_theme/_win10.scss +++ b/src/theme/system_default_theme/_win10.scss @@ -28,6 +28,23 @@ --win-accent-hover-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 27%, #{$accentColor}); --win-accent-active-color: #{$accentColor}; } + @include Option("userChrome.compatibility.os.win11") { + --win-text-color: #1A1A1A; + --win-bgcolor: #E8E8E8; + --win-hover-bgcolor: #EAEAEA; /* also button-bgcolor */ // or #EFEFEF + --win-disabled-color: #9F9F9F; + --win-hover-active-bgcolor: #D9D9D9; /* also button-active-color */ + --win-button-hover-bgcolor: #D9D9D9; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-component-bgcolor: #F8F8F8; + --win-border-color: #E9E9E9; + --win-tab-separator-color: #DADADA; + --win-sidebar-bgcolor: #FFFFFF; + --win-button-border: var(--win-border-color); + + --win11-chrome-separator-color: #D6D6D6; + --win11-tab-border-color: #DADADA; + } } @include Dark { #{system-default-theme()} { @@ -57,6 +74,24 @@ --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, #{$accentColor}); --win-accent-active-color: #{$accentColor}; } + + @include Option("userChrome.compatibility.os.win11") { + --win-bgcolor: #202020; + --win-hover-bgcolor: #383838; /* also button-bgcolor */ + --win-disabled-color: #797979; + --win-hover-active-bgcolor: #454545; /* also button-active-color */ + --win-button-hover-bgcolor: #454545; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-field-bgcolor: #232323; + --win-component-bgcolor: #2C2C2C; + --win-border-color: #3D3D3D; + --win-tab-separator-color: #323232; + --win-sidebar-bgcolor: var(--win-component-bgcolor); + --win-button-border: var(--win-border-color); + + --win11-chrome-separator-color: #3A3A3A; + --win11-tab-border-color: #1D1D1D; + } } } @@ -209,6 +244,15 @@ } } + @include Option("userChrome.compatibility.os.win11") { + #{system-default-theme()} { + --chrome-content-separator-color: var(--win11-chrome-separator-color) !important; + } + #nav-bar { + --lwt-tabs-border-color: var(--win11-tab-border-color) !important; + } + } + /*- Proton Tab Selected ----------------------------------------------------*/ @include NotOption("userChrome.tab.color_like_toolbar") { #{system-default-theme()} { From f15d12193b4f0469e142816a57c4f673a294bf55 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 27 Feb 2023 17:15:28 +0900 Subject: [PATCH 13/37] Add: Activity Stream - Background Image --- css/leptonContent.css | 10 ++++++++++ src/contents/_activity_stream.scss | 11 +++++++++++ user.js | 1 + 3 files changed, 22 insertions(+) diff --git a/css/leptonContent.css b/css/leptonContent.css index b5f29b2e..30a70e2c 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -456,6 +456,16 @@ padding-top: 0 !important; } } + /** Activity Stream - Hide Firefox's logo ***********************************/ + @supports -moz-bool-pref("userContent.newTab.background_image") { + body { + background-image: var(--uc-newTab-wallpaper); + background-size: cover; /* or auto auto */ + background-repeat: no-repeat; + background-position: right top; + background-attachment: fixed; + } + } } /** Error Page - Restore illustrations ****************************************/ @supports -moz-bool-pref("userContent.page.illustration") { diff --git a/src/contents/_activity_stream.scss b/src/contents/_activity_stream.scss index a45a1cf6..c60dd400 100644 --- a/src/contents/_activity_stream.scss +++ b/src/contents/_activity_stream.scss @@ -217,4 +217,15 @@ padding-top: 0 !important; } } + + /** Activity Stream - Hide Firefox's logo ***********************************/ + @include Option("userContent.newTab.background_image") { + body { + background-image: var(--uc-newTab-wallpaper); + background-size: cover; /* or auto auto */ + background-repeat: no-repeat; + background-position: right top; + background-attachment: fixed; + } + } } diff --git a/user.js b/user.js index 4f982734..1a160f00 100644 --- a/user.js +++ b/user.js @@ -203,6 +203,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userContent.player.ui.twoline", true); // user_pref("userContent.newTab.hidden_logo", true); +// user_pref("userContent.newTab.background_image", true); // Need wallpaper image --uc-newTab-wallpaper: url("../icons/background_image.png"); // user_pref("userContent.page.proton_color.dark_blue_accent", true); // user_pref("userContent.page.proton_color.system_accent", true); From 6a8fc64f2cc0812eaa35b50061b856cf5d832a62 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 26 Mar 2023 20:53:31 +0900 Subject: [PATCH 14/37] Fix: Activity Stream - Default Background Image --- CREDITS | 5 +++++ css/leptonContent.css | 2 +- ...rest-trees-sunset-art-picture_3840x2160.jpg | Bin 0 -> 304104 bytes src/contents/_activity_stream.scss | 3 ++- 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 icons/Forest-trees-sunset-art-picture_3840x2160.jpg diff --git a/CREDITS b/CREDITS index 8561e05f..a66ff6a8 100644 --- a/CREDITS +++ b/CREDITS @@ -145,6 +145,11 @@ W: https://github.com/thunderstone135 ---------- Reference Projects & Resources +N: BEST-WALLPAPER.NET +W: https://best-wallpaper.net/ +C: Copyright (c) 2011-2022 best-wallpaper.net +L: Unspecified License + N: Compact Mode Firefox Css W: https://github.com/Godiesc/compactmodefirefoxcss C: Copyright (c) 2021 Godiesc diff --git a/css/leptonContent.css b/css/leptonContent.css index 30a70e2c..8eefc5cd 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -459,7 +459,7 @@ /** Activity Stream - Hide Firefox's logo ***********************************/ @supports -moz-bool-pref("userContent.newTab.background_image") { body { - background-image: var(--uc-newTab-wallpaper); + background-image: var(--uc-newTab-wallpaper, url("../icons/Forest-trees-sunset-art-picture_3840x2160.jpg")); background-size: cover; /* or auto auto */ background-repeat: no-repeat; background-position: right top; diff --git a/icons/Forest-trees-sunset-art-picture_3840x2160.jpg b/icons/Forest-trees-sunset-art-picture_3840x2160.jpg new file mode 100644 index 0000000000000000000000000000000000000000..674893e421990396c25b342025e6dcd3bf604d3e GIT binary patch literal 304104 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

u# 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

`G7VEJoc>3Lxx;j3s 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 F{{np7os<9o literal 0 HcmV?d00001 diff --git a/src/contents/_activity_stream.scss b/src/contents/_activity_stream.scss index c60dd400..496020c4 100644 --- a/src/contents/_activity_stream.scss +++ b/src/contents/_activity_stream.scss @@ -221,7 +221,8 @@ /** Activity Stream - Hide Firefox's logo ***********************************/ @include Option("userContent.newTab.background_image") { body { - background-image: var(--uc-newTab-wallpaper); + // https://best-wallpaper.net/Forest-trees-sunset-art-picture_wallpapers.html + background-image: var(--uc-newTab-wallpaper, url("../icons/Forest-trees-sunset-art-picture_3840x2160.jpg")); background-size: cover; /* or auto auto */ background-repeat: no-repeat; background-position: right top; From 791f085097391f6adf5c1b3c2b13f9d552946ff7 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Tue, 4 Apr 2023 06:14:54 +0900 Subject: [PATCH 15/37] Add: Theme - Linux non native menu test --- src/theme/_non_native_menu.scss | 210 ++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 src/theme/_non_native_menu.scss diff --git a/src/theme/_non_native_menu.scss b/src/theme/_non_native_menu.scss new file mode 100644 index 00000000..9b72c67b --- /dev/null +++ b/src/theme/_non_native_menu.scss @@ -0,0 +1,210 @@ +// Non Native +// https://github.com/mozilla/gecko-dev/blob/b77aed8146805795350e7e127869c395ab70efdf/browser/themes/windows/browser.css#L481 +// https://github.com/mozilla/gecko-dev/blob/b77aed8146805795350e7e127869c395ab70efdf/toolkit/themes/windows/global/global.css#L20 +// https://github.com/mozilla/gecko-dev/blob/b77aed8146805795350e7e127869c395ab70efdf/toolkit/themes/windows/global/menu.css#L30 +@include OS($linux) { + //-- Global ------------------------------------------------------------------ + :root { + /* Override some menu color variables for light browser themes. */ + --menu-icon-opacity: 0.7; + } + + /* Override the menu color variables for dark browser themes. */ + @media (prefers-color-scheme: dark) { + :root { + --menu-icon-opacity: 1; + } + } + + //-- Global - Menu ----------------------------------------------------------- + /* For Windows 10, prevent using native OS drawing of certain menu elements, + especially background colors and shadows. */ + menu, menuitem, menucaption { + appearance: none; + } + + /* Menu item text also needs native drawing disabled. */ + menu > .menu-text, + menuitem > .menu-text, + menu > .menu-iconic-text, + menuitem > .menu-iconic-text { + appearance: none; + margin-inline-start: 0 !important; /* need !important to override the other !important below... */ + padding-inline-end: 0; + } + + menu:where([_moz-menuactive="true"][disabled="true"]), + menuitem:where([_moz-menuactive="true"][disabled="true"]) { + background-color: -moz-menuhoverdisabled; + } + + .menu-text { + padding-inline-start: 0 !important; + } + + .menu-right { + appearance: none; + width: unset; + list-style-image: url("chrome://global/skin/icons/arrow-right.svg"); + -moz-context-properties: fill, fill-opacity; + fill: currentColor; + fill-opacity: var(--menu-icon-opacity); + margin-inline-end: 1em; + padding-top: 0; + } + + .menu-right > image { + /* Do not make this smaller than the size of the svg, but upscale for + * people with large fonts. */ + width: max(1em, 16px); + } + + .menu-right:-moz-locale-dir(rtl) { + list-style-image: url("chrome://global/skin/icons/arrow-left.svg"); + } + + menulist > menupopup > menuitem { + padding-inline-end: 1em; + } + + menupopup[needsgutter] menu:not([icon], .menu-iconic), + menupopup[needsgutter] menuitem:not([checked="true"], [icon], .menuitem-iconic) { + padding-inline-start: 36px; + } + + /* For Windows 10, checkbox, radio and iconified menuitems need the default + appearance disabled so they pick up our custom styles instead. */ + .menu-iconic-left, + menuitem[type="checkbox"], + menuitem[type="radio"] { + appearance: none !important; /* to override more specific selectors above. */ + width: unset; + } + + .menu-iconic > .menu-iconic-left, + .menuitem-iconic > .menu-iconic-left { + margin-inline-end: 8px; + } + + menuitem[checked="true"] { + padding-inline-start: 12px; + } + + /* We need to do something to override the default style for selected + checkboxes and radio buttons because the native drawing we use on other + Windows versions looks pretty bad with the Win10 styles, so for now we'll + insert a generic checkmark icon for both types. */ + menuitem[checked="true"] > .menu-iconic-left { + -moz-context-properties: fill, fill-opacity; + fill: currentColor; + fill-opacity: var(--menu-icon-opacity); + list-style-image: url("chrome://global/skin/icons/menu-check.svg"); + width: 16px; + margin-inline-end: 8px; + } + menuitem[checked="true"] > .menu-iconic-left > .menu-iconic-icon { + display: initial; + } + + menuseparator { + appearance: none; + + border-bottom: none; + padding: 0; + /* The side margins should align with the start of the menu item text. */ + margin: 2px 1em; + } + + //-- Browser ----------------------------------------------------------------- + /* :not([hidden]) to avoid the display: flex unhiding the item. */ + #context-navigation:not([hidden]) { + /* The Windows 10 version of the navigation area needs the scrollbox's + background color, not the builtin "menu" color. */ + background-color: inherit; + /* Match the inner top padding of the menupopup to center the icons visually. */ + padding-bottom: 4px; + /* Use modern flex box so we can use percentage widths to redistribute + * spacing manually. */ + display: flex; + flex-direction: row; + /* We want the first and last icons to align with the text items which + * have 1em inline padding, and for icons to be centered within their + * hover state, so each icon of 16px needs 1em padding on both sides: + */ + --menuitem-min-width: calc(2em + 16px); + /* The total width of the container should then be at least 4 times that: */ + min-width: calc(4 * var(--menuitem-min-width)); + } + + #context-navigation > .menuitem-iconic { + flex: 1 0 auto; + } + + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] { + /* We only show hover state on the icons. This ensures there is no + * dead space between icons, but the visible hover state is only + * around the icons, and all the icons' hover states match each other. + */ + background-color: transparent; + } + + #context-navigation > .menuitem-iconic > .menu-iconic-left { + margin: 0; + padding: 0; + } + + /* override styles from shared/contextmenu.inc.css */ + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + width: var(--menuitem-min-width); + height: 32px; + padding: 8px 1em; + margin: 0; + } + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + background-color: -moz-menuhover; + } + + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left > .menu-iconic-icon { + background-color: -moz-menuhoverdisabled; + } + + /* If the menu is wider than the icons strictly need, the elements + * will stretch to pick up the extra space. In that case, the outer icons + * should align to the start/end of their containing : */ + #context-navigation > .menuitem-iconic:first-child { + -moz-box-pack: start; + } + + #context-navigation > .menuitem-iconic:last-child { + -moz-box-pack: end; + } + + #context-navigation > .menuitem-iconic:last-child, + #context-navigation > .menuitem-iconic:first-child { + flex-grow: 0; + /* The first and last items start off as 16px + 2em, like the other ones. + * 100% is the width of the parent, which will be at least 4 * the width of + * an individual item (16px + 2em) + * So 100% - 4 item widths gets us the remaining available space if + * #context-navigation is wider than that. + * Then divide by 6 to get the 1/6 of that extra space, and add this space + * to the width of the first/last items. + * This ensures that the 3 visual gaps between the 4 icons are all the same + * size, with each 1/3 of the available space evenly distributed between + * the 2 items on either side of the gap. + */ + width: calc(var(--menuitem-min-width) + calc(100% - 4 * var(--menuitem-min-width)) / 6); + } + + + /* 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 { + margin-top: 0; + margin-inline: 0; + } +} + +// Not +// https://github.com/mozilla/gecko-dev/blob/b77aed8146805795350e7e127869c395ab70efdf/browser/themes/windows/customizableui/panelUI.css#L18 +// https://github.com/mozilla/gecko-dev/blob/b77aed8146805795350e7e127869c395ab70efdf/toolkit/themes/windows/global/popup.css#L26 From 6ee9df6f9e5d925e96a93688ae9c52b71f3112c7 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Tue, 4 Apr 2023 08:26:45 +0900 Subject: [PATCH 16/37] Add: Theme - Linux non native menu without icons --- __tests__/native_menu.test.scss | 11 ++ css/leptonChrome.css | 260 ++++++++++++++++++++++++++++++++ icons/menu-check.svg | 6 + src/compatibility/_theme.scss | 2 +- src/theme/_index.scss | 5 + src/theme/_non_native_menu.scss | 152 ++++++++++++------- src/utils/_native_menu.scss | 12 ++ user.js | 1 + 8 files changed, 396 insertions(+), 53 deletions(-) create mode 100644 icons/menu-check.svg diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index f18edc46..ebbda029 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -12,6 +12,9 @@ @include native_menu.NativeMenuPopup { @include example; } + @include native_menu.NonNativeMenu { + @include example; + } @include native_menu.WinNativeMenu { @include example; } @@ -27,6 +30,14 @@ menupopup:not([placespopup="true"]) { @include example; } + @media (-moz-windows-non-native-menus) { + @include example; + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } + } @media not (-moz-windows-non-native-menus) { @include example; } diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 8a3d7577..b09f9ddf 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -179,6 +179,40 @@ --menu-icon-opacity: var(--dark-menu-icon-opacity); } } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + } + } /*= Firefox View Border #498 =================================================*/ :root:not([privatebrowsingmode="temporary"])[firefoxviewhidden] #firefox-view-button + #tabbrowser-tabs { border-inline-start: none !important; @@ -1271,6 +1305,232 @@ --menu-border-color: #322560 !important; } } +/*= None Native Menu =========================================================*/ +@supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menu-icon-opacity: 0.7; + --nested-margin: -10px; + --windows-panel-box-shadow: 0 0 4px hsla(0, 0%, 0%, 0.2); + } + /* Override the menu color variables for dark browser themes. */ + @media (prefers-color-scheme: dark) { + :root { + --menu-icon-opacity: 1; + } + } + /* For Windows 10, prevent using native OS drawing of certain menu elements, + especially background colors and shadows. */ + menu, + menuitem, + menucaption { + appearance: none !important; + } + /* Menu item text also needs native drawing disabled. */ + menu > .menu-text, + menuitem > .menu-text, + menu > .menu-iconic-text, + menuitem > .menu-iconic-text { + appearance: none !important; + margin-inline-start: 0 !important; /* need !important to override the other !important below... */ + padding-inline-end: 0; + } + menu[_moz-menuactive="true"]:not([disabled="true"]), + menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + background-color: var(--menuitem-hover-background-color) !important; + color: var(--menu-color) !important; + } + menu:where([_moz-menuactive="true"][disabled="true"]), + menuitem:where([_moz-menuactive="true"][disabled="true"]) { + background-color: transparent !important; + } + .menu-text { + padding-inline-start: 0 !important; + } + .menu-right { + appearance: none !important; + width: unset !important; + list-style-image: url("chrome://global/skin/icons/arrow-right.svg") !important; + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + fill-opacity: var(--menu-icon-opacity) !important; + margin-inline-end: 1em !important; + padding-top: 0 !important; + } + .menu-right > image { + /* Do not make this smaller than the size of the svg, but upscale for + * people with large fonts. */ + width: max(1em, 16px) !important; + } + .menu-right:-moz-locale-dir(rtl) { + list-style-image: url("chrome://global/skin/icons/arrow-left.svg") !important; + } + menulist > menupopup > menuitem { + padding-inline-end: 1em !important; + } + menupopup[needsgutter] menu:not([icon], .menu-iconic), + menupopup[needsgutter] menuitem:not([type="checkbox"], [icon], .menuitem-iconic) { + padding-inline-start: 36px !important; + } + /* For Windows 10, checkbox, radio and iconified menuitems need the default + appearance disabled so they pick up our custom styles instead. */ + .menu-iconic-left, + menuitem[type="checkbox"], + menuitem[type="radio"] { + appearance: none !important; /* to override more specific selectors above. */ + width: unset !important; + } + .menu-iconic > .menu-iconic-left, + .menuitem-iconic > .menu-iconic-left { + margin-inline-end: 8px !important; + } + menuitem[checked="true"] { + padding-inline-start: 12px !important; + } + /* We need to do something to override the default style for selected + checkboxes and radio buttons because the native drawing we use on other + Windows versions looks pretty bad with the Win10 styles, so for now we'll + insert a generic checkmark icon for both types. */ + menuitem[checked="true"] > .menu-iconic-left { + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + fill-opacity: var(--menu-icon-opacity) !important; + list-style-image: url("../icons/menu-check.svg") !important; + width: 16px !important; + margin-inline-end: 8px !important; + } + menuitem[checked="true"] > .menu-iconic-left > .menu-iconic-icon { + display: initial !important; + } + menuseparator { + appearance: none !important; + border-top: 1px solid var(--menu-border-color) !important; + border-bottom: none !important; + padding: 0 !important; + /* The side margins should align with the start of the menu item text. */ + margin: 2px 1em !important; + } + menupopup { + /* Disable the default appearance so we can override the native styling. */ + appearance: none !important !important; + /* Prevent any background or border around the outside of the shadow. */ + background-color: transparent !important; + border: none !important; + /* To account for the box-shadow below */ + margin: -4px !important; + } + menupopup > menuitem, + menupopup > menu { + padding-block: 0.5em !important; + padding-inline-start: 1em !important; + } + .menupopup-arrowscrollbox[part*="content"] { + box-shadow: var(--windows-panel-box-shadow) !important; + margin: 4px !important; + padding: 4px 0 !important; + color: var(--menu-color) !important; + background: var(--menu-background-color) !important; + border-radius: 4px !important; + border: 1px solid var(--menu-border-color) !important; + min-width: 0 !important; + min-height: 0 !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_menupopup") { + .menupopup-arrowscrollbox[part*="content"] { + border-radius: 0px !important; + } + } + menupopup > menu > menupopup { + /* align submenus */ + margin-inline-start: var(--nested-margin) !important; + margin-top: var(--nested-margin) !important; + } + /* :not([hidden]) to avoid the display: flex unhiding the item. */ + #context-navigation:not([hidden]) { + /* The Windows 10 version of the navigation area needs the scrollbox's + background color, not the builtin "menu" color. */ + background-color: inherit !important; + /* Match the inner top padding of the menupopup to center the icons visually. */ + padding-bottom: 4px !important; + /* Use modern flex box so we can use percentage widths to redistribute + * spacing manually. */ + display: flex !important; + flex-direction: row !important; + /* We want the first and last icons to align with the text items which + * have 1em inline padding, and for icons to be centered within their + * hover state, so each icon of 16px needs 1em padding on both sides: + */ + --menuitem-min-width: calc(2em + 16px) !important; + /* The total width of the container should then be at least 4 times that: */ + min-width: calc(4 * var(--menuitem-min-width)) !important; + } + #context-navigation > .menuitem-iconic { + flex: 1 0 auto !important; + padding: 0 !important; + } + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] { + /* We only show hover state on the icons. This ensures there is no + * dead space between icons, but the visible hover state is only + * around the icons, and all the icons' hover states match each other. + */ + background-color: transparent !important; + } + #context-navigation > .menuitem-iconic > .menu-iconic-left { + margin: 0 !important; + padding: 0 !important; + } + /* override styles from shared/contextmenu.inc.css */ + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + width: var(--menuitem-min-width) !important; + height: 32px !important; + padding: 8px 1em !important; + margin: 0 !important; + } + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + background-color: var(--menuitem-hover-background-color) !important; + } + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: transparent !important; + } + /* If the menu is wider than the icons strictly need, the elements + * will stretch to pick up the extra space. In that case, the outer icons + * should align to the start/end of their containing : */ + #context-navigation > .menuitem-iconic:first-child { + justify-content: flex-start !important; + -moz-box-pack: start !important; + } + #context-navigation > .menuitem-iconic:last-child { + justify-content: flex-end !important; + -moz-box-pack: end !important; + } + #context-navigation > .menuitem-iconic:last-child, + #context-navigation > .menuitem-iconic:first-child { + flex-grow: 0 !important; + /* The first and last items start off as 16px + 2em, like the other ones. + * 100% is the width of the parent, which will be at least 4 * the width of + * an individual item (16px + 2em) + * So 100% - 4 item widths gets us the remaining available space if + * #context-navigation is wider than that. + * Then divide by 6 to get the 1/6 of that extra space, and add this space + * to the width of the first/last items. + * This ensures that the 3 visual gaps between the 4 icons are all the same + * size, with each 1/3 of the available space evenly distributed between + * the 2 items on either side of the gap. + */ + width: calc(var(--menuitem-min-width) + (100% - 4 * var(--menuitem-min-width)) / 6) !important; + } + /* 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 { + margin-top: 0 !important; + margin-inline: 0 !important; + } + } +} /*= Fully Theme Mode =========================================================*/ @supports -moz-bool-pref("userChrome.theme.proton_color") { /*= Default Colors - Hard Coded ==============================================*/ diff --git a/icons/menu-check.svg b/icons/menu-check.svg new file mode 100644 index 00000000..3c6f422e --- /dev/null +++ b/icons/menu-check.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/src/compatibility/_theme.scss b/src/compatibility/_theme.scss index 331a8a20..d7aeb0d4 100644 --- a/src/compatibility/_theme.scss +++ b/src/compatibility/_theme.scss @@ -144,7 +144,7 @@ vbox[part="drop-indicator-bar"] > image[part="drop-indicator"] { } /*= Menu color #477 ==========================================================*/ -@media (-moz-windows-non-native-menus) { +@include NonNativeMenu { :root { /* Override some menu color variables for light browser themes. */ --menuitem-hover-background-color: #e0e0e6; diff --git a/src/theme/_index.scss b/src/theme/_index.scss index f9ebe339..932f27c0 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -8,6 +8,11 @@ @import "private"; } +/*= None Native Menu =========================================================*/ +@include Option("userChrome.theme.non_native_menu") { + @import "non_native_menu"; +} + /*= Fully Theme Mode =========================================================*/ // Default Themes // https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/extensions/default-theme/manifest.json diff --git a/src/theme/_non_native_menu.scss b/src/theme/_non_native_menu.scss index 9b72c67b..8210d774 100644 --- a/src/theme/_non_native_menu.scss +++ b/src/theme/_non_native_menu.scss @@ -7,6 +7,8 @@ :root { /* Override some menu color variables for light browser themes. */ --menu-icon-opacity: 0.7; + --nested-margin: -10px; + --windows-panel-box-shadow: 0 0 4px hsla(0,0%,0%,.2); } /* Override the menu color variables for dark browser themes. */ @@ -20,7 +22,7 @@ /* For Windows 10, prevent using native OS drawing of certain menu elements, especially background colors and shadows. */ menu, menuitem, menucaption { - appearance: none; + appearance: none !important; } /* Menu item text also needs native drawing disabled. */ @@ -28,14 +30,19 @@ menuitem > .menu-text, menu > .menu-iconic-text, menuitem > .menu-iconic-text { - appearance: none; + appearance: none !important; margin-inline-start: 0 !important; /* need !important to override the other !important below... */ padding-inline-end: 0; } + menu[_moz-menuactive="true"]:not([disabled="true"]), + menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + background-color: var(--menuitem-hover-background-color) !important; + color: var(--menu-color) !important; + } menu:where([_moz-menuactive="true"][disabled="true"]), menuitem:where([_moz-menuactive="true"][disabled="true"]) { - background-color: -moz-menuhoverdisabled; + background-color: transparent !important; } .menu-text { @@ -43,33 +50,33 @@ } .menu-right { - appearance: none; - width: unset; - list-style-image: url("chrome://global/skin/icons/arrow-right.svg"); - -moz-context-properties: fill, fill-opacity; - fill: currentColor; - fill-opacity: var(--menu-icon-opacity); - margin-inline-end: 1em; - padding-top: 0; + appearance: none !important; + width: unset !important; + list-style-image: url("chrome://global/skin/icons/arrow-right.svg") !important; + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + fill-opacity: var(--menu-icon-opacity) !important; + margin-inline-end: 1em !important; + padding-top: 0 !important; } .menu-right > image { /* Do not make this smaller than the size of the svg, but upscale for * people with large fonts. */ - width: max(1em, 16px); + width: max(1em, 16px) !important; } .menu-right:-moz-locale-dir(rtl) { - list-style-image: url("chrome://global/skin/icons/arrow-left.svg"); + list-style-image: url("chrome://global/skin/icons/arrow-left.svg") !important; } menulist > menupopup > menuitem { - padding-inline-end: 1em; + padding-inline-end: 1em !important; } menupopup[needsgutter] menu:not([icon], .menu-iconic), - menupopup[needsgutter] menuitem:not([checked="true"], [icon], .menuitem-iconic) { - padding-inline-start: 36px; + menupopup[needsgutter] menuitem:not([type="checkbox"], [icon], .menuitem-iconic) { + padding-inline-start: 36px !important; } /* For Windows 10, checkbox, radio and iconified menuitems need the default @@ -78,16 +85,16 @@ menuitem[type="checkbox"], menuitem[type="radio"] { appearance: none !important; /* to override more specific selectors above. */ - width: unset; + width: unset !important; } .menu-iconic > .menu-iconic-left, .menuitem-iconic > .menu-iconic-left { - margin-inline-end: 8px; + margin-inline-end: 8px !important; } menuitem[checked="true"] { - padding-inline-start: 12px; + padding-inline-start: 12px !important; } /* We need to do something to override the default style for selected @@ -95,24 +102,64 @@ Windows versions looks pretty bad with the Win10 styles, so for now we'll insert a generic checkmark icon for both types. */ menuitem[checked="true"] > .menu-iconic-left { - -moz-context-properties: fill, fill-opacity; - fill: currentColor; - fill-opacity: var(--menu-icon-opacity); - list-style-image: url("chrome://global/skin/icons/menu-check.svg"); - width: 16px; - margin-inline-end: 8px; + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + fill-opacity: var(--menu-icon-opacity) !important; + list-style-image: url("../icons/menu-check.svg") !important; + width: 16px !important; + margin-inline-end: 8px !important; } menuitem[checked="true"] > .menu-iconic-left > .menu-iconic-icon { - display: initial; + display: initial !important; } menuseparator { - appearance: none; + appearance: none !important; - border-bottom: none; - padding: 0; + border-top: 1px solid var(--menu-border-color) !important; + border-bottom: none !important; + padding: 0 !important; /* The side margins should align with the start of the menu item text. */ - margin: 2px 1em; + margin: 2px 1em !important; + } + + //-- Global - Menu Popup ----------------------------------------------------- + menupopup { + /* Disable the default appearance so we can override the native styling. */ + appearance: none !important !important; + + /* Prevent any background or border around the outside of the shadow. */ + background-color: transparent !important; + border: none !important; + /* To account for the box-shadow below */ + margin: -4px !important; + } + + menupopup > menuitem, + menupopup > menu { + padding-block: 0.5em !important; + padding-inline-start: 1em !important; + } + .menupopup-arrowscrollbox[part*="content"] { + box-shadow: var(--windows-panel-box-shadow) !important; + margin: 4px !important; + padding: 4px 0 !important; + + color: var(--menu-color) !important; + background: var(--menu-background-color) !important; + border-radius: 4px !important; + @include Option("userChrome.rounding.square_menupopup") { + border-radius: 0px !important; + } + border: 1px solid var(--menu-border-color) !important; + + min-width: 0 !important; + min-height: 0 !important; + } + menupopup > menu > menupopup { + /* align submenus */ + margin-inline-start: var(--nested-margin) !important; + margin-top: var(--nested-margin) !important; } //-- Browser ----------------------------------------------------------------- @@ -120,24 +167,25 @@ #context-navigation:not([hidden]) { /* The Windows 10 version of the navigation area needs the scrollbox's background color, not the builtin "menu" color. */ - background-color: inherit; + background-color: inherit !important; /* Match the inner top padding of the menupopup to center the icons visually. */ - padding-bottom: 4px; + padding-bottom: 4px !important; /* Use modern flex box so we can use percentage widths to redistribute * spacing manually. */ - display: flex; - flex-direction: row; + display: flex !important; + flex-direction: row !important; /* We want the first and last icons to align with the text items which * have 1em inline padding, and for icons to be centered within their * hover state, so each icon of 16px needs 1em padding on both sides: */ - --menuitem-min-width: calc(2em + 16px); + --menuitem-min-width: calc(2em + 16px) !important; /* The total width of the container should then be at least 4 times that: */ - min-width: calc(4 * var(--menuitem-min-width)); + min-width: calc(4 * var(--menuitem-min-width)) !important; } #context-navigation > .menuitem-iconic { - flex: 1 0 auto; + flex: 1 0 auto !important; + padding: 0 !important; } #context-navigation > .menuitem-iconic[_moz-menuactive="true"] { @@ -145,43 +193,43 @@ * dead space between icons, but the visible hover state is only * around the icons, and all the icons' hover states match each other. */ - background-color: transparent; + background-color: transparent !important; } #context-navigation > .menuitem-iconic > .menu-iconic-left { - margin: 0; - padding: 0; + margin: 0 !important; + padding: 0 !important; } /* override styles from shared/contextmenu.inc.css */ #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { - width: var(--menuitem-min-width); - height: 32px; - padding: 8px 1em; - margin: 0; + width: var(--menuitem-min-width) !important; + height: 32px !important; + padding: 8px 1em !important; + margin: 0 !important; } #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { - background-color: -moz-menuhover; + background-color: var(--menuitem-hover-background-color) !important; // -moz-menuhover } #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left > .menu-iconic-icon { - background-color: -moz-menuhoverdisabled; + background-color: transparent !important;// -moz-menuhoverdisabled } /* If the menu is wider than the icons strictly need, the elements * will stretch to pick up the extra space. In that case, the outer icons * should align to the start/end of their containing : */ #context-navigation > .menuitem-iconic:first-child { - -moz-box-pack: start; + @include BoxPack("start", true); } #context-navigation > .menuitem-iconic:last-child { - -moz-box-pack: end; + @include BoxPack("end", true); } #context-navigation > .menuitem-iconic:last-child, #context-navigation > .menuitem-iconic:first-child { - flex-grow: 0; + flex-grow: 0 !important; /* The first and last items start off as 16px + 2em, like the other ones. * 100% is the width of the parent, which will be at least 4 * the width of * an individual item (16px + 2em) @@ -193,15 +241,15 @@ * size, with each 1/3 of the available space evenly distributed between * the 2 items on either side of the gap. */ - width: calc(var(--menuitem-min-width) + calc(100% - 4 * var(--menuitem-min-width)) / 6); + width: calc(var(--menuitem-min-width) + calc(100% - 4 * var(--menuitem-min-width)) / 6) !important; } /* 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 { - margin-top: 0; - margin-inline: 0; + margin-top: 0 !important; + margin-inline: 0 !important; } } diff --git a/src/utils/_native_menu.scss b/src/utils/_native_menu.scss index acad4a9b..45892d06 100644 --- a/src/utils/_native_menu.scss +++ b/src/utils/_native_menu.scss @@ -1,4 +1,5 @@ @use "option" as *; +@use "os" as *; @mixin NativeMenu() { @include Option("widget.macos.native-context-menus", "widget.gtk.native-context-menus") { @@ -13,6 +14,17 @@ } } +@mixin NonNativeMenu() { + @media (-moz-windows-non-native-menus) { + @content; + } + @include Option("userChrome.theme.non_native_menu") { + @include OS("linux") { + @content; + } + } +} + @mixin WinNativeMenu() { @media not (-moz-windows-non-native-menus) { @content; diff --git a/user.js b/user.js index 1a160f00..adf14533 100644 --- a/user.js +++ b/user.js @@ -71,6 +71,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.theme.private", true); // user_pref("userChrome.theme.proton_color.dark_blue_accent", true); // user_pref("userChrome.theme.monospace", true); +// user_pref("userChrome.theme.non_native_menu", true); // only for linux // user_pref("userChrome.compatibility.os.win11", true); // user_pref("userChrome.decoration.disable_panel_animate", true); From 40694b17bdb6cdc0265c2e1fe335e1eed4b27379 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Thu, 6 Apr 2023 21:46:36 +0900 Subject: [PATCH 17/37] Fix: Theme - Linux non native menu color --- css/leptonChrome.css | 582 ++++++++++++++++----------- css/leptonContent.css | 144 +++++-- src/compatibility/_theme.scss | 36 -- src/icons/layout/_menu.scss | 10 + src/icons/layout/_menu_common.scss | 27 +- src/icons/layout/_menu_contents.scss | 10 + src/theme/_fully_color.scss | 2 +- src/theme/_index.scss | 9 +- src/theme/_non_native_menu.scss | 19 +- src/theme/_proton_color.scss | 36 ++ 10 files changed, 564 insertions(+), 311 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index b09f9ddf..72cfb300 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -145,74 +145,6 @@ #bookmarksPanel[lwt-sidebar="true"] { --focus-outline-color: var(--in-content-focus-outline-color, AccentColor) !important; } - /*= Menu color #477 ==========================================================*/ - @media (-moz-windows-non-native-menus) { - :root { - /* Override some menu color variables for light browser themes. */ - --menuitem-hover-background-color: #e0e0e6; - --menu-background-color: #f9f9fb; - --menu-color: #15141a; - --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); - --menu-disabled-color: rgba(21, 20, 26, 0.4); - --menu-border-color: #cfcfd8; - --menu-icon-opacity: 0.7; - /* Declare menu colors for dark themes, but don't override anything yet. */ - --dark-menuitem-hover-background-color: #52525e; - --dark-menu-background-color: #2b2a33; - --dark-menu-color: #fbfbfe; - --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); - --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); - --dark-menu-border-color: #5b5b66; - --dark-menu-icon-opacity: 1; - } - /* Override the menu color variables for dark browser themes. */ - } - @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { - :root { - --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); - --menu-background-color: var(--dark-menu-background-color); - --menu-color: var(--dark-menu-color); - --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); - --menu-disabled-color: var(--dark-menu-disabled-color); - --menu-border-color: var(--dark-menu-border-color); - --menu-icon-opacity: var(--dark-menu-icon-opacity); - } - } - @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - @media (-moz-gtk-csd-available) { - :root { - /* Override some menu color variables for light browser themes. */ - --menuitem-hover-background-color: #e0e0e6; - --menu-background-color: #f9f9fb; - --menu-color: #15141a; - --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); - --menu-disabled-color: rgba(21, 20, 26, 0.4); - --menu-border-color: #cfcfd8; - --menu-icon-opacity: 0.7; - /* Declare menu colors for dark themes, but don't override anything yet. */ - --dark-menuitem-hover-background-color: #52525e; - --dark-menu-background-color: #2b2a33; - --dark-menu-color: #fbfbfe; - --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); - --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); - --dark-menu-border-color: #5b5b66; - --dark-menu-icon-opacity: 1; - } - /* Override the menu color variables for dark browser themes. */ - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - :root { - --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); - --menu-background-color: var(--dark-menu-background-color); - --menu-color: var(--dark-menu-color); - --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); - --menu-disabled-color: var(--dark-menu-disabled-color); - --menu-border-color: var(--dark-menu-border-color); - --menu-icon-opacity: var(--dark-menu-icon-opacity); - } - } - } - } /*= Firefox View Border #498 =================================================*/ :root:not([privatebrowsingmode="temporary"])[firefoxviewhidden] #firefox-view-button + #tabbrowser-tabs { border-inline-start: none !important; @@ -1206,105 +1138,6 @@ } } } -/*= Private Theme Mode =======================================================*/ -@supports -moz-bool-pref("userChrome.theme.private") { - :root[privatebrowsingmode="temporary"], - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"], - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"], - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] { - --lwt-additional-images: none !important; - --lwt-header-image: none !important; - --lwt-tab-text: rgba(232, 224, 255) !important; - --lwt-text-color: var(--lwt-tab-text) !important; - --toolbar-color: var(--lwt-tab-text) !important; - --toolbar-non-lwt-textcolor: var(--lwt-tab-text) !important; - --arrowpanel-color: var(--lwt-tab-text) !important; - --focus-outline-color: rgb(172, 112, 255) !important; - --toolbar-bgcolor: #322560 !important; - --toolbar-non-lwt-bgcolor: var(--toolbar-bgcolor) !important; - --lwt-accent-color: #19162f !important; - --in-content-page-background: var(--lwt-accent-color) !important; - --toolbar-field-background-color: #0b0724 !important; - --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; - --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; - --toolbarbutton-active-background: #4d4175 !important; - --arrowpanel-background: #1d1935 !important; - --arrowpanel-border-color: #322560 !important; - --chrome-content-separator-color: none !important; - --toolbar-field-focus-background-color: var(--toolbar-field-background-color) !important; - --autocomplete-popup-hover-background: #1d1935 !important; - --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; - --button-bgcolor: color-mix(in srgb, currentColor 13%, transparent) !important; - --button-hover-bgcolor: color-mix(in srgb, currentColor 17%, transparent) !important; - --button-active-bgcolor: color-mix(in srgb, currentColor 30%, transparent) !important; - --urlbar-box-bgcolor: color-mix(in srgb, currentColor 16%, transparent) !important; - } - :root[privatebrowsingmode="temporary"] #navigator-toolbox:-moz-lwtheme, - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] - #navigator-toolbox:-moz-lwtheme, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - #navigator-toolbox:-moz-lwtheme, - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] - #navigator-toolbox:-moz-lwtheme, - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] - #navigator-toolbox:-moz-lwtheme { - --lwt-tabs-border-color: var(--focus-outline-color) !important; - } - :root[privatebrowsingmode="temporary"] #navigator-toolbox, - :root[privatebrowsingmode="temporary"][lwtheme-image] #navigator-toolbox:-moz-lwtheme, - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #navigator-toolbox, - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"][lwtheme-image] - #navigator-toolbox:-moz-lwtheme, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] - #navigator-toolbox:-moz-lwtheme, - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #navigator-toolbox, - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"][lwtheme-image] - #navigator-toolbox:-moz-lwtheme, - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] - #navigator-toolbox, - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"][lwtheme-image] - #navigator-toolbox:-moz-lwtheme { - background-color: var(--lwt-accent-color) !important; - } - :root[privatebrowsingmode="temporary"] #TabsToolbar, - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #TabsToolbar, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - #TabsToolbar, - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #TabsToolbar, - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] - #TabsToolbar { - --lwt-tab-line-color: var(--focus-outline-color) !important; - } - :root[privatebrowsingmode="temporary"] notification-message[message-bar-type="infobar"], - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] - notification-message[message-bar-type="infobar"], - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - notification-message[message-bar-type="infobar"], - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] - notification-message[message-bar-type="infobar"], - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] - notification-message[message-bar-type="infobar"] { - --message-bar-text-color: var(--lwt-tab-text) !important; - --in-content-page-color: var(--lwt-tab-text) !important; - } - :root[privatebrowsingmode="temporary"] menupopup, - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] menupopup, - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] - menupopup, - :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] menupopup, - :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] - menupopup { - --menuitem-hover-background-color: #413d54 !important; - --menu-background-color: #1d1935 !important; - --menu-color: #eeeeee !important; - --menuitem-disabled-hover-background-color: #ffffff00 !important; - --menu-disabled-color: #ffffff50 !important; - --menu-border-color: #322560 !important; - } -} /*= None Native Menu =========================================================*/ @supports -moz-bool-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { @@ -1314,9 +1147,9 @@ --nested-margin: -10px; --windows-panel-box-shadow: 0 0 4px hsla(0, 0%, 0%, 0.2); } - /* Override the menu color variables for dark browser themes. */ - @media (prefers-color-scheme: dark) { + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { :root { + /* Override the menu color variables for dark browser themes. */ --menu-icon-opacity: 1; } } @@ -1336,6 +1169,20 @@ margin-inline-start: 0 !important; /* need !important to override the other !important below... */ padding-inline-end: 0; } + menu > .menu-text::before, + menuitem > .menu-text::before, + menu > .menu-iconic-text::before, + menuitem > .menu-iconic-text::before { + box-sizing: border-box !important; + height: calc(2px + 1.2em) !important; + padding: 1px 0 !important; + } + menu > .menu-text[value*="…"]::before, + menuitem > .menu-text[value*="…"]::before, + menu > .menu-iconic-text[value*="…"]::before, + menuitem > .menu-iconic-text[value*="…"]::before { + padding: 0 !important; + } menu[_moz-menuactive="true"]:not([disabled="true"]), menuitem[_moz-menuactive="true"]:not([disabled="true"]) { background-color: var(--menuitem-hover-background-color) !important; @@ -1370,7 +1217,7 @@ padding-inline-end: 1em !important; } menupopup[needsgutter] menu:not([icon], .menu-iconic), - menupopup[needsgutter] menuitem:not([type="checkbox"], [icon], .menuitem-iconic) { + menupopup[needsgutter] menuitem:not([type="checkbox"], [type="radio"], [icon], .menuitem-iconic) { padding-inline-start: 36px !important; } /* For Windows 10, checkbox, radio and iconified menuitems need the default @@ -1682,6 +1529,74 @@ --uc-warning-icon-bgcolor: var(--in-content-page-color); } } + /*= Menu color #477 ==========================================================*/ + @media (-moz-windows-non-native-menus) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + } + @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + } + } @supports -moz-bool-pref("userChrome.theme.proton_color.dark_blue_accent") { @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { :host, @@ -1759,6 +1674,104 @@ } } } +@supports -moz-bool-pref("userChrome.theme.private") { + :root[privatebrowsingmode="temporary"], + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] { + --lwt-additional-images: none !important; + --lwt-header-image: none !important; + --lwt-tab-text: rgba(232, 224, 255) !important; + --lwt-text-color: var(--lwt-tab-text) !important; + --toolbar-color: var(--lwt-tab-text) !important; + --toolbar-non-lwt-textcolor: var(--lwt-tab-text) !important; + --arrowpanel-color: var(--lwt-tab-text) !important; + --focus-outline-color: rgb(172, 112, 255) !important; + --toolbar-bgcolor: #322560 !important; + --toolbar-non-lwt-bgcolor: var(--toolbar-bgcolor) !important; + --lwt-accent-color: #19162f !important; + --in-content-page-background: var(--lwt-accent-color) !important; + --toolbar-field-background-color: #0b0724 !important; + --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; + --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; + --toolbarbutton-active-background: #4d4175 !important; + --arrowpanel-background: #1d1935 !important; + --arrowpanel-border-color: #322560 !important; + --chrome-content-separator-color: none !important; + --toolbar-field-focus-background-color: var(--toolbar-field-background-color) !important; + --autocomplete-popup-hover-background: #1d1935 !important; + --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; + --button-bgcolor: color-mix(in srgb, currentColor 13%, transparent) !important; + --button-hover-bgcolor: color-mix(in srgb, currentColor 17%, transparent) !important; + --button-active-bgcolor: color-mix(in srgb, currentColor 30%, transparent) !important; + --urlbar-box-bgcolor: color-mix(in srgb, currentColor 16%, transparent) !important; + } + :root[privatebrowsingmode="temporary"] #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme { + --lwt-tabs-border-color: var(--focus-outline-color) !important; + } + :root[privatebrowsingmode="temporary"] #navigator-toolbox, + :root[privatebrowsingmode="temporary"][lwtheme-image] #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #navigator-toolbox, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #navigator-toolbox, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + } + :root[privatebrowsingmode="temporary"] #TabsToolbar, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #TabsToolbar, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #TabsToolbar { + --lwt-tab-line-color: var(--focus-outline-color) !important; + } + :root[privatebrowsingmode="temporary"] notification-message[message-bar-type="infobar"], + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"] { + --message-bar-text-color: var(--lwt-tab-text) !important; + --in-content-page-color: var(--lwt-tab-text) !important; + } + :root[privatebrowsingmode="temporary"] menupopup, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] menupopup, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + menupopup, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] menupopup, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + menupopup { + --menuitem-hover-background-color: #413d54 !important; + --menu-background-color: #1d1935 !important; + --menu-color: #eeeeee !important; + --menuitem-disabled-hover-background-color: #ffffff00 !important; + --menu-disabled-color: #ffffff50 !important; + --menu-border-color: #322560 !important; + } +} @supports -moz-bool-pref("userChrome.theme.fully_color") { /*== Menu Color ==============================================================*/ html#main-window menupopup:not(.in-menulist) { @@ -1826,6 +1839,53 @@ --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; } } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + html#main-window menupopup:not(.in-menulist) { + /* Above FF v105 #466 */ + --panel-color: var(--menu-color) !important; + --panel-background: var(--menu-background-color) !important; + --panel-border-color: var(--menu-border-color) !important; + } + html#main-window menupopup:not(.in-menulist):not([placespopup]) menuseparator, + html#main-window menupopup:not(.in-menulist)[placespopup] menuseparator::before { + border-top: 1px solid var(--menu-border-color) !important; + } + html#main-window menupopup:not(.in-menulist) menu[disabled="true"], + html#main-window menupopup:not(.in-menulist) menu[_moz-menuactive="true"][disabled="true"], + html#main-window menupopup:not(.in-menulist) menuitem[disabled="true"], + html#main-window menupopup:not(.in-menulist) menuitem[_moz-menuactive="true"][disabled="true"] { + color: var(--menu-disabled-color) !important; + } + html#main-window menupopup:not(.in-menulist) menu[_moz-menuactive="true"]:not([disabled="true"]), + html#main-window menupopup:not(.in-menulist) menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + background-color: var(--menuitem-hover-background-color) !important; + color: var(--menu-color) !important; + } + html#main-window + menupopup + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: var(--menuitem-hover-background-color) !important; + } + html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], + html#main-window + menupopup + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: transparent !important; + } + @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { + :root[style*="background-noodles-right"] menupopup { + --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; + } + } + } + } @media not all and (-moz-gtk-csd-available) { window:is(#bookmarksPanel, #history-panel)[lwt-sidebar="true"] menupopup { --panel-color: var(--lwt-sidebar-text-color, var(--menu-color)) !important; @@ -11151,21 +11211,14 @@ } } } - /* Padding - Windows */ - @media (-moz-os-version: windows-win7), + /* Padding - Non Native */ + @media (-moz-gtk-csd-available), + (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root { - --bookmark-menu-icon-text-padding: calc( - var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) - ); - --bookmark-menu-icon-background-padding: calc( - var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) - ); - } @media (-moz-windows-non-native-menus) { :root { --context-menu-background-padding: 1em; @@ -11175,6 +11228,127 @@ ); --bookmark-menu-icon-align-padding: 0px; } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #context_openANewTab.tabmix-newtab-menu-icon { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: 24px; + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #context_openANewTab.tabmix-newtab-menu-icon { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + } + } + /* Padding - Windows */ + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows-win10) { + :root { + --bookmark-menu-icon-text-padding: calc( + var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) + ); + --bookmark-menu-icon-background-padding: calc( + var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) + ); } @media not (-moz-windows-non-native-menus) { :root { @@ -11309,54 +11483,6 @@ padding-inline-start: 0 !important; } } - @media (-moz-windows-non-native-menus) { - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #context_sendTabToDevicePopupMenu, - #context-sendpagetodevice-popup, - #context-sendlinktodevice-popup - ) - > menuitem, - .openintabs-menuitem, - #blockedPopupDontShowMessage, - #BMB_viewBookmarksToolbar, - #context_openANewTab.tabmix-newtab-menu-icon { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } - } } /* Padding - Linux */ @media (-moz-gtk-csd-available) { diff --git a/css/leptonContent.css b/css/leptonContent.css index a6db2c6c..7b5b2815 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -730,6 +730,74 @@ --uc-warning-icon-bgcolor: var(--in-content-page-color); } } + /*= Menu color #477 ==========================================================*/ + @media (-moz-windows-non-native-menus) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + } + @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + } + } @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { :host, @@ -3052,21 +3120,14 @@ background-position: var(--uc-menu-background-position) var(--context-menu-background-padding) center !important; padding-inline-start: var(--context-menu-background-padding) !important; } - /* Padding - Windows */ - @media (-moz-os-version: windows-win7), + /* Padding - Non Native */ + @media (-moz-gtk-csd-available), + (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root { - --bookmark-menu-icon-text-padding: calc( - var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) - ); - --bookmark-menu-icon-background-padding: calc( - var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) - ); - } @media (-moz-windows-non-native-menus) { :root { --context-menu-background-padding: 1em; @@ -3076,6 +3137,56 @@ ); --bookmark-menu-icon-align-padding: 0px; } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: 24px; + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + } + } + /* Padding - Windows */ + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows-win10) { + :root { + --bookmark-menu-icon-text-padding: calc( + var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) + ); + --bookmark-menu-icon-background-padding: calc( + var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) + ); } @media not (-moz-windows-non-native-menus) { :root { @@ -3175,19 +3286,6 @@ padding-inline-start: 0 !important; } } - @media (-moz-windows-non-native-menus) { - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } - } } /* Padding - Linux */ @media (-moz-gtk-csd-available) { diff --git a/src/compatibility/_theme.scss b/src/compatibility/_theme.scss index d7aeb0d4..d63b14a1 100644 --- a/src/compatibility/_theme.scss +++ b/src/compatibility/_theme.scss @@ -143,42 +143,6 @@ vbox[part="drop-indicator-bar"] > image[part="drop-indicator"] { --focus-outline-color: var(--in-content-focus-outline-color, AccentColor) !important; } -/*= Menu color #477 ==========================================================*/ -@include NonNativeMenu { - :root { - /* Override some menu color variables for light browser themes. */ - --menuitem-hover-background-color: #e0e0e6; - --menu-background-color: #f9f9fb; - --menu-color: #15141a; - --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); - --menu-disabled-color: rgba(21, 20, 26, 0.4); - --menu-border-color: #cfcfd8; - --menu-icon-opacity: 0.7; - - /* Declare menu colors for dark themes, but don't override anything yet. */ - --dark-menuitem-hover-background-color: #52525e; - --dark-menu-background-color: #2b2a33; - --dark-menu-color: #fbfbfe; - --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); - --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); - --dark-menu-border-color: #5b5b66; - --dark-menu-icon-opacity: 1; - } - - /* Override the menu color variables for dark browser themes. */ - @include Dark { - :root { - --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); - --menu-background-color: var(--dark-menu-background-color); - --menu-color: var(--dark-menu-color); - --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); - --menu-disabled-color: var(--dark-menu-disabled-color); - --menu-border-color: var(--dark-menu-border-color); - --menu-icon-opacity: var(--dark-menu-icon-opacity); - } - } -} - /*= Firefox View Border #498 =================================================*/ @mixin _firefox_view_border_remove() { #tabbrowser-tabs { diff --git a/src/icons/layout/_menu.scss b/src/icons/layout/_menu.scss index 96e4fa81..e198736c 100644 --- a/src/icons/layout/_menu.scss +++ b/src/icons/layout/_menu.scss @@ -78,6 +78,16 @@ $_layoutCommonMenus: ( } } +/* Padding - Non Native */ +@include OS($win, $linux) { + @include NonNativeMenu { + @include _layout_root_non_native; + @include _layoutIconMenus { + @include _layout_init_non_native(); + } + } +} + /* Padding - Windows */ @include _layout_root_win; @include OS($win) { diff --git a/src/icons/layout/_menu_common.scss b/src/icons/layout/_menu_common.scss index 2ae52648..60658adf 100644 --- a/src/icons/layout/_menu_common.scss +++ b/src/icons/layout/_menu_common.scss @@ -77,6 +77,21 @@ $_initialMenus: selector.append( padding-inline-start: var(--context-menu-background-padding) !important; } +@mixin _layout_root_non_native() { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: #{ 16px + 8px }; + --menu-background-padding-default: calc(var(--context-menu-background-padding) + var(--context-menu-text-padding)); + + --bookmark-menu-icon-align-padding: 0px; + } +} + +@mixin _layout_init_non_native() { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; +} + @mixin _layout_win_native_menu_popup() { @include NativeMenuPopup { .menu-iconic, @@ -107,14 +122,6 @@ $_initialMenus: selector.append( :root { --bookmark-menu-icon-text-padding: calc(var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline)); --bookmark-menu-icon-background-padding: calc(var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding)); - - @include WinNonNativeMenu() { - --context-menu-background-padding: 1em; - --context-menu-text-padding: #{ 16px + 8px }; - --menu-background-padding-default: calc(var(--context-menu-background-padding) + var(--context-menu-text-padding)); - - --bookmark-menu-icon-align-padding: 0px; - } } @include WinNativeMenu() { @@ -170,10 +177,6 @@ $_initialMenus: selector.append( background-position: left var(--context-menu-background-padding) center !important; padding-inline-start: 0 !important; } - @include WinNonNativeMenu() { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } } @mixin _layout_root_linux() { diff --git a/src/icons/layout/_menu_contents.scss b/src/icons/layout/_menu_contents.scss index b7b59db4..f772c6a8 100644 --- a/src/icons/layout/_menu_contents.scss +++ b/src/icons/layout/_menu_contents.scss @@ -36,6 +36,16 @@ $_placesPopupSetMenus: selector.nest( @include _layout_init_padding; } +/* Padding - Non Native */ +@include OS($win, $linux) { + @include NonNativeMenu { + @include _layout_root_non_native; + @include _library_contextMenu { + @include _layout_init_non_native(); + } + } +} + /* Padding - Windows */ @include _layout_root_win; @include OS($win) { diff --git a/src/theme/_fully_color.scss b/src/theme/_fully_color.scss index 9e6f1cb4..b5bdeefe 100644 --- a/src/theme/_fully_color.scss +++ b/src/theme/_fully_color.scss @@ -21,7 +21,7 @@ html#main-window menupopup:not(.in-menulist) { ) !important; } -@media (-moz-windows-non-native-menus) { +@include NonNativeMenu { html#main-window menupopup { &:not(.in-menulist) { /* Above FF v105 #466 */ diff --git a/src/theme/_index.scss b/src/theme/_index.scss index 932f27c0..eb2f7c8d 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -3,11 +3,6 @@ @import "system_default_theme"; } -/*= Private Theme Mode =======================================================*/ -@include Option("userChrome.theme.private") { - @import "private"; -} - /*= None Native Menu =========================================================*/ @include Option("userChrome.theme.non_native_menu") { @import "non_native_menu"; @@ -25,6 +20,10 @@ @import "dark_blue_accent"; } } +@include Option("userChrome.theme.private") { + @import "private"; +} + @include Option("userChrome.theme.fully_color") { @import "fully_color"; @import "waterfox"; diff --git a/src/theme/_non_native_menu.scss b/src/theme/_non_native_menu.scss index 8210d774..be74fa20 100644 --- a/src/theme/_non_native_menu.scss +++ b/src/theme/_non_native_menu.scss @@ -9,11 +9,8 @@ --menu-icon-opacity: 0.7; --nested-margin: -10px; --windows-panel-box-shadow: 0 0 4px hsla(0,0%,0%,.2); - } - - /* Override the menu color variables for dark browser themes. */ - @media (prefers-color-scheme: dark) { - :root { + @include Dark { + /* Override the menu color variables for dark browser themes. */ --menu-icon-opacity: 1; } } @@ -33,6 +30,16 @@ appearance: none !important; margin-inline-start: 0 !important; /* need !important to override the other !important below... */ padding-inline-end: 0; + + // Align + &::before { + box-sizing: border-box !important; + height: calc(2px + 1.2em) !important; + padding: 1px 0 !important; + } + &[value*="…"]::before { + padding: 0 !important; + } } menu[_moz-menuactive="true"]:not([disabled="true"]), @@ -75,7 +82,7 @@ } menupopup[needsgutter] menu:not([icon], .menu-iconic), - menupopup[needsgutter] menuitem:not([type="checkbox"], [icon], .menuitem-iconic) { + menupopup[needsgutter] menuitem:not([type="checkbox"], [type="radio"], [icon], .menuitem-iconic) { padding-inline-start: 36px !important; } diff --git a/src/theme/_proton_color.scss b/src/theme/_proton_color.scss index b1e9d6cd..af3af927 100644 --- a/src/theme/_proton_color.scss +++ b/src/theme/_proton_color.scss @@ -165,3 +165,39 @@ --uc-warning-icon-bgcolor: var(--in-content-page-color); } } + +/*= Menu color #477 ==========================================================*/ +@include NonNativeMenu { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + + /* Override the menu color variables for dark browser themes. */ + @include Dark { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } +} From 4ebd99187411adcefacc5ea5362de61452dc356d Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Fri, 7 Apr 2023 00:14:22 +0900 Subject: [PATCH 18/37] Fix: Theme - Linux non native menu padding --- css/leptonChrome.css | 41 ++++++++++++++++++++++------ css/leptonContent.css | 6 ++-- src/icons/layout/_bookmark_menu.scss | 3 ++ src/icons/layout/_menu_common.scss | 3 +- src/theme/_non_native_menu.scss | 33 ++++++++++++++++------ 5 files changed, 67 insertions(+), 19 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 72cfb300..c88406fe 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -1146,6 +1146,7 @@ --menu-icon-opacity: 0.7; --nested-margin: -10px; --windows-panel-box-shadow: 0 0 4px hsla(0, 0%, 0%, 0.2); + --menu-checkbox-padding: 12px; } @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { :root { @@ -1202,7 +1203,7 @@ -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; fill-opacity: var(--menu-icon-opacity) !important; - margin-inline-end: 1em !important; + margin-inline-end: 1px !important; padding-top: 0 !important; } .menu-right > image { @@ -1214,7 +1215,7 @@ list-style-image: url("chrome://global/skin/icons/arrow-left.svg") !important; } menulist > menupopup > menuitem { - padding-inline-end: 1em !important; + padding-inline-end: 1px !important; } menupopup[needsgutter] menu:not([icon], .menu-iconic), menupopup[needsgutter] menuitem:not([type="checkbox"], [type="radio"], [icon], .menuitem-iconic) { @@ -1230,10 +1231,19 @@ } .menu-iconic > .menu-iconic-left, .menuitem-iconic > .menu-iconic-left { + padding-inline-end: 0 !important; margin-inline-end: 8px !important; } + menuitem[type="checkbox"], + menuitem[type="radio"] { + --menu-background-padding-default: var(--menu-checkbox-padding); + } menuitem[checked="true"] { - padding-inline-start: 12px !important; + padding-inline-start: var(--menu-checkbox-padding) !important; + } + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item .menu-iconic-left { + padding-inline-end: 0 !important; + margin-inline-end: 6px !important; } /* We need to do something to override the default style for selected checkboxes and radio buttons because the native drawing we use on other @@ -1267,9 +1277,9 @@ /* To account for the box-shadow below */ margin: -4px !important; } - menupopup > menuitem, - menupopup > menu { - padding-block: 0.5em !important; + menupopup:not([placespopup="true"]) > menuitem, + menupopup:not([placespopup="true"]) > menu { + padding-block: var(--menu-padding, 0.5em) !important; padding-inline-start: 1em !important; } .menupopup-arrowscrollbox[part*="content"] { @@ -1293,6 +1303,11 @@ margin-inline-start: var(--nested-margin) !important; margin-top: var(--nested-margin) !important; } + #mainPopupSet { + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding-default) + ); + } /* :not([hidden]) to avoid the display: flex unhiding the item. */ #context-navigation:not([hidden]) { /* The Windows 10 version of the navigation area needs the scrollbox's @@ -11222,7 +11237,8 @@ @media (-moz-windows-non-native-menus) { :root { --context-menu-background-padding: 1em; - --context-menu-text-padding: 24px; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); --menu-background-padding-default: calc( var(--context-menu-background-padding) + var(--context-menu-text-padding) ); @@ -11279,7 +11295,8 @@ @media (-moz-gtk-csd-available) { :root { --context-menu-background-padding: 1em; - --context-menu-text-padding: 24px; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); --menu-background-padding-default: calc( var(--context-menu-background-padding) + var(--context-menu-text-padding) ); @@ -11610,6 +11627,14 @@ #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { padding-inline-start: calc(var(--context-menu-background-padding) + 2px) !important; } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; + } + } menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) .menu-text, diff --git a/css/leptonContent.css b/css/leptonContent.css index 7b5b2815..d84687ea 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -3131,7 +3131,8 @@ @media (-moz-windows-non-native-menus) { :root { --context-menu-background-padding: 1em; - --context-menu-text-padding: 24px; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); --menu-background-padding-default: calc( var(--context-menu-background-padding) + var(--context-menu-text-padding) ); @@ -3153,7 +3154,8 @@ @media (-moz-gtk-csd-available) { :root { --context-menu-background-padding: 1em; - --context-menu-text-padding: 24px; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); --menu-background-padding-default: calc( var(--context-menu-background-padding) + var(--context-menu-text-padding) ); diff --git a/src/icons/layout/_bookmark_menu.scss b/src/icons/layout/_bookmark_menu.scss index 21cd48da..2c4cfbb1 100644 --- a/src/icons/layout/_bookmark_menu.scss +++ b/src/icons/layout/_bookmark_menu.scss @@ -85,6 +85,9 @@ $_bookmarkToolbarMenus: selector.nest( /* Bookmark Popup - None icon menu */ @include _layoutBookmarkMenu() { padding-inline-start: calc(var(--context-menu-background-padding) + 2px) !important; + @include Option("userChrome.theme.non_native_menu") { + margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; + } .menu-text { margin-inline-start: var(--context-menu-text-padding) !important; diff --git a/src/icons/layout/_menu_common.scss b/src/icons/layout/_menu_common.scss index 60658adf..c40c9a22 100644 --- a/src/icons/layout/_menu_common.scss +++ b/src/icons/layout/_menu_common.scss @@ -80,7 +80,8 @@ $_initialMenus: selector.append( @mixin _layout_root_non_native() { :root { --context-menu-background-padding: 1em; - --context-menu-text-padding: #{ 16px + 8px }; + --context-menu-text-padding-default: #{ 16px + 8px }; + --context-menu-text-padding: var(--context-menu-text-padding-default); --menu-background-padding-default: calc(var(--context-menu-background-padding) + var(--context-menu-text-padding)); --bookmark-menu-icon-align-padding: 0px; diff --git a/src/theme/_non_native_menu.scss b/src/theme/_non_native_menu.scss index be74fa20..62d13265 100644 --- a/src/theme/_non_native_menu.scss +++ b/src/theme/_non_native_menu.scss @@ -9,6 +9,8 @@ --menu-icon-opacity: 0.7; --nested-margin: -10px; --windows-panel-box-shadow: 0 0 4px hsla(0,0%,0%,.2); + + --menu-checkbox-padding: 12px; @include Dark { /* Override the menu color variables for dark browser themes. */ --menu-icon-opacity: 1; @@ -63,7 +65,7 @@ -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; fill-opacity: var(--menu-icon-opacity) !important; - margin-inline-end: 1em !important; + margin-inline-end: 1px !important; padding-top: 0 !important; } @@ -78,7 +80,7 @@ } menulist > menupopup > menuitem { - padding-inline-end: 1em !important; + padding-inline-end: 1px !important; } menupopup[needsgutter] menu:not([icon], .menu-iconic), @@ -97,11 +99,21 @@ .menu-iconic > .menu-iconic-left, .menuitem-iconic > .menu-iconic-left { + padding-inline-end: 0 !important; margin-inline-end: 8px !important; } + menuitem[type="checkbox"], + menuitem[type="radio"] { + --menu-background-padding-default: var(--menu-checkbox-padding); + } menuitem[checked="true"] { - padding-inline-start: 12px !important; + padding-inline-start: var(--menu-checkbox-padding) !important; + } + + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item .menu-iconic-left { + padding-inline-end: 0 !important; + margin-inline-end: 6px !important; } /* We need to do something to override the default style for selected @@ -142,10 +154,12 @@ margin: -4px !important; } - menupopup > menuitem, - menupopup > menu { - padding-block: 0.5em !important; - padding-inline-start: 1em !important; + menupopup:not([placespopup="true"]) > { + menuitem, + menu { + padding-block: var(--menu-padding, 0.5em) !important; + padding-inline-start: 1em !important; + } } .menupopup-arrowscrollbox[part*="content"] { box-shadow: var(--windows-panel-box-shadow) !important; @@ -170,6 +184,10 @@ } //-- Browser ----------------------------------------------------------------- + #mainPopupSet { + --menu-background-padding-default: calc( var(--context-menu-background-padding) + var(--context-menu-text-padding-default) ); + } + /* :not([hidden]) to avoid the display: flex unhiding the item. */ #context-navigation:not([hidden]) { /* The Windows 10 version of the navigation area needs the scrollbox's @@ -251,7 +269,6 @@ width: calc(var(--menuitem-min-width) + calc(100% - 4 * var(--menuitem-min-width)) / 6) !important; } - /* 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 { From 86d6fccb132be2787afc80b0684ce32b0111a71c Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Fri, 7 Apr 2023 18:59:44 +0900 Subject: [PATCH 19/37] Add: Theme - Linux transparent frame --- css/leptonChrome.css | 83 ++++++++++++++++++ src/tab/selected_tab/_color_like_toolbar.scss | 10 +++ src/theme/_index.scss | 7 ++ src/theme/transparent/_general.scss | 85 +++++++++++++++++++ user.js | 1 + 5 files changed, 186 insertions(+) create mode 100644 src/theme/transparent/_general.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index c88406fe..ce5a9b5e 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2173,6 +2173,76 @@ } } } +/*= Transparent ==============================================================*/ +@supports -moz-bool-pref("userChrome.theme.transparent.frame") { + @media (-moz-gtk-csd-available) { + :root:not(:-moz-lwtheme) { + --lwt-accent-color: Window !important; + --lwt-text-color: WindowText !important; + } + :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { + --lwt-accent-color: rgb(45, 36, 91) !important; + } + #main-window, + #navigator-toolbox-background { + background-color: transparent !important; + appearance: auto !important; + -moz-default-appearance: -moz-win-borderless-glass !important; + } + #navigator-toolbox { + background-color: transparent !important; + background-image: none !important; + } + #nav-bar, + #PersonalToolbar { + background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images); + background-repeat: repeat-x, var(--lwt-background-tiling); + background-position: 0 0, var(--lwt-background-alignment); + background-attachment: scroll, fixed !important; + background-size: auto 100%, auto auto; + } + #appcontent { + appearance: auto !important; + -moz-default-appearance: -moz-win-exclude-glass !important; + } + #titlebar { + --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); + --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + #titlebar { + --toolbarbutton-hover-background: color-mix( + in srgb, + var(--lwt-accent-color, Window) 40%, + rgba(255, 255, 255, 0.25) + ); + } + } + #main-menubar:not(:-moz-window-inactive), + .titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background); + border-radius: 4px; + } + #TabsToolbar { + --toolbarseparator-color: transparent; + } + #TabsToolbar .tabbrowser-tab > .tab-stack > .tab-background:not([selected="true"], [multiselected]) { + background-color: var(--uc-frame-element-background); + } + #TabsToolbar #firefox-view-button:hover:not([open]) > .toolbarbutton-icon, + #TabsToolbar .tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected="true"], [multiselected]) { + background-color: var( + --toolbarbutton-hover-background + ) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ + } + #scrollbutton-up, + #scrollbutton-down, + #alltabs-button > .toolbarbutton-badge-stack, + #TabsToolbar .toolbarbutton-1 > .toolbarbutton-icon { + background-color: var(--uc-frame-element-background); + } + } +} /*= Proton Theme Mode ========================================================*/ @supports -moz-bool-pref("userChrome.theme.proton_chrome") { /*= Proton Commons ===========================================================*/ @@ -6631,6 +6701,19 @@ background-image: linear-gradient(transparent, transparent), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; } + @supports -moz-bool-pref("userChrome.theme.transparent.frame") { + :root:not([lwtheme-image]) + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected="true"]:-moz-lwtheme { + background-image: linear-gradient(transparent, transparent), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images, none) !important; + background-repeat: repeat-x, repeat-x, var(--lwt-background-tiling) !important; + background-position: 0 0, 0 0, var(--lwt-background-alignment) !important; + } + } } /*= Multi Selected Color - More Contrast =====================================*/ @supports -moz-bool-pref("userChrome.tab.multi_selected") { diff --git a/src/tab/selected_tab/_color_like_toolbar.scss b/src/tab/selected_tab/_color_like_toolbar.scss index 24950254..e88032a5 100644 --- a/src/tab/selected_tab/_color_like_toolbar.scss +++ b/src/tab/selected_tab/_color_like_toolbar.scss @@ -12,4 +12,14 @@ */ background-image: linear-gradient(transparent, transparent), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; + + @include Option("userChrome.theme.transparent.frame") { + :root:not([lwtheme-image]) & { + background-image: linear-gradient(transparent, transparent), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images, none) !important; + + background-repeat: repeat-x, repeat-x, var(--lwt-background-tiling) !important; + background-position: 0 0, 0 0, var(--lwt-background-alignment) !important; + } + } } diff --git a/src/theme/_index.scss b/src/theme/_index.scss index eb2f7c8d..4b5ccd55 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -34,6 +34,13 @@ @import "fully_dark"; } +/*= Transparent ==============================================================*/ +@include Option("userChrome.theme.transparent.frame") { + @include OS($linux) { + @import "transparent/general"; + } +} + /*= Proton Theme Mode ========================================================*/ @include Option("userChrome.theme.proton_chrome") { @import "proton_chrome"; diff --git a/src/theme/transparent/_general.scss b/src/theme/transparent/_general.scss new file mode 100644 index 00000000..54fa5e21 --- /dev/null +++ b/src/theme/transparent/_general.scss @@ -0,0 +1,85 @@ +// Frame +:root:not(:-moz-lwtheme) { + --lwt-accent-color: Window !important; + --lwt-text-color: WindowText !important; +} +:root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { + // Alpenglow theme + --lwt-accent-color: rgb(45, 36, 91) !important; +} + +#main-window, +#navigator-toolbox-background { + background-color: transparent !important; + appearance: auto !important; + -moz-default-appearance: -moz-win-borderless-glass !important; +} + +#navigator-toolbox { + background-color: transparent !important; + background-image: none !important; +} +#nav-bar, +#PersonalToolbar { + background-image: linear-gradient( + var(--toolbar-bgcolor), + var(--toolbar-bgcolor) + ), var(--lwt-additional-images); + background-repeat: repeat-x, var(--lwt-background-tiling); + background-position: 0 0, var(--lwt-background-alignment); + background-attachment: scroll, fixed !important; + background-size: auto 100%, auto auto; +} + +#appcontent { + appearance: auto !important; + -moz-default-appearance: -moz-win-exclude-glass !important; +} + +// Set Colors +@function frameTransparent($per: 60%, $transparent: transparent) { + @return color-mix( + in srgb, + var(--lwt-accent-color, Window) $per, + $transparent + ); +} + +#titlebar { + --uc-frame-element-background: #{ frameTransparent() }; + --toolbarbutton-hover-background: #{ frameTransparent(85%) }; + + @include Dark { + --toolbarbutton-hover-background: #{ frameTransparent(40%, rgba(255, 255, 255, 0.25)) }; + } +} + +#main-menubar:not(:-moz-window-inactive), +.titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background); + border-radius: 4px; +} + +#TabsToolbar { + --toolbarseparator-color: transparent; + + .tabbrowser-tab + > .tab-stack + > .tab-background:not([selected="true"], [multiselected]) { + background-color: var(--uc-frame-element-background); + } + + #firefox-view-button:hover:not([open]) > .toolbarbutton-icon, + .tabbrowser-tab:hover + > .tab-stack + > .tab-background:not([selected="true"], [multiselected]) { + background-color: var(--toolbarbutton-hover-background) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ + } +} + +#scrollbutton-up, +#scrollbutton-down, +#alltabs-button > .toolbarbutton-badge-stack, +#TabsToolbar .toolbarbutton-1 > .toolbarbutton-icon { + background-color: var(--uc-frame-element-background); +} diff --git a/user.js b/user.js index adf14533..ca2a589d 100644 --- a/user.js +++ b/user.js @@ -71,6 +71,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.theme.private", true); // user_pref("userChrome.theme.proton_color.dark_blue_accent", true); // user_pref("userChrome.theme.monospace", true); +// user_pref("userChrome.theme.transparent.frame", true); // user_pref("userChrome.theme.non_native_menu", true); // only for linux // user_pref("userChrome.compatibility.os.win11", true); From 85bb81b74165369ae0c37f4c8263d4c18700b37d Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Tue, 11 Apr 2023 06:41:32 +0900 Subject: [PATCH 20/37] Add: Theme - Mac transparent frame --- css/leptonChrome.css | 21 +++++++++++++++++++++ src/theme/_index.scss | 3 +++ src/theme/transparent/_mac.scss | 28 ++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 src/theme/transparent/_mac.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index ce5a9b5e..4fce7244 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2242,6 +2242,27 @@ background-color: var(--uc-frame-element-background); } } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:not(:-moz-window-inactive) #navigator-toolbox { + background-color: transparent !important; + } + #TabsToolbar, + #titlebar, + #nav-bar, + #PersonalToolbar, + #tabbrowser-tabs { + -moz-appearance: -moz-mac-source-list !important; + background-color: transparent !important; + } + /* De-emphasize tab icons and names when window is unfocused */ + :root:-moz-window-inactive .tab-content, + :root:-moz-window-inactive #urlbar { + opacity: 0.6; + } + :root:-moz-window-inactive #urlbar-background { + background-color: transparent !important; + } + } } /*= Proton Theme Mode ========================================================*/ @supports -moz-bool-pref("userChrome.theme.proton_chrome") { diff --git a/src/theme/_index.scss b/src/theme/_index.scss index 4b5ccd55..b0fea056 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -39,6 +39,9 @@ @include OS($linux) { @import "transparent/general"; } + @include OS($mac) { + @import "transparent/mac"; + } } /*= Proton Theme Mode ========================================================*/ diff --git a/src/theme/transparent/_mac.scss b/src/theme/transparent/_mac.scss new file mode 100644 index 00000000..cba72eb3 --- /dev/null +++ b/src/theme/transparent/_mac.scss @@ -0,0 +1,28 @@ +// https://github.com/te6-in/lepton-custom/blob/26110f0de64dd70d6396b5d101e1907cf441b110/te6-custom.css#L138 +// https://github.com/Tnings/MacosVibrant/blob/main/userChrome.css + +:root:not(:-moz-window-inactive) #navigator-toolbox { + background-color: transparent !important; +} + +#TabsToolbar, +#titlebar, +#nav-bar, +#PersonalToolbar, +#tabbrowser-tabs { + // Before FF v103: -moz-mac-vibrant-titlebar-light, -moz-mac-vibrant-titlebar-dark + -moz-appearance: -moz-mac-source-list !important; + background-color: transparent !important; +} + +/* De-emphasize tab icons and names when window is unfocused */ +:root:-moz-window-inactive { + .tab-content, + #urlbar { + opacity: 0.6; + } + + #urlbar-background { + background-color: transparent !important; + } +} From 37730741f36430547bb989ca575e8891eea42ce0 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sat, 15 Apr 2023 08:27:27 +0900 Subject: [PATCH 21/37] Add: Theme - Windows11 transparent(mica) frame --- css/leptonChrome.css | 38 +++++++++++++++---- src/theme/_index.scss | 7 +--- src/theme/_transparent.scss | 12 ++++++ src/theme/transparent/_general.scss | 58 ----------------------------- src/theme/transparent/_linux.scss | 57 ++++++++++++++++++++++++++++ src/theme/transparent/_win11.scss | 19 ++++++++++ 6 files changed, 119 insertions(+), 72 deletions(-) create mode 100644 src/theme/_transparent.scss create mode 100644 src/theme/transparent/_linux.scss create mode 100644 src/theme/transparent/_win11.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 4fce7244..13efdb5e 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2175,14 +2175,7 @@ } /*= Transparent ==============================================================*/ @supports -moz-bool-pref("userChrome.theme.transparent.frame") { - @media (-moz-gtk-csd-available) { - :root:not(:-moz-lwtheme) { - --lwt-accent-color: Window !important; - --lwt-text-color: WindowText !important; - } - :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { - --lwt-accent-color: rgb(45, 36, 91) !important; - } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10), (-moz-gtk-csd-available) { #main-window, #navigator-toolbox-background { background-color: transparent !important; @@ -2205,6 +2198,35 @@ appearance: auto !important; -moz-default-appearance: -moz-win-exclude-glass !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root, + #navigator-toolbox { + --lwt-accent-color: transparent !important; + --lwt-text-color: WindowText !important; + } + #titlebar .toolbarbutton-1 { + --toolbarbutton-icon-fill: var(--lwt-text-color) !important; + } + :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { + list-style-image: none !important; + } + :root:not([sizemode="fullscreen"]) + #toolbar-menubar[autohide="true"][inactive="true"] + + #TabsToolbar + .titlebar-button:is(.titlebar-close:hover) + .toolbarbutton-icon { + transform: translateY(-7px) !important; + } + } + @media (-moz-gtk-csd-available) { + :root:not(:-moz-lwtheme) { + --lwt-accent-color: Window !important; + --lwt-text-color: WindowText !important; + } + :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { + --lwt-accent-color: rgb(45, 36, 91) !important; + } #titlebar { --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); diff --git a/src/theme/_index.scss b/src/theme/_index.scss index b0fea056..bb73f17b 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -36,12 +36,7 @@ /*= Transparent ==============================================================*/ @include Option("userChrome.theme.transparent.frame") { - @include OS($linux) { - @import "transparent/general"; - } - @include OS($mac) { - @import "transparent/mac"; - } + @import "transparent"; } /*= Proton Theme Mode ========================================================*/ diff --git a/src/theme/_transparent.scss b/src/theme/_transparent.scss new file mode 100644 index 00000000..dc8ab1c9 --- /dev/null +++ b/src/theme/_transparent.scss @@ -0,0 +1,12 @@ +@include OS($win10, $linux) { + @import "transparent/general"; +} +@include OS($win10) { + @import "transparent/win11"; +} +@include OS($linux) { + @import "transparent/linux"; +} +@include OS($mac) { + @import "transparent/mac"; +} diff --git a/src/theme/transparent/_general.scss b/src/theme/transparent/_general.scss index 54fa5e21..5f8db873 100644 --- a/src/theme/transparent/_general.scss +++ b/src/theme/transparent/_general.scss @@ -1,13 +1,3 @@ -// Frame -:root:not(:-moz-lwtheme) { - --lwt-accent-color: Window !important; - --lwt-text-color: WindowText !important; -} -:root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { - // Alpenglow theme - --lwt-accent-color: rgb(45, 36, 91) !important; -} - #main-window, #navigator-toolbox-background { background-color: transparent !important; @@ -35,51 +25,3 @@ appearance: auto !important; -moz-default-appearance: -moz-win-exclude-glass !important; } - -// Set Colors -@function frameTransparent($per: 60%, $transparent: transparent) { - @return color-mix( - in srgb, - var(--lwt-accent-color, Window) $per, - $transparent - ); -} - -#titlebar { - --uc-frame-element-background: #{ frameTransparent() }; - --toolbarbutton-hover-background: #{ frameTransparent(85%) }; - - @include Dark { - --toolbarbutton-hover-background: #{ frameTransparent(40%, rgba(255, 255, 255, 0.25)) }; - } -} - -#main-menubar:not(:-moz-window-inactive), -.titlebar-buttonbox-container:not(:-moz-window-inactive) { - background-color: var(--uc-frame-element-background); - border-radius: 4px; -} - -#TabsToolbar { - --toolbarseparator-color: transparent; - - .tabbrowser-tab - > .tab-stack - > .tab-background:not([selected="true"], [multiselected]) { - background-color: var(--uc-frame-element-background); - } - - #firefox-view-button:hover:not([open]) > .toolbarbutton-icon, - .tabbrowser-tab:hover - > .tab-stack - > .tab-background:not([selected="true"], [multiselected]) { - background-color: var(--toolbarbutton-hover-background) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ - } -} - -#scrollbutton-up, -#scrollbutton-down, -#alltabs-button > .toolbarbutton-badge-stack, -#TabsToolbar .toolbarbutton-1 > .toolbarbutton-icon { - background-color: var(--uc-frame-element-background); -} diff --git a/src/theme/transparent/_linux.scss b/src/theme/transparent/_linux.scss new file mode 100644 index 00000000..90eac2ba --- /dev/null +++ b/src/theme/transparent/_linux.scss @@ -0,0 +1,57 @@ +// Frame +:root:not(:-moz-lwtheme) { + --lwt-accent-color: Window !important; + --lwt-text-color: WindowText !important; +} +:root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { + // Alpenglow theme + --lwt-accent-color: rgb(45, 36, 91) !important; +} + +// Set Colors +@function frameTransparent($per: 60%, $transparent: transparent) { + @return color-mix( + in srgb, + var(--lwt-accent-color, Window) $per, + $transparent + ); +} + +#titlebar { + --uc-frame-element-background: #{ frameTransparent() }; + --toolbarbutton-hover-background: #{ frameTransparent(85%) }; + + @include Dark { + --toolbarbutton-hover-background: #{ frameTransparent(40%, rgba(255, 255, 255, 0.25)) }; + } +} + +#main-menubar:not(:-moz-window-inactive), +.titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background); + border-radius: 4px; +} + +#TabsToolbar { + --toolbarseparator-color: transparent; + + .tabbrowser-tab + > .tab-stack + > .tab-background:not([selected="true"], [multiselected]) { + background-color: var(--uc-frame-element-background); + } + + #firefox-view-button:hover:not([open]) > .toolbarbutton-icon, + .tabbrowser-tab:hover + > .tab-stack + > .tab-background:not([selected="true"], [multiselected]) { + background-color: var(--toolbarbutton-hover-background) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ + } +} + +#scrollbutton-up, +#scrollbutton-down, +#alltabs-button > .toolbarbutton-badge-stack, +#TabsToolbar .toolbarbutton-1 > .toolbarbutton-icon { + background-color: var(--uc-frame-element-background); +} diff --git a/src/theme/transparent/_win11.scss b/src/theme/transparent/_win11.scss new file mode 100644 index 00000000..73f661b3 --- /dev/null +++ b/src/theme/transparent/_win11.scss @@ -0,0 +1,19 @@ +// @media (-moz-windows-accent-color-in-titlebar: 0) { +// } + +:root, +#navigator-toolbox { + --lwt-accent-color: transparent !important; // Window + --lwt-text-color: WindowText !important; +} + +#titlebar .toolbarbutton-1 { + --toolbarbutton-icon-fill: var(--lwt-text-color) !important; +} + +:root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { + list-style-image: none !important; +} +:root:not([sizemode="fullscreen"]) #toolbar-menubar[autohide="true"][inactive="true"] + #TabsToolbar .titlebar-button:is(.titlebar-close:hover) .toolbarbutton-icon { + transform: translateY(-7px) !important; +} From 12a98e8d6afdfac2a91f6cdc0a1643d560ff30d9 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 16 Apr 2023 03:22:52 +0900 Subject: [PATCH 22/37] Add: Theme - Win7 transparent frame --- css/leptonChrome.css | 81 +++++++++++++------ src/compatibility/_os.scss | 12 ++- src/theme/_transparent.scss | 9 ++- src/theme/transparent/_general.scss | 1 + ....scss => _general_element_background.scss} | 2 +- src/theme/transparent/_win7.scss | 21 +++++ 6 files changed, 93 insertions(+), 33 deletions(-) rename src/theme/transparent/{_linux.scss => _general_element_background.scss} (96%) create mode 100644 src/theme/transparent/_win7.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 13efdb5e..dd843345 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -185,9 +185,14 @@ (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - /* Header Color */ - :root:not([lwtheme-image]):-moz-lwtheme { - background-color: var(--lwt-accent-color) !important; + @supports not -moz-bool-pref("userChrome.theme.transparent.frame") { + /* Header Color */ + :root:not([lwtheme-image]):-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + } + :root:not([lwtheme-image]):-moz-lwtheme:-moz-window-inactive { + background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color)) !important; + } } } @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { @@ -2175,7 +2180,11 @@ } /*= Transparent ==============================================================*/ @supports -moz-bool-pref("userChrome.theme.transparent.frame") { - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10), (-moz-gtk-csd-available) { + @media (-moz-os-version: windows-win10), + (-moz-platform: windows-win10), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { #main-window, #navigator-toolbox-background { background-color: transparent !important; @@ -2199,27 +2208,7 @@ -moz-default-appearance: -moz-win-exclude-glass !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root, - #navigator-toolbox { - --lwt-accent-color: transparent !important; - --lwt-text-color: WindowText !important; - } - #titlebar .toolbarbutton-1 { - --toolbarbutton-icon-fill: var(--lwt-text-color) !important; - } - :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { - list-style-image: none !important; - } - :root:not([sizemode="fullscreen"]) - #toolbar-menubar[autohide="true"][inactive="true"] - + #TabsToolbar - .titlebar-button:is(.titlebar-close:hover) - .toolbarbutton-icon { - transform: translateY(-7px) !important; - } - } - @media (-moz-gtk-csd-available) { + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-gtk-csd-available) { :root:not(:-moz-lwtheme) { --lwt-accent-color: Window !important; --lwt-text-color: WindowText !important; @@ -2242,7 +2231,7 @@ } #main-menubar:not(:-moz-window-inactive), .titlebar-buttonbox-container:not(:-moz-window-inactive) { - background-color: var(--uc-frame-element-background); + background-color: var(--uc-frame-element-background) !important; border-radius: 4px; } #TabsToolbar { @@ -2264,6 +2253,46 @@ background-color: var(--uc-frame-element-background); } } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root, + #navigator-toolbox { + --lwt-accent-color: transparent !important; + --lwt-text-color: WindowText !important; + } + #titlebar .toolbarbutton-1 { + --toolbarbutton-icon-fill: var(--lwt-text-color) !important; + } + :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { + list-style-image: none !important; + } + :root:not([sizemode="fullscreen"]) + #toolbar-menubar[autohide="true"][inactive="true"] + + #TabsToolbar + .titlebar-button:is(.titlebar-close:hover) + .toolbarbutton-icon { + transform: translateY(-7px) !important; + } + } + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + :root:not([lwtheme-image]):-moz-lwtheme { + background-color: transparent !important; + background-image: none !important; + } + #main-menubar:not(:-moz-window-inactive) { + color: var(--lwt-text-color) !important; + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + #toolbar-menubar:not(:-moz-window-inactive) { + text-shadow: unset !important; + } + } + @media (-moz-windows-default-theme) { + #TabsToolbar { + color: inherit !important; + background-image: unset !important; + } + } + } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { :root:not(:-moz-window-inactive) #navigator-toolbox { background-color: transparent !important; diff --git a/src/compatibility/_os.scss b/src/compatibility/_os.scss index 1f3a14b3..a0ab63c4 100644 --- a/src/compatibility/_os.scss +++ b/src/compatibility/_os.scss @@ -20,9 +20,15 @@ /*= Windows 7, 8 - Tab Bar Background *****************************************/ @include OS($win7, $win8) { - /* Header Color */ - :root:not([lwtheme-image]):-moz-lwtheme { - background-color: var(--lwt-accent-color) !important; + @include NotOption("userChrome.theme.transparent.frame") { + /* Header Color */ + :root:not([lwtheme-image]):-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + + &:-moz-window-inactive { + background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color)) !important; + } + } } } diff --git a/src/theme/_transparent.scss b/src/theme/_transparent.scss index dc8ab1c9..e37aeb78 100644 --- a/src/theme/_transparent.scss +++ b/src/theme/_transparent.scss @@ -1,11 +1,14 @@ -@include OS($win10, $linux) { +@include OS($win10, $win7, $linux) { @import "transparent/general"; } +@include OS($win7, $linux) { + @import "transparent/general_element_background"; +} @include OS($win10) { @import "transparent/win11"; } -@include OS($linux) { - @import "transparent/linux"; +@include OS($win7) { + @import "transparent/win7"; } @include OS($mac) { @import "transparent/mac"; diff --git a/src/theme/transparent/_general.scss b/src/theme/transparent/_general.scss index 5f8db873..b838e214 100644 --- a/src/theme/transparent/_general.scss +++ b/src/theme/transparent/_general.scss @@ -9,6 +9,7 @@ background-color: transparent !important; background-image: none !important; } + #nav-bar, #PersonalToolbar { background-image: linear-gradient( diff --git a/src/theme/transparent/_linux.scss b/src/theme/transparent/_general_element_background.scss similarity index 96% rename from src/theme/transparent/_linux.scss rename to src/theme/transparent/_general_element_background.scss index 90eac2ba..7a85fa92 100644 --- a/src/theme/transparent/_linux.scss +++ b/src/theme/transparent/_general_element_background.scss @@ -28,7 +28,7 @@ #main-menubar:not(:-moz-window-inactive), .titlebar-buttonbox-container:not(:-moz-window-inactive) { - background-color: var(--uc-frame-element-background); + background-color: var(--uc-frame-element-background) !important; border-radius: 4px; } diff --git a/src/theme/transparent/_win7.scss b/src/theme/transparent/_win7.scss new file mode 100644 index 00000000..0fe1f03b --- /dev/null +++ b/src/theme/transparent/_win7.scss @@ -0,0 +1,21 @@ +:root:not([lwtheme-image]):-moz-lwtheme { + background-color: transparent !important; + background-image: none !important; +} + +#main-menubar:not(:-moz-window-inactive) { + color: var(--lwt-text-color) !important; +} + +@include Dark { + #toolbar-menubar:not(:-moz-window-inactive) { + text-shadow: unset !important; + } +} + +@media (-moz-windows-default-theme) { + #TabsToolbar { + color: inherit !important; + background-image: unset !important; + } +} From f19e5c63062f403224ac5c76108ead85dc84d024 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 16 Apr 2023 04:13:16 +0900 Subject: [PATCH 23/37] Add: Theme - Win8 transparent frame --- css/leptonChrome.css | 31 ++++++++++++++++--- src/theme/_transparent.scss | 8 ++--- .../_general_element_background.scss | 19 ++++++++++-- .../transparent/{_win7.scss => _win7_8.scss} | 0 4 files changed, 46 insertions(+), 12 deletions(-) rename src/theme/transparent/{_win7.scss => _win7_8.scss} (100%) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index dd843345..d741dfda 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2182,6 +2182,8 @@ @supports -moz-bool-pref("userChrome.theme.transparent.frame") { @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-gtk-csd-available) { @@ -2208,7 +2210,11 @@ -moz-default-appearance: -moz-win-exclude-glass !important; } } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-gtk-csd-available) { + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { :root:not(:-moz-lwtheme) { --lwt-accent-color: Window !important; --lwt-text-color: WindowText !important; @@ -2229,11 +2235,23 @@ ); } } - #main-menubar:not(:-moz-window-inactive), - .titlebar-buttonbox-container:not(:-moz-window-inactive) { - background-color: var(--uc-frame-element-background) !important; + #main-menubar { border-radius: 4px; } + #main-menubar:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + } + @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { + #main-menubar:-moz-window-inactive { + background-color: var(--uc-frame-element-background) !important; + } + } + @media (-moz-gtk-csd-available) { + .titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + border-radius: 4px; + } + } #TabsToolbar { --toolbarseparator-color: transparent; } @@ -2273,7 +2291,10 @@ transform: translateY(-7px) !important; } } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7) { :root:not([lwtheme-image]):-moz-lwtheme { background-color: transparent !important; background-image: none !important; diff --git a/src/theme/_transparent.scss b/src/theme/_transparent.scss index e37aeb78..e36563fc 100644 --- a/src/theme/_transparent.scss +++ b/src/theme/_transparent.scss @@ -1,14 +1,14 @@ -@include OS($win10, $win7, $linux) { +@include OS($win10, $win8, $win7, $linux) { @import "transparent/general"; } -@include OS($win7, $linux) { +@include OS($win8, $win7, $linux) { @import "transparent/general_element_background"; } @include OS($win10) { @import "transparent/win11"; } -@include OS($win7) { - @import "transparent/win7"; +@include OS($win8, $win7) { + @import "transparent/win7_8"; } @include OS($mac) { @import "transparent/mac"; diff --git a/src/theme/transparent/_general_element_background.scss b/src/theme/transparent/_general_element_background.scss index 7a85fa92..fc375cbb 100644 --- a/src/theme/transparent/_general_element_background.scss +++ b/src/theme/transparent/_general_element_background.scss @@ -26,10 +26,23 @@ } } -#main-menubar:not(:-moz-window-inactive), -.titlebar-buttonbox-container:not(:-moz-window-inactive) { - background-color: var(--uc-frame-element-background) !important; +#main-menubar { border-radius: 4px; + + &:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + } + @include OS($win8) { + &:-moz-window-inactive { + background-color: var(--uc-frame-element-background) !important; + } + } +} +@include OS($linux) { + .titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + border-radius: 4px; + } } #TabsToolbar { diff --git a/src/theme/transparent/_win7.scss b/src/theme/transparent/_win7_8.scss similarity index 100% rename from src/theme/transparent/_win7.scss rename to src/theme/transparent/_win7_8.scss From fbcd4cd954d1bab6ae919ce78f8812e55abbb715 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 16 Apr 2023 07:36:49 +0900 Subject: [PATCH 24/37] Add: Theme - Transparent menu #585 --- __tests__/native_menu.test.scss | 79 ++++++++++++++++++++++++++++-- css/leptonChrome.css | 24 +++++++++ src/hidden/_index.scss | 2 +- src/icons/layout/_menu_common.scss | 2 +- src/theme/_index.scss | 3 ++ src/utils/_native_menu.scss | 47 +++++++++++++++--- user.js | 1 + 7 files changed, 143 insertions(+), 15 deletions(-) diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index ebbda029..55e61a90 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -6,12 +6,80 @@ @include test("simple") { @include assert { @include output { - @include native_menu.NativeMenu { + @include native_menu.NativeToolkitMenu { @include example; } @include native_menu.NativeMenuPopup { @include example; } + } + @include expect { + @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + @include example; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), + menupopup:not([placespopup="true"]) { + @include example; + } + } + } + } + @include test("native menu - with windows media") { + @include assert { + @include output { + @include native_menu.NativeMenu(true) { + @include example; + } + @include native_menu.NonNativeMenu(true) { + @include example; + } + @include native_menu.WinNativeMenu(true) { + @include example; + } + @include native_menu.WinNonNativeMenu(true) { + @include example; + } + } + @include expect { + @media not (-moz-windows-non-native-menus) { + @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @include example; + } + } + @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } + } + @media (-moz-windows-non-native-menus) { + @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @include example; + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @#{media} (-moz-gtk-csd-available) { + @include example; + } + } + @media not (-moz-windows-non-native-menus) { + @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @include example; + } + } + @media (-moz-windows-non-native-menus) { + @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @include example; + } + } + } + } + } + @include test("native menu - without windows media") { + @include assert { + @include output { + @include native_menu.NativeMenu { + @include example; + } @include native_menu.NonNativeMenu { @include example; } @@ -23,12 +91,13 @@ } } @include expect { - @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + @media not (-moz-windows-non-native-menus) { @include example; } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), - menupopup:not([placespopup="true"]) { - @include example; + @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } } @media (-moz-windows-non-native-menus) { @include example; diff --git a/css/leptonChrome.css b/css/leptonChrome.css index d741dfda..c0b5b941 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2336,6 +2336,30 @@ } } } +@supports -moz-bool-pref("userChrome.theme.transparent.menu") { + .menupopup-arrowscrollbox[part*="content"] { + background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; + } + @media not (-moz-windows-non-native-menus) { + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows-win10) { + html#main-window #mainPopupSet menupopup:not(.in-menulist) { + --menu-background-color: Menu !important; + } + } + } + @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + html#main-window #mainPopupSet menupopup:not(.in-menulist) { + --menu-background-color: Menu !important; + } + } + } +} /*= Proton Theme Mode ========================================================*/ @supports -moz-bool-pref("userChrome.theme.proton_chrome") { /*= Proton Commons ===========================================================*/ diff --git a/src/hidden/_index.scss b/src/hidden/_index.scss index dc45cf49..f5411826 100644 --- a/src/hidden/_index.scss +++ b/src/hidden/_index.scss @@ -122,7 +122,7 @@ } } - @include NativeMenu { + @include NativeToolkitMenu { #context-back, #context-forward { &[disabled="true"] { diff --git a/src/icons/layout/_menu_common.scss b/src/icons/layout/_menu_common.scss index c40c9a22..2ee82f85 100644 --- a/src/icons/layout/_menu_common.scss +++ b/src/icons/layout/_menu_common.scss @@ -56,7 +56,7 @@ $_initialMenus: selector.append( } @mixin _layout_icon_native_menus() { - @include NativeMenu { + @include NativeToolkitMenu { list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; } } diff --git a/src/theme/_index.scss b/src/theme/_index.scss index bb73f17b..2441bb3b 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -38,6 +38,9 @@ @include Option("userChrome.theme.transparent.frame") { @import "transparent"; } +@include Option("userChrome.theme.transparent.menu") { + @import "transparent/menu"; +} /*= Proton Theme Mode ========================================================*/ @include Option("userChrome.theme.proton_chrome") { diff --git a/src/utils/_native_menu.scss b/src/utils/_native_menu.scss index 45892d06..24e8e2ba 100644 --- a/src/utils/_native_menu.scss +++ b/src/utils/_native_menu.scss @@ -1,7 +1,7 @@ @use "option" as *; @use "os" as *; -@mixin NativeMenu() { +@mixin NativeToolkitMenu() { @include Option("widget.macos.native-context-menus", "widget.gtk.native-context-menus") { @content; } @@ -14,25 +14,56 @@ } } -@mixin NonNativeMenu() { - @media (-moz-windows-non-native-menus) { +@mixin _WinMedia($win-media: false) { + @if $win-media { + @include OS($win) { + @content; + } + } + @else { @content; } +} + +@mixin NativeMenu($win-media: false) { + @media not (-moz-windows-non-native-menus) { + @include _WinMedia($win-media) { + @content; + } + } + @include NotOption("userChrome.theme.non_native_menu") { + @include OS($linux) { + @content; + } + } +} + + +@mixin NonNativeMenu($win-media: false) { + @media (-moz-windows-non-native-menus) { + @include _WinMedia($win-media) { + @content; + } + } @include Option("userChrome.theme.non_native_menu") { - @include OS("linux") { + @include OS($linux) { @content; } } } -@mixin WinNativeMenu() { +@mixin WinNativeMenu($win-media: false) { @media not (-moz-windows-non-native-menus) { - @content; + @include _WinMedia($win-media) { + @content; + } } } -@mixin WinNonNativeMenu() { +@mixin WinNonNativeMenu($win-media: false) { @media (-moz-windows-non-native-menus) { - @content; + @include _WinMedia($win-media) { + @content; + } } } diff --git a/user.js b/user.js index ca2a589d..e59f1d4c 100644 --- a/user.js +++ b/user.js @@ -72,6 +72,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.theme.proton_color.dark_blue_accent", true); // user_pref("userChrome.theme.monospace", true); // user_pref("userChrome.theme.transparent.frame", true); +// user_pref("userChrome.theme.transparent.menu", true); // user_pref("userChrome.theme.non_native_menu", true); // only for linux // user_pref("userChrome.compatibility.os.win11", true); From ac475b2e9f8d9394a273a18f6cb48529ccdb35e4 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 17 Apr 2023 00:27:46 +0900 Subject: [PATCH 25/37] Add: Theme - Trasparent panel #585 --- css/leptonChrome.css | 8 ++++++++ src/theme/_index.scss | 3 +++ user.js | 1 + 3 files changed, 12 insertions(+) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index c0b5b941..fa699479 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -2360,6 +2360,14 @@ } } } +@supports -moz-bool-pref("userChrome.theme.transparent.panel") { + panel[type="arrow"] { + --panel-background: transparent !important; + } + panelview { + background: color-mix(in srgb, var(--arrowpanel-background) 90%, transparent) !important; + } +} /*= Proton Theme Mode ========================================================*/ @supports -moz-bool-pref("userChrome.theme.proton_chrome") { /*= Proton Commons ===========================================================*/ diff --git a/src/theme/_index.scss b/src/theme/_index.scss index 2441bb3b..c77bd344 100644 --- a/src/theme/_index.scss +++ b/src/theme/_index.scss @@ -41,6 +41,9 @@ @include Option("userChrome.theme.transparent.menu") { @import "transparent/menu"; } +@include Option("userChrome.theme.transparent.panel") { + @import "transparent/panel"; +} /*= Proton Theme Mode ========================================================*/ @include Option("userChrome.theme.proton_chrome") { diff --git a/user.js b/user.js index e59f1d4c..91ce2d67 100644 --- a/user.js +++ b/user.js @@ -73,6 +73,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.theme.monospace", true); // user_pref("userChrome.theme.transparent.frame", true); // user_pref("userChrome.theme.transparent.menu", true); +// user_pref("userChrome.theme.transparent.panel", true); // user_pref("userChrome.theme.non_native_menu", true); // only for linux // user_pref("userChrome.compatibility.os.win11", true); From 4cd0a0149eb4205538c4e389e737d5b98ba7bb90 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 17 Apr 2023 01:27:36 +0900 Subject: [PATCH 26/37] Add: Tab - Container on top #478 --- css/leptonChrome.css | 92 ++++++++++++++++++++++--------------- src/tab/_container_tab.scss | 90 +++++++++++++++++++++--------------- user.js | 1 + 3 files changed, 111 insertions(+), 72 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index fa699479..ecdaf819 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -8295,12 +8295,18 @@ #tabbrowser-tabs { --uc-container-position-x: 9px; --uc-container-position-y-default: 11.5px; - --uc-container-position-y: calc(50% + var(--uc-container-position-y-default)); + --uc-container-position-y-bottom: calc(50% + var(--uc-container-position-y-default)); + --uc-container-position-y: var(--uc-container-position-y-bottom); --uc-titlechanged-container-position-x: 32%, 50%, 70%; } #tabbrowser-tabs:-moz-locale-dir(rtl) { --uc-container-position-x: -9px; } + @supports -moz-bool-pref("userChrome.tab.container.on_top") { + #tabbrowser-tabs { + --uc-container-position-y: calc(50% - var(--uc-container-position-y-default)); + } + } :root[uidensity="compact"] #tabbrowser-tabs { --uc-container-position-y-default: 10.5px; --uc-titlechanged-container-position-x: 30%, 50%, 70%; @@ -8308,7 +8314,7 @@ :root[uidensity="touch"] #tabbrowser-tabs { --uc-container-position-y-default: 12.5px; } - .tab-content:not([titlechanged])::before { + .tab-content::before { /* Box Model */ content: ""; display: block; @@ -8344,42 +8350,56 @@ opacity: 0; } } - /* Pinned Tab - Titlechanged Indicator override */ - .tabbrowser-tab:is([image], [pinned])[usercontextid] > .tab-stack > .tab-content[attention]:not([selected="true"]), - .tabbrowser-tab[usercontextid] > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { - /* Original: radial-gradient(circle, var(--attention-icon-color), var(--attention-icon-color) 2px, transparent 2px); */ - --dotted-identity-image: radial-gradient( - circle, - var(--identity-icon-color), - var(--identity-icon-color) 2px, - transparent 2px - ); - background-image: var(--dotted-identity-image), var(--dotted-identity-image), var(--dotted-identity-image) !important; - background-position-x: var(--uc-titlechanged-container-position-x) !important; - } - .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), - .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { - /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ - background-position-y: top var(--uc-container-position-y) !important; - } - /* Pinned Tab - Titlechanged & soundplaying */ - .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[attention]:not([selected="true"]), - .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[pinned][titlechanged]:not([selected="true"]) { - --uc-titlechanged-container-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px); - } - :root[uidensity="compact"] + @supports not -moz-bool-pref("userChrome.tab.container.on_top") { + .tab-content[titlechanged]::before { + opacity: 0; + } + /* Pinned Tab - Titlechanged Indicator override */ + .tabbrowser-tab:is([image], [pinned])[usercontextid] + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab[usercontextid] > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: radial-gradient(circle, var(--attention-icon-color), var(--attention-icon-color) 2px, transparent 2px); */ + --dotted-identity-image: radial-gradient( + circle, + var(--identity-icon-color), + var(--identity-icon-color) 2px, + transparent 2px + ); + background-image: var(--dotted-identity-image), var(--dotted-identity-image), var(--dotted-identity-image) !important; + background-position-x: var(--uc-titlechanged-container-position-x) !important; + } + .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ + background-position-y: top var(--uc-container-position-y) !important; + } + /* Pinned Tab - Titlechanged & soundplaying */ .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[attention]:not([selected="true"]), - :root[uidensity="compact"] + > .tab-stack + > .tab-content[attention]:not([selected="true"]), .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[pinned][titlechanged]:not([selected="true"]) { - --uc-titlechanged-container-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px); + > .tab-stack + > .tab-content[pinned][titlechanged]:not([selected="true"]) { + --uc-titlechanged-container-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px); + } + :root[uidensity="compact"] + .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + :root[uidensity="compact"] + .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[pinned][titlechanged]:not([selected="true"]) { + --uc-titlechanged-container-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px); + } + } + @supports -moz-bool-pref("userChrome.tab.container.on_top") { + .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ + background-position-y: top var(--uc-container-position-y-bottom) !important; + } } } } diff --git a/src/tab/_container_tab.scss b/src/tab/_container_tab.scss index a52f9d12..139ccae6 100644 --- a/src/tab/_container_tab.scss +++ b/src/tab/_container_tab.scss @@ -12,7 +12,11 @@ } --uc-container-position-y-default: 11.5px; - --uc-container-position-y: calc(50% + var(--uc-container-position-y-default)); + --uc-container-position-y-bottom: calc(50% + var(--uc-container-position-y-default)); + --uc-container-position-y: var(--uc-container-position-y-bottom); + @include Option("userChrome.tab.container.on_top") { + --uc-container-position-y: calc(50% - var(--uc-container-position-y-default)); + } // Pinned Tab - Titlechanged Indicator override --uc-titlechanged-container-position-x: 32%, 50%, 70%; @@ -25,7 +29,7 @@ :root[uidensity="touch"] #tabbrowser-tabs { --uc-container-position-y-default: 12.5px; } -.tab-content:not([titlechanged])::before { +.tab-content::before { /* Box Model */ content: ""; display: block; @@ -66,42 +70,56 @@ // Don't hide at userChrome.tab.close_button_at_pinned.background } -/* Pinned Tab - Titlechanged Indicator override */ -.tabbrowser-tab:is([image], [pinned])[usercontextid] > .tab-stack > .tab-content[attention]:not([selected="true"]), -.tabbrowser-tab[usercontextid] > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { - /* Original: radial-gradient(circle, var(--attention-icon-color), var(--attention-icon-color) 2px, transparent 2px); */ - --dotted-identity-image: radial-gradient( - circle, - var(--identity-icon-color), - var(--identity-icon-color) 2px, - transparent 2px - ); - background-image: var(--dotted-identity-image), var(--dotted-identity-image), var(--dotted-identity-image) !important; - background-position-x: var(--uc-titlechanged-container-position-x) !important; -} +@include NotOption("userChrome.tab.container.on_top") { + .tab-content[titlechanged]::before { + opacity: 0; + } -.tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), -.tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { - /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ - background-position-y: top var(--uc-container-position-y) !important; -} + /* Pinned Tab - Titlechanged Indicator override */ + .tabbrowser-tab:is([image], [pinned])[usercontextid] > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab[usercontextid] > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: radial-gradient(circle, var(--attention-icon-color), var(--attention-icon-color) 2px, transparent 2px); */ + --dotted-identity-image: radial-gradient( + circle, + var(--identity-icon-color), + var(--identity-icon-color) 2px, + transparent 2px + ); + background-image: var(--dotted-identity-image), var(--dotted-identity-image), var(--dotted-identity-image) !important; + background-position-x: var(--uc-titlechanged-container-position-x) !important; + } -/* Pinned Tab - Titlechanged & soundplaying */ -.tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[attention]:not([selected="true"]), -.tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[pinned][titlechanged]:not([selected="true"]) { - --uc-titlechanged-container-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px); -} -:root[uidensity="compact"] + .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ + background-position-y: top var(--uc-container-position-y) !important; + } + + /* Pinned Tab - Titlechanged & soundplaying */ .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[attention]:not([selected="true"]), -:root[uidensity="compact"] + > .tab-stack + > .tab-content[attention]:not([selected="true"]), .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) - > .tab-stack - > .tab-content[pinned][titlechanged]:not([selected="true"]) { - --uc-titlechanged-container-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px); + > .tab-stack + > .tab-content[pinned][titlechanged]:not([selected="true"]) { + --uc-titlechanged-container-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px); + } + :root[uidensity="compact"] + .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + :root[uidensity="compact"] + .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[pinned][titlechanged]:not([selected="true"]) { + --uc-titlechanged-container-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px); + } +} + +@include Option("userChrome.tab.container.on_top") { + .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ + background-position-y: top var(--uc-container-position-y-bottom) !important; + } } diff --git a/user.js b/user.js index 91ce2d67..af9c5e92 100644 --- a/user.js +++ b/user.js @@ -183,6 +183,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.tab.close_button_at_hover.always", true); // Need close_button_at_hover // user_pref("userChrome.tab.close_button_at_hover.with_selected", true); // Need close_button_at_hover // user_pref("userChrome.tab.sound_show_label", true); // Need remove sound_hide_label +// user_pref("userChrome.tab.container.on_top", true); // user_pref("userChrome.tab.selected_bold", true); // user_pref("userChrome.navbar.as_sidebar", true); From 5af723fa700c6ab5c56c4dbb8734ba80cc4312f0 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 17 Apr 2023 03:08:00 +0900 Subject: [PATCH 27/37] Add: Tab - Sound icon with text #463 --- css/leptonChrome.css | 42 ++++++++++++++++++---- src/tab/sound_tab/_show_with_favicons.scss | 24 ++++++++++--- user.js | 1 + 3 files changed, 55 insertions(+), 12 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index ecdaf819..22b9475e 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -8080,10 +8080,18 @@ } /* Makes the speaker icon to always appear if the tab is playing (not only on hover) */ .tabbrowser-tab { - --uc-sound-tab-icon-position-x: -0.5px; + --uc-sound-tab-icon-position-x-default: -0.5px; + --uc-sound-tab-icon-position-x: var(--uc-sound-tab-icon-position-x-default); + --uc-sound-tab-icon-position-y: -6px; } .tabbrowser-tab:-moz-locale-dir(rtl) { - --uc-sound-tab-icon-position-x: 0.5px; + --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + .tabbrowser-tab:not([pinned]) { + --uc-sound-tab-icon-position-x-default: 7px; + --uc-sound-tab-icon-position-y: -1px; + } } .tab-icon-overlay:not([crashed]), .tab-icon-overlay[pinned][crashed][selected] { @@ -8091,7 +8099,7 @@ top: 0 !important; inset-inline-end: -9px !important; z-index: 1 !important; - transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(-6px); + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); /* Shape */ padding: 1.5px !important; border-radius: 10px !important; @@ -8108,17 +8116,27 @@ } /* Label */ @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 4px; + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 8px; + } + } .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container[labeldirection="ltr"], .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { - --uc-sound-tab-label-position-x: 4px; + --uc-sound-tab-label-position-x: var(--uc-sound-tab-label-position-x-default); } .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container[labeldirection="rtl"], .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { - --uc-sound-tab-label-position-x: -4px; + --uc-sound-tab-label-position-x: calc(-1 * var(--uc-sound-tab-label-position-x-default)); } .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container @@ -8128,17 +8146,27 @@ } @supports -moz-bool-pref("userChrome.hidden.tab_icon") { @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 4px; + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 8px; + } + } .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container[labeldirection="ltr"], .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { - --uc-sound-tab-label-position-x: 4px; + --uc-sound-tab-label-position-x: var(--uc-sound-tab-label-position-x-default); } .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container[labeldirection="rtl"], .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { - --uc-sound-tab-label-position-x: -4px; + --uc-sound-tab-label-position-x: calc(-1 * var(--uc-sound-tab-label-position-x-default)); } .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container diff --git a/src/tab/sound_tab/_show_with_favicons.scss b/src/tab/sound_tab/_show_with_favicons.scss index 1b4ac300..f8331431 100644 --- a/src/tab/sound_tab/_show_with_favicons.scss +++ b/src/tab/sound_tab/_show_with_favicons.scss @@ -32,9 +32,18 @@ /* Makes the speaker icon to always appear if the tab is playing (not only on hover) */ .tabbrowser-tab { - --uc-sound-tab-icon-position-x: -0.5px; + --uc-sound-tab-icon-position-x-default: -0.5px; + --uc-sound-tab-icon-position-x: var(--uc-sound-tab-icon-position-x-default); + --uc-sound-tab-icon-position-y: -6px; &:-moz-locale-dir(rtl) { - --uc-sound-tab-icon-position-x: 0.5px; + --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); + } + + @include Option("userChrome.tab.sound_with_favicons.with_text") { + &:not([pinned]) { + --uc-sound-tab-icon-position-x-default: 7px; + --uc-sound-tab-icon-position-y: -1px; + } } } .tab-icon-overlay:not([crashed]), @@ -43,7 +52,7 @@ top: 0 !important; inset-inline-end: -9px !important; z-index: 1 !important; - transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(-6px); + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); /* Shape */ padding: 1.5px !important; @@ -64,13 +73,18 @@ @include _hidden_tabIcon_soundTabLabel { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { .tab-label-container { + --uc-sound-tab-label-position-x-default: 4px; + @include Option("userChrome.tab.sound_with_favicons.with_text") { + --uc-sound-tab-label-position-x-default: 8px; + } + &[labeldirection=ltr], &:not([labeldirection]):-moz-locale-dir(ltr) { - --uc-sound-tab-label-position-x: 4px; + --uc-sound-tab-label-position-x: var(--uc-sound-tab-label-position-x-default); } &[labeldirection=rtl], &:not([labeldirection]):-moz-locale-dir(rtl) { - --uc-sound-tab-label-position-x: -4px; + --uc-sound-tab-label-position-x: calc(-1 * var(--uc-sound-tab-label-position-x-default)); } > * { diff --git a/user.js b/user.js index af9c5e92..da2dc7e7 100644 --- a/user.js +++ b/user.js @@ -184,6 +184,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.tab.close_button_at_hover.with_selected", true); // Need close_button_at_hover // user_pref("userChrome.tab.sound_show_label", true); // Need remove sound_hide_label // user_pref("userChrome.tab.container.on_top", true); +// user_pref("userChrome.tab.sound_with_favicons.with_text", true); // user_pref("userChrome.tab.selected_bold", true); // user_pref("userChrome.navbar.as_sidebar", true); From b0c63c7fecc3c99d713b50a77fca03a517e0b4ba Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 17 Apr 2023 03:10:28 +0900 Subject: [PATCH 28/37] Fix: Build - Missing files --- src/theme/transparent/_menu.scss | 10 ++++++++++ src/theme/transparent/_panel.scss | 7 +++++++ 2 files changed, 17 insertions(+) create mode 100644 src/theme/transparent/_menu.scss create mode 100644 src/theme/transparent/_panel.scss diff --git a/src/theme/transparent/_menu.scss b/src/theme/transparent/_menu.scss new file mode 100644 index 00000000..ff6cc0fb --- /dev/null +++ b/src/theme/transparent/_menu.scss @@ -0,0 +1,10 @@ +// Menu +.menupopup-arrowscrollbox[part*="content"] { + background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; +} + +@include NativeMenu(true) { + html#main-window #mainPopupSet menupopup:not(.in-menulist) { + --menu-background-color: Menu !important; + } +} diff --git a/src/theme/transparent/_panel.scss b/src/theme/transparent/_panel.scss new file mode 100644 index 00000000..45964f23 --- /dev/null +++ b/src/theme/transparent/_panel.scss @@ -0,0 +1,7 @@ +panel[type="arrow"] { + --panel-background: transparent !important; +} + +panelview { + background: color-mix(in srgb, var(--arrowpanel-background) 90%, transparent) !important; +} From 6ce249498619233016074cfefc685bab03051d25 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sat, 12 Aug 2023 21:43:15 +0900 Subject: [PATCH 29/37] Clean: Utils - OS($win) as simple #744 --- __tests__/native_menu.test.scss | 8 +-- __tests__/os.test.scss | 4 +- css/leptonChrome.css | 96 +++++++++------------------------ css/leptonContent.css | 16 ++---- src/utils/_os.scss | 23 +++++--- 5 files changed, 52 insertions(+), 95 deletions(-) diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index 55e61a90..a2b09349 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -42,7 +42,7 @@ } @include expect { @media not (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @@ -52,7 +52,7 @@ } } @media (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @@ -62,12 +62,12 @@ } } @media not (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @media (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } diff --git a/__tests__/os.test.scss b/__tests__/os.test.scss index 7294c840..8e66f062 100644 --- a/__tests__/os.test.scss +++ b/__tests__/os.test.scss @@ -102,7 +102,7 @@ } } @include expect { - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @@ -135,7 +135,7 @@ } } @include expect { - @media (-moz-mac-big-sur-theme: 0), (-moz-gtk-csd-available), (-moz-os-version: windows-win7), (-moz-platform: windows-win7), (-moz-os-version: windows-win8), (-moz-platform: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows), (-moz-mac-big-sur-theme: 0), (-moz-gtk-csd-available) { @include example; } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 2797b1dd..7c4e8774 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -238,11 +238,9 @@ /*= Windows - Native Menu ====================================================*/ @media not (-moz-windows-non-native-menus) { @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { .customization-uidensity-menuitem > .menu-iconic-left { width: unset !important; } @@ -368,11 +366,9 @@ } /*= Titlebar Container Size at maximized #384 ================================*/ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { @supports not -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { :root[tabsintitlebar] #titlebar { /* -moz-default-appearance: -moz-window-titlebar */ @@ -396,11 +392,9 @@ } /*= Windows - Classic Theme #734 =============================================*/ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { @media (-moz-windows-classic) { :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { appearance: auto !important; @@ -2390,11 +2384,9 @@ } @media not (-moz-windows-non-native-menus) { @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { html#main-window #mainPopupSet menupopup:not(.in-menulist) { --menu-background-color: Menu !important; } @@ -2921,11 +2913,9 @@ } /*- Each OS ----------------------------------------------------------------*/ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { xul|checkbox, xul|radio { padding-inline-start: 0 !important; @@ -4093,11 +4083,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { .titlebar-spacer[type="pre-tabs"] { width: var(--uc-title-post-spacer) !important; } @@ -4550,11 +4538,9 @@ padding-block: var(--menu-padding) !important; } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { #ContentSelectDropdown > menupopup > menucaption, #ContentSelectDropdown > menupopup > menuitem { padding-block: 0 !important; @@ -5289,11 +5275,9 @@ @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } @@ -5326,11 +5310,9 @@ @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } @@ -5358,11 +5340,9 @@ @media screen and (min-width: 1100px) { @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } @@ -5395,11 +5375,9 @@ @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } @@ -5487,11 +5465,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -5641,11 +5617,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -5792,11 +5766,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -5946,11 +5918,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6109,11 +6079,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6262,11 +6230,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6367,11 +6333,9 @@ border-inline-color: transparent; } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); @@ -11685,13 +11649,11 @@ } } /* Padding - Non Native */ - @media (-moz-gtk-csd-available), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows), + (-moz-gtk-csd-available) { @media (-moz-windows-non-native-menus) { :root { --context-menu-background-padding: 1em; @@ -11816,11 +11778,9 @@ } /* Padding - Windows */ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root { --bookmark-menu-icon-text-padding: calc( var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) @@ -11909,11 +11869,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { @media not (-moz-windows-non-native-menus) { :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup:not(.in-menulist) @@ -12048,11 +12006,9 @@ } /* Windows */ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { /* Bookmark Popup - None icon menu */ menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), @@ -12330,11 +12286,9 @@ } /*= Tab Mix Plus =============================================================*/ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { #context_openANewTab.tabmix-newtab-menu-icon .menu-iconic-left { display: none; } diff --git a/css/leptonContent.css b/css/leptonContent.css index e8071dd1..ef0f772f 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -3211,13 +3211,11 @@ padding-inline-start: var(--context-menu-background-padding) !important; } /* Padding - Non Native */ - @media (-moz-gtk-csd-available), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows), + (-moz-gtk-csd-available) { @media (-moz-windows-non-native-menus) { :root { --context-menu-background-padding: 1em; @@ -3267,11 +3265,9 @@ } /* Padding - Windows */ @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { :root { --bookmark-menu-icon-text-padding: calc( var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) @@ -3360,11 +3356,9 @@ } } @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), (-moz-os-version: windows-win10), - (-moz-platform: windows-win10) { + (-moz-platform: windows) { @media not (-moz-windows-non-native-menus) { menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), diff --git a/src/utils/_os.scss b/src/utils/_os.scss index f326f1e9..7c2ca6cd 100644 --- a/src/utils/_os.scss +++ b/src/utils/_os.scss @@ -14,7 +14,7 @@ $win10: "win10"; $bigsur: "bigsur"; //== Privated Variables ======================================================== -$_win-template: "-moz-os-version: windows-" "-moz-platform: windows-"; +$_win-template: "-moz-os-version: windows" "-moz-platform: windows"; $_win-media: ( #{$win7}: "win7", #{$win8}: "win8", @@ -25,12 +25,26 @@ $_win-media: ( $result-template: (); @for $i from 1 through list.length($_win-template) { - $result-value: list.nth($_win-template, $i) + $_win-value; + $result-value: list.nth($_win-template, $i) + "-" + $_win-value; $result-template: list.append($result-template, $result-value); } $_win-media: map.set($_win-media, $_win-key, $result-template); } +@function _win-only-result() { + $result-template: (); + + @each $_win-value in map.values($_win-media) { + $result-template: list.append($result-template, list.nth($_win-value, 1)); + } + @return list.append($result-template, list.nth($_win-template, 2)) +} + +$_win-media: map.merge( + $_win-media, + (#{$win}: _win-only-result()) +); + $_others-media: ( #{$linux}: "-moz-gtk-csd-available", #{$bigsur}: "-moz-mac-big-sur-theme: 0", @@ -41,11 +55,6 @@ $_os-media: map.merge( //== Mixin ===================================================================== @mixin OS($osNames...) { - @if list.index($osNames, $win) { - $osNames: list-utils.remove($osNames, $win); - $osNames: list.join($osNames, map.keys($_win-media)); - } - $osMedias: (); @each $osName in $osNames { $osMedia: map.get($_os-media, $osName); From 0686d163464fc2b09fda4f54a357c0350d9a0e13 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sat, 12 Aug 2023 23:11:22 +0900 Subject: [PATCH 30/37] Fix: Utils - `@include OS()` allow nested for performance #744 --- __tests__/native_menu.test.scss | 10 +- css/leptonChrome.css | 1568 +++++++++++++++++-------------- css/leptonContent.css | 280 +++--- src/utils/_media.scss | 21 +- 4 files changed, 1063 insertions(+), 816 deletions(-) diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index a2b09349..5a766a80 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -42,7 +42,7 @@ } @include expect { @media not (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @@ -52,22 +52,22 @@ } } @media (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - @#{media} (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) { @include example; } } @media not (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } @media (-moz-windows-non-native-menus) { - @#{media} (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { + @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 7c4e8774..081dceb9 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -172,14 +172,15 @@ :root[sizemode="normal"][tabsintitlebar]:-moz-window-inactive #navigator-toolbox { border-top-color: rgb(57, 57, 57) !important; } - @media (-moz-windows-accent-color-in-titlebar) { + } + @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), + (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { + :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + border-top-color: AccentColor !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { - border-top-color: AccentColor !important; - } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { - border-top-color: -moz-accent-color !important; - } + border-top-color: -moz-accent-color !important; } } } @@ -236,83 +237,82 @@ } } /*= Windows - Native Menu ====================================================*/ - @media not (-moz-windows-non-native-menus) { - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { - .customization-uidensity-menuitem > .menu-iconic-left { - width: unset !important; - } - menulist > menupopup > menuitem[_moz-menuactive="true"], - menulist > menupopup > menu[_moz-menuactive="true"] { - background-color: highlight !important; - color: highlighttext !important; - } - #PlacesToolbar menu, - #PlacesToolbar menuitem, - #BMB_bookmarksPopup menu, - #BMB_bookmarksPopup menuitem { - border: none !important; /* Remove border */ - } - #PlacesToolbar menu:not([disabled], :active)[_moz-menuactive="true"], - #PlacesToolbar menuitem:not([disabled], :active)[_moz-menuactive="true"], - #BMB_bookmarksPopup menu:not([disabled], :active)[_moz-menuactive="true"], - #BMB_bookmarksPopup menuitem:not([disabled], :active)[_moz-menuactive="true"] { - background-color: var(--button-hover-bgcolor) !important; - } - } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - @media (not (-moz-windows-non-native-menus)) and (-moz-windows-classic: 0) { - menu[_moz-menuactive="true"], - menuitem[_moz-menuactive="true"] { - background-color: color-mix(in srgb, -moz-menuhover 5%, transparent) !important; - border-color: color-mix(in srgb, -moz-menuhover 60%, transparent) !important; - } - menu[_moz-menuactive="true"][disabled="true"], - menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 5%, transparent) !important; - border-color: color-mix(in srgb, currentColor 60%, transparent) !important; - } - /* Remove text shadow */ - :root:-moz-lwtheme #toolbar-menubar { - text-shadow: unset !important; - /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ - } - /* Remove Color */ - :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { - background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ - color: unset !important; /* Original: black */ - } - } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows) { + .customization-uidensity-menuitem > .menu-iconic-left { + width: unset !important; } - @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - menu[_moz-menuactive="true"], - menuitem[_moz-menuactive="true"] { - background-color: color-mix(in srgb, -moz-menuhover 17%, transparent) !important; - border-color: color-mix(in srgb, -moz-menuhover 80%, transparent) !important; - } - menu[_moz-menuactive="true"][disabled="true"], - menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 17%, transparent) !important; - border-color: color-mix(in srgb, currentColor 80%, transparent) !important; - } + menulist > menupopup > menuitem[_moz-menuactive="true"], + menulist > menupopup > menu[_moz-menuactive="true"] { + background-color: highlight !important; + color: highlighttext !important; + } + #PlacesToolbar menu, + #PlacesToolbar menuitem, + #BMB_bookmarksPopup menu, + #BMB_bookmarksPopup menuitem { + border: none !important; /* Remove border */ + } + #PlacesToolbar menu:not([disabled], :active)[_moz-menuactive="true"], + #PlacesToolbar menuitem:not([disabled], :active)[_moz-menuactive="true"], + #BMB_bookmarksPopup menu:not([disabled], :active)[_moz-menuactive="true"], + #BMB_bookmarksPopup menuitem:not([disabled], :active)[_moz-menuactive="true"] { + background-color: var(--button-hover-bgcolor) !important; + } + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic: 0), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic: 0) { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { + background-color: color-mix(in srgb, -moz-menuhover 5%, transparent) !important; + border-color: color-mix(in srgb, -moz-menuhover 60%, transparent) !important; + } + menu[_moz-menuactive="true"][disabled="true"], + menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 5%, transparent) !important; + border-color: color-mix(in srgb, currentColor 60%, transparent) !important; + } + /* Remove text shadow */ + :root:-moz-lwtheme #toolbar-menubar { + text-shadow: unset !important; + /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ + } + /* Remove Color */ + :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { + background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ + color: unset !important; /* Original: black */ + } + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { + background-color: color-mix(in srgb, -moz-menuhover 17%, transparent) !important; + border-color: color-mix(in srgb, -moz-menuhover 80%, transparent) !important; + } + menu[_moz-menuactive="true"][disabled="true"], + menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 17%, transparent) !important; + border-color: color-mix(in srgb, currentColor 80%, transparent) !important; + } + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"], + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"], + menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"], + menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"] { + background-color: #91c9f7 !important; + border-color: transparent !important; } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"], - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"], - menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"], - menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"] { - background-color: #91c9f7 !important; - border-color: transparent !important; - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"][disabled="true"], - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"][disabled="true"], - menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"][disabled="true"], - menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 9%, transparent) !important; - border-color: transparent !important; - } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"][disabled="true"], + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"][disabled="true"], + menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"][disabled="true"], + menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 9%, transparent) !important; + border-color: transparent !important; } } @media (-moz-gtk-csd-available) { @@ -341,27 +341,26 @@ } } /*= Linux - Light System Default Theme's Selected Tab ========================*/ - @media (-moz-gtk-csd-available) { - @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { - /* Because of - #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected=true], [multiselected]) > .tab-stack > .tab-background { - border: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); - box-shadow: 0 0 4px rgba(128,128,142,0.5); - } - */ - #tabbrowser-tabs:not([noshadowfortests]) - .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) - > .tab-stack - > .tab-background:not(:-moz-lwtheme) { - box-shadow: 0 0 4px rgba(128, 128, 142, 0.5) !important; - } - #TabsToolbar:not([brighttext]) - #tabbrowser-tabs:not([noshadowfortests]) - .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) - > .tab-stack - > .tab-background:not(:-moz-lwtheme) { - box-shadow: 0 0 1px var(--tab-line-color, rgba(128, 128, 142, 0.9)), 0 0 4px rgba(128, 128, 142, 0.5) !important; + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), + (-moz-gtk-csd-available) and (prefers-color-scheme: light) { + /* Because of + #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected=true], [multiselected]) > .tab-stack > .tab-background { + border: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); + box-shadow: 0 0 4px rgba(128,128,142,0.5); } + */ + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:not(:-moz-lwtheme) { + box-shadow: 0 0 4px rgba(128, 128, 142, 0.5) !important; + } + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:not(:-moz-lwtheme) { + box-shadow: 0 0 1px var(--tab-line-color, rgba(128, 128, 142, 0.9)), 0 0 4px rgba(128, 128, 142, 0.5) !important; } } /*= Titlebar Container Size at maximized #384 ================================*/ @@ -374,10 +373,22 @@ /* -moz-default-appearance: -moz-window-titlebar */ appearance: none !important; } - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { + @media (-moz-os-version: windows-win7) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win7) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win7) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win8) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win8) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win10) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win10) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win10) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10) and (-moz-platform: windows-win8), + (-moz-platform: windows) and (-moz-os-version: windows-win7), + (-moz-platform: windows) and (-moz-platform: windows-win7), + (-moz-platform: windows) and (-moz-os-version: windows-win8), + (-moz-platform: windows) and (-moz-platform: windows-win8) { :root[tabsintitlebar][sizemode="maximized"] #titlebar { padding-top: 8px; } @@ -391,34 +402,32 @@ } } /*= Windows - Classic Theme #734 =============================================*/ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { - @media (-moz-windows-classic) { - :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { - appearance: auto !important; - -moz-default-appearance: -moz-window-titlebar !important; - } - :root[tabsintitlebar][sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { - appearance: auto !important; - -moz-default-appearance: -moz-window-titlebar !important; - } - :root[tabsintitlebar]:not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { - color: -moz-dialogtext !important; - } - :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { - background-image: linear-gradient( - to bottom, - ThreeDLightShadow 0, - ThreeDLightShadow 1px, - ThreeDHighlight 1px, - ThreeDHighlight 2px, - ActiveBorder 2px, - ActiveBorder 4px, - transparent 4px - ) !important; - } + @media (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (-moz-windows-classic), + (-moz-platform: windows) and (-moz-windows-classic) { + :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { + appearance: auto !important; + -moz-default-appearance: -moz-window-titlebar !important; + } + :root[tabsintitlebar][sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { + appearance: auto !important; + -moz-default-appearance: -moz-window-titlebar !important; + } + :root[tabsintitlebar]:not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { + color: -moz-dialogtext !important; + } + :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { + background-image: linear-gradient( + to bottom, + ThreeDLightShadow 0, + ThreeDLightShadow 1px, + ThreeDHighlight 1px, + ThreeDHighlight 2px, + ActiveBorder 2px, + ActiveBorder 4px, + transparent 4px + ) !important; } } } @@ -557,63 +566,76 @@ --win11-tab-border-color: #dadada; } } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + /*- Separator --------------------------------------------------------------*/ + /*- Proton Tab Selected ----------------------------------------------------*/ + /*- Menu -------------------------------------------------------------------*/ + /*- Toolbar ----------------------------------------------------------------*/ + /*- Sidebar ----------------------------------------------------------------*/ + /*- Panel ------------------------------------------------------------------*/ + /*- Others -----------------------------------------------------------------*/ + /* For overwrite */ + } + @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-text-color: #ffffff; + --win-bgcolor: #2b2b2b; + --win-disabled-color: #747474; + --win-disabled-bgcolor: transparent; + --win-hover-bgcolor: #2e2e2e; /* also button-bgcolor */ + --win-hover-active-bgcolor: #454545; /* also button-active-color */ + --win-button-hover-bgcolor: rgba(46, 46, 46, 0.66); + --win-button-active-bgcolor: #515151; + --win-field-bgcolor: #373737; + --win-component-bgcolor: #171717; + --win-border-color: #5b5b5b; + --win-tab-separator-color: #555555; + --win-sidebar-bgcolor: #1f1f1f; + --win-sidebar-hover-bgcolor: #353535; + --win-sidebar-button-hover-bgcolor: #353535; + --win-sidebar-button-hover-active-bgcolor: #4c4c4c; + --win-button-border: #8f8f8f; + --win-shortcut-text-color: #adadad; + --win-error-color: #ffb900; + --win-red-border-color: #ff4343; + --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, AccentColor); + --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 35%, AccentColor); + --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, AccentColor); + --win-accent-active-color: AccentColor; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { - --win-text-color: #ffffff; - --win-bgcolor: #2b2b2b; - --win-disabled-color: #747474; - --win-disabled-bgcolor: transparent; - --win-hover-bgcolor: #2e2e2e; /* also button-bgcolor */ - --win-hover-active-bgcolor: #454545; /* also button-active-color */ - --win-button-hover-bgcolor: rgba(46, 46, 46, 0.66); - --win-button-active-bgcolor: #515151; - --win-field-bgcolor: #373737; - --win-component-bgcolor: #171717; - --win-border-color: #5b5b5b; - --win-tab-separator-color: #555555; - --win-sidebar-bgcolor: #1f1f1f; - --win-sidebar-hover-bgcolor: #353535; - --win-sidebar-button-hover-bgcolor: #353535; - --win-sidebar-button-hover-active-bgcolor: #4c4c4c; - --win-button-border: #8f8f8f; - --win-shortcut-text-color: #adadad; - --win-error-color: #ffb900; - --win-red-border-color: #ff4343; - --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, AccentColor); - --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 35%, AccentColor); - --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, AccentColor); - --win-accent-active-color: AccentColor; - } - @supports -moz-bool-pref("userChrome.compatibility.accent_color") { - :root:not(:-moz-lwtheme), - :root[lwt-default-theme-in-dark-mode] { - --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, -moz-accent-color); - --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 35%, -moz-accent-color); - --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, -moz-accent-color); - --win-accent-active-color: -moz-accent-color; - } + --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, -moz-accent-color); + --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 35%, -moz-accent-color); + --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, -moz-accent-color); + --win-accent-active-color: -moz-accent-color; } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - :root:not(:-moz-lwtheme), - :root[lwt-default-theme-in-dark-mode] { - --win-bgcolor: #202020; - --win-hover-bgcolor: #383838; /* also button-bgcolor */ - --win-disabled-color: #797979; - --win-hover-active-bgcolor: #454545; /* also button-active-color */ - --win-button-hover-bgcolor: #454545; - --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); - --win-field-bgcolor: #232323; - --win-component-bgcolor: #2c2c2c; - --win-border-color: #3d3d3d; - --win-tab-separator-color: #323232; - --win-sidebar-bgcolor: var(--win-component-bgcolor); - --win-button-border: var(--win-border-color); - --win11-chrome-separator-color: #3a3a3a; - --win11-tab-border-color: #1d1d1d; - } + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-bgcolor: #202020; + --win-hover-bgcolor: #383838; /* also button-bgcolor */ + --win-disabled-color: #797979; + --win-hover-active-bgcolor: #454545; /* also button-active-color */ + --win-button-hover-bgcolor: #454545; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-field-bgcolor: #232323; + --win-component-bgcolor: #2c2c2c; + --win-border-color: #3d3d3d; + --win-tab-separator-color: #323232; + --win-sidebar-bgcolor: var(--win-component-bgcolor); + --win-button-border: var(--win-border-color); + --win11-chrome-separator-color: #3a3a3a; + --win11-tab-border-color: #1d1d1d; } } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { /* Text, Icon Color */ @@ -717,26 +739,36 @@ --download-progress-flare-color: rgba(255, 255, 255, 0.75) !important; --panelview-toolbarbutton-focus-box-shadow: inset 0 0 0 2px var(--focus-outline-color) !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { #navigator-toolbox:not(:-moz-lwtheme) { background: var(--lwt-accent-color) !important; } - /*- Separator --------------------------------------------------------------*/ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme) { --arrowpanel-border-color: var(--win-bgcolor) !important; --panel-separator-color: var(--win-bgcolor) !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root[lwt-default-theme-in-dark-mode] { --arrowpanel-border-color: var(--win-border-color) !important; --panel-separator-color: var(--win-border-color) !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { @supports -moz-bool-pref("userChrome.theme.system_default") { - @media (-moz-windows-accent-color-in-titlebar) { + @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), + (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme), :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ } } } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { @supports -moz-bool-pref("userChrome.compatibility.os.win11") { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { @@ -746,7 +778,8 @@ --lwt-tabs-border-color: var(--win11-tab-border-color) !important; } } - /*- Proton Tab Selected ----------------------------------------------------*/ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { @@ -759,7 +792,8 @@ --lwt-selected-tab-background-color: var(--win-proton-tab-selected-bgcolor) !important; } } - /*- Menu -------------------------------------------------------------------*/ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { html#main-window menupopup:not(:-moz-lwtheme) { --menu-color: var(--win-text-color) !important; --menu-background-color: var(--win-component-bgcolor) !important; @@ -768,7 +802,8 @@ --menu-disabled-color: var(--win-disabled-color) !important; --menuitem-disabled-hover-background-color: var(--win-disabled-bgcolor) !important; } - /*- Toolbar ----------------------------------------------------------------*/ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme) #titlebar, :root[lwt-default-theme-in-dark-mode] #titlebar { --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); @@ -776,32 +811,41 @@ --toolbarbutton-hover-background: var(--win-sidebar-button-hover-bgcolor); --toolbarbutton-active-background: var(--win-sidebar-button-hover-active-bgcolor); } - /*- Sidebar ----------------------------------------------------------------*/ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { #sidebar-box:not([lwt-sidebar]) { appearance: none !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme) #sidebar-box, :root[lwt-default-theme-in-dark-mode] #sidebar-box { --sidebar-background-color: var(--win-sidebar-bgcolor) !important; --sidebar-text-color: var(--win-text-color) !important; --sidebar-border-color: var(--win-border-color) !important; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - .sidebar-panel[style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], - body[lwt-sidebar][style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], - .sidebar-panel[style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], - body[lwt-sidebar][style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"] { - /* Only darkmode has more: --newtab-background-color-secondary: rgba(66, 65, 77, 1); */ - --lwt-sidebar-background-color: var(--win-sidebar-bgcolor) !important; - --lwt-sidebar-text-color: var(--win-text-color) !important; - } + } + @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + .sidebar-panel[style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + body[lwt-sidebar][style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + .sidebar-panel[style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + body[lwt-sidebar][style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"] { + /* Only darkmode has more: --newtab-background-color-secondary: rgba(66, 65, 77, 1); */ + --lwt-sidebar-background-color: var(--win-sidebar-bgcolor) !important; + --lwt-sidebar-text-color: var(--win-text-color) !important; } - /*- Panel ------------------------------------------------------------------*/ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme) .subviewbutton, :root[lwt-default-theme-in-dark-mode] .subviewbutton { --button-hover-bgcolor: var(--win-hover-active-bgcolor) !important; --button-active-bgcolor: var(--win-button-active-bgcolor) !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme) toolbarbutton.subviewbutton:not( [disabled], @@ -826,6 +870,8 @@ ):is(:hover) { background-color: var(--win-hover-bgcolor) !important; } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root:not(:-moz-lwtheme) toolbarbutton.subviewbutton:not( [disabled], @@ -846,18 +892,23 @@ ):is([open], :hover:active) { background-color: var(--win-hover-active-bgcolor) !important; } - /*- Others -----------------------------------------------------------------*/ - /* For overwrite */ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]):not(:-moz-lwtheme), :root:not(:-moz-lwtheme) { /* Light Theme */ --lwt-accent-color: var(--win-bgcolor) !important; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { - --toolbar-bgcolor: var(--win-component-bgcolor) !important; /* Original: rgba(43, 42, 51, 1) */ - } + } + @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { + --toolbar-bgcolor: var(--win-component-bgcolor) !important; /* Original: rgba(43, 42, 51, 1) */ } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -1183,20 +1234,38 @@ --windows-panel-box-shadow: 0 0 4px hsla(0, 0%, 0%, 0.2); --menu-checkbox-padding: 12px; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - :root { - /* Override the menu color variables for dark browser themes. */ - --menu-icon-opacity: 1; - } - } /* For Windows 10, prevent using native OS drawing of certain menu elements, especially background colors and shadows. */ + /* Menu item text also needs native drawing disabled. */ + /* For Windows 10, checkbox, radio and iconified menuitems need the default + appearance disabled so they pick up our custom styles instead. */ + /* We need to do something to override the default style for selected + checkboxes and radio buttons because the native drawing we use on other + Windows versions looks pretty bad with the Win10 styles, so for now we'll + insert a generic checkmark icon for both types. */ + /* :not([hidden]) to avoid the display: flex unhiding the item. */ + /* override styles from shared/contextmenu.inc.css */ + /* If the menu is wider than the icons strictly need, the elements + * will stretch to pick up the extra space. In that case, the outer icons + * should align to the start/end of their containing : */ + /* 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. */ + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + :root { + /* Override the menu color variables for dark browser themes. */ + --menu-icon-opacity: 1; + } + } + @media (-moz-gtk-csd-available) { menu, menuitem, menucaption { appearance: none !important; } - /* Menu item text also needs native drawing disabled. */ + } + @media (-moz-gtk-csd-available) { menu > .menu-text, menuitem > .menu-text, menu > .menu-iconic-text, @@ -1219,18 +1288,26 @@ menuitem > .menu-iconic-text[value*="…"]::before { padding: 0 !important; } + } + @media (-moz-gtk-csd-available) { menu[_moz-menuactive="true"]:not([disabled="true"]), menuitem[_moz-menuactive="true"]:not([disabled="true"]) { background-color: var(--menuitem-hover-background-color) !important; color: var(--menu-color) !important; } + } + @media (-moz-gtk-csd-available) { menu:where([_moz-menuactive="true"][disabled="true"]), menuitem:where([_moz-menuactive="true"][disabled="true"]) { background-color: transparent !important; } + } + @media (-moz-gtk-csd-available) { .menu-text { padding-inline-start: 0 !important; } + } + @media (-moz-gtk-csd-available) { .menu-right { appearance: none !important; width: unset !important; @@ -1241,49 +1318,63 @@ margin-inline-end: 1px !important; padding-top: 0 !important; } + } + @media (-moz-gtk-csd-available) { .menu-right > image { /* Do not make this smaller than the size of the svg, but upscale for * people with large fonts. */ width: max(1em, 16px) !important; } + } + @media (-moz-gtk-csd-available) { .menu-right:-moz-locale-dir(rtl) { list-style-image: url("chrome://global/skin/icons/arrow-left.svg") !important; } + } + @media (-moz-gtk-csd-available) { menulist > menupopup > menuitem { padding-inline-end: 1px !important; } + } + @media (-moz-gtk-csd-available) { menupopup[needsgutter] menu:not([icon], .menu-iconic), menupopup[needsgutter] menuitem:not([type="checkbox"], [type="radio"], [icon], .menuitem-iconic) { padding-inline-start: 36px !important; } - /* For Windows 10, checkbox, radio and iconified menuitems need the default - appearance disabled so they pick up our custom styles instead. */ + } + @media (-moz-gtk-csd-available) { .menu-iconic-left, menuitem[type="checkbox"], menuitem[type="radio"] { appearance: none !important; /* to override more specific selectors above. */ width: unset !important; } + } + @media (-moz-gtk-csd-available) { .menu-iconic > .menu-iconic-left, .menuitem-iconic > .menu-iconic-left { padding-inline-end: 0 !important; margin-inline-end: 8px !important; } + } + @media (-moz-gtk-csd-available) { menuitem[type="checkbox"], menuitem[type="radio"] { --menu-background-padding-default: var(--menu-checkbox-padding); } + } + @media (-moz-gtk-csd-available) { menuitem[checked="true"] { padding-inline-start: var(--menu-checkbox-padding) !important; } + } + @media (-moz-gtk-csd-available) { menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item .menu-iconic-left { padding-inline-end: 0 !important; margin-inline-end: 6px !important; } - /* We need to do something to override the default style for selected - checkboxes and radio buttons because the native drawing we use on other - Windows versions looks pretty bad with the Win10 styles, so for now we'll - insert a generic checkmark icon for both types. */ + } + @media (-moz-gtk-csd-available) { menuitem[checked="true"] > .menu-iconic-left { -moz-context-properties: fill, fill-opacity !important; fill: currentColor !important; @@ -1292,9 +1383,13 @@ width: 16px !important; margin-inline-end: 8px !important; } + } + @media (-moz-gtk-csd-available) { menuitem[checked="true"] > .menu-iconic-left > .menu-iconic-icon { display: initial !important; } + } + @media (-moz-gtk-csd-available) { menuseparator { appearance: none !important; border-top: 1px solid var(--menu-border-color) !important; @@ -1303,6 +1398,8 @@ /* The side margins should align with the start of the menu item text. */ margin: 2px 1em !important; } + } + @media (-moz-gtk-csd-available) { menupopup { /* Disable the default appearance so we can override the native styling. */ appearance: none !important !important; @@ -1312,11 +1409,15 @@ /* To account for the box-shadow below */ margin: -4px !important; } + } + @media (-moz-gtk-csd-available) { menupopup:not([placespopup="true"]) > menuitem, menupopup:not([placespopup="true"]) > menu { padding-block: var(--menu-padding, 0.5em) !important; padding-inline-start: 1em !important; } + } + @media (-moz-gtk-csd-available) { .menupopup-arrowscrollbox[part*="content"] { box-shadow: var(--windows-panel-box-shadow) !important; margin: 4px !important; @@ -1333,17 +1434,22 @@ border-radius: 0px !important; } } + } + @media (-moz-gtk-csd-available) { menupopup > menu > menupopup { /* align submenus */ margin-inline-start: var(--nested-margin) !important; margin-top: var(--nested-margin) !important; } + } + @media (-moz-gtk-csd-available) { #mainPopupSet { --menu-background-padding-default: calc( var(--context-menu-background-padding) + var(--context-menu-text-padding-default) ); } - /* :not([hidden]) to avoid the display: flex unhiding the item. */ + } + @media (-moz-gtk-csd-available) { #context-navigation:not([hidden]) { /* The Windows 10 version of the navigation area needs the scrollbox's background color, not the builtin "menu" color. */ @@ -1362,10 +1468,14 @@ /* The total width of the container should then be at least 4 times that: */ min-width: calc(4 * var(--menuitem-min-width)) !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic { flex: 1 0 auto !important; padding: 0 !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic[_moz-menuactive="true"] { /* We only show hover state on the icons. This ensures there is no * dead space between icons, but the visible hover state is only @@ -1373,37 +1483,47 @@ */ background-color: transparent !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic > .menu-iconic-left { margin: 0 !important; padding: 0 !important; } - /* override styles from shared/contextmenu.inc.css */ + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { width: var(--menuitem-min-width) !important; height: 32px !important; padding: 8px 1em !important; margin: 0 !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { background-color: var(--menuitem-hover-background-color) !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left > .menu-iconic-icon { background-color: transparent !important; } - /* If the menu is wider than the icons strictly need, the elements - * will stretch to pick up the extra space. In that case, the outer icons - * should align to the start/end of their containing : */ + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic:first-child { justify-content: flex-start !important; -moz-box-pack: start !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic:last-child { justify-content: flex-end !important; -moz-box-pack: end !important; } + } + @media (-moz-gtk-csd-available) { #context-navigation > .menuitem-iconic:last-child, #context-navigation > .menuitem-iconic:first-child { flex-grow: 0 !important; @@ -1420,8 +1540,8 @@ */ width: calc(var(--menuitem-min-width) + (100% - 4 * var(--menuitem-min-width)) / 6) !important; } - /* 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. */ + } + @media (-moz-gtk-csd-available) { #context-sep-navigation { margin-top: 0 !important; margin-inline: 0 !important; @@ -1634,16 +1754,17 @@ --dark-menu-icon-opacity: 1; } /* Override the menu color variables for dark browser themes. */ - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - :root { - --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); - --menu-background-color: var(--dark-menu-background-color); - --menu-color: var(--dark-menu-color); - --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); - --menu-disabled-color: var(--dark-menu-disabled-color); - --menu-border-color: var(--dark-menu-border-color); - --menu-icon-opacity: var(--dark-menu-icon-opacity); - } + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); } } } @@ -1931,10 +2052,11 @@ > .menu-iconic-icon { background-color: transparent !important; } - @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { - :root[style*="background-noodles-right"] menupopup { - --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; - } + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), + (-moz-gtk-csd-available) and (prefers-color-scheme: light) { + :root[style*="background-noodles-right"] menupopup { + --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; } } } @@ -2268,32 +2390,66 @@ --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - #titlebar { - --toolbarbutton-hover-background: color-mix( - in srgb, - var(--lwt-accent-color, Window) 40%, - rgba(255, 255, 255, 0.25) - ); - } + } + @media (-moz-os-version: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win8) and (prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + #titlebar { + --toolbarbutton-hover-background: color-mix( + in srgb, + var(--lwt-accent-color, Window) 40%, + rgba(255, 255, 255, 0.25) + ); } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { #main-menubar { border-radius: 4px; } #main-menubar:not(:-moz-window-inactive) { background-color: var(--uc-frame-element-background) !important; } - @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - #main-menubar:-moz-window-inactive { - background-color: var(--uc-frame-element-background) !important; - } + } + @media (-moz-os-version: windows-win8) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (-moz-platform: windows-win8), + (-moz-platform: windows-win8) and (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win7) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (-moz-platform: windows-win8), + (-moz-platform: windows-win7) and (-moz-os-version: windows-win8), + (-moz-platform: windows-win7) and (-moz-platform: windows-win8), + (-moz-gtk-csd-available) and (-moz-os-version: windows-win8), + (-moz-gtk-csd-available) and (-moz-platform: windows-win8) { + #main-menubar:-moz-window-inactive { + background-color: var(--uc-frame-element-background) !important; } - @media (-moz-gtk-csd-available) { - .titlebar-buttonbox-container:not(:-moz-window-inactive) { - background-color: var(--uc-frame-element-background) !important; - border-radius: 4px; - } + } + @media (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), + (-moz-platform: windows-win8) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), + (-moz-platform: windows-win7) and (-moz-gtk-csd-available), + (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { + .titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + border-radius: 4px; } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { #TabsToolbar { --toolbarseparator-color: transparent; } @@ -2306,6 +2462,12 @@ --toolbarbutton-hover-background ) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { #scrollbutton-up, #scrollbutton-down, #alltabs-button > .toolbarbutton-badge-stack, @@ -2344,16 +2506,26 @@ #main-menubar:not(:-moz-window-inactive) { color: var(--lwt-text-color) !important; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - #toolbar-menubar:not(:-moz-window-inactive) { - text-shadow: unset !important; - } + } + @media (-moz-os-version: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win8) and (prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (prefers-color-scheme: dark) { + #toolbar-menubar:not(:-moz-window-inactive) { + text-shadow: unset !important; } - @media (-moz-windows-default-theme) { - #TabsToolbar { - color: inherit !important; - background-image: unset !important; - } + } + @media (-moz-os-version: windows-win8) and (-moz-windows-default-theme), + (-moz-platform: windows-win8) and (-moz-windows-default-theme), + (-moz-os-version: windows-win7) and (-moz-windows-default-theme), + (-moz-platform: windows-win7) and (-moz-windows-default-theme) { + #TabsToolbar { + color: inherit !important; + background-image: unset !important; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { @@ -2382,14 +2554,12 @@ .menupopup-arrowscrollbox[part*="content"] { background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; } - @media not (-moz-windows-non-native-menus) { - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { - html#main-window #mainPopupSet menupopup:not(.in-menulist) { - --menu-background-color: Menu !important; - } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows) { + html#main-window #mainPopupSet menupopup:not(.in-menulist) { + --menu-background-color: Menu !important; } } @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { @@ -3700,7 +3870,7 @@ #tabs-newtab-button:hover > .toolbarbutton-icon { transition: background-color 0.25s var(--animation-easing-function) !important; } - @media (-moz-gtk-csd-available) { + @media (prefers-reduced-motion: no-preference) and (-moz-gtk-csd-available) { .tabbrowser-tab:is([visuallyselected], [multiselected], [selected]) .tab-background:not(:-moz-lwtheme) { transition: background-image 0.25s var(--animation-easing-function) !important; } @@ -4072,14 +4242,12 @@ width: var(--uc-title-post-spacer) !important; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement) { - .titlebar-spacer[type="pre-tabs"] { - width: var(--uc-title-pre-spacer) !important; - } - .titlebar-spacer[type="post-tabs"] { - width: var(--uc-title-post-spacer) !important; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-spacer[type="pre-tabs"] { + width: var(--uc-title-pre-spacer) !important; + } + .titlebar-spacer[type="post-tabs"] { + width: var(--uc-title-post-spacer) !important; } } @media (-moz-os-version: windows-win7), @@ -4093,14 +4261,12 @@ width: var(--uc-title-pre-spacer) !important; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement: 0) { - .titlebar-spacer[type="pre-tabs"] { - width: var(--uc-title-post-spacer) !important; - } - .titlebar-spacer[type="post-tabs"] { - width: var(--uc-title-pre-spacer) !important; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + .titlebar-spacer[type="pre-tabs"] { + width: var(--uc-title-post-spacer) !important; + } + .titlebar-spacer[type="post-tabs"] { + width: var(--uc-title-pre-spacer) !important; } } /* Tabbar Buttons */ @@ -5242,22 +5408,24 @@ :root:is([tabsintitlebar], [sizemode="fullscreen"]) { /* 84px is default value of linux */ } - @media (-moz-gtk-csd-minimize-button), (-moz-gtk-csd-maximize-button), (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-width: 28px; - } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-close-button) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 28px; } - @media (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button), - (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button), - (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-width: 56px; - } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 56px; } - @media (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-width: 84px; - } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 84px; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { @@ -5282,11 +5450,9 @@ --uc-window-drag-space-pre: 0px; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-drag-space-pre: 0px; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { @@ -5294,11 +5460,9 @@ --uc-window-control-space: 0px; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-space: 0px; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; } } @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { @@ -5317,11 +5481,9 @@ --uc-window-control-space: 0px; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-space: 0px; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; } } } @@ -5339,19 +5501,17 @@ } @media screen and (min-width: 1100px) { @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } } - @media (-moz-gtk-csd-available) { - @media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-drag-space-pre: 0px; - } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; } } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { @@ -5359,11 +5519,9 @@ --uc-window-control-space: 0px; } } - @media (-moz-gtk-csd-available) { - @media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-space: 0px; - } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; } } @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { @@ -5374,19 +5532,17 @@ } @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } } - @media (-moz-gtk-csd-available) { - @media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement: 0) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-space: 0px; - } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; } } } @@ -5456,12 +5612,10 @@ right: unset !important; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - left: 0; - right: unset !important; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; } } @media (-moz-os-version: windows-win7), @@ -5608,12 +5762,10 @@ right: unset !important; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - left: 0; - right: unset !important; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; } } @media (-moz-os-version: windows-win7), @@ -5757,12 +5909,10 @@ right: unset !important; } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - left: 0; - right: unset !important; - } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; } } @media (-moz-os-version: windows-win7), @@ -5890,11 +6040,15 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { - stroke: var(--toolbar-color, currentColor) !important; - } + /* At Activated Menubar */ + } + @media screen and (max-width: 1100px) and (-moz-os-version: windows-win10), + screen and (max-width: 1100px) and (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; } + } + @media screen and (max-width: 1100px) { .titlebar-buttonbox-container > .titlebar-buttonbox { height: 100%; } @@ -5903,44 +6057,48 @@ margin-block: 10px; } } + } + @media screen and (max-width: 1100px) { @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { .titlebar-buttonbox-container { left: 0; right: unset !important; } } - @media (-moz-gtk-csd-available) { - @media screen and (max-width: 1100px) and (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - left: 0; - right: unset !important; - } - } + } + @media screen and (max-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { - :root[sizemode="maximized"][tabsintitlebar] { - --uc-titlebar-padding: 8px; - } - :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { - margin-top: calc(-1 * var(--uc-titlebar-padding)); - } - :root[sizemode="normal"][tabsintitlebar] #titlebar, - :root[sizemode="maximized"][tabsintitlebar] #titlebar { - appearance: none !important; - } - .browser-toolbar:not(.titlebar-color) { - background-clip: border-box !important; - } + } + @media screen and (max-width: 1100px) and (-moz-os-version: windows-win7), + screen and (max-width: 1100px) and (-moz-os-version: windows-win8), + screen and (max-width: 1100px) and (-moz-os-version: windows-win10), + screen and (max-width: 1100px) and (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; } + } + @media screen and (max-width: 1100px) { @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { #toolbar-menubar:not([autohide="true"]) { visibility: visible !important; height: 0; } } + } + @media screen and (max-width: 1100px) { @supports not -moz-bool-pref("userChrome.hidden.tabbar") { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { opacity: 0; @@ -5959,6 +6117,8 @@ } } } + } + @media screen and (max-width: 1100px) { @supports -moz-bool-pref("userChrome.hidden.tabbar") { @supports -moz-bool-pref("userChrome.autohide.navbar") { #navigator-toolbox:is(:hover, :focus-within) @@ -5969,7 +6129,6 @@ } } } - /* At Activated Menubar */ } @media screen and (max-width: 1100px) and (prefers-reduced-motion: no-preference) { #toolbar-menubar[inactive] > .titlebar-buttonbox-container { @@ -6051,7 +6210,8 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows-win10) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -6070,18 +6230,16 @@ right: unset !important; } } - @media (-moz-gtk-csd-available) { - @media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - left: 0; - right: unset !important; - } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6202,7 +6360,8 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows-win10) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -6221,18 +6380,16 @@ right: unset !important; } } - @media (-moz-gtk-csd-available) { - @media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - left: 0; - right: unset !important; - } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6351,7 +6508,10 @@ } @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { - @media screen and (max-width: 1100px) { + @media screen and (-moz-os-version: windows-win7) and (max-width: 1100px), + screen and (-moz-os-version: windows-win8) and (max-width: 1100px), + screen and (-moz-os-version: windows-win10) and (max-width: 1100px), + screen and (-moz-platform: windows) and (max-width: 1100px) { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); @@ -6375,7 +6535,10 @@ } } @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @media screen and (min-width: 1100px) { + @media screen and (-moz-os-version: windows-win7) and (min-width: 1100px), + screen and (-moz-os-version: windows-win8) and (min-width: 1100px), + screen and (-moz-os-version: windows-win10) and (min-width: 1100px), + screen and (-moz-platform: windows) and (min-width: 1100px) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; @@ -6391,35 +6554,47 @@ } } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement: 0) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - #nav-bar { - border-inline-start-width: var(--uc-window-drag-space-pre); - border-inline-end-width: var(--uc-window-control-space); + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) and (max-width: 1100px) { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { - @media screen and (-moz-gtk-csd-reversed-placement: 0) and (max-width: 1100px) { - #nav-bar { - border-inline-start-width: var(--uc-window-drag-space-pre); - border-inline-end-width: var(--uc-window-control-space); - } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-drag-space-pre) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-control-space) !important; } } } - } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) and (min-width: 1100px) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; @@ -6431,20 +6606,6 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @media screen and (-moz-gtk-csd-reversed-placement: 0) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - #nav-bar { - margin-inline-start: var(--uc-window-drag-space-pre) !important; - } - } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - #nav-bar { - margin-inline-end: var(--uc-window-control-space) !important; - } - } - } - } } } } @@ -6539,35 +6700,47 @@ } } } - @media (-moz-gtk-csd-available) { - @media (-moz-gtk-csd-reversed-placement) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { #nav-bar { border-inline-start-width: var(--uc-window-control-space); border-inline-end-width: var(--uc-window-drag-space-pre); } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - #nav-bar { - border-inline-start-width: var(--uc-window-control-space); - border-inline-end-width: var(--uc-window-drag-space-pre); + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (max-width: 1100px) { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } } } - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { - @media screen and (-moz-gtk-csd-reversed-placement) and (max-width: 1100px) { - #nav-bar { - border-inline-start-width: var(--uc-window-control-space); - border-inline-end-width: var(--uc-window-drag-space-pre); - } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-control-space, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-control-space, 0px) !important; @@ -6579,54 +6752,40 @@ } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @media screen and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - #nav-bar { - margin-inline-start: var(--uc-window-control-space, 0px) !important; - } - } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - #nav-bar { - margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; - } - } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - } - @supports -moz-bool-pref("userChrome.tabbar.one_liner") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { #TabsToolbar { margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; } } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @media screen and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - #TabsToolbar { - margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; - } - } - } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + #TabsToolbar { + margin-inline-start: var(--uc-window-control-width, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { #TabsToolbar { margin-inline-start: var(--uc-window-control-width, 0px) !important; } } - @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @media screen and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { - #TabsToolbar { - margin-inline-start: var(--uc-window-control-width, 0px) !important; - } - } - } } } } @@ -11649,72 +11808,80 @@ } } /* Padding - Non Native */ + @media (-moz-os-version: windows-win7) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win8) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win10) and (-moz-windows-non-native-menus), + (-moz-platform: windows) and (-moz-windows-non-native-menus), + (-moz-gtk-csd-available) and (-moz-windows-non-native-menus) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows), (-moz-gtk-csd-available) { - @media (-moz-windows-non-native-menus) { - :root { - --context-menu-background-padding: 1em; - --context-menu-text-padding-default: 24px; - --context-menu-text-padding: var(--context-menu-text-padding-default); - --menu-background-padding-default: calc( - var(--context-menu-background-padding) + var(--context-menu-text-padding) - ); - --bookmark-menu-icon-align-padding: 0px; - } - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #context_sendTabToDevicePopupMenu, - #context-sendpagetodevice-popup, - #context-sendlinktodevice-popup, - #frame > menupopup - ) - > menuitem, - .openintabs-menuitem, - #blockedPopupDontShowMessage, - #BMB_viewBookmarksToolbar, - #sidebarMenu-popup:is(menupopup), - #context_openANewTab.tabmix-newtab-menu-icon { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } - } @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - @media (-moz-gtk-csd-available) { + @media (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win10) and (-moz-gtk-csd-available), + (-moz-platform: windows) and (-moz-gtk-csd-available), + (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { :root { --context-menu-background-padding: 1em; --context-menu-text-padding-default: 24px; @@ -11789,138 +11956,167 @@ var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) ); } - @media not (-moz-windows-non-native-menus) { + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + :root { + --context-menu-text-padding: calc(1.45em + 8px); + --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) { + :root { + --context-menu-background-padding-default: 2px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic) { + :root { + --context-menu-background-padding-default: -0.5px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { + :root { + --context-menu-background-padding-default: 3px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { + :root { + --context-menu-background-padding: 3px; + --menu-background-padding-default: 0px; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { :root { - --context-menu-text-padding: calc(1.45em + 8px); - --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); + --context-menu-background-padding: 5px; } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - :root { - --context-menu-background-padding-default: 2px; - } - @media (not (-moz-windows-non-native-menus)) and (-moz-windows-classic) { - :root { - --context-menu-background-padding-default: -0.5px; - } - } + #main-menubar { + --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); } - @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - :root { - --context-menu-background-padding-default: 3px; - } + menuitem:is([type="checkbox"], [type="radio"]) { + --menu-padding: 0px; } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root { - --context-menu-background-padding: 3px; - --menu-background-padding-default: 0px; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - :root { - --context-menu-background-padding: 5px; - } - #main-menubar { - --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); - } - menuitem:is([type="checkbox"], [type="radio"]) { - --menu-padding: 0px; - } - menuitem[checked="true"] { - --context-menu-background-padding: 0px; - } - menuitem[checked="true"] > .menu-iconic-left { - transform: translateX(2px); - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - appearance: none !important; - padding-block: 0 !important; - padding-inline-start: 5px !important; - margin-inline-end: 8px !important; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - box-sizing: content-box; - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel { - box-sizing: content-box; - min-height: 16px; - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-text, - menupopup:not([placespopup="true"]) .menu-iconic-text { - padding-block: 0 !important; - } + menuitem[checked="true"] { + --context-menu-background-padding: 0px; } + menuitem[checked="true"] > .menu-iconic-left { + transform: translateX(2px); + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + box-sizing: content-box; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-text, + menupopup:not([placespopup="true"]) .menu-iconic-text { + padding-block: 0 !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { - @media not (-moz-windows-non-native-menus) { - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #context_sendTabToDevicePopupMenu, - #context-sendpagetodevice-popup, - #context-sendlinktodevice-popup, - #frame > menupopup - ) - > menuitem, - .openintabs-menuitem, - #blockedPopupDontShowMessage, - #BMB_viewBookmarksToolbar, - #sidebarMenu-popup:is(menupopup), - #context_openANewTab.tabmix-newtab-menu-icon { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: 0 !important; - } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; } } /* Padding - Linux */ diff --git a/css/leptonContent.css b/css/leptonContent.css index ef0f772f..bf2824dd 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -818,16 +818,17 @@ --dark-menu-icon-opacity: 1; } /* Override the menu color variables for dark browser themes. */ - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - :root { - --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); - --menu-background-color: var(--dark-menu-background-color); - --menu-color: var(--dark-menu-color); - --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); - --menu-disabled-color: var(--dark-menu-disabled-color); - --menu-border-color: var(--dark-menu-border-color); - --menu-icon-opacity: var(--dark-menu-icon-opacity); - } + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); } } } @@ -2890,7 +2891,7 @@ outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; } } - @media (prefers-contrast) { + @media (-moz-gtk-csd-available) and (prefers-contrast) { menuitem[type="checkbox"]:not([disabled="true"]) > .menu-iconic-left > .menu-iconic-icon { /* color will set the border-color on the check due to how HCM works for in-content pages. */ color: var(--checkbox-checked-border-color, color-mix(in srgb, AccentColor 4%, Field)) !important; @@ -3211,35 +3212,42 @@ padding-inline-start: var(--context-menu-background-padding) !important; } /* Padding - Non Native */ + @media (-moz-os-version: windows-win7) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win8) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win10) and (-moz-windows-non-native-menus), + (-moz-platform: windows) and (-moz-windows-non-native-menus), + (-moz-gtk-csd-available) and (-moz-windows-non-native-menus) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows), (-moz-gtk-csd-available) { - @media (-moz-windows-non-native-menus) { - :root { - --context-menu-background-padding: 1em; - --context-menu-text-padding-default: 24px; - --context-menu-text-padding: var(--context-menu-text-padding-default); - --menu-background-padding-default: calc( - var(--context-menu-background-padding) + var(--context-menu-text-padding) - ); - --bookmark-menu-icon-align-padding: 0px; - } - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } - } @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - @media (-moz-gtk-csd-available) { + @media (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win10) and (-moz-gtk-csd-available), + (-moz-platform: windows) and (-moz-gtk-csd-available), + (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { :root { --context-menu-background-padding: 1em; --context-menu-text-padding-default: 24px; @@ -3276,102 +3284,130 @@ var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) ); } - @media not (-moz-windows-non-native-menus) { + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + :root { + --context-menu-text-padding: calc(1.45em + 8px); + --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) { + :root { + --context-menu-background-padding-default: 2px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic) { + :root { + --context-menu-background-padding-default: -0.5px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { + :root { + --context-menu-background-padding-default: 3px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { + :root { + --context-menu-background-padding: 3px; + --menu-background-padding-default: 0px; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { :root { - --context-menu-text-padding: calc(1.45em + 8px); - --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); + --context-menu-background-padding: 5px; } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - :root { - --context-menu-background-padding-default: 2px; - } - @media (not (-moz-windows-non-native-menus)) and (-moz-windows-classic) { - :root { - --context-menu-background-padding-default: -0.5px; - } - } + #main-menubar { + --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); } - @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - :root { - --context-menu-background-padding-default: 3px; - } + menuitem:is([type="checkbox"], [type="radio"]) { + --menu-padding: 0px; } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { - :root { - --context-menu-background-padding: 3px; - --menu-background-padding-default: 0px; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - :root { - --context-menu-background-padding: 5px; - } - #main-menubar { - --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); - } - menuitem:is([type="checkbox"], [type="radio"]) { - --menu-padding: 0px; - } - menuitem[checked="true"] { - --context-menu-background-padding: 0px; - } - menuitem[checked="true"] > .menu-iconic-left { - transform: translateX(2px); - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - appearance: none !important; - padding-block: 0 !important; - padding-inline-start: 5px !important; - margin-inline-end: 8px !important; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - box-sizing: content-box; - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel { - box-sizing: content-box; - min-height: 16px; - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-text, - menupopup:not([placespopup="true"]) .menu-iconic-text { - padding-block: 0 !important; - } + menuitem[checked="true"] { + --context-menu-background-padding: 0px; + } + menuitem[checked="true"] > .menu-iconic-left { + transform: translateX(2px); } } - } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { - @media not (-moz-windows-non-native-menus) { - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: 0 !important; + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + box-sizing: content-box; } } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-text, + menupopup:not([placespopup="true"]) .menu-iconic-text { + padding-block: 0 !important; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } } /* Padding - Linux */ @media (-moz-gtk-csd-available) { diff --git a/src/utils/_media.scss b/src/utils/_media.scss index 2a879559..f0bb204c 100644 --- a/src/utils/_media.scss +++ b/src/utils/_media.scss @@ -1,7 +1,22 @@ -@use "each"; +@use "sass:map"; +@use "sass:list"; @mixin each($list...) { - @include each.AtEach("media", $list) { - @content; + $listL: list.length($list); + @if $listL >= 1 { + $first: list.nth($list, 1); + @if $first != null and $first != () { + $blocks: "(#{$first})"; + @if $listL > 1 { + @for $i from 2 through ($listL) { + $nextBlock: list.nth($list, $i); + $nextBlock: ", (#{$nextBlock})"; + $blocks: "#{$blocks}#{$nextBlock}"; + } + } + @media #{"#{$blocks}"} { + @content; + } + } } } From 8ad0d18e142246de6d06a67857ffa09575c3c28c Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 13 Aug 2023 04:01:27 +0900 Subject: [PATCH 31/37] Fix: Utils - `STANDARD-MODE` for `OS` #744 --- __tests__/list.test.scss | 16 ++++ __tests__/native_menu.test.scss | 123 +++++++++++++++++++++++++- __tests__/os.test.scss | 147 +++++++++++++++++++++++++++++++- src/leptonChrome.scss | 1 + src/leptonContent.scss | 1 + src/utils/_list.scss | 18 ++-- src/utils/_os.scss | 20 ++++- 7 files changed, 317 insertions(+), 9 deletions(-) diff --git a/__tests__/list.test.scss b/__tests__/list.test.scss index 85d920d5..82e570f2 100644 --- a/__tests__/list.test.scss +++ b/__tests__/list.test.scss @@ -21,6 +21,22 @@ $dupList: (ab cd efgh efgh efgh ijk); } } +@include test-module("Remove at list using list [fn]") { + @include test("simple") { + @include assert-equal( + list.remove-list($simpleList, ("cd" "efgh")), + (ab ijk) + ); + } + + @include test("duplicate") { + @include assert-equal( + list.remove-list($dupList, ("cd" "efgh")), + (ab ijk) + ); + } +} + @include test-module("Convert to str [fn]") { @include test("simple") { @include assert-equal( diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index 5a766a80..38d96d40 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -1,8 +1,11 @@ @use "true" as *; @use "example" as *; @use "../src/utils/native_menu"; +@use "../src/utils/os" as OS; + +@include test-module("Native Menu Option - ESR [mix]") { + @include OS.ESR-MODE; -@include test-module("Native Menu Option [mix]") { @include test("simple") { @include assert { @include output { @@ -117,3 +120,121 @@ } } } + +@include test-module("Native Menu Option - Standard [mix]") { + @include OS.STANDARD-MODE; + + @include test("simple") { + @include assert { + @include output { + @include native_menu.NativeToolkitMenu { + @include example; + } + @include native_menu.NativeMenuPopup { + @include example; + } + } + @include expect { + @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + @include example; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), + menupopup:not([placespopup="true"]) { + @include example; + } + } + } + } + @include test("native menu - with windows media") { + @include assert { + @include output { + @include native_menu.NativeMenu(true) { + @include example; + } + @include native_menu.NonNativeMenu(true) { + @include example; + } + @include native_menu.WinNativeMenu(true) { + @include example; + } + @include native_menu.WinNonNativeMenu(true) { + @include example; + } + } + @include expect { + @media not (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { + @include example; + } + } + @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } + } + @media (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { + @include example; + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } + } + @media not (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { + @include example; + } + } + @media (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { + @include example; + } + } + } + } + } + @include test("native menu - without windows media") { + @include assert { + @include output { + @include native_menu.NativeMenu { + @include example; + } + @include native_menu.NonNativeMenu { + @include example; + } + @include native_menu.WinNativeMenu { + @include example; + } + @include native_menu.WinNonNativeMenu { + @include example; + } + } + @include expect { + @media not (-moz-windows-non-native-menus) { + @include example; + } + @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } + } + @media (-moz-windows-non-native-menus) { + @include example; + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + @include example; + } + } + @media not (-moz-windows-non-native-menus) { + @include example; + } + @media (-moz-windows-non-native-menus) { + @include example; + } + } + } + } +} diff --git a/__tests__/os.test.scss b/__tests__/os.test.scss index 8e66f062..e42d95b7 100644 --- a/__tests__/os.test.scss +++ b/__tests__/os.test.scss @@ -2,8 +2,9 @@ @use "example" as *; @use "../src/utils/os" as *; -// TODO: Need more tests.. -@include test-module("Create OS related media [mix]") { +@include test-module("Create OS related media - ESR [mix]") { + @include ESR-MODE; + @include test("win7") { @include assert { @include output { @@ -145,3 +146,145 @@ } } } + +@include test-module("Create OS related media - Standard [mix]") { + @include STANDARD-MODE; + + @include test("win7") { + @include assert { + @include output { + @include OS($win7) { + @include example; + } + } + @include expect { + // IGNORE + } + } + } + + @include test("win8") { + @include assert { + @include output { + @include OS($win8) { + @include example; + } + } + @include expect { + // IGNORE + } + } + } + + @include test("win10") { + @include assert { + @include output { + @include OS($win10) { + @include example; + } + } + @include expect { + // AS Windows + @media (-moz-platform: windows) { + @include example; + } + } + } + } + + @include test("linux") { + @include assert { + @include output { + @include OS($linux) { + @include example; + } + } + @include expect { + @media (-moz-gtk-csd-available) { + @include example; + } + } + } + } + + @include test("mac") { + @include assert { + @include output { + @include OS($mac) { + @include example; + } + } + @include expect { + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @include example; + } + } + } + } + + @include test("bigsur") { + @include assert { + @include output { + @include OS($bigsur) { + @include example; + } + } + @include expect { + @media (-moz-mac-big-sur-theme: 0) { + @include example; + } + } + } + } + + @include test("win") { + @include assert { + @include output { + @include OS($win) { + @include example; + } + } + @include expect { + @media (-moz-platform: windows) { + @include example; + } + } + } + } + + @include test("all os - win7, win8, win10, mac, bigsur, linux") { + @include assert { + @include output { + @include OS($win7, $win8, $win10, $mac, $bigsur, $linux) { + @include example; + } + } + @include expect { + @media (-moz-platform: windows), (-moz-mac-big-sur-theme: 0), (-moz-gtk-csd-available) { + @include example; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @include example; + } + } + } + } + + @include test("all os - win, mac, bigsur, linux") { + @include assert { + @include output { + @include OS($win, $mac, $bigsur, $linux) { + @include example; + } + } + @include expect { + @media (-moz-platform: windows), (-moz-mac-big-sur-theme: 0), (-moz-gtk-csd-available) { + @include example; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @include example; + } + } + } + } +} diff --git a/src/leptonChrome.scss b/src/leptonChrome.scss index ea1aca09..41e99383 100644 --- a/src/leptonChrome.scss +++ b/src/leptonChrome.scss @@ -16,6 +16,7 @@ @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; @namespace html "http://www.w3.org/1999/xhtml"; +@include ESR-MODE; /** Default Theme - Contrast **************************************************/ @include Option("userChrome.theme.built_in_contrast") { @import "theme/built_in"; diff --git a/src/leptonContent.scss b/src/leptonContent.scss index 0ef3035c..7eaa1a78 100644 --- a/src/leptonContent.scss +++ b/src/leptonContent.scss @@ -11,6 +11,7 @@ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); +@include ESR-MODE; /** Compatibility *************************************************************/ @import "contents/compatibility"; diff --git a/src/utils/_list.scss b/src/utils/_list.scss index 933f9233..6a6f4ee8 100644 --- a/src/utils/_list.scss +++ b/src/utils/_list.scss @@ -4,17 +4,25 @@ @function remove($list, $value, $recursive: false) { $result: (); - @for $i from 1 through length($list) { - @if type-of(nth($list, $i)) == list and $recursive { - $result: append($result, remove(nth($list, $i), $value, $recursive)); - } @else if nth($list, $i) != $value { - $result: append($result, nth($list, $i)); + @each $item in $list { + @if type-of($item) == list and $recursive { + $result: append($result, remove($item, $value, $recursive)); + } @else if $item != $value { + $result: append($result, $item); } } @return $result; } +@function remove-list($list, $removeList, $recursive: false) { + @each $removeItem in $removeList { + $list: remove($list, $removeItem, $recursive); + } + + @return $list; +} + @function to-string($list, $glue: '', $is-nested: false) { $result: null; diff --git a/src/utils/_os.scss b/src/utils/_os.scss index 7c2ca6cd..45edcb55 100644 --- a/src/utils/_os.scss +++ b/src/utils/_os.scss @@ -31,13 +31,14 @@ $_win-media: ( $_win-media: map.set($_win-media, $_win-key, $result-template); } +$_moz-platform-windows: list.nth($_win-template, 2); @function _win-only-result() { $result-template: (); @each $_win-value in map.values($_win-media) { $result-template: list.append($result-template, list.nth($_win-value, 1)); } - @return list.append($result-template, list.nth($_win-template, 2)) + @return list.append($result-template, $_moz-platform-windows) } $_win-media: map.merge( @@ -54,7 +55,24 @@ $_os-media: map.merge( ); //== Mixin ===================================================================== +$osESR: false !default; + +@mixin ESR-MODE() { + $osESR: true !global; +} + +@mixin STANDARD-MODE() { + $osESR: false !global; +} + @mixin OS($osNames...) { + $_os-media: $_os-media; // as local + @if not $osESR { + $osNames: list-utils.remove-list($osNames, ($win7 $win8)); + $_os-media: map.set($_os-media, $win10, $_moz-platform-windows); + $_os-media: map.set($_os-media, $win, $_moz-platform-windows); + } + $osMedias: (); @each $osName in $osNames { $osMedia: map.get($_os-media, $osName); From d7df0da75c74e78b17048e726fc0cb4795cd0def Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 13 Aug 2023 05:32:02 +0900 Subject: [PATCH 32/37] Fix: Utils - `STANDARD-MODE` Native menu #744 --- __tests__/native_menu.test.scss | 66 ++++++++++++++++++++------------- src/utils/_native_menu.scss | 31 +++++++++------- 2 files changed, 57 insertions(+), 40 deletions(-) diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index 38d96d40..71dd77b6 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -12,6 +12,7 @@ @include native_menu.NativeToolkitMenu { @include example; } + @include native_menu.NativeMenuPopup { @include example; } @@ -20,6 +21,7 @@ @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { @include example; } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), menupopup:not([placespopup="true"]) { @include example; @@ -33,12 +35,15 @@ @include native_menu.NativeMenu(true) { @include example; } + @include native_menu.NonNativeMenu(true) { @include example; } + @include native_menu.WinNativeMenu(true) { @include example; } + @include native_menu.WinNonNativeMenu(true) { @include example; } @@ -54,6 +59,7 @@ @include example; } } + @media (-moz-windows-non-native-menus) { @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; @@ -64,11 +70,13 @@ @include example; } } + @media not (-moz-windows-non-native-menus) { @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; } } + @media (-moz-windows-non-native-menus) { @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), (-moz-platform: windows) { @include example; @@ -83,12 +91,15 @@ @include native_menu.NativeMenu { @include example; } + @include native_menu.NonNativeMenu { @include example; } + @include native_menu.WinNativeMenu { @include example; } + @include native_menu.WinNonNativeMenu { @include example; } @@ -102,6 +113,7 @@ @include example; } } + @media (-moz-windows-non-native-menus) { @include example; } @@ -110,9 +122,11 @@ @include example; } } + @media not (-moz-windows-non-native-menus) { @include example; } + @media (-moz-windows-non-native-menus) { @include example; } @@ -130,6 +144,7 @@ @include native_menu.NativeToolkitMenu { @include example; } + @include native_menu.NativeMenuPopup { @include example; } @@ -138,6 +153,7 @@ @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { @include example; } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), menupopup:not([placespopup="true"]) { @include example; @@ -151,46 +167,41 @@ @include native_menu.NativeMenu(true) { @include example; } + @include native_menu.NonNativeMenu(true) { @include example; } + @include native_menu.WinNativeMenu(true) { @include example; } + @include native_menu.WinNonNativeMenu(true) { @include example; } } @include expect { - @media not (-moz-windows-non-native-menus) { - @media (-moz-platform: windows) { - @include example; - } - } @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { @include example; } } - @media (-moz-windows-non-native-menus) { - @media (-moz-platform: windows) { - @include example; - } + + // Only Windows + @media (-moz-platform: windows) { + @include example; } @supports -moz-bool-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { @include example; } } - @media not (-moz-windows-non-native-menus) { - @media (-moz-platform: windows) { - @include example; - } - } - @media (-moz-windows-non-native-menus) { - @media (-moz-platform: windows) { - @include example; - } + + // IGNORE + + // Only Windows + @media (-moz-platform: windows) { + @include example; } } } @@ -201,26 +212,28 @@ @include native_menu.NativeMenu { @include example; } + @include native_menu.NonNativeMenu { @include example; } + @include native_menu.WinNativeMenu { @include example; } + @include native_menu.WinNonNativeMenu { @include example; } } @include expect { - @media not (-moz-windows-non-native-menus) { - @include example; - } @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { @include example; } } - @media (-moz-windows-non-native-menus) { + + // AS Windows + @media (-moz-platform: windows) { @include example; } @supports -moz-bool-pref("userChrome.theme.non_native_menu") { @@ -228,10 +241,11 @@ @include example; } } - @media not (-moz-windows-non-native-menus) { - @include example; - } - @media (-moz-windows-non-native-menus) { + + // IGNORE + + // AS Windows + @media (-moz-platform: windows) { @include example; } } diff --git a/src/utils/_native_menu.scss b/src/utils/_native_menu.scss index 24e8e2ba..e7dab8eb 100644 --- a/src/utils/_native_menu.scss +++ b/src/utils/_native_menu.scss @@ -26,10 +26,8 @@ } @mixin NativeMenu($win-media: false) { - @media not (-moz-windows-non-native-menus) { - @include _WinMedia($win-media) { - @content; - } + @include WinNativeMenu($win-media) { + @content; } @include NotOption("userChrome.theme.non_native_menu") { @include OS($linux) { @@ -38,12 +36,9 @@ } } - @mixin NonNativeMenu($win-media: false) { - @media (-moz-windows-non-native-menus) { - @include _WinMedia($win-media) { - @content; - } + @include WinNonNativeMenu($win-media) { + @content; } @include Option("userChrome.theme.non_native_menu") { @include OS($linux) { @@ -53,16 +48,24 @@ } @mixin WinNativeMenu($win-media: false) { - @media not (-moz-windows-non-native-menus) { - @include _WinMedia($win-media) { - @content; + @if $osESR { + @media not (-moz-windows-non-native-menus) { + @include _WinMedia($win-media) { + @content; + } } } } @mixin WinNonNativeMenu($win-media: false) { - @media (-moz-windows-non-native-menus) { - @include _WinMedia($win-media) { + @if $osESR { + @media (-moz-windows-non-native-menus) { + @include _WinMedia($win-media) { + @content; + } + } + } @else { + @include _WinMedia(true) { @content; } } From 902b526c1fe0da01ad1f292647a8243ba91f4a0f Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 13 Aug 2023 19:54:34 +0900 Subject: [PATCH 33/37] Fix: Utils - Color Scheme, Native menu with mode #744 --- __tests__/color_scheme.test.scss | 85 +++++++++++++++++++++++++++++++- __tests__/mode.test.scss | 57 +++++++++++++++++++++ __tests__/native_menu.test.scss | 6 +-- __tests__/os.test.scss | 33 ++++++++++++- src/compatibility/_os.scss | 2 +- src/utils/_color_scheme.scss | 21 ++++++-- src/utils/_mode.scss | 17 +++++++ src/utils/_native_menu.scss | 5 +- src/utils/_os.scss | 21 ++++---- 9 files changed, 222 insertions(+), 25 deletions(-) create mode 100644 __tests__/mode.test.scss create mode 100644 src/utils/_mode.scss diff --git a/__tests__/color_scheme.test.scss b/__tests__/color_scheme.test.scss index 1555ab15..138082fe 100644 --- a/__tests__/color_scheme.test.scss +++ b/__tests__/color_scheme.test.scss @@ -1,8 +1,11 @@ @use "true" as *; @use "example" as *; @use "../src/utils/color_scheme"; +@use "../src/utils/mode"; + +@include test-module("Color scheme is dark - ESR [mix]") { + @include mode.ESR; -@include test-module("Color scheme is dark [mix]") { @include test("simple") { @include assert { @include output { @@ -38,7 +41,9 @@ } } -@include test-module("Color scheme is light [mix]") { +@include test-module("Color scheme is light - ESR [mix]") { + @include mode.ESR; + @include test("simple") { @include assert { @include output { @@ -74,6 +79,82 @@ } } +@include test-module("Color scheme is dark - Standard [mix]") { + @include mode.STANDARD; + + @include test("simple") { + @include assert { + @include output { + @include color_scheme.Dark { + @include example; + } + } + @include expect { + @media (prefers-color-scheme: dark) { + @include example; + } + } + } + } + + @include test("simple reversed") { + @include assert { + @include output { + @include example_tag { + @include color_scheme.Dark { + @include example_property; + } + } + } + @include expect { + @media (prefers-color-scheme: dark) { + @include example_tag { + @include example_property; + } + } + } + } + } +} + +@include test-module("Color scheme is light - Standard [mix]") { + @include mode.STANDARD; + + @include test("simple") { + @include assert { + @include output { + @include color_scheme.Light { + @include example; + } + } + @include expect { + @media (prefers-color-scheme: light) { + @include example; + } + } + } + } + + @include test("simple reversed") { + @include assert { + @include output { + @include example_tag { + @media (prefers-color-scheme: light) { + @include example_property; + } + } + } + @include expect { + @media (prefers-color-scheme: light) { + @include example_tag { + @include example_property; + } + } + } + } + } +} + @include test-module("Color contrast [mix]") { @include test("simple") { @include assert { diff --git a/__tests__/mode.test.scss b/__tests__/mode.test.scss new file mode 100644 index 00000000..2c0d1cae --- /dev/null +++ b/__tests__/mode.test.scss @@ -0,0 +1,57 @@ +@use "true" as *; +@use "example" as *; +@use "../src/utils/mode"; + +@include test-module("ESR Mode [mix]") { + @include mode.ESR; + + @include test("simple") { + @include assert { + @include output { + @if mode.isESR() { + @include example; + } + } + @include expect { + @include example; + } + } + @include assert { + @include output { + @if mode.isSTANDARD() { + @include example; + } + } + @include expect { + // IGNORE + } + } + } +} + +@include test-module("STANDARD Mode [mix]") { + @include mode.STANDARD; + + @include test("simple") { + @include assert { + @include output { + @if mode.isESR() { + @include example; + } + } + @include expect { + // IGNORE + } + } + @include assert { + @include output { + @if mode.isSTANDARD() { + @include example; + } + } + @include expect { + @include example; + } + } + } +} diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index 71dd77b6..92da4597 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -1,10 +1,10 @@ @use "true" as *; @use "example" as *; @use "../src/utils/native_menu"; -@use "../src/utils/os" as OS; +@use "../src/utils/mode"; @include test-module("Native Menu Option - ESR [mix]") { - @include OS.ESR-MODE; + @include mode.ESR; @include test("simple") { @include assert { @@ -136,7 +136,7 @@ } @include test-module("Native Menu Option - Standard [mix]") { - @include OS.STANDARD-MODE; + @include mode.STANDARD; @include test("simple") { @include assert { diff --git a/__tests__/os.test.scss b/__tests__/os.test.scss index e42d95b7..835ca58b 100644 --- a/__tests__/os.test.scss +++ b/__tests__/os.test.scss @@ -1,9 +1,10 @@ @use "true" as *; @use "example" as *; @use "../src/utils/os" as *; +@use "../src/utils/mode"; @include test-module("Create OS related media - ESR [mix]") { - @include ESR-MODE; + @include mode.ESR; @include test("win7") { @include assert { @@ -145,10 +146,25 @@ } } } + + @include test("windows classic theme") { + @include assert { + @include output { + @include WinClassic { + @include example; + } + } + @include expect { + @media (-moz-windows-classic) { + @include example; + } + } + } + } } @include test-module("Create OS related media - Standard [mix]") { - @include STANDARD-MODE; + @include mode.STANDARD; @include test("win7") { @include assert { @@ -287,4 +303,17 @@ } } } + + @include test("windows classic theme") { + @include assert { + @include output { + @include WinClassic { + @include example; + } + } + @include expect { + // IGNORE + } + } + } } diff --git a/src/compatibility/_os.scss b/src/compatibility/_os.scss index 611359cc..1acca2be 100644 --- a/src/compatibility/_os.scss +++ b/src/compatibility/_os.scss @@ -253,7 +253,7 @@ $_os_linuxDefaultShadow: 0 0 4px rgba(128, 128, 142, 0.5); // https://github.com/mozilla/gecko-dev/blob/4334cb91a3762ac497c50a1c7b86b8004690229e/browser/themes/windows/browser.css#L164-L174 // https://github.com/mozilla/gecko-dev/blob/4334cb91a3762ac497c50a1c7b86b8004690229e/browser/themes/windows/browser-aero.css#L71-L81 @include OS($win) { - @media (-moz-windows-classic) { + @include WinClassic { :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { appearance: auto !important; -moz-default-appearance: -moz-window-titlebar !important;; diff --git a/src/utils/_color_scheme.scss b/src/utils/_color_scheme.scss index b271b537..0f792f43 100644 --- a/src/utils/_color_scheme.scss +++ b/src/utils/_color_scheme.scss @@ -1,13 +1,26 @@ +@use "mode"; // -moz-toolbar-prefers-color-scheme is removed at v95, #250 @mixin Dark() { - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { - @content; + @if mode.isESR() { + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @content; + } + } @else { + @media (prefers-color-scheme: dark) { + @content; + } } } @mixin Light() { - @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { - @content; + @if mode.isESR() { + @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { + @content; + } + } @else { + @media (prefers-color-scheme: light) { + @content; + } } } diff --git a/src/utils/_mode.scss b/src/utils/_mode.scss new file mode 100644 index 00000000..19e6d44b --- /dev/null +++ b/src/utils/_mode.scss @@ -0,0 +1,17 @@ +$_osESR: false !default; + +@mixin ESR() { + $_osESR: true !global; +} + +@mixin STANDARD() { + $_osESR: false !global; +} + +@function isESR() { + @return $_osESR; +} + +@function isSTANDARD() { + @return not $_osESR; +} diff --git a/src/utils/_native_menu.scss b/src/utils/_native_menu.scss index e7dab8eb..e0f5b5b7 100644 --- a/src/utils/_native_menu.scss +++ b/src/utils/_native_menu.scss @@ -1,3 +1,4 @@ +@use "mode"; @use "option" as *; @use "os" as *; @@ -48,7 +49,7 @@ } @mixin WinNativeMenu($win-media: false) { - @if $osESR { + @if mode.isESR() { @media not (-moz-windows-non-native-menus) { @include _WinMedia($win-media) { @content; @@ -58,7 +59,7 @@ } @mixin WinNonNativeMenu($win-media: false) { - @if $osESR { + @if mode.isESR() { @media (-moz-windows-non-native-menus) { @include _WinMedia($win-media) { @content; diff --git a/src/utils/_os.scss b/src/utils/_os.scss index 45edcb55..e4a1dd5d 100644 --- a/src/utils/_os.scss +++ b/src/utils/_os.scss @@ -2,6 +2,7 @@ @use "sass:map"; @use "list" as list-utils; @use "media"; +@use "mode"; //== Args ====================================================================== $win: "win"; @@ -55,19 +56,9 @@ $_os-media: map.merge( ); //== Mixin ===================================================================== -$osESR: false !default; - -@mixin ESR-MODE() { - $osESR: true !global; -} - -@mixin STANDARD-MODE() { - $osESR: false !global; -} - @mixin OS($osNames...) { $_os-media: $_os-media; // as local - @if not $osESR { + @if mode.isSTANDARD() { $osNames: list-utils.remove-list($osNames, ($win7 $win8)); $_os-media: map.set($_os-media, $win10, $_moz-platform-windows); $_os-media: map.set($_os-media, $win, $_moz-platform-windows); @@ -91,3 +82,11 @@ $osESR: false !default; } } } + +@mixin WinClassic() { + @if mode.isESR() { + @media (-moz-windows-classic) { + @content; + } + } +} From 0641f9ad605660760bc44eb9fb96fb852ea6d643 Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Sun, 13 Aug 2023 21:40:15 +0900 Subject: [PATCH 34/37] Feature: ESR & Standard build files #744 --- css/leptonChrome.css | 778 +- css/leptonChromeESR.css | 13650 ++++++++++++++++++++++++++++++++++++ css/leptonContent.css | 172 +- css/leptonContentESR.css | 3721 ++++++++++ package.json | 4 +- src/leptonChrome.scss | 1 - src/leptonChromeESR.scss | 4 + src/leptonContent.scss | 1 - src/leptonContentESR.scss | 4 + 9 files changed, 17482 insertions(+), 853 deletions(-) create mode 100644 css/leptonChromeESR.css create mode 100644 css/leptonContentESR.css create mode 100644 src/leptonChromeESR.scss create mode 100644 src/leptonContentESR.scss diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 081dceb9..bedac50f 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -8,7 +8,7 @@ :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { --lwt-accent-color: rgb(229, 229, 235) !important; /* Original: rgb(240, 240, 244) */ } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { background-color: var(--lwt-accent-color) !important; @@ -165,7 +165,7 @@ /*= OS - Compatibility =======================================================*/ @supports -moz-bool-pref("userChrome.compatibility.os") { /*= Windows 10 - Top border of accent color at ESR #358 ======================*/ - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { border-top: 0.5px solid rgb(47, 47, 47) !important; } @@ -173,8 +173,7 @@ border-top-color: rgb(57, 57, 57) !important; } } - @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), - (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { + @media (-moz-platform: windows) and (-moz-windows-accent-color-in-titlebar) { :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { border-top-color: AccentColor !important; } @@ -185,136 +184,8 @@ } } /*= Windows 7, 8 - Tab Bar Background *****************************************/ - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { - @supports not -moz-bool-pref("userChrome.theme.transparent.frame") { - /* Header Color */ - :root:not([lwtheme-image]):-moz-lwtheme { - background-color: var(--lwt-accent-color) !important; - } - :root:not([lwtheme-image]):-moz-lwtheme:-moz-window-inactive { - background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color)) !important; - } - } - } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - #TabsToolbar { - /* Remove Aero */ - /* Original: radial-gradient(eclipse at bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.5) 80%, transparent) */ - background-image: unset !important; - } - #TabsToolbar:-moz-lwtheme { - /* background textcolor */ - color: var(--lwt-text-color) !important; - } - } - @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { - #navigator-toolbox:-moz-lwtheme { - /* background textcolor */ - color: var(--lwt-text-color) !important; - } - } /*= Windows 7, 8 - Menu Bar ==================================================*/ - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { - menupopup > menu, - menupopup > menuitem, - #context-navigation > menuitem { - border: 1px solid transparent; /* Need reduce 2px at menu */ - } - #main-menubar > menu[open="true"], - #main-menubar > menu[_moz-menuactive="true"] { - background-color: -moz-menuhover !important; /* Make to original */ - } - :root:-moz-lwtheme #main-menubar > menu[open="true"], - :root:-moz-lwtheme #main-menubar > menu[_moz-menuactive="true"] { - color: inherit !important; /* Original: -moz-menubarhovertext */ - background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ - } - } /*= Windows - Native Menu ====================================================*/ - @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (not (-moz-windows-non-native-menus)) and (-moz-platform: windows) { - .customization-uidensity-menuitem > .menu-iconic-left { - width: unset !important; - } - menulist > menupopup > menuitem[_moz-menuactive="true"], - menulist > menupopup > menu[_moz-menuactive="true"] { - background-color: highlight !important; - color: highlighttext !important; - } - #PlacesToolbar menu, - #PlacesToolbar menuitem, - #BMB_bookmarksPopup menu, - #BMB_bookmarksPopup menuitem { - border: none !important; /* Remove border */ - } - #PlacesToolbar menu:not([disabled], :active)[_moz-menuactive="true"], - #PlacesToolbar menuitem:not([disabled], :active)[_moz-menuactive="true"], - #BMB_bookmarksPopup menu:not([disabled], :active)[_moz-menuactive="true"], - #BMB_bookmarksPopup menuitem:not([disabled], :active)[_moz-menuactive="true"] { - background-color: var(--button-hover-bgcolor) !important; - } - } - @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic: 0), - (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic: 0) { - menu[_moz-menuactive="true"], - menuitem[_moz-menuactive="true"] { - background-color: color-mix(in srgb, -moz-menuhover 5%, transparent) !important; - border-color: color-mix(in srgb, -moz-menuhover 60%, transparent) !important; - } - menu[_moz-menuactive="true"][disabled="true"], - menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 5%, transparent) !important; - border-color: color-mix(in srgb, currentColor 60%, transparent) !important; - } - /* Remove text shadow */ - :root:-moz-lwtheme #toolbar-menubar { - text-shadow: unset !important; - /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ - } - /* Remove Color */ - :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { - background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ - color: unset !important; /* Original: black */ - } - } - @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { - menu[_moz-menuactive="true"], - menuitem[_moz-menuactive="true"] { - background-color: color-mix(in srgb, -moz-menuhover 17%, transparent) !important; - border-color: color-mix(in srgb, -moz-menuhover 80%, transparent) !important; - } - menu[_moz-menuactive="true"][disabled="true"], - menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 17%, transparent) !important; - border-color: color-mix(in srgb, currentColor 80%, transparent) !important; - } - } - @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"], - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"], - menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"], - menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"] { - background-color: #91c9f7 !important; - border-color: transparent !important; - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"][disabled="true"], - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"][disabled="true"], - menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"][disabled="true"], - menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 9%, transparent) !important; - border-color: transparent !important; - } - } @media (-moz-gtk-csd-available) { /*= Linux - Global Menubar Active Color ====================================*/ #main-menubar > menu[open="true"], @@ -341,8 +212,7 @@ } } /*= Linux - Light System Default Theme's Selected Tab ========================*/ - @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), - (-moz-gtk-csd-available) and (prefers-color-scheme: light) { + @media (-moz-gtk-csd-available) and (prefers-color-scheme: light) { /* Because of #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected=true], [multiselected]) > .tab-stack > .tab-background { border: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); @@ -364,35 +234,12 @@ } } /*= Titlebar Container Size at maximized #384 ================================*/ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { @supports not -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { :root[tabsintitlebar] #titlebar { /* -moz-default-appearance: -moz-window-titlebar */ appearance: none !important; } - @media (-moz-os-version: windows-win7) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win7) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win7) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win7) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win8) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win8) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win8) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win10) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win10) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win10) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10) and (-moz-platform: windows-win8), - (-moz-platform: windows) and (-moz-os-version: windows-win7), - (-moz-platform: windows) and (-moz-platform: windows-win7), - (-moz-platform: windows) and (-moz-os-version: windows-win8), - (-moz-platform: windows) and (-moz-platform: windows-win8) { - :root[tabsintitlebar][sizemode="maximized"] #titlebar { - padding-top: 8px; - } - } } @supports -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { :root[tabsintitlebar][sizemode="maximized"] #titlebar { @@ -402,34 +249,6 @@ } } /*= Windows - Classic Theme #734 =============================================*/ - @media (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win8) and (-moz-windows-classic), - (-moz-os-version: windows-win10) and (-moz-windows-classic), - (-moz-platform: windows) and (-moz-windows-classic) { - :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { - appearance: auto !important; - -moz-default-appearance: -moz-window-titlebar !important; - } - :root[tabsintitlebar][sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { - appearance: auto !important; - -moz-default-appearance: -moz-window-titlebar !important; - } - :root[tabsintitlebar]:not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { - color: -moz-dialogtext !important; - } - :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { - background-image: linear-gradient( - to bottom, - ThreeDLightShadow 0, - ThreeDLightShadow 1px, - ThreeDHighlight 1px, - ThreeDHighlight 2px, - ActiveBorder 2px, - ActiveBorder 4px, - transparent 4px - ) !important; - } - } } /*= Others - Compatibility ===================================================*/ @supports -moz-bool-pref("userChrome.compatibility.panel_cutoff") { @@ -479,39 +298,8 @@ } } } - /*= Windows7 - Aero Based Theme ==============================================*/ - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - #TabsToolbar:not(:-moz-lwtheme) { - --background-color: rgb(229, 229, 235); - --toolbarseparator-color: transparent; - } - #TabsToolbar:not(:-moz-lwtheme) - .tabbrowser-tab - > .tab-stack - > .tab-background:not([selected="true"], [multiselected]) { - color: var(--background-color); - background-color: color-mix(in srgb, currentColor 60%, transparent); - } - #TabsToolbar:not(:-moz-lwtheme) - .tabbrowser-tab:hover - > .tab-stack - > .tab-background:not([selected="true"], [multiselected]) { - background-color: color-mix( - in srgb, - currentColor 85%, - transparent - ) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ - } - #scrollbutton-up:not(:-moz-lwtheme), - #scrollbutton-down:not(:-moz-lwtheme), - #alltabs-button:not(:-moz-lwtheme) > .toolbarbutton-badge-stack, - #TabsToolbar:not(:-moz-lwtheme) .toolbarbutton-1 > .toolbarbutton-icon { - color: var(--background-color) !important; - background-color: color-mix(in srgb, currentColor 50%, transparent); - } - } - /*= Windows10 - UWP like color ===============================================*/ - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + /*= Windows7 - Aero Based Theme ==============================================*/ /*= Windows10 - UWP like color ===============================================*/ + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) { --win-text-color: rgba(0, 0, 0); --win-bgcolor: rgb(204, 204, 204); @@ -575,10 +363,7 @@ /*- Others -----------------------------------------------------------------*/ /* For overwrite */ } - @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), - (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + @media (-moz-platform: windows) and (prefers-color-scheme: dark) { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { --win-text-color: #ffffff; @@ -635,7 +420,7 @@ } } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { /* Text, Icon Color */ @@ -740,27 +525,26 @@ --panelview-toolbarbutton-focus-box-shadow: inset 0 0 0 2px var(--focus-outline-color) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { #navigator-toolbox:not(:-moz-lwtheme) { background: var(--lwt-accent-color) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) { --arrowpanel-border-color: var(--win-bgcolor) !important; --panel-separator-color: var(--win-bgcolor) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root[lwt-default-theme-in-dark-mode] { --arrowpanel-border-color: var(--win-border-color) !important; --panel-separator-color: var(--win-border-color) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { @supports -moz-bool-pref("userChrome.theme.system_default") { - @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), - (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { + @media (-moz-platform: windows) and (-moz-windows-accent-color-in-titlebar) { :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme), :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ @@ -768,7 +552,7 @@ } } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { @supports -moz-bool-pref("userChrome.compatibility.os.win11") { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { @@ -779,7 +563,7 @@ } } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { @@ -793,7 +577,7 @@ } } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { html#main-window menupopup:not(:-moz-lwtheme) { --menu-color: var(--win-text-color) !important; --menu-background-color: var(--win-component-bgcolor) !important; @@ -803,7 +587,7 @@ --menuitem-disabled-hover-background-color: var(--win-disabled-bgcolor) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) #titlebar, :root[lwt-default-theme-in-dark-mode] #titlebar { --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); @@ -812,12 +596,12 @@ --toolbarbutton-active-background: var(--win-sidebar-button-hover-active-bgcolor); } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { #sidebar-box:not([lwt-sidebar]) { appearance: none !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) #sidebar-box, :root[lwt-default-theme-in-dark-mode] #sidebar-box { --sidebar-background-color: var(--win-sidebar-bgcolor) !important; @@ -825,10 +609,7 @@ --sidebar-border-color: var(--win-border-color) !important; } } - @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), - (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + @media (-moz-platform: windows) and (prefers-color-scheme: dark) { .sidebar-panel[style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], body[lwt-sidebar][style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], .sidebar-panel[style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], @@ -838,14 +619,14 @@ --lwt-sidebar-text-color: var(--win-text-color) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) .subviewbutton, :root[lwt-default-theme-in-dark-mode] .subviewbutton { --button-hover-bgcolor: var(--win-hover-active-bgcolor) !important; --button-active-bgcolor: var(--win-button-active-bgcolor) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) toolbarbutton.subviewbutton:not( [disabled], @@ -871,7 +652,7 @@ background-color: var(--win-hover-bgcolor) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:not(:-moz-lwtheme) toolbarbutton.subviewbutton:not( [disabled], @@ -893,22 +674,19 @@ background-color: var(--win-hover-active-bgcolor) !important; } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]):not(:-moz-lwtheme), :root:not(:-moz-lwtheme) { /* Light Theme */ --lwt-accent-color: var(--win-bgcolor) !important; } } - @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), - (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + @media (-moz-platform: windows) and (prefers-color-scheme: dark) { :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { --toolbar-bgcolor: var(--win-component-bgcolor) !important; /* Original: rgba(43, 42, 51, 1) */ } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { #tabbrowser-tabs:not([movingtab]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab @@ -1124,7 +902,7 @@ --mac-accent-active-color: color-mix(in srgb, rgb(0, 0, 0) 20%, -moz-accent-color); /* or ActiveBorder */ } } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { --mac-field-bgcolor: Field; @@ -1178,7 +956,7 @@ --sidebar-text-color: var(--mac-text-color) !important; /* --sidebar-border-color: var(--win-sidebar-border-color) !important; */ } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { .sidebar-panel[style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], body[lwt-sidebar][style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], .sidebar-panel[style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], @@ -1194,7 +972,7 @@ } /*- Others -----------------------------------------------------------------*/ /* For Overwrite */ - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { --toolbar-bgcolor: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog) !important; } @@ -1251,8 +1029,7 @@ /* 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. */ } - @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + @media (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { :root { /* Override the menu color variables for dark browser themes. */ --menu-icon-opacity: 1; @@ -1655,7 +1432,7 @@ --card-shadow-hover: var(--card-shadow), 0 0 0 5px var(--card-outline-color); --uc-warning-icon-bgcolor: #ffa436; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :host, :root { /* Keep these in sync with layout/base/PresShell.cpp, and plaintext.css */ @@ -1700,7 +1477,7 @@ } } /*= Menu color #477 ==========================================================*/ - @media (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { :root { /* Override some menu color variables for light browser themes. */ --menuitem-hover-background-color: #e0e0e6; @@ -1721,8 +1498,7 @@ } /* Override the menu color variables for dark browser themes. */ } - @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { + @media (-moz-platform: windows) and (prefers-color-scheme: dark) { :root { --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); --menu-background-color: var(--dark-menu-background-color); @@ -1755,8 +1531,7 @@ } /* Override the menu color variables for dark browser themes. */ } - @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + @media (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { :root { --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); --menu-background-color: var(--dark-menu-background-color); @@ -1769,7 +1544,7 @@ } } @supports -moz-bool-pref("userChrome.theme.proton_color.dark_blue_accent") { - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :host, :root { /* Color Memo @@ -1964,7 +1739,7 @@ transparent ) !important; } - @media (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { html#main-window menupopup:not(.in-menulist) { /* Above FF v105 #466 */ --panel-color: var(--menu-color) !important; @@ -2005,8 +1780,7 @@ background-color: transparent !important; } } - @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: light), - (-moz-windows-non-native-menus) and (prefers-color-scheme: light) { + @media (-moz-platform: windows) and (prefers-color-scheme: light) { :root[style*="background-noodles-right"] menupopup { --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; } @@ -2053,8 +1827,7 @@ background-color: transparent !important; } } - @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), - (-moz-gtk-csd-available) and (prefers-color-scheme: light) { + @media (-moz-gtk-csd-available) and (prefers-color-scheme: light) { :root[style*="background-noodles-right"] menupopup { --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; } @@ -2290,7 +2063,7 @@ --menu-border-color: #cfcfd8; --menuitem-hover-background-color: #e0e0e6; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root { --menu-border-color: rgba(107, 107, 107, 0.3); --menu-color: #fbfbfe; @@ -2344,13 +2117,7 @@ } /*= Transparent ==============================================================*/ @supports -moz-bool-pref("userChrome.theme.transparent.frame") { - @media (-moz-os-version: windows-win10), - (-moz-platform: windows-win10), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-gtk-csd-available) { + @media (-moz-platform: windows), (-moz-gtk-csd-available) { #main-window, #navigator-toolbox-background { background-color: transparent !important; @@ -2374,11 +2141,7 @@ -moz-default-appearance: -moz-win-exclude-glass !important; } } - @media (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) { :root:not(:-moz-lwtheme) { --lwt-accent-color: Window !important; --lwt-text-color: WindowText !important; @@ -2391,16 +2154,7 @@ --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); } } - @media (-moz-os-version: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win8) and (prefers-color-scheme: dark), - (-moz-platform: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win8) and (prefers-color-scheme: dark), - (-moz-os-version: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win7) and (prefers-color-scheme: dark), - (-moz-platform: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win7) and (prefers-color-scheme: dark), - (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + @media (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { #titlebar { --toolbarbutton-hover-background: color-mix( in srgb, @@ -2409,11 +2163,7 @@ ); } } - @media (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) { #main-menubar { border-radius: 4px; } @@ -2421,35 +2171,13 @@ background-color: var(--uc-frame-element-background) !important; } } - @media (-moz-os-version: windows-win8) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win8) and (-moz-platform: windows-win8), - (-moz-platform: windows-win8) and (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win7) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win7) and (-moz-platform: windows-win8), - (-moz-platform: windows-win7) and (-moz-os-version: windows-win8), - (-moz-platform: windows-win7) and (-moz-platform: windows-win8), - (-moz-gtk-csd-available) and (-moz-os-version: windows-win8), - (-moz-gtk-csd-available) and (-moz-platform: windows-win8) { - #main-menubar:-moz-window-inactive { - background-color: var(--uc-frame-element-background) !important; - } - } - @media (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), - (-moz-platform: windows-win8) and (-moz-gtk-csd-available), - (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), - (-moz-platform: windows-win7) and (-moz-gtk-csd-available), - (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { .titlebar-buttonbox-container:not(:-moz-window-inactive) { background-color: var(--uc-frame-element-background) !important; border-radius: 4px; } } - @media (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) { #TabsToolbar { --toolbarseparator-color: transparent; } @@ -2463,11 +2191,7 @@ ) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ } } - @media (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) { #scrollbutton-up, #scrollbutton-down, #alltabs-button > .toolbarbutton-badge-stack, @@ -2475,7 +2199,7 @@ background-color: var(--uc-frame-element-background); } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root, #navigator-toolbox { --lwt-accent-color: transparent !important; @@ -2495,39 +2219,6 @@ transform: translateY(-7px) !important; } } - @media (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win7), - (-moz-platform: windows-win7) { - :root:not([lwtheme-image]):-moz-lwtheme { - background-color: transparent !important; - background-image: none !important; - } - #main-menubar:not(:-moz-window-inactive) { - color: var(--lwt-text-color) !important; - } - } - @media (-moz-os-version: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win8) and (prefers-color-scheme: dark), - (-moz-platform: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win8) and (prefers-color-scheme: dark), - (-moz-os-version: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-os-version: windows-win7) and (prefers-color-scheme: dark), - (-moz-platform: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-platform: windows-win7) and (prefers-color-scheme: dark) { - #toolbar-menubar:not(:-moz-window-inactive) { - text-shadow: unset !important; - } - } - @media (-moz-os-version: windows-win8) and (-moz-windows-default-theme), - (-moz-platform: windows-win8) and (-moz-windows-default-theme), - (-moz-os-version: windows-win7) and (-moz-windows-default-theme), - (-moz-platform: windows-win7) and (-moz-windows-default-theme) { - #TabsToolbar { - color: inherit !important; - background-image: unset !important; - } - } @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { :root:not(:-moz-window-inactive) #navigator-toolbox { background-color: transparent !important; @@ -2554,14 +2245,6 @@ .menupopup-arrowscrollbox[part*="content"] { background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; } - @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (not (-moz-windows-non-native-menus)) and (-moz-platform: windows) { - html#main-window #mainPopupSet menupopup:not(.in-menulist) { - --menu-background-color: Menu !important; - } - } @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { @media (-moz-gtk-csd-available) { html#main-window #mainPopupSet menupopup:not(.in-menulist) { @@ -2584,7 +2267,7 @@ @-moz-document url("chrome://global/content/commonDialog.xhtml"), url("chrome://pippki/content/editcacert.xhtml"), url("chrome://pippki/content/deletecert.xhtml"), url("chrome://pippki/content/exceptionDialog.xhtml"), url("chrome://mozapps/content/downloads/unknownContentType.xhtml"), url("chrome://global/content/appPicker.xhtml"), url("chrome://browser/content/pageinfo/pageInfo.xhtml") { /*- Overwrite --------------------------------------------------------------*/ - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root { --in-content-page-background: #42414d; } @@ -3082,10 +2765,7 @@ color: var(--in-content-text-color) !important; } /*- Each OS ----------------------------------------------------------------*/ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { xul|checkbox, xul|radio { padding-inline-start: 0 !important; @@ -3374,7 +3054,7 @@ --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 (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root { --organizer-color: rgb(251, 251, 254); --organizer-deemphasized-color: rgb(191, 191, 201); @@ -4250,10 +3930,7 @@ width: var(--uc-title-post-spacer) !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { .titlebar-spacer[type="pre-tabs"] { width: var(--uc-title-post-spacer) !important; } @@ -4377,7 +4054,7 @@ :root { --uc-space-above-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); } @@ -4387,11 +4064,7 @@ } } } - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-gtk-csd-available) { + @media (-moz-gtk-csd-available) { :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); } @@ -4406,25 +4079,7 @@ padding-top: var(--uc-space-above-tabbar) !important; } } - @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - /* Add 4px extra margin on top of the tabs toolbar on Windows 7. */ - /* Add extra space to titlebar for dragging */ - :root[sizemode="normal"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, - :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { - padding-top: calc(var(--uc-space-above-tabbar) + 4px) !important; - } - @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { - :root[sizemode="maximized"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, - :root[sizemode="maximized"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { - padding-top: calc(var(--uc-space-above-tabbar) + 4px) !important; - } - } - } - @media (-moz-os-version: windows-win8), - (-moz-platform: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows-win10), - (-moz-gtk-csd-available) { + @media (-moz-platform: windows), (-moz-gtk-csd-available) { /* Add extra space to titlebar for dragging */ :root[sizemode="normal"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { @@ -4703,10 +4358,7 @@ /* Original: 0.5em */ padding-block: var(--menu-padding) !important; } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { #ContentSelectDropdown > menupopup > menucaption, #ContentSelectDropdown > menupopup > menuitem { padding-block: 0 !important; @@ -4743,20 +4395,6 @@ margin-right: 6px !important; /* Original: 12px */ } } - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { - /* Remove border */ - menupopup > menuitem, - menupopup > menu { - padding-block: calc(var(--menu-padding) - 2px) !important; - } - /* Make to original */ - :root:not([uidensity="touch"]) #context-navigation:not([hidden]) { - padding: 0 0 4px !important; - } - } @media (-moz-gtk-csd-available) { menupopup > menu { padding-inline-start: 0.5em; @@ -5391,15 +5029,7 @@ --uc-window-drag-space-pre: var(--uc-title-pre-spacer, 40px); --uc-window-drag-space-post: var(--uc-title-post-spacer, 40px); } - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { - :root:is([tabsintitlebar], [sizemode="fullscreen"]) { - --uc-window-control-width: 105px; - } - } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-control-width: 138px; } @@ -5442,10 +5072,7 @@ @supports -moz-bool-pref("userChrome.tabbar.one_liner") { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } @@ -5473,10 +5100,7 @@ } @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } @@ -5501,10 +5125,7 @@ } @media screen and (min-width: 1100px) { @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { - @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), - screen and (min-width: 1100px) and (-moz-os-version: windows-win8), - screen and (min-width: 1100px) and (-moz-os-version: windows-win10), - screen and (min-width: 1100px) and (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-drag-space-pre: 0px; } @@ -5532,10 +5153,7 @@ } @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { - @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), - screen and (min-width: 1100px) and (-moz-os-version: windows-win8), - screen and (min-width: 1100px) and (-moz-os-version: windows-win10), - screen and (min-width: 1100px) and (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-platform: windows) { :root:is([tabsintitlebar], [sizemode="fullscreen"]) { --uc-window-control-space: 0px; } @@ -5593,7 +5211,7 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -5618,10 +5236,7 @@ right: unset !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -5743,7 +5358,7 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -5768,10 +5383,7 @@ right: unset !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -5890,7 +5502,7 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -5915,10 +5527,7 @@ right: unset !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6042,8 +5651,7 @@ } /* At Activated Menubar */ } - @media screen and (max-width: 1100px) and (-moz-os-version: windows-win10), - screen and (max-width: 1100px) and (-moz-platform: windows-win10) { + @media screen and (max-width: 1100px) and (-moz-platform: windows) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -6072,10 +5680,7 @@ right: unset !important; } } - @media screen and (max-width: 1100px) and (-moz-os-version: windows-win7), - screen and (max-width: 1100px) and (-moz-os-version: windows-win8), - screen and (max-width: 1100px) and (-moz-os-version: windows-win10), - screen and (max-width: 1100px) and (-moz-platform: windows) { + @media screen and (max-width: 1100px) and (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6210,8 +5815,7 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media screen and (min-width: 1100px) and (-moz-os-version: windows-win10), - screen and (min-width: 1100px) and (-moz-platform: windows-win10) { + @media screen and (min-width: 1100px) and (-moz-platform: windows) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -6236,10 +5840,7 @@ right: unset !important; } } - @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), - screen and (min-width: 1100px) and (-moz-os-version: windows-win8), - screen and (min-width: 1100px) and (-moz-os-version: windows-win10), - screen and (min-width: 1100px) and (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6360,8 +5961,7 @@ #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); } - @media screen and (min-width: 1100px) and (-moz-os-version: windows-win10), - screen and (min-width: 1100px) and (-moz-platform: windows-win10) { + @media screen and (min-width: 1100px) and (-moz-platform: windows) { #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { stroke: var(--toolbar-color, currentColor) !important; } @@ -6386,10 +5986,7 @@ right: unset !important; } } - @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), - screen and (min-width: 1100px) and (-moz-os-version: windows-win8), - screen and (min-width: 1100px) and (-moz-os-version: windows-win10), - screen and (min-width: 1100px) and (-moz-platform: windows) { + @media screen and (min-width: 1100px) and (-moz-platform: windows) { :root[sizemode="maximized"][tabsintitlebar] { --uc-titlebar-padding: 8px; } @@ -6489,10 +6086,7 @@ border-inline-style: solid !important; border-inline-color: transparent; } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); @@ -6508,10 +6102,7 @@ } @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { - @media screen and (-moz-os-version: windows-win7) and (max-width: 1100px), - screen and (-moz-os-version: windows-win8) and (max-width: 1100px), - screen and (-moz-os-version: windows-win10) and (max-width: 1100px), - screen and (-moz-platform: windows) and (max-width: 1100px) { + @media screen and (-moz-platform: windows) and (max-width: 1100px) { #nav-bar { border-inline-start-width: var(--uc-window-drag-space-pre); border-inline-end-width: var(--uc-window-control-space); @@ -6535,10 +6126,7 @@ } } @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { - @media screen and (-moz-os-version: windows-win7) and (min-width: 1100px), - screen and (-moz-os-version: windows-win8) and (min-width: 1100px), - screen and (-moz-os-version: windows-win10) and (min-width: 1100px), - screen and (-moz-platform: windows) and (min-width: 1100px) { + @media screen and (-moz-platform: windows) and (min-width: 1100px) { @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { #nav-bar { margin-inline-start: var(--uc-window-drag-space-pre) !important; @@ -10106,19 +9694,11 @@ --uc-menubar-height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); } } - @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @media (-moz-platform: windows) { :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { --uc-menubar-height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); } } - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { - :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { - --uc-menubar-height: calc(var(--tab-min-height) + var(--tab-block-margin)); - } - } :root[tabsintitlebar]:has(#toolbar-menubar[autohide="false"]) { --uc-menubar-height: var(--uc-titlebar-buttonbox-height); } @@ -11808,11 +11388,8 @@ } } /* Padding - Non Native */ - @media (-moz-os-version: windows-win7) and (-moz-windows-non-native-menus), - (-moz-os-version: windows-win8) and (-moz-windows-non-native-menus), - (-moz-os-version: windows-win10) and (-moz-windows-non-native-menus), - (-moz-platform: windows) and (-moz-windows-non-native-menus), - (-moz-gtk-csd-available) and (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) and (-moz-platform: windows), + (-moz-gtk-csd-available) and (-moz-platform: windows) { :root { --context-menu-background-padding: 1em; --context-menu-text-padding-default: 24px; @@ -11871,16 +11448,9 @@ margin-left: 0 !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows), - (-moz-gtk-csd-available) { + @media (-moz-platform: windows), (-moz-gtk-csd-available) { @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - @media (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), - (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), - (-moz-os-version: windows-win10) and (-moz-gtk-csd-available), - (-moz-platform: windows) and (-moz-gtk-csd-available), + @media (-moz-platform: windows) and (-moz-gtk-csd-available), (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { :root { --context-menu-background-padding: 1em; @@ -11944,10 +11514,7 @@ } } /* Padding - Windows */ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root { --bookmark-menu-icon-text-padding: calc( var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) @@ -11957,168 +11524,6 @@ ); } } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { - :root { - --context-menu-text-padding: calc(1.45em + 8px); - --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) { - :root { - --context-menu-background-padding-default: 2px; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic) { - :root { - --context-menu-background-padding-default: -0.5px; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { - :root { - --context-menu-background-padding-default: 3px; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { - :root { - --context-menu-background-padding: 3px; - --menu-background-padding-default: 0px; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - :root { - --context-menu-background-padding: 5px; - } - #main-menubar { - --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); - } - menuitem:is([type="checkbox"], [type="radio"]) { - --menu-padding: 0px; - } - menuitem[checked="true"] { - --context-menu-background-padding: 0px; - } - menuitem[checked="true"] > .menu-iconic-left { - transform: translateX(2px); - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - appearance: none !important; - padding-block: 0 !important; - padding-inline-start: 5px !important; - margin-inline-end: 8px !important; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - box-sizing: content-box; - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel { - box-sizing: content-box; - min-height: 16px; - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-text, - menupopup:not([placespopup="true"]) .menu-iconic-text { - padding-block: 0 !important; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup:not(.in-menulist) - > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is( - #menu_FilePopup, - #menu_EditPopup, - #menu_viewPopup, - #goPopup, - #historyMenuPopup, - #bookmarksMenuPopup, - #menu_ToolsPopup, - #windowPopup, - #menu_HelpPopup - ) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is( - #context_sendTabToDevicePopupMenu, - #context-sendpagetodevice-popup, - #context-sendlinktodevice-popup, - #frame > menupopup - ) - > menuitem, - .openintabs-menuitem, - #blockedPopupDontShowMessage, - #BMB_viewBookmarksToolbar, - #sidebarMenu-popup:is(menupopup), - #context_openANewTab.tabmix-newtab-menu-icon { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: 0 !important; - } - } /* Padding - Linux */ @media (-moz-gtk-csd-available) { :root { @@ -12201,10 +11606,7 @@ --context-menu-background-padding: var(--arrowpanel-menuitem-padding-inline); } /* Windows */ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { /* Bookmark Popup - None icon menu */ menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), @@ -12216,15 +11618,6 @@ } } /* Windows 7, 8 */ - @media (-moz-os-version: windows-win7), - (-moz-platform: windows-win7), - (-moz-os-version: windows-win8), - (-moz-platform: windows-win8) { - /* Global Menu */ - menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item { - padding-inline-start: 0 !important; - } - } /* Linux */ @media (-moz-gtk-csd-available) { /* Global Menu */ @@ -12481,10 +11874,7 @@ --menuitem-image: url("chrome://browser/skin/fullscreen-exit.svg"); } /*= Tab Mix Plus =============================================================*/ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { #context_openANewTab.tabmix-newtab-menu-icon .menu-iconic-left { display: none; } diff --git a/css/leptonChromeESR.css b/css/leptonChromeESR.css new file mode 100644 index 00000000..081dceb9 --- /dev/null +++ b/css/leptonChromeESR.css @@ -0,0 +1,13650 @@ +@charset "UTF-8"; +@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; +@namespace html "http://www.w3.org/1999/xhtml"; +/** Default Theme - Contrast **************************************************/ +@supports -moz-bool-pref("userChrome.theme.built_in_contrast") { + /*= Lightmode - Color darker =================================================*/ + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { + --lwt-accent-color: rgb(229, 229, 235) !important; /* Original: rgb(240, 240, 244) */ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + background-color: var(--lwt-accent-color) !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] #navigator-toolbox { + background-color: var(--lwt-accent-color) !important; + } + } + /*= Darkmode - Color lighter =================================================*/ + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { + --toolbar-bgcolor: rgba(43, 42, 51, 5) !important; /* Original: rgba(43, 42, 51, 1) */ + } +} +/** Compatibility Fixes *******************************************************/ +/*= Theme - Compatibility ====================================================*/ +@supports -moz-bool-pref("userChrome.compatibility.theme") { + /*= Hotfix #98 ===============================================================*/ + /* Hidden Tab Panel Padding */ + #allTabsMenu-hiddenTabsView .all-tabs-item { + margin-inline: 8px; + border-radius: 4px; + } + /*= Remote Tabs Panel's Bottom Padding =======================================*/ + #PanelUI-remotetabs #PanelUI-remotetabs-main { + margin-bottom: 6px; + } + /*= Identity Popup Icon Crop =================================================*/ + .identity-popup-security-connection.identity-button { + padding-block: 1px !important; + } + /*= Zoom in button's plus icon horizontal rate ===============================*/ + #customization-palette-container #zoom-in-button > .toolbarbutton-icon, + #customization-panel-container #zoom-in-button > .toolbarbutton-icon, + #widget-overflow-mainView #zoom-in-button > .toolbarbutton-icon { + padding-inline-start: 0px !important; + } + /*= Subview button, Menu's right padding #597 ================================*/ + .subviewbutton.toolbaritem-combined-buttons:not([shortcut]), + .subviewbutton.subviewbutton-nav:not([shortcut]), + menu.subviewbutton { + padding-inline-end: 0 !important; + } + #allTabsMenu-allTabsView .subviewbutton.subviewbutton-nav:not([shortcut]) { + padding-inline-end: var(--arrowpanel-menuitem-padding-inline) !important; + } + /*= Icon Fill Color ==========================================================*/ + :root:-moz-lwtheme { + /* Auto create --lwt-toolbarbutton-icon-fill-attention, fix for nightly default theme + Default Color: rgb(0,97,224) -> rgb(0, 120, 215) for more light + */ + --lwt-toolbarbutton-icon-fill-attention: var(--button-primary-bgcolor, rgb(0, 120, 215)); + } + /*= First visible tab margin at maximized #332 ===============================*/ + :root[tabsintitlebar="true"][sizemode="maximized"] #TabsToolbar { + margin-left: -1px; + } + /*= Disabled menu background color ===========================================*/ + menuitem[disabled="true"], + menu[disabled="true"] { + background-color: transparent !important; + } + /*= Remove Tab Border ========================================================*/ + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + /* TARGET: original, photon */ + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme, + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background { + /* Nightly 96: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); */ + border: unset !important; + } + #TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon:-moz-lwtheme, + .tab-background[selected]:-moz-lwtheme { + outline-color: transparent !important; + } + .keyboard-focused-tab > .tab-stack > .tab-background, + .tabbrowser-tab:focus:not([aria-activedescendant]) > .tab-stack > .tab-background { + outline: var(--focus-outline) !important; + } + } + /*= Tab Separator Color ======================================================*/ + #TabsToolbar, + #nav-bar { + --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent); /* 60% at v105 */ + } + /*= Light Weight Theme =======================================================*/ + /* Header Image */ + :root[lwtheme-image] { + background-image: var(--lwt-header-image) !important; /* Original: var(--lwt-header-image) */ + background-repeat: no-repeat !important; + background-position: right top !important; + } + @media (min-width: 2500px) { + :root[lwtheme-image] { + background-size: contain; + } + @supports -moz-bool-pref("userChrome.compatibility.covered_header_image") { + :root[lwtheme-image] { + background-size: cover; + } + } + } + :root[lwtheme-image] #navigator-toolbox:-moz-lwtheme { + background-image: var(--lwt-header-image), var(--lwt-additional-images) !important; + background-repeat: var(--lwt-background-tiling) !important; + background-position: var(--lwt-background-alignment) !important; + background-color: unset !important; /* Original: var(--lwt-accent-color) */ + } + /* Navbar Border */ + #navigator-toolbox:-moz-lwtheme { + --tabs-border-color: rgba(0, 0, 0, 0.4); /* Legacy: v96, (0, 0, 0, 0.3) -> (0, 0, 0, 0.4) */ + --lwt-tabs-border-color: rgba(0, 0, 0, 0.4); + } + /*= Findbar Border Color =====================================================*/ + html|input.findbar-textbox { + border: 1px solid var(--input-border-color, var(--toolbar-field-border-color, ThreeDShadow)) !important; /* Original: 1px solid var(--input-border-color, var(--toolbar-field-border-color)) */ + } + /*= Drop Indicator Color #473 ================================================*/ + treechildren::-moz-tree-cell-text(primary, dropOn), + treechildren::-moz-tree-drop-feedback, + vbox[part="drop-indicator-bar"] > image[part="drop-indicator"] { + background-color: var( + --button-primary-bgcolor, + var(--focus-outline-color) + ) !important; /* Original: SelectedItem or AccentColor*/ + } + #bookmarksPanel[lwt-sidebar="true"] { + --focus-outline-color: var(--in-content-focus-outline-color, AccentColor) !important; + } + /*= Firefox View Border #498 =================================================*/ + :root:not([privatebrowsingmode="temporary"])[firefoxviewhidden] #firefox-view-button + #tabbrowser-tabs { + border-inline-start: none !important; + padding-inline-start: var(--tab-overflow-pinned-tabs-width) !important; + margin-inline-start: 0 !important; + } + @supports -moz-bool-pref("userChrome.tab.static_separator") { + #tabbrowser-tabs { + border-inline-start: none !important; + padding-inline-start: var(--tab-overflow-pinned-tabs-width) !important; + margin-inline-start: 0 !important; + } + } +} +/*= OS - Compatibility =======================================================*/ +@supports -moz-bool-pref("userChrome.compatibility.os") { + /*= Windows 10 - Top border of accent color at ESR #358 ======================*/ + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + border-top: 0.5px solid rgb(47, 47, 47) !important; + } + :root[sizemode="normal"][tabsintitlebar]:-moz-window-inactive #navigator-toolbox { + border-top-color: rgb(57, 57, 57) !important; + } + } + @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), + (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { + :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + border-top-color: AccentColor !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root[sizemode="normal"][tabsintitlebar] #navigator-toolbox { + border-top-color: -moz-accent-color !important; + } + } + } + /*= Windows 7, 8 - Tab Bar Background *****************************************/ + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + @supports not -moz-bool-pref("userChrome.theme.transparent.frame") { + /* Header Color */ + :root:not([lwtheme-image]):-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + } + :root:not([lwtheme-image]):-moz-lwtheme:-moz-window-inactive { + background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color)) !important; + } + } + } + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + #TabsToolbar { + /* Remove Aero */ + /* Original: radial-gradient(eclipse at bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.5) 80%, transparent) */ + background-image: unset !important; + } + #TabsToolbar:-moz-lwtheme { + /* background textcolor */ + color: var(--lwt-text-color) !important; + } + } + @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { + #navigator-toolbox:-moz-lwtheme { + /* background textcolor */ + color: var(--lwt-text-color) !important; + } + } + /*= Windows 7, 8 - Menu Bar ==================================================*/ + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + menupopup > menu, + menupopup > menuitem, + #context-navigation > menuitem { + border: 1px solid transparent; /* Need reduce 2px at menu */ + } + #main-menubar > menu[open="true"], + #main-menubar > menu[_moz-menuactive="true"] { + background-color: -moz-menuhover !important; /* Make to original */ + } + :root:-moz-lwtheme #main-menubar > menu[open="true"], + :root:-moz-lwtheme #main-menubar > menu[_moz-menuactive="true"] { + color: inherit !important; /* Original: -moz-menubarhovertext */ + background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ + } + } + /*= Windows - Native Menu ====================================================*/ + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows) { + .customization-uidensity-menuitem > .menu-iconic-left { + width: unset !important; + } + menulist > menupopup > menuitem[_moz-menuactive="true"], + menulist > menupopup > menu[_moz-menuactive="true"] { + background-color: highlight !important; + color: highlighttext !important; + } + #PlacesToolbar menu, + #PlacesToolbar menuitem, + #BMB_bookmarksPopup menu, + #BMB_bookmarksPopup menuitem { + border: none !important; /* Remove border */ + } + #PlacesToolbar menu:not([disabled], :active)[_moz-menuactive="true"], + #PlacesToolbar menuitem:not([disabled], :active)[_moz-menuactive="true"], + #BMB_bookmarksPopup menu:not([disabled], :active)[_moz-menuactive="true"], + #BMB_bookmarksPopup menuitem:not([disabled], :active)[_moz-menuactive="true"] { + background-color: var(--button-hover-bgcolor) !important; + } + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic: 0), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic: 0) { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { + background-color: color-mix(in srgb, -moz-menuhover 5%, transparent) !important; + border-color: color-mix(in srgb, -moz-menuhover 60%, transparent) !important; + } + menu[_moz-menuactive="true"][disabled="true"], + menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 5%, transparent) !important; + border-color: color-mix(in srgb, currentColor 60%, transparent) !important; + } + /* Remove text shadow */ + :root:-moz-lwtheme #toolbar-menubar { + text-shadow: unset !important; + /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ + } + /* Remove Color */ + :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { + background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ + color: unset !important; /* Original: black */ + } + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { + background-color: color-mix(in srgb, -moz-menuhover 17%, transparent) !important; + border-color: color-mix(in srgb, -moz-menuhover 80%, transparent) !important; + } + menu[_moz-menuactive="true"][disabled="true"], + menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 17%, transparent) !important; + border-color: color-mix(in srgb, currentColor 80%, transparent) !important; + } + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"], + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"], + menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"], + menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"] { + background-color: #91c9f7 !important; + border-color: transparent !important; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"][disabled="true"], + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"][disabled="true"], + menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"][disabled="true"], + menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 9%, transparent) !important; + border-color: transparent !important; + } + } + @media (-moz-gtk-csd-available) { + /*= Linux - Global Menubar Active Color ====================================*/ + #main-menubar > menu[open="true"], + #main-menubar > menu[_moz-menuactive="true"] { + color: inherit !important; /* Original: -moz-menubarhovertext */ + background-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* Original: -moz-menuhover */ + } + /*= Linux - Titlebar button at lwtheme =====================================*/ + @supports not -moz-bool-pref("userChrome.compatibility.os.linux_non_native_titlebar_button") { + .titlebar-button:-moz-lwtheme { + appearance: auto !important; + } + .titlebar-min:-moz-lwtheme, + .titlebar-max:-moz-lwtheme, + .titlebar-restore:-moz-lwtheme, + .titlebar-close:-moz-lwtheme { + list-style-image: none !important; + } + .titlebar-button:-moz-lwtheme:hover, + .titlebar-button:-moz-lwtheme:hover:active { + background-color: unset !important; + color: unset !important; + } + } + } + /*= Linux - Light System Default Theme's Selected Tab ========================*/ + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), + (-moz-gtk-csd-available) and (prefers-color-scheme: light) { + /* Because of + #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected=true], [multiselected]) > .tab-stack > .tab-background { + border: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); + box-shadow: 0 0 4px rgba(128,128,142,0.5); + } + */ + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:not(:-moz-lwtheme) { + box-shadow: 0 0 4px rgba(128, 128, 142, 0.5) !important; + } + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:not(:-moz-lwtheme) { + box-shadow: 0 0 1px var(--tab-line-color, rgba(128, 128, 142, 0.9)), 0 0 4px rgba(128, 128, 142, 0.5) !important; + } + } + /*= Titlebar Container Size at maximized #384 ================================*/ + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + @supports not -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { + :root[tabsintitlebar] #titlebar { + /* -moz-default-appearance: -moz-window-titlebar */ + appearance: none !important; + } + @media (-moz-os-version: windows-win7) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win7) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win7) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win8) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win8) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win10) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win10) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win10) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10) and (-moz-platform: windows-win8), + (-moz-platform: windows) and (-moz-os-version: windows-win7), + (-moz-platform: windows) and (-moz-platform: windows-win7), + (-moz-platform: windows) and (-moz-os-version: windows-win8), + (-moz-platform: windows) and (-moz-platform: windows-win8) { + :root[tabsintitlebar][sizemode="maximized"] #titlebar { + padding-top: 8px; + } + } + } + @supports -moz-bool-pref("userChrome.compatibility.os.windows_maximized") { + :root[tabsintitlebar][sizemode="maximized"] #titlebar { + appearance: none !important; + padding-top: 8px; + } + } + } + /*= Windows - Classic Theme #734 =============================================*/ + @media (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (-moz-windows-classic), + (-moz-platform: windows) and (-moz-windows-classic) { + :root[tabsintitlebar][sizemode="normal"]:not(:-moz-lwtheme) #navigator-toolbox { + appearance: auto !important; + -moz-default-appearance: -moz-window-titlebar !important; + } + :root[tabsintitlebar][sizemode="maximized"]:not(:-moz-lwtheme) #navigator-toolbox { + appearance: auto !important; + -moz-default-appearance: -moz-window-titlebar !important; + } + :root[tabsintitlebar]:not(:-moz-lwtheme) #tabbrowser-arrowscrollbox { + color: -moz-dialogtext !important; + } + :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { + background-image: linear-gradient( + to bottom, + ThreeDLightShadow 0, + ThreeDLightShadow 1px, + ThreeDHighlight 1px, + ThreeDHighlight 2px, + ActiveBorder 2px, + ActiveBorder 4px, + transparent 4px + ) !important; + } + } +} +/*= Others - Compatibility ===================================================*/ +@supports -moz-bool-pref("userChrome.compatibility.panel_cutoff") { + #appMenu-popup panelview { + width: 24.5em !important; /* can modify panel width, Original: 22.5em */ + } +} +@supports -moz-bool-pref("userChrome.compatibility.navbar_top_border") { + #nav-bar { + box-shadow: none !important; + } +} +/** Theme *********************************************************************/ +/*= System Default Theme =====================================================*/ +@supports -moz-bool-pref("userChrome.theme.system_default") { + /*= Common - URL Bar focus color =============================================*/ + @media (-moz-windows-accent-color-in-titlebar), (-moz-gtk-csd-available) { + /* URL Bar */ + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme), + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + --focus-outline-color: AccentColor !important; + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #urlbar[open] > #urlbar-background, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #urlbar[open] + > #urlbar-background { + border-color: color-mix( + in srgb, + AccentColor 50%, + transparent + ) !important; /* Like: --toolbar-field-focus-border-color */ + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme), + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + --focus-outline-color: -moz-accent-color !important; + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #urlbar[open] > #urlbar-background, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #urlbar[open] + > #urlbar-background { + border-color: color-mix( + in srgb, + -moz-accent-color 50%, + transparent + ) !important; /* Like: --toolbar-field-focus-border-color */ + } + } + } + /*= Windows7 - Aero Based Theme ==============================================*/ + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + #TabsToolbar:not(:-moz-lwtheme) { + --background-color: rgb(229, 229, 235); + --toolbarseparator-color: transparent; + } + #TabsToolbar:not(:-moz-lwtheme) + .tabbrowser-tab + > .tab-stack + > .tab-background:not([selected="true"], [multiselected]) { + color: var(--background-color); + background-color: color-mix(in srgb, currentColor 60%, transparent); + } + #TabsToolbar:not(:-moz-lwtheme) + .tabbrowser-tab:hover + > .tab-stack + > .tab-background:not([selected="true"], [multiselected]) { + background-color: color-mix( + in srgb, + currentColor 85%, + transparent + ) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ + } + #scrollbutton-up:not(:-moz-lwtheme), + #scrollbutton-down:not(:-moz-lwtheme), + #alltabs-button:not(:-moz-lwtheme) > .toolbarbutton-badge-stack, + #TabsToolbar:not(:-moz-lwtheme) .toolbarbutton-1 > .toolbarbutton-icon { + color: var(--background-color) !important; + background-color: color-mix(in srgb, currentColor 50%, transparent); + } + } + /*= Windows10 - UWP like color ===============================================*/ + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) { + --win-text-color: rgba(0, 0, 0); + --win-bgcolor: rgb(204, 204, 204); + --win-disabled-color: rgb(145, 145, 145); + --win-disabled-bgcolor: transparent; + --win-hover-bgcolor: rgb(218, 218, 218); /* also button-bgcolor */ + --win-hover-active-bgcolor: #c2c2c2; /* also button-hover-bgcolor */ + --win-button-hover-bgcolor: rgba(218, 218, 218, 0.66); + --win-button-active-bgcolor: #aaaaaa; + --win-field-bgcolor: #ffffff; + --win-component-bgcolor: #f2f2f2; + --win-border-color: #8a8a8a; + --win-tab-separator-color: #a3a3a3; + --win-sidebar-bgcolor: #e6e6e6; + --win-sidebar-hover-bgcolor: #cfcfcf; + --win-sidebar-button-hover-bgcolor: #b8b8b8; + --win-sidebar-button-hover-active-bgcolor: #a3a3a3; + --win-button-border: #747474; + --win-shortcut-text-color: #757575; + --win-error-color: #b31616; + --win-red-border-color: #ff4343; + --win-accent-foreground-color: AccentColorText; + --win-accent-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 10%, AccentColor); + --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 15%, AccentColor); + --win-accent-hover-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 27%, AccentColor); + --win-accent-active-color: AccentColor; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root:not(:-moz-lwtheme) { + --win-accent-foreground-color: -moz-accent-color-foreground; + --win-accent-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 10%, -moz-accent-color); + --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 15%, -moz-accent-color); + --win-accent-hover-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 27%, -moz-accent-color); + --win-accent-active-color: -moz-accent-color; + } + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme) { + --win-text-color: #1a1a1a; + --win-bgcolor: #e8e8e8; + --win-hover-bgcolor: #eaeaea; /* also button-bgcolor */ + --win-disabled-color: #9f9f9f; + --win-hover-active-bgcolor: #d9d9d9; /* also button-active-color */ + --win-button-hover-bgcolor: #d9d9d9; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-component-bgcolor: #f8f8f8; + --win-border-color: #e9e9e9; + --win-tab-separator-color: #dadada; + --win-sidebar-bgcolor: #ffffff; + --win-button-border: var(--win-border-color); + --win11-chrome-separator-color: #d6d6d6; + --win11-tab-border-color: #dadada; + } + } + /*- Separator --------------------------------------------------------------*/ + /*- Proton Tab Selected ----------------------------------------------------*/ + /*- Menu -------------------------------------------------------------------*/ + /*- Toolbar ----------------------------------------------------------------*/ + /*- Sidebar ----------------------------------------------------------------*/ + /*- Panel ------------------------------------------------------------------*/ + /*- Others -----------------------------------------------------------------*/ + /* For overwrite */ + } + @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-text-color: #ffffff; + --win-bgcolor: #2b2b2b; + --win-disabled-color: #747474; + --win-disabled-bgcolor: transparent; + --win-hover-bgcolor: #2e2e2e; /* also button-bgcolor */ + --win-hover-active-bgcolor: #454545; /* also button-active-color */ + --win-button-hover-bgcolor: rgba(46, 46, 46, 0.66); + --win-button-active-bgcolor: #515151; + --win-field-bgcolor: #373737; + --win-component-bgcolor: #171717; + --win-border-color: #5b5b5b; + --win-tab-separator-color: #555555; + --win-sidebar-bgcolor: #1f1f1f; + --win-sidebar-hover-bgcolor: #353535; + --win-sidebar-button-hover-bgcolor: #353535; + --win-sidebar-button-hover-active-bgcolor: #4c4c4c; + --win-button-border: #8f8f8f; + --win-shortcut-text-color: #adadad; + --win-error-color: #ffb900; + --win-red-border-color: #ff4343; + --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, AccentColor); + --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 35%, AccentColor); + --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, AccentColor); + --win-accent-active-color: AccentColor; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-accent-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 20%, -moz-accent-color); + --win-accent-content-color: color-mix(in srgb, rgba(255, 255, 255, 0.8) 35%, -moz-accent-color); + --win-accent-hover-color: color-mix(in srgb, rgba(0, 0, 0, 0.8) 5%, -moz-accent-color); + --win-accent-active-color: -moz-accent-color; + } + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-bgcolor: #202020; + --win-hover-bgcolor: #383838; /* also button-bgcolor */ + --win-disabled-color: #797979; + --win-hover-active-bgcolor: #454545; /* also button-active-color */ + --win-button-hover-bgcolor: #454545; + --win-button-active-bgcolor: rgba(46, 46, 46, 0.66); + --win-field-bgcolor: #232323; + --win-component-bgcolor: #2c2c2c; + --win-border-color: #3d3d3d; + --win-tab-separator-color: #323232; + --win-sidebar-bgcolor: var(--win-component-bgcolor); + --win-button-border: var(--win-border-color); + --win11-chrome-separator-color: #3a3a3a; + --win11-tab-border-color: #1d1d1d; + } + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + /* Text, Icon Color */ + --menu-color: var(--win-text-color) !important; + --lwt-text-color: var(--win-text-color) !important; + --button-color: var(--win-text-color) !important; + --input-color: var(--win-text-color) !important; + --toolbar-color: var(--win-text-color) !important; + --toolbar-non-lwt-textcolor: var(--win-text-color) !important; + --toolbarbutton-icon-fill: var(--win-text-color) !important; + --toolbar-field-focus-color: var(--win-text-color) !important; + --urlbar-popup-action-color: var(--win-text-color) !important; + --toolbar-field-color: var(--win-text-color) !important; + --autocomplete-popup-highlight-color: var(--win-text-color) !important; + --tab-icon-overlay-fill: var(--win-text-color) !important; + --panel-banner-item-color: var(--win-text-color) !important; + --arrowpanel-color: var(--win-text-color) !important; + --autocomplete-popup-color: var(--win-text-color) !important; + /* Text Disabled Color */ + --menu-disabled-color: var(--win-disabled-color) !important; + --checkbox-unchecked-active-bgcolor: var(--win-disabled-color) !important; + --panel-disabled-color: var(--win-disabled-color) !important; + --download-progress-paused-color: var(--win-disabled-color) !important; + /* Text Shortcut Color */ + --panel-shortcut-color: var(--win-shortcut-text-color) !important; + --panel-description-color: var(--win-shortcut-text-color) !important; + /* Title Background */ + --lwt-accent-color: var(--win-bgcolor) !important; + --toolbar-field-border-color: var(--win-bgcolor) !important; + --chrome-content-separator-color: var(--win-bgcolor) !important; + /* Component Background Color */ + --menu-background-color: var(--win-component-bgcolor) !important; + --toolbar-bgcolor: var(--win-component-bgcolor) !important; + --toolbar-non-lwt-bgcolor: var(--win-component-bgcolor) !important; + --arrowpanel-background: var(--win-component-bgcolor) !important; + --autocomplete-popup-background: var(--win-component-bgcolor) !important; + /* Border Color */ + /* Separator */ + --toolbarseparator-color: var(--win-tab-separator-color) !important; + /* Field Background Color */ + --input-bgcolor: var(--win-field-bgcolor) !important; + --toolbar-field-background-color: var(--win-field-bgcolor) !important; + --toolbar-field-focus-background-color: var(--win-field-bgcolor) !important; + --tab-icon-overlay-stroke: var(--win-field-bgcolor) !important; + /* Hover Background Color, Button Color */ + --menuitem-hover-background-color: var(--win-hover-bgcolor) !important; + --toolbarbutton-hover-background: var(--win-hover-bgcolor) !important; + --button-bgcolor: var(--win-hover-bgcolor) !important; + --panel-banner-item-background-color: var(--win-hover-bgcolor) !important; + /* Hover Active, Button Hover Color */ + --checkbox-unchecked-bgcolor: var(--win-hover-active-bgcolor) !important; + --urlbar-box-bgcolor: var(--win-hover-active-bgcolor) !important; + --urlbar-box-focus-bgcolor: var(--win-hover-active-bgcolor) !important; + --toolbarbutton-active-background: var(--win-hover-active-bgcolor) !important; + --urlbar-box-active-bgcolor: var(--win-hover-active-bgcolor) !important; + --autocomplete-popup-highlight-background: var(--win-hover-active-bgcolor) !important; + --panel-banner-item-hover-bgcolor: var(--win-hover-active-bgcolor) !important; + /* Button Hover Active Color */ + --button-active-bgcolor: var(--win-button-active-bgcolor) !important; + --panel-banner-item-active-bgcolor: var(--win-button-active-bgcolor) !important; + /* Disabled Background Color */ + --menuitem-disabled-hover-background-color: var(--win-disabled-bgcolor) !important; + /* Button Hover Color */ + --button-hover-bgcolor: var(--win-button-hover-bgcolor) !important; + --checkbox-unchecked-hover-bgcolor: var(--win-button-hover-bgcolor) !important; + --urlbar-box-hover-bgcolor: var(--win-button-hover-bgcolor) !important; + --autocomplete-popup-hover-background: var(--win-button-hover-bgcolor) !important; + /* Button Border Color */ + --checkbox-border-color: var(--win-button-border) !important; + --input-border-color: var(--win-button-border) !important; + --autocomplete-popup-separator-color: var(--win-button-border) !important; + /* Accent Foreground Color */ + --button-primary-color: var(--win-accent-foreground-color) !important; + --checkbox-checked-color: var(--win-accent-foreground-color) !important; + /* Accent Color */ + --button-primary-bgcolor: var(--win-accent-color) !important; + --focus-outline-color: var(--win-accent-color) !important; + --checkbox-checked-bgcolor: var(--win-accent-color) !important; + /* Accent Content Color */ + --toolbarbutton-icon-fill-attention: var(--win-accent-content-color) !important; + --urlbar-popup-url-color: var(--win-accent-content-color) !important; + --download-progress-fill-color: var(--win-accent-content-color) !important; + /* Accent Hover Color */ + --button-primary-hover-bgcolor: var(--win-accent-hover-color) !important; + --checkbox-checked-hover-bgcolor: var(--win-accent-hover-color) !important; + /* Accent Hover Active Color */ + --button-primary-active-bgcolor: var(--win-accent-active-color) !important; + --checkbox-checked-active-bgcolor: var(--win-accent-active-color) !important; + /* Error Color */ + --error-text-color: var(--win-error-color) !important; + --input-error-border-color: var(--win-error-color) !important; + /* Others */ + --tab-line-color: Highlight !important; + --tab-selected-bgcolor: unset !important; + --tabs-border-color: transparent !important; + --checkbox-checked-border-color: transparent !important; + /* Other Defaults */ + --arrowpanel-dimmed: color-mix(in srgb, currentColor 12%, transparent) !important; + --arrowpanel-dimmed-further: color-mix(in srgb, currentColor 20%, transparent) !important; + --arrowpanel-dimmed-even-further: color-mix(in srgb, currentColor 27%, transparent) !important; + --download-progress-flare-color: rgba(255, 255, 255, 0.75) !important; + --panelview-toolbarbutton-focus-box-shadow: inset 0 0 0 2px var(--focus-outline-color) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + #navigator-toolbox:not(:-moz-lwtheme) { + background: var(--lwt-accent-color) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) { + --arrowpanel-border-color: var(--win-bgcolor) !important; + --panel-separator-color: var(--win-bgcolor) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root[lwt-default-theme-in-dark-mode] { + --arrowpanel-border-color: var(--win-border-color) !important; + --panel-separator-color: var(--win-border-color) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @supports -moz-bool-pref("userChrome.theme.system_default") { + @media (-moz-os-version: windows-win10) and (-moz-windows-accent-color-in-titlebar), + (-moz-platform: windows-win10) and (-moz-windows-accent-color-in-titlebar) { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme), + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) { + --toolbarseparator-color: color-mix(in srgb, currentColor 20%, transparent) !important; /* As default */ + } + } + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --chrome-content-separator-color: var(--win11-chrome-separator-color) !important; + } + #nav-bar { + --lwt-tabs-border-color: var(--win11-tab-border-color) !important; + } + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --win-proton-tab-selected-bgcolor: color-mix(in srgb, var(--win-bgcolor) 5%, var(--win-component-bgcolor)); + } + :root:not(:-moz-lwtheme) { + --tab-selected-color: var(--win-proton-tab-selected-bgcolor) !important; + } + :root[lwt-default-theme-in-dark-mode] { + --lwt-selected-tab-background-color: var(--win-proton-tab-selected-bgcolor) !important; + } + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + html#main-window menupopup:not(:-moz-lwtheme) { + --menu-color: var(--win-text-color) !important; + --menu-background-color: var(--win-component-bgcolor) !important; + --menu-border-color: var(--win-bgcolor) !important; + --menuitem-hover-background-color: var(--win-hover-bgcolor) !important; + --menu-disabled-color: var(--win-disabled-color) !important; + --menuitem-disabled-hover-background-color: var(--win-disabled-bgcolor) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) #titlebar, + :root[lwt-default-theme-in-dark-mode] #titlebar { + --button-hover-bgcolor: var(--win-sidebar-button-hover-bgcolor); + --button-active-bgcolor: var(--win-sidebar-button-hover-active-bgcolor); + --toolbarbutton-hover-background: var(--win-sidebar-button-hover-bgcolor); + --toolbarbutton-active-background: var(--win-sidebar-button-hover-active-bgcolor); + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + #sidebar-box:not([lwt-sidebar]) { + appearance: none !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) #sidebar-box, + :root[lwt-default-theme-in-dark-mode] #sidebar-box { + --sidebar-background-color: var(--win-sidebar-bgcolor) !important; + --sidebar-text-color: var(--win-text-color) !important; + --sidebar-border-color: var(--win-border-color) !important; + } + } + @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + .sidebar-panel[style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + body[lwt-sidebar][style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + .sidebar-panel[style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + body[lwt-sidebar][style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"] { + /* Only darkmode has more: --newtab-background-color-secondary: rgba(66, 65, 77, 1); */ + --lwt-sidebar-background-color: var(--win-sidebar-bgcolor) !important; + --lwt-sidebar-text-color: var(--win-text-color) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) .subviewbutton, + :root[lwt-default-theme-in-dark-mode] .subviewbutton { + --button-hover-bgcolor: var(--win-hover-active-bgcolor) !important; + --button-active-bgcolor: var(--win-button-active-bgcolor) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) + toolbarbutton.subviewbutton:not( + [disabled], + [open], + :active, + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is(:hover), + :root[lwt-default-theme-in-dark-mode] + toolbarbutton.subviewbutton:not( + [disabled], + [open], + :active, + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is(:hover) { + background-color: var(--win-hover-bgcolor) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:not(:-moz-lwtheme) + toolbarbutton.subviewbutton:not( + [disabled], + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is([open], :hover:active), + :root[lwt-default-theme-in-dark-mode] + toolbarbutton.subviewbutton:not( + [disabled], + #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 + ):is([open], :hover:active) { + background-color: var(--win-hover-active-bgcolor) !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]):not(:-moz-lwtheme), + :root:not(:-moz-lwtheme) { + /* Light Theme */ + --lwt-accent-color: var(--win-bgcolor) !important; + } + } + @media (-moz-os-version: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win10) and (prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win10) and (prefers-color-scheme: dark) { + :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { + --toolbar-bgcolor: var(--win-component-bgcolor) !important; /* Original: rgba(43, 42, 51, 1) */ + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]):not(:-moz-lwtheme), + :root[lwtheme-mozlightdark] + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]), + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]) { + background-image: linear-gradient( + color-mix(in srgb, currentColor 11%, transparent), + color-mix(in srgb, currentColor 11%, transparent) + ), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; + } + } + /*= Windows10 - Titlebar accent color ========================================*/ + @media (-moz-windows-accent-color-in-titlebar) { + /* Tab Bar */ + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) .titlebar-color, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { + color: AccentColorText; + background-color: AccentColor; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) .titlebar-color, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .titlebar-color { + color: -moz-accent-color-foreground; + background-color: -moz-accent-color; + } + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) .toolbar-items, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + --toolbarbutton-icon-fill: currentColor; + --toolbarbutton-hover-background: color-mix(in srgb, AccentColorText 10%, transparent); + --toolbarbutton-active-background: color-mix(in srgb, AccentColorText 15%, transparent); + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) .toolbar-items, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) .toolbar-items { + --toolbarbutton-hover-background: color-mix(in srgb, -moz-accent-color-foreground 10%, transparent); + --toolbarbutton-active-background: color-mix(in srgb, -moz-accent-color-foreground 15%, transparent); + } + } + } + /*= GTK - URL View url accent color ==========================================*/ + @media (-moz-gtk-csd-available) { + :root:not(:-moz-lwtheme) .urlbarView-url { + --urlbar-popup-url-color: AccentColor; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root:not(:-moz-lwtheme) .urlbarView-url { + --urlbar-popup-url-color: -moz-accent-color; + } + } + /* Nightly Compatibility */ + :root:not(:-moz-lwtheme) #urlbar { + --toolbar-field-focus-color: var(--toolbar-field-color); /* Nightly: rgba(0, 0, 0, 1) */ + --toolbar-field-focus-background-color: var(--toolbar-field-background-color); /* Nightly: white */ + } + } + /*= Mac - Default like color =================================================*/ + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + /* Colors */ + --mac-text-color: -moz-dialogtext; + --mac-disabled-color: GrayText; + --mac-bgcolor: Window; + --mac-selected-bgcolor: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog); + --mac-field-bgcolor: Window; + --mac-panel-bgcolor: Menu; + --mac-sidebar-bgcolor: -moz-mac-source-list; + --mac-sidebar-hover-bgcolor: color-mix(in srgb, ButtonFace 60%, var(--mac-sidebar-bgcolor)); + --mac-hover-bgcolor: Window; + --mac-disabled-bgcolor: transparent; + --mac-primary-button-color: AccentColorText; /* or -moz-mac-menutextselect */ + --mac-accent-color: AccentColor; /* or LinkText */ + --mac-accent-content-color: color-mix(in srgb, rgb(255, 255, 255) 15%, AccentColor); + --mac-accent-hover-color: color-mix( + in srgb, + rgb(0, 0, 0) 10%, + AccentColor + ); /* or -moz-mac-menuselect, Highlight */ + --mac-accent-active-color: color-mix(in srgb, rgb(0, 0, 0) 20%, AccentColor); /* or ActiveBorder */ + /* Text, Icon Color */ + --menu-color: var(--mac-text-color) !important; + --lwt-text-color: var(--mac-text-color) !important; + --button-color: var(--mac-text-color) !important; + --input-color: var(--mac-text-color) !important; + --toolbar-color: var(--mac-text-color) !important; + --toolbar-non-lwt-textcolor: var(--mac-text-color) !important; + --toolbarbutton-icon-fill: var(--mac-text-color) !important; + --toolbar-field-focus-color: var(--mac-text-color) !important; + --urlbar-popup-action-color: var(--mac-text-color) !important; + --toolbar-field-color: var(--mac-text-color) !important; + --autocomplete-popup-highlight-color: var(--mac-text-color) !important; + --tab-icon-overlay-fill: var(--mac-text-color) !important; + --panel-banner-item-color: var(--mac-text-color) !important; + --arrowpanel-color: var(--mac-text-color) !important; + --autocomplete-popup-color: var(--mac-text-color) !important; + --panel-shortcut-color: var(--mac-text-color) !important; + --panel-description-color: var(--mac-text-color) !important; + /* Text Disabled Color */ + --menu-disabled-color: var(--mac-disabled-color) !important; + --button-active-bgcolor: var(--mac-disabled-color) !important; + --checkbox-unchecked-active-bgcolor: var(--mac-disabled-color) !important; + --panel-disabled-color: var(--mac-disabled-color) !important; + --download-progress-paused-color: var(--mac-disabled-color) !important; + /* Background Color */ + --lwt-accent-color: var(--mac-bgcolor) !important; + --menu-background-color: var(--mac-bgcolor) !important; + --autocomplete-popup-background: var(--mac-bgcolor) !important; + /* Selected Background Color */ + --toolbar-bgcolor: var(--mac-selected-bgcolor) !important; + --toolbar-non-lwt-bgcolor: var(--mac-selected-bgcolor) !important; + /* Field Background Color */ + --input-bgcolor: var(--mac-field-bgcolor) !important; + --toolbar-field-background-color: var(--mac-field-bgcolor) !important; + --tab-icon-overlay-stroke: var(--mac-field-bgcolor) !important; + /* Panel Background Color */ + --arrowpanel-background: var(--mac-panel-bgcolor) !important; + /* Hover Background Color */ + --menuitem-hover-background-color: var(--mac-hover-bgcolor) !important; + --toolbarbutton-hover-background: var(--mac-hover-bgcolor) !important; + --panel-banner-item-hover-bgcolor: var(--mac-hover-bgcolor) !important; + --button-bgcolor: var(--mac-hover-bgcolor) !important; + --checkbox-unchecked-bgcolor: var(--mac-hover-bgcolor) !important; + --panel-banner-item-background-color: var(--mac-hover-bgcolor) !important; + --urlbar-box-bgcolor: var(--mac-hover-bgcolor) !important; + --urlbar-box-focus-bgcolor: var(--mac-hover-bgcolor) !important; + --panel-banner-item-active-bgcolor: var(--mac-hover-bgcolor) !important; + --toolbarbutton-active-background: var(--mac-hover-bgcolor) !important; + --urlbar-box-active-bgcolor: var(--mac-hover-bgcolor) !important; + --autocomplete-popup-highlight-background: var(--mac-hover-bgcolor) !important; + --button-hover-bgcolor: var(--mac-hover-bgcolor) !important; + --checkbox-unchecked-hover-bgcolor: var(--mac-hover-bgcolor) !important; + --urlbar-box-hover-bgcolor: var(--mac-hover-bgcolor) !important; + --autocomplete-popup-hover-background: var(--mac-hover-bgcolor) !important; + /* Disabled Background Color */ + --menuitem-disabled-hover-background-color: var(--mac-disabled-bgcolor) !important; + /* Border Color */ + /* + --menu-border-color: var(--mac-bgcolor) !important; + --toolbar-field-border-color: var(--mac-bgcolor) !important; + --arrowpanel-border-color: var(--mac-bgcolor) !important; + --chrome-content-separator-color: var(--mac-bgcolor) !important; + --toolbarseparator-color: var(--mac-bgcolor) !important; + --panel-separator-color: var(--mac-bgcolor) !important; + */ + /* Button Border Color */ + /* + --tab-line-color: var(---mac-bgcolor) !important; + --checkbox-border-color: var(--mac-bgcolor) !important; + --input-border-color: var(--mac-bgcolor) !important; + --autocomplete-popup-separator-color: var(--mac-bgcolor) !important; + */ + /* Accent Color Foreground */ + --button-primary-color: var(--mac-primary-button-color) !important; + --checkbox-checked-color: var(--mac-primary-button-color) !important; + /* Accent Color */ + --button-primary-bgcolor: var(--mac-accent-color) !important; + --focus-outline-color: var(--mac-accent-color) !important; + --checkbox-checked-bgcolor: var(--mac-accent-color) !important; + /* Accent Content Color */ + --toolbarbutton-icon-fill-attention: var(--mac-accent-content-color) !important; + --urlbar-popup-url-color: var(--mac-accent-content-color) !important; + --download-progress-fill-color: var(--mac-accent-content-color) !important; + /* Accent Hover Color */ + --button-primary-hover-bgcolor: var(--mac-accent-hover-color) !important; + --checkbox-checked-hover-bgcolor: var(--mac-accent-hover-color) !important; + /* Accent Hover Active Color */ + --button-primary-active-bgcolor: var(--mac-accent-active-color) !important; + --checkbox-checked-active-bgcolor: var(--mac-accent-active-color) !important; + /* Error Color */ + /* + --error-text-color: var(--win-error-color) !important; + --input-error-border-color: var(--win-error-color) !important; + */ + /* Others */ + --tab-selected-bgcolor: unset !important; + --tabs-border-color: transparent !important; + --checkbox-checked-border-color: transparent !important; + /* Other Defaults */ + --arrowpanel-dimmed: color-mix(in srgb, currentColor 12%, transparent) !important; + --arrowpanel-dimmed-further: color-mix(in srgb, currentColor 20%, transparent) !important; + --arrowpanel-dimmed-even-further: color-mix(in srgb, currentColor 27%, transparent) !important; + --download-progress-flare-color: rgba(255, 255, 255, 0.75) !important; + --panelview-toolbarbutton-focus-box-shadow: inset 0 0 0 2px var(--focus-outline-color) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --mac-primary-button-color: -moz-accent-color-foreground; /* or -moz-mac-menutextselect */ + --mac-accent-color: -moz-accent-color; /* or LinkText */ + --mac-accent-content-color: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-accent-color); + --mac-accent-hover-color: color-mix( + in srgb, + rgb(0, 0, 0) 10%, + -moz-accent-color + ); /* or -moz-mac-menuselect, Highlight */ + --mac-accent-active-color: color-mix(in srgb, rgb(0, 0, 0) 20%, -moz-accent-color); /* or ActiveBorder */ + } + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --mac-field-bgcolor: Field; + --mac-panel-bgcolor: -moz-CellHighlight; + --mac-hover-bgcolor: ButtonFace; + --toolbar-field-focus-background-color: var(--mac-bgcolor) !important; + --toolbar-field-background-color: var(--mac-sidebar-bgcolor) !important; + } + } + /*- Proton Tab Selected ----------------------------------------------------*/ + @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --mac-proton-tab-selected-bgcolor: color-mix(in srgb, rgb(255, 255, 255) 20%, -moz-dialog); + } + :root:not(:-moz-lwtheme) { + --tab-selected-color: var(--mac-proton-tab-selected-bgcolor) !important; + } + :root[lwt-default-theme-in-dark-mode] { + --lwt-selected-tab-background-color: var(--mac-proton-tab-selected-bgcolor) !important; + } + } + /*- Toolbar ----------------------------------------------------------------*/ + :root:not(:-moz-lwtheme) #navigator-toolbox, + :root[lwt-default-theme-in-dark-mode] #navigator-toolbox { + background-color: var(--mac-bgcolor) !important; + } + :root:not(:-moz-lwtheme) #titlebar { + --mac-hover-bgcolor: ButtonFace; + } + :root:not(:-moz-lwtheme) #titlebar, + :root[lwt-default-theme-in-dark-mode] #titlebar { + --button-hover-bgcolor: var(--mac-hover-bgcolor); + --button-active-bgcolor: var(--mac-hover-bgcolor); + --toolbarbutton-hover-background: var(--mac-hover-bgcolor); + --toolbarbutton-active-background: var(--mac-hover-bgcolor); + /* Prevent transparent tabbar at fullscreen hover #312 */ + background: var(--mac-bgcolor); + } + :root[lwt-default-theme-in-dark-mode] #urlbar { + --autocomplete-popup-highlight-background: var(--mac-hover-bgcolor) !important; + --autocomplete-popup-hover-background: var(--mac-hover-bgcolor) !important; + } + /*- Sidebar ----------------------------------------------------------------*/ + #sidebar-box:not([lwt-sidebar]) { + appearance: none !important; + } + :root:not(:-moz-lwtheme) #sidebar-box, + :root[lwt-default-theme-in-dark-mode] #sidebar-box { + --sidebar-background-color: var(--mac-sidebar-bgcolor) !important; + --sidebar-text-color: var(--mac-text-color) !important; + /* --sidebar-border-color: var(--win-sidebar-border-color) !important; */ + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + .sidebar-panel[style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + body[lwt-sidebar][style="--newtab-background-color: rgba(43, 42, 51, 1); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + .sidebar-panel[style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"], + body[lwt-sidebar][style="--newtab-background-color: rgb(43, 42, 51); --newtab-text-primary-color: rgba(251, 251, 254, 1); --lwt-sidebar-background-color: rgb(56, 56, 61); --lwt-sidebar-text-color: rgba(249, 249, 250, 1);"] { + /* Only darkmode has more: --newtab-background-color-secondary: rgba(66, 65, 77, 1); */ + --lwt-sidebar-background-color: transparent !important; + --lwt-sidebar-text-color: var(--mac-text-color) !important; + } + } + :root[lwt-default-theme-in-dark-mode] #sidebarMenu-popup { + --button-hover-bgcolor: var(--mac-sidebar-hover-bgcolor); + --button-active-bgcolor: var(--mac-sidebar-hover-bgcolor); + } + /*- Others -----------------------------------------------------------------*/ + /* For Overwrite */ + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { + --toolbar-bgcolor: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog) !important; + } + } + /* Hard Coded */ + @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected="true"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][lwt-default-theme-in-dark-mode] + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected="true"] { + background: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog) !important; + } + } + :root:not(:-moz-lwtheme):not([customizing="true"]) tab[visuallyselected] > stack::before, + :root:not(:-moz-lwtheme):not([customizing="true"]) tab[visuallyselected] > stack::after, + :root[lwt-default-theme-in-dark-mode]:not([customizing="true"]) tab[visuallyselected] > stack::before, + :root[lwt-default-theme-in-dark-mode]:not([customizing="true"]) tab[visuallyselected] > stack::after { + fill: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog) !important; + } + } +} +/*= None Native Menu =========================================================*/ +@supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menu-icon-opacity: 0.7; + --nested-margin: -10px; + --windows-panel-box-shadow: 0 0 4px hsla(0, 0%, 0%, 0.2); + --menu-checkbox-padding: 12px; + } + /* For Windows 10, prevent using native OS drawing of certain menu elements, + especially background colors and shadows. */ + /* Menu item text also needs native drawing disabled. */ + /* For Windows 10, checkbox, radio and iconified menuitems need the default + appearance disabled so they pick up our custom styles instead. */ + /* We need to do something to override the default style for selected + checkboxes and radio buttons because the native drawing we use on other + Windows versions looks pretty bad with the Win10 styles, so for now we'll + insert a generic checkmark icon for both types. */ + /* :not([hidden]) to avoid the display: flex unhiding the item. */ + /* override styles from shared/contextmenu.inc.css */ + /* If the menu is wider than the icons strictly need, the elements + * will stretch to pick up the extra space. In that case, the outer icons + * should align to the start/end of their containing : */ + /* 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. */ + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + :root { + /* Override the menu color variables for dark browser themes. */ + --menu-icon-opacity: 1; + } + } + @media (-moz-gtk-csd-available) { + menu, + menuitem, + menucaption { + appearance: none !important; + } + } + @media (-moz-gtk-csd-available) { + menu > .menu-text, + menuitem > .menu-text, + menu > .menu-iconic-text, + menuitem > .menu-iconic-text { + appearance: none !important; + margin-inline-start: 0 !important; /* need !important to override the other !important below... */ + padding-inline-end: 0; + } + menu > .menu-text::before, + menuitem > .menu-text::before, + menu > .menu-iconic-text::before, + menuitem > .menu-iconic-text::before { + box-sizing: border-box !important; + height: calc(2px + 1.2em) !important; + padding: 1px 0 !important; + } + menu > .menu-text[value*="…"]::before, + menuitem > .menu-text[value*="…"]::before, + menu > .menu-iconic-text[value*="…"]::before, + menuitem > .menu-iconic-text[value*="…"]::before { + padding: 0 !important; + } + } + @media (-moz-gtk-csd-available) { + menu[_moz-menuactive="true"]:not([disabled="true"]), + menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + background-color: var(--menuitem-hover-background-color) !important; + color: var(--menu-color) !important; + } + } + @media (-moz-gtk-csd-available) { + menu:where([_moz-menuactive="true"][disabled="true"]), + menuitem:where([_moz-menuactive="true"][disabled="true"]) { + background-color: transparent !important; + } + } + @media (-moz-gtk-csd-available) { + .menu-text { + padding-inline-start: 0 !important; + } + } + @media (-moz-gtk-csd-available) { + .menu-right { + appearance: none !important; + width: unset !important; + list-style-image: url("chrome://global/skin/icons/arrow-right.svg") !important; + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + fill-opacity: var(--menu-icon-opacity) !important; + margin-inline-end: 1px !important; + padding-top: 0 !important; + } + } + @media (-moz-gtk-csd-available) { + .menu-right > image { + /* Do not make this smaller than the size of the svg, but upscale for + * people with large fonts. */ + width: max(1em, 16px) !important; + } + } + @media (-moz-gtk-csd-available) { + .menu-right:-moz-locale-dir(rtl) { + list-style-image: url("chrome://global/skin/icons/arrow-left.svg") !important; + } + } + @media (-moz-gtk-csd-available) { + menulist > menupopup > menuitem { + padding-inline-end: 1px !important; + } + } + @media (-moz-gtk-csd-available) { + menupopup[needsgutter] menu:not([icon], .menu-iconic), + menupopup[needsgutter] menuitem:not([type="checkbox"], [type="radio"], [icon], .menuitem-iconic) { + padding-inline-start: 36px !important; + } + } + @media (-moz-gtk-csd-available) { + .menu-iconic-left, + menuitem[type="checkbox"], + menuitem[type="radio"] { + appearance: none !important; /* to override more specific selectors above. */ + width: unset !important; + } + } + @media (-moz-gtk-csd-available) { + .menu-iconic > .menu-iconic-left, + .menuitem-iconic > .menu-iconic-left { + padding-inline-end: 0 !important; + margin-inline-end: 8px !important; + } + } + @media (-moz-gtk-csd-available) { + menuitem[type="checkbox"], + menuitem[type="radio"] { + --menu-background-padding-default: var(--menu-checkbox-padding); + } + } + @media (-moz-gtk-csd-available) { + menuitem[checked="true"] { + padding-inline-start: var(--menu-checkbox-padding) !important; + } + } + @media (-moz-gtk-csd-available) { + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item .menu-iconic-left { + padding-inline-end: 0 !important; + margin-inline-end: 6px !important; + } + } + @media (-moz-gtk-csd-available) { + menuitem[checked="true"] > .menu-iconic-left { + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + fill-opacity: var(--menu-icon-opacity) !important; + list-style-image: url("../icons/menu-check.svg") !important; + width: 16px !important; + margin-inline-end: 8px !important; + } + } + @media (-moz-gtk-csd-available) { + menuitem[checked="true"] > .menu-iconic-left > .menu-iconic-icon { + display: initial !important; + } + } + @media (-moz-gtk-csd-available) { + menuseparator { + appearance: none !important; + border-top: 1px solid var(--menu-border-color) !important; + border-bottom: none !important; + padding: 0 !important; + /* The side margins should align with the start of the menu item text. */ + margin: 2px 1em !important; + } + } + @media (-moz-gtk-csd-available) { + menupopup { + /* Disable the default appearance so we can override the native styling. */ + appearance: none !important !important; + /* Prevent any background or border around the outside of the shadow. */ + background-color: transparent !important; + border: none !important; + /* To account for the box-shadow below */ + margin: -4px !important; + } + } + @media (-moz-gtk-csd-available) { + menupopup:not([placespopup="true"]) > menuitem, + menupopup:not([placespopup="true"]) > menu { + padding-block: var(--menu-padding, 0.5em) !important; + padding-inline-start: 1em !important; + } + } + @media (-moz-gtk-csd-available) { + .menupopup-arrowscrollbox[part*="content"] { + box-shadow: var(--windows-panel-box-shadow) !important; + margin: 4px !important; + padding: 4px 0 !important; + color: var(--menu-color) !important; + background: var(--menu-background-color) !important; + border-radius: 4px !important; + border: 1px solid var(--menu-border-color) !important; + min-width: 0 !important; + min-height: 0 !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_menupopup") { + .menupopup-arrowscrollbox[part*="content"] { + border-radius: 0px !important; + } + } + } + @media (-moz-gtk-csd-available) { + menupopup > menu > menupopup { + /* align submenus */ + margin-inline-start: var(--nested-margin) !important; + margin-top: var(--nested-margin) !important; + } + } + @media (-moz-gtk-csd-available) { + #mainPopupSet { + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding-default) + ); + } + } + @media (-moz-gtk-csd-available) { + #context-navigation:not([hidden]) { + /* The Windows 10 version of the navigation area needs the scrollbox's + background color, not the builtin "menu" color. */ + background-color: inherit !important; + /* Match the inner top padding of the menupopup to center the icons visually. */ + padding-bottom: 4px !important; + /* Use modern flex box so we can use percentage widths to redistribute + * spacing manually. */ + display: flex !important; + flex-direction: row !important; + /* We want the first and last icons to align with the text items which + * have 1em inline padding, and for icons to be centered within their + * hover state, so each icon of 16px needs 1em padding on both sides: + */ + --menuitem-min-width: calc(2em + 16px) !important; + /* The total width of the container should then be at least 4 times that: */ + min-width: calc(4 * var(--menuitem-min-width)) !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic { + flex: 1 0 auto !important; + padding: 0 !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] { + /* We only show hover state on the icons. This ensures there is no + * dead space between icons, but the visible hover state is only + * around the icons, and all the icons' hover states match each other. + */ + background-color: transparent !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic > .menu-iconic-left { + margin: 0 !important; + padding: 0 !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + width: var(--menuitem-min-width) !important; + height: 32px !important; + padding: 8px 1em !important; + margin: 0 !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + background-color: var(--menuitem-hover-background-color) !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: transparent !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic:first-child { + justify-content: flex-start !important; + -moz-box-pack: start !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic:last-child { + justify-content: flex-end !important; + -moz-box-pack: end !important; + } + } + @media (-moz-gtk-csd-available) { + #context-navigation > .menuitem-iconic:last-child, + #context-navigation > .menuitem-iconic:first-child { + flex-grow: 0 !important; + /* The first and last items start off as 16px + 2em, like the other ones. + * 100% is the width of the parent, which will be at least 4 * the width of + * an individual item (16px + 2em) + * So 100% - 4 item widths gets us the remaining available space if + * #context-navigation is wider than that. + * Then divide by 6 to get the 1/6 of that extra space, and add this space + * to the width of the first/last items. + * This ensures that the 3 visual gaps between the 4 icons are all the same + * size, with each 1/3 of the available space evenly distributed between + * the 2 items on either side of the gap. + */ + width: calc(var(--menuitem-min-width) + (100% - 4 * var(--menuitem-min-width)) / 6) !important; + } + } + @media (-moz-gtk-csd-available) { + #context-sep-navigation { + margin-top: 0 !important; + margin-inline: 0 !important; + } + } +} +/*= Fully Theme Mode =========================================================*/ +@supports -moz-bool-pref("userChrome.theme.proton_color") { + /*= Default Colors - Hard Coded ==============================================*/ + /* Based on chrome://global/skin/in-content/common.css */ + :host, + :root { + --in-content-page-color: rgb(21, 20, 26); + --in-content-page-background: #fff; + --in-content-text-color: var(--in-content-page-color); + --in-content-deemphasized-text: rgb(91, 91, 102); + --in-content-box-background: #fff; + --in-content-box-background-odd: rgba(12, 12, 13, 0.05); /* grey 90 a05 */ + --in-content-box-border-color: color-mix(in srgb, currentColor 41%, transparent); + --in-content-box-info-background: #f0f0f4; + --in-content-item-hover: color-mix(in srgb, var(--in-content-primary-button-background) 20%, transparent); + --in-content-item-hover-text: var(--in-content-page-color); + --in-content-item-selected: var(--in-content-primary-button-background); + --in-content-item-selected-text: var(--in-content-primary-button-text-color); + --in-content-icon-color: rgb(91, 91, 102); + --in-content-accent-color: #0a84ff; + --in-content-accent-color-active: #0060df; + --in-content-border-hover: var(--grey-90-a50); + --in-content-border-invalid: var(--red-50); + --in-content-border-color: #d7d7db; + --in-content-error-text-color: #c50042; + --in-content-link-color: var(--blue-60); + --in-content-link-color-hover: var(--blue-70); + --in-content-link-color-active: var(--blue-80); + --in-content-link-color-visited: var(--blue-60); + /* button background states are also used for checkboxes and radio buttons */ + --in-content-button-text-color: var(--in-content-text-color); + --in-content-button-text-color-hover: var(--in-content-text-color); + --in-content-button-background: rgba(207, 207, 216, 0.33); + --in-content-button-background-hover: rgba(207, 207, 216, 0.66); + --in-content-button-background-active: rgb(207, 207, 216); + --in-content-primary-button-text-color: rgb(251, 251, 254); + --in-content-primary-button-text-color-hover: var(--in-content-primary-button-text-color); + --in-content-primary-button-background: #0061e0; + --in-content-primary-button-background-hover: #0250bb; + --in-content-primary-button-background-active: #053e94; + --in-content-danger-button-background: #e22850; + --in-content-danger-button-background-hover: #c50042; + --in-content-danger-button-background-active: #810220; + --in-content-focus-outline-color: var(--in-content-primary-button-background); + /* Note: 1px smaller than we want because we have a 1px transparent border. */ + /* Once proton ships, these can probably stop being variables. */ + --in-content-button-border-radius: 4px; + --in-content-button-horizontal-padding: 15px; + --in-content-button-vertical-padding: 7px; + --in-content-table-background: #f8f8fa; + --in-content-table-border-color: var(--in-content-box-border-color); /* Legacy: #d1d1d1; rgba(249, 249, 250, 0.2) */ + --in-content-table-border-dark-color: var(--in-content-table-border-color); + --in-content-table-header-background: var( + --in-content-primary-button-background + ); /* Legacy: #0a84ff; rgb(5, 64, 150); */ + --in-content-table-header-color: var( + --in-content-primary-button-text-color + ); /* Legacy: #ffffff; var(--in-content-page-color); */ + --in-content-sidebar-width: 240px; + --dialog-warning-text-color: var(--red-60); + --checkbox-border-color: var(--in-content-box-border-color); + --checkbox-unchecked-bgcolor: var(--in-content-button-background); + --checkbox-unchecked-hover-bgcolor: var(--in-content-button-background-hover); + --checkbox-unchecked-active-bgcolor: var(--in-content-button-background-active); + --checkbox-checked-bgcolor: var(--in-content-primary-button-background); + --checkbox-checked-color: var(--in-content-primary-button-text-color); + --checkbox-checked-border-color: transparent; + --checkbox-checked-hover-bgcolor: var(--in-content-primary-button-background-hover); + --checkbox-checked-active-bgcolor: var(--in-content-primary-button-background-active); + --blue-40: #45a1ff; + --blue-50: #0a84ff; + --blue-60: #0060df; + --blue-70: #003eaa; + --blue-80: #002275; + --grey-30: #d7d7db; + --grey-60: #4a4a4f; + --grey-90-a10: rgba(12, 12, 13, 0.1); + --grey-90-a20: rgba(12, 12, 13, 0.2); + --grey-90-a30: rgba(12, 12, 13, 0.3); + --grey-90-a50: rgba(12, 12, 13, 0.5); + --grey-90-a60: rgba(12, 12, 13, 0.6); + --green-50: #30e60b; + --green-60: #12bc00; + --green-70: #058b00; + --green-80: #006504; + --green-90: #003706; + --orange-50: #ff9400; + --red-40: #ff4f5e; + --red-50: #ff0039; + --red-60: #d70022; + --red-70: #a4000f; + --red-80: #5a0002; + --red-90: #3e0200; + --yellow-50: #ffe900; + --yellow-60: #d7b600; + --yellow-60-a30: rgba(215, 182, 0, 0.3); + --yellow-70: #a47f00; + --yellow-80: #715100; + --yellow-90: #3e2800; + --shadow-10: 0 1px 4px var(--grey-90-a10); + --shadow-30: 0 4px 16px var(--grey-90-a10); + --card-padding: 16px; + --card-shadow: var(--shadow-10); + --card-outline-color: var(--grey-30); + --card-shadow-hover: var(--card-shadow), 0 0 0 5px var(--card-outline-color); + --uc-warning-icon-bgcolor: #ffa436; + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :host, + :root { + /* Keep these in sync with layout/base/PresShell.cpp, and plaintext.css */ + --in-content-page-background: rgb(28, 27, 34); + --in-content-page-color: rgb(251, 251, 254); + --in-content-deemphasized-text: rgb(191, 191, 201); + --in-content-box-background: rgb(35, 34, 43); + --in-content-box-background-odd: rgba(249, 249, 250, 0.05); + --in-content-box-info-background: rgba(249, 249, 250, 0.15); + --in-content-border-color: rgba(249, 249, 250, 0.2); + --in-content-border-hover: rgba(249, 249, 250, 0.3); + --in-content-border-invalid: rgb(255, 132, 139); + --in-content-error-text-color: #ff9aa2; + --in-content-button-background: rgb(43, 42, 51); + --in-content-button-background-hover: rgb(82, 82, 94); + --in-content-button-background-active: rgb(91, 91, 102); + --in-content-icon-color: rgb(251, 251, 254); + --in-content-primary-button-text-color: rgb(43, 42, 51); + --in-content-primary-button-background: rgb(0, 221, 255); + --in-content-primary-button-background-hover: rgb(128, 235, 255); + --in-content-primary-button-background-active: rgb(170, 242, 255); + --in-content-danger-button-background: #ff848b; + --in-content-danger-button-background-hover: #ffbdc5; + --in-content-danger-button-background-active: #ffdfe7; + --in-content-table-background: rgb(35, 34, 43); + --in-content-table-border-dark-color: var(--in-content-box-border-color); + --in-content-accent-color: var(--in-content-primary-button-background); + --in-content-accent-color-active: var(--in-content-primary-button-background-hover); + --in-content-link-color: var(--in-content-primary-button-background); + --in-content-link-color-hover: var(--in-content-primary-button-background-hover); + --in-content-link-color-active: var(--in-content-primary-button-background-active); + --in-content-link-color-visited: var(--in-content-link-color); + --card-outline-color: var(--grey-60); + --dialog-warning-text-color: var(--red-40); + --uc-warning-icon-bgcolor: #ffbd4f; + } + } + @media (prefers-contrast) { + :host, + :root { + --uc-warning-icon-bgcolor: var(--in-content-page-color); + } + } + /*= Menu color #477 ==========================================================*/ + @media (-moz-windows-non-native-menus) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + } + @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + } + @supports -moz-bool-pref("userChrome.theme.proton_color.dark_blue_accent") { + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :host, + :root { + /* Color Memo + Just refer - Photon's dark color + --button-primary-bgcolor: #0060DF; + --button-primary-hover-bgcolor: #003EAA; + --button-primary-active-bgcolor: #002275; + --lwt-brighttext-url-color: #74c0ff; + --lwt-toolbarbutton-icon-fill-attention: #45a1ff; + + Just refer - Proton's light color + --in-content-accent-color: #0a84ff; + --in-content-accent-color-active: #0060df; + --in-content-primary-button-background: #0061e0; + --in-content-primary-button-background-hover: #0250bb; + --in-content-primary-button-background-active: #053e94; + + --blue-40: #45a1ff; rgb(69, 161, 255) + --blue-50: #0a84ff; rgb(10, 132, 255) + --blue-60: #0060df; rgb(0, 96, 223) + --blue-70: #003eaa; rgb(0, 62, 170) + --blue-80: #002275; rgb(0, 34, 117) + + Relation + lighten(#0060df, 29%): #74b0ff; + lighten(#0060df, 19.8%): #4595ff + lighten(#0060df, 8.3%): #0a74ff + #0060df + darken(#0060df, 15.5%): #003e90; + darken(#0060df, 28.1%): #002250; + */ + --blue-20: #b6d6ff; /* lighten(#0060df, 42%) - rgb(182, 214, 255), Add for link active color*/ + --blue-30: #74c0ff; /* rgb(116, 192, 255), Add for active color */ + } + :host, + :root, + dialog { + --in-content-primary-button-text-color: var(--in-content-page-color) !important; + --in-content-primary-button-background: var(--blue-60) !important; + --in-content-primary-button-background-hover: var(--blue-50) !important; + --in-content-primary-button-background-active: var(--blue-40) !important; + --in-content-focus-outline-color: var(--blue-40) !important; + --in-content-accent-color: var(--blue-40) !important; + --in-content-accent-color-active: var(--blue-30) !important; + --in-content-table-background: rgb(35, 34, 43) !important; + --in-content-table-border-color: rgba(249, 249, 250, 0.2) !important; + --in-content-table-header-background: rgb(5, 64, 150) !important; + --in-content-table-header-color: var(--in-content-page-color) !important; + --in-content-link-color: var(--blue-40) !important; + --in-content-link-color-hover: var(--blue-30) !important; + --in-content-link-color-active: var(--blue-20) !important; + --in-content-link-color-visited: var(--blue-40) !important; + } + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { + --button-primary-color: var(--in-content-page-color) !important; + --button-primary-bgcolor: var(--blue-60) !important; + --button-primary-hover-bgcolor: var(--blue-50) !important; + --button-primary-active-bgcolor: var(--blue-40) !important; + --focus-outline-color: var(--blue-40) !important; + --lwt-toolbarbutton-icon-fill-attention: var(--blue-40) !important; + --download-progress-fill-color: var(--blue-40) !important; + --panel-banner-item-info-icon-bgcolor: var(--blue-30) !important; + --lwt-brighttext-url-color: var(--blue-30) !important; /* Original: as primary bgcolor */ + } + @supports -moz-bool-pref("userChrome.decoration.download_panel") { + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"] #downloadsListBox, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] #downloadsListBox { + --button-primary-bgcolor: var(--blue-30); + --button-primary-hover-bgcolor: var(--blue-20); + } + } + } + } +} +@supports -moz-bool-pref("userChrome.theme.private") { + :root[privatebrowsingmode="temporary"], + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"], + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] { + --lwt-additional-images: none !important; + --lwt-header-image: none !important; + --lwt-tab-text: rgba(232, 224, 255) !important; + --lwt-text-color: var(--lwt-tab-text) !important; + --toolbar-color: var(--lwt-tab-text) !important; + --toolbar-non-lwt-textcolor: var(--lwt-tab-text) !important; + --arrowpanel-color: var(--lwt-tab-text) !important; + --focus-outline-color: rgb(172, 112, 255) !important; + --toolbar-bgcolor: #322560 !important; + --toolbar-non-lwt-bgcolor: var(--toolbar-bgcolor) !important; + --lwt-accent-color: #19162f !important; + --in-content-page-background: var(--lwt-accent-color) !important; + --toolbar-field-background-color: #0b0724 !important; + --lwt-selected-tab-background-color: var(--toolbar-bgcolor) !important; + --toolbarbutton-hover-background: rgba(255, 255, 255, 0.05) !important; + --toolbarbutton-active-background: #4d4175 !important; + --arrowpanel-background: #1d1935 !important; + --arrowpanel-border-color: #322560 !important; + --chrome-content-separator-color: none !important; + --toolbar-field-focus-background-color: var(--toolbar-field-background-color) !important; + --autocomplete-popup-hover-background: #1d1935 !important; + --autocomplete-popup-highlight-background: rgba(65, 48, 117, 0.5) !important; + --button-bgcolor: color-mix(in srgb, currentColor 13%, transparent) !important; + --button-hover-bgcolor: color-mix(in srgb, currentColor 17%, transparent) !important; + --button-active-bgcolor: color-mix(in srgb, currentColor 30%, transparent) !important; + --urlbar-box-bgcolor: color-mix(in srgb, currentColor 16%, transparent) !important; + } + :root[privatebrowsingmode="temporary"] #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #navigator-toolbox:-moz-lwtheme { + --lwt-tabs-border-color: var(--focus-outline-color) !important; + } + :root[privatebrowsingmode="temporary"] #navigator-toolbox, + :root[privatebrowsingmode="temporary"][lwtheme-image] #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #navigator-toolbox, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #navigator-toolbox, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #navigator-toolbox, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"][lwtheme-image] + #navigator-toolbox:-moz-lwtheme { + background-color: var(--lwt-accent-color) !important; + } + :root[privatebrowsingmode="temporary"] #TabsToolbar, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + #TabsToolbar, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] #TabsToolbar, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + #TabsToolbar { + --lwt-tab-line-color: var(--focus-outline-color) !important; + } + :root[privatebrowsingmode="temporary"] notification-message[message-bar-type="infobar"], + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + notification-message[message-bar-type="infobar"] { + --message-bar-text-color: var(--lwt-tab-text) !important; + --in-content-page-color: var(--lwt-tab-text) !important; + } + :root[privatebrowsingmode="temporary"] menupopup, + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"])[privatebrowsingmode="temporary"] menupopup, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"][privatebrowsingmode="temporary"] + menupopup, + :root[lwtheme-mozlightdark][lwthemetextcolor="bright"][privatebrowsingmode="temporary"] menupopup, + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][privatebrowsingmode="temporary"] + menupopup { + --menuitem-hover-background-color: #413d54 !important; + --menu-background-color: #1d1935 !important; + --menu-color: #eeeeee !important; + --menuitem-disabled-hover-background-color: #ffffff00 !important; + --menu-disabled-color: #ffffff50 !important; + --menu-border-color: #322560 !important; + } +} +@supports -moz-bool-pref("userChrome.theme.fully_color") { + /*== Menu Color ==============================================================*/ + html#main-window menupopup:not(.in-menulist) { + /* is same as toolbar color https://github.com/mozilla/gecko-dev/blob/master/toolkit/themes/windows/global/global.css#L17-L67 */ + --menu-color: var(--arrowpanel-color, var(--in-content-page-color)) !important; + --menu-background-color: var(--arrowpanel-background, var(--in-content-button-background)) !important; + --menu-border-color: var( + --panel-separator-color, + var(--toolbarbutton-active-background, var(--button-active-bgcolor, var(--card-outline-color))) + ) !important; + --menuitem-hover-background-color: var( + --toolbarbutton-hover-background, + var(--button-hover-bgcolor, var(--in-content-button-background-hover)) + ) !important; + --menu-disabled-color: color-mix(in srgb, var(--menu-color) 40%, transparent) !important; + --menuitem-disabled-hover-background-color: color-mix( + in srgb, + var(--menuitem-hover-background-color) 40%, + transparent + ) !important; + } + @media (-moz-windows-non-native-menus) { + html#main-window menupopup:not(.in-menulist) { + /* Above FF v105 #466 */ + --panel-color: var(--menu-color) !important; + --panel-background: var(--menu-background-color) !important; + --panel-border-color: var(--menu-border-color) !important; + } + html#main-window menupopup:not(.in-menulist):not([placespopup]) menuseparator, + html#main-window menupopup:not(.in-menulist):not([placespopup]) menuseparator::before, + html#main-window menupopup:not(.in-menulist)[placespopup] menuseparator::before { + border-color: var(--menu-border-color) !important; + } + html#main-window menupopup:not(.in-menulist) menu[disabled="true"], + html#main-window menupopup:not(.in-menulist) menu[_moz-menuactive="true"][disabled="true"], + html#main-window menupopup:not(.in-menulist) menuitem[disabled="true"], + html#main-window menupopup:not(.in-menulist) menuitem[_moz-menuactive="true"][disabled="true"] { + color: var(--menu-disabled-color) !important; + } + html#main-window menupopup:not(.in-menulist) menu[_moz-menuactive="true"]:not([disabled="true"]), + html#main-window menupopup:not(.in-menulist) menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + background-color: var(--menuitem-hover-background-color) !important; + color: var(--menu-color) !important; + } + html#main-window + menupopup + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: var(--menuitem-hover-background-color) !important; + } + html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], + html#main-window + menupopup + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: transparent !important; + } + } + @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: light), + (-moz-windows-non-native-menus) and (prefers-color-scheme: light) { + :root[style*="background-noodles-right"] menupopup { + --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + html#main-window menupopup:not(.in-menulist) { + /* Above FF v105 #466 */ + --panel-color: var(--menu-color) !important; + --panel-background: var(--menu-background-color) !important; + --panel-border-color: var(--menu-border-color) !important; + } + html#main-window menupopup:not(.in-menulist):not([placespopup]) menuseparator, + html#main-window menupopup:not(.in-menulist):not([placespopup]) menuseparator::before, + html#main-window menupopup:not(.in-menulist)[placespopup] menuseparator::before { + border-color: var(--menu-border-color) !important; + } + html#main-window menupopup:not(.in-menulist) menu[disabled="true"], + html#main-window menupopup:not(.in-menulist) menu[_moz-menuactive="true"][disabled="true"], + html#main-window menupopup:not(.in-menulist) menuitem[disabled="true"], + html#main-window menupopup:not(.in-menulist) menuitem[_moz-menuactive="true"][disabled="true"] { + color: var(--menu-disabled-color) !important; + } + html#main-window menupopup:not(.in-menulist) menu[_moz-menuactive="true"]:not([disabled="true"]), + html#main-window menupopup:not(.in-menulist) menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + background-color: var(--menuitem-hover-background-color) !important; + color: var(--menu-color) !important; + } + html#main-window + menupopup + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: var(--menuitem-hover-background-color) !important; + } + html#main-window menupopup #context-navigation > .menuitem-iconic[_moz-menuactive="true"], + html#main-window + menupopup + #context-navigation + > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] + > .menu-iconic-left + > .menu-iconic-icon { + background-color: transparent !important; + } + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: light), + (-moz-gtk-csd-available) and (prefers-color-scheme: light) { + :root[style*="background-noodles-right"] menupopup { + --toolbarbutton-hover-background: rgba(232, 224, 255, 0.11999999731779099) !important; + } + } + } + @media not all and (-moz-gtk-csd-available) { + window:is(#bookmarksPanel, #history-panel)[lwt-sidebar="true"] menupopup { + --panel-color: var(--lwt-sidebar-text-color, var(--menu-color)) !important; + --panel-background: var(--lwt-sidebar-background-color, var(--menu-background-color)) !important; + } + window:is(#bookmarksPanel, #history-panel)[lwt-sidebar="true"] menu[_moz-menuactive="true"]:not([disabled="true"]), + window:is(#bookmarksPanel, #history-panel)[lwt-sidebar="true"] + menuitem[_moz-menuactive="true"]:not([disabled="true"]) { + --menuitem-hover-background-color: color-mix( + in srgb, + currentColor 17%, + transparent + ); /* Looks like toolbar button */ + /* or var(--lwt-sidebar-highlight-background-color) + If this value is used, unset is required in the default theme. + */ + background-color: var(--menuitem-hover-background-color) !important; + } + /* Fallback background - Set to Legacy. It will be removed Next update + menupopup:not(.cui-widget-panel.cui-widget-panelview, [placespopup="true"]) { + background-color: var(--lwt-accent-color, var(--in-content-page-background)) !important; + } + */ + } + /* Default theme color preservation */ + :root[lwtheme-mozlightdark] menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), + :root[lwtheme-mozlightdark] menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup), + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + menupopup:not(#BMB_bookmarksPopup, [placespopup="true"]), + :root:is( + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) { + --menu-color: var(--toolbar-color, var(--in-content-page-color)) !important; + --arrowpanel-background: var( + --toolbar-bgcolor, + var(--in-content-button-background) + ) !important; /* --menu-background-color */ + } + @media not all and (-moz-gtk-csd-available) { + window:is(#bookmarksPanel, #history-panel)[style*="--newtab-background-color: rgba(249, 249, 251, 1);"] menupopup, + window:is(#bookmarksPanel, #history-panel)[style*="--newtab-background-color: rgba(43, 42, 51, 1);"] menupopup { + /* Default Dark Mode */ + --panel-color: var(--menu-color) !important; + --panel-background: var(--menu-background-color, -moz-menuhover) !important; + } + } + /*== Info Bar Color ==========================================================*/ + .container.infobar { + background-color: var(--urlbar-box-bgcolor) !important; + } + .notification-button { + background-color: var(--button-bgcolor) !important; + } + .notification-button:hover { + background-color: var(--button-hover-bgcolor) !important; + } + .notification-button:hover:active { + background-color: var(--button-active-bgcolor) !important; + } + html|button.ghost-button:not(.semi-transparent):enabled:hover { + background-color: var(--button-hover-bgcolor) !important; + } + html|button.ghost-button:not(.semi-transparent):enabled:hover:active { + background-color: var(--in-content-button-background-active) !important; + } + /*== Bookmark Popup Color ====================================================*/ + #editBMPanel_folderTree:-moz-lwtheme, + #editBMPanel_tagsSelector:-moz-lwtheme { + appearance: none !important; + border: 0.5px solid var(--button-active-bgcolor, color-mix(in srgb, currentColor 30%, transparent)) !important; + } + #editBMPanel_folderTree:-moz-lwtheme, + #editBMPanel_folderTree:-moz-lwtheme > treechildren, + #editBMPanel_folderTree:-moz-lwtheme > treechildren::-moz-tree-image, + #editBMPanel_folderTree:-moz-lwtheme > treechildren::-moz-tree-cell-text(hover), + #editBMPanel_folderTree:-moz-lwtheme > treechildren::-moz-tree-cell-text(selected), + #editBMPanel_tagsSelector:-moz-lwtheme, + #editBMPanel_tagsSelector:-moz-lwtheme > richlistitem { + color: var(--lwt-text-color, fieldtext) !important; + } + #editBMPanel_folderTree:-moz-lwtheme > treechildren::-moz-tree-cell-text(selected) { + font-weight: 600 !important; + } + #editBMPanel_folderTree:-moz-lwtheme > treechildren, + #editBMPanel_tagsSelector:-moz-lwtheme { + background-color: color-mix(in srgb, var(--arrowpanel-background) 35%, var(--in-content-box-background)) !important; + } + #editBMPanel_folderTree:-moz-lwtheme > treechildren::-moz-tree-row(hover), + #editBMPanel_tagsSelector > richlistitem:hover { + background-color: var(--button-hover-bgcolor, color-mix(in srgb, currentColor 17%, transparent)) !important; + } + #editBMPanel_folderTree:-moz-lwtheme > treechildren::-moz-tree-row(selected), + #editBMPanel_tagsSelector > richlistitem[selected="true"] { + background-color: var(--button-active-bgcolor, color-mix(in srgb, currentColor 30%, transparent)) !important; + } + #editBMPanel_namePicker, + #editBMPanel_tagsField { + --input-bgcolor: var(--arrowpanel-background, Field); + --input-color: var(--arrowpanel-color, FieldText); + } + /*== Sidebar - Field Color ===================================================*/ + .sidebar-panel #search-box, + xul|search-textbox.tabsFilter { + --input-bgcolor: color-mix(in srgb, currentColor 30%, transparent); + appearance: none !important; + padding: 5px 8px !important; + border: 1px solid var(--input-bgcolor) !important; + background-color: var(--lwt-sidebar-background-color, Field) !important; + color: var(--lwt-sidebar-text-color, FieldText) !important; + } + .sidebar-panel:not([lwt-sidebar]) #search-box { + --input-bgcolor: ThreeDShadow; + } + .sidebar-panel #search-box[focused="true"], + xul|search-textbox.tabsFilter[focused="true"] { + outline: 1px solid var(--input-bgcolor); + } + .sidebar-panel[lwt-sidebar] #search-box[focused="true"], + body[lwt-sidebar] xul|search-textbox.tabsFilter[focused="true"] { + --input-bgcolor: var(--lwt-sidebar-highlight-background-color, Highlight) !important; + } + .sidebar-panel:not([lwt-sidebar]) #search-box[focused="true"], + body:not([lwt-sidebar]) xul|search-textbox.tabsFilter[focused="true"] { + border-color: AccentColor !important; /* Hard Coded */ + outline-color: AccentColor !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + .sidebar-panel:not([lwt-sidebar]) #search-box[focused="true"], + body:not([lwt-sidebar]) xul|search-textbox.tabsFilter[focused="true"] { + border-color: -moz-accent-color !important; /* Hard Coded */ + outline-color: -moz-accent-color !important; + } + } + /*= PopupAutoComplete ========================================================*/ + #PopupAutoComplete { + --panel-bgcolor: var(--arrowpanel-background, var(--in-content-button-background)); + /* overwrite */ + --panel-border-radius: 4px !important; /* Original: 0 */ + --panel-border-color: var( + --arrowpanel-border-color, + var(--menu-border-color) + ) !important; /* Original: ThreeDShadow */ + appearance: none !important; + background: transparent !important; + border: none !important; + clip-path: inset(0 round var(--panel-border-radius)); + } + #PopupAutoComplete > richlistbox { + border-radius: var(--panel-border-radius) !important; + background-color: var(--panel-bgcolor) !important; /* Original: Field */ + color: var(--arrowpanel-color, var(--in-content-page-color)) !important; /* Original: FiledText */ + } + .autocomplete-richlistitem:hover { + background-color: var(--arrowpanel-dimmed) !important; + } + #PopupAutoComplete > richlistbox > richlistitem[originaltype="generatedPassword"] > .two-line-wrapper > .ac-site-icon, + #PopupAutoComplete > richlistbox > richlistitem[originaltype="loginWithOrigin"] > .two-line-wrapper > .ac-site-icon, + #PopupAutoComplete > richlistbox > richlistitem[originaltype="login"] > .ac-site-icon, + #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] > .ac-site-icon { + fill: GrayText !important; + } + #PopupAutoComplete > richlistbox > richlistitem[originaltype="loginsFooter"] { + --panel-border-color: var(--panel-bgcolor); + color: var(--arrowpanel-color, var(--in-content-page-color)) !important; /* Original: FieldText */ + background-color: var(--arrowpanel-dimmed, hsla(0deg, 0%, 80%, 0.35)) !important; /* Original: hsla(0,0%,80%,.35) */ + border-color: var(--panel-border-color) !important; /* Original: rgba(38,38,38,.15) */ + } + #PopupAutoComplete > richlistbox > richlistitem[originaltype="loginsFooter"]:hover, + #PopupAutoComplete > richlistbox > richlistitem[originaltype="loginsFooter"][selected] { + background-color: var( + --arrowpanel-dimmed-further, + hsla(0deg, 0%, 80%, 0.5) + ) !important; /* Original: hsla(0,0%,80%,.5), match arrowpanel-dimmed-further */ + } + #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] { + background-color: var(--panel-bgcolor) !important; /* Original: var(--arrowpanel-dimmed) */ + } + #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"]:hover { + background-color: var(--arrowpanel-dimmed, hsla(0deg, 0%, 80%, 0.35)) !important; + } + #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] > .ac-title { + color: var(--arrowpanel-color, var(--in-content-page-color)) !important; /* Original: var(--grey-60) */ + } + /* New Folder Button */ + #editBMPanel_newFolderButton { + appearance: none; + border: 0; + border-radius: 4px; + background-color: var(--button-bgcolor); + color: var(--button-color, inherit); + font-weight: 600; + min-width: 0; + padding: 8px 16px; + /* This button is deeper in the visual hierarchy than others (notably the + buttons at the bottom of the panel), so it should be slightly smaller. */ + font-size: 90%; + /* This button needs to align with the tree above it. */ + margin-inline-start: 4px; + } + #editBMPanel_newFolderButton:hover { + background-color: var(--button-hover-bgcolor); + } + #editBMPanel_newFolderButton:hover:active { + background-color: var(--button-active-bgcolor); + } +} +/*= Fully Dark Mode ==========================================================*/ +@supports -moz-bool-pref("userChrome.theme.fully_dark") { + /*= Remove White Flash =======================================================*/ + #tabbrowser-tabbox, + #tabbrowser-tabpanels, + browser[type="content-primary"], + browser[type="content"] > html { + background: var(--in-content-page-background) !important; + } + /*= Notification =============================================================*/ + @-moz-document url("chrome://global/content/alerts/alert.xhtml") + { + /* Color */ + :root { + --menu-color: #15141a; + --menu-background-color: #f9f9fb; + --menu-border-color: #cfcfd8; + --menuitem-hover-background-color: #e0e0e6; + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root { + --menu-border-color: rgba(107, 107, 107, 0.3); + --menu-color: #fbfbfe; + --menu-background-color: #2b2a33; + --menuitem-hover-background-color: #52525e; + } + #alertSourceLabel { + color: rgb(5, 209, 241) !important; + } + } + /* line below removes background from the notification "window" on linux */ + #alertNotification { + background: transparent !important; + } + #alertBox { + color: var(--menu-color) !important; + background-color: var(--menu-background-color) !important; + border-color: var(--menu-border-color) !important; + border-radius: 6px !important; + -moz-window-shadow: cliprounded !important; + } + #alertSettings { + fill: currentColor !important; + color: inherit !important; + border-radius: 0 !important; + margin-inline: 0 !important; + margin-bottom: -4px !important; + } + .close-icon, + #alertSettings { + background: transparent !important; + } + .close-icon:hover > .toolbarbutton-icon, + #alertSettings:is(:hover, [open]) > .button-box > .box-inherit { + background-color: var(--menuitem-hover-background-color, #e0e0e6) !important; + } + /* Shape */ + .close-icon > .toolbarbutton-icon, + #alertSettings > .button-box > .box-inherit { + border-radius: 4px !important; + padding: 2px !important; + margin: 2px 2px -2px 0 !important; + } + #alertSettings > .button-box > .box-inherit { + margin: -4px 4px 3px 0 !important; + } + #alertSettings > .button-box > .box-inherit > .button-icon { + padding: 1px; + } + } +} +/*= Transparent ==============================================================*/ +@supports -moz-bool-pref("userChrome.theme.transparent.frame") { + @media (-moz-os-version: windows-win10), + (-moz-platform: windows-win10), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { + #main-window, + #navigator-toolbox-background { + background-color: transparent !important; + appearance: auto !important; + -moz-default-appearance: -moz-win-borderless-glass !important; + } + #navigator-toolbox { + background-color: transparent !important; + background-image: none !important; + } + #nav-bar, + #PersonalToolbar { + background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images); + background-repeat: repeat-x, var(--lwt-background-tiling); + background-position: 0 0, var(--lwt-background-alignment); + background-attachment: scroll, fixed !important; + background-size: auto 100%, auto auto; + } + #appcontent { + appearance: auto !important; + -moz-default-appearance: -moz-win-exclude-glass !important; + } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { + :root:not(:-moz-lwtheme) { + --lwt-accent-color: Window !important; + --lwt-text-color: WindowText !important; + } + :root[style*="--focus-outline-color: rgb(172, 112, 255); --panel-separator-zap-gradient: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%);"] { + --lwt-accent-color: rgb(45, 36, 91) !important; + } + #titlebar { + --uc-frame-element-background: color-mix(in srgb, var(--lwt-accent-color, Window) 60%, transparent); + --toolbarbutton-hover-background: color-mix(in srgb, var(--lwt-accent-color, Window) 85%, transparent); + } + } + @media (-moz-os-version: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win8) and (prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + #titlebar { + --toolbarbutton-hover-background: color-mix( + in srgb, + var(--lwt-accent-color, Window) 40%, + rgba(255, 255, 255, 0.25) + ); + } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { + #main-menubar { + border-radius: 4px; + } + #main-menubar:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + } + } + @media (-moz-os-version: windows-win8) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (-moz-platform: windows-win8), + (-moz-platform: windows-win8) and (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win7) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (-moz-platform: windows-win8), + (-moz-platform: windows-win7) and (-moz-os-version: windows-win8), + (-moz-platform: windows-win7) and (-moz-platform: windows-win8), + (-moz-gtk-csd-available) and (-moz-os-version: windows-win8), + (-moz-gtk-csd-available) and (-moz-platform: windows-win8) { + #main-menubar:-moz-window-inactive { + background-color: var(--uc-frame-element-background) !important; + } + } + @media (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), + (-moz-platform: windows-win8) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), + (-moz-platform: windows-win7) and (-moz-gtk-csd-available), + (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { + .titlebar-buttonbox-container:not(:-moz-window-inactive) { + background-color: var(--uc-frame-element-background) !important; + border-radius: 4px; + } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { + #TabsToolbar { + --toolbarseparator-color: transparent; + } + #TabsToolbar .tabbrowser-tab > .tab-stack > .tab-background:not([selected="true"], [multiselected]) { + background-color: var(--uc-frame-element-background); + } + #TabsToolbar #firefox-view-button:hover:not([open]) > .toolbarbutton-icon, + #TabsToolbar .tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected="true"], [multiselected]) { + background-color: var( + --toolbarbutton-hover-background + ) !important; /* Original: color-mix(in srgb, currentColor 11%, transparent) */ + } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-gtk-csd-available) { + #scrollbutton-up, + #scrollbutton-down, + #alltabs-button > .toolbarbutton-badge-stack, + #TabsToolbar .toolbarbutton-1 > .toolbarbutton-icon { + background-color: var(--uc-frame-element-background); + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root, + #navigator-toolbox { + --lwt-accent-color: transparent !important; + --lwt-text-color: WindowText !important; + } + #titlebar .toolbarbutton-1 { + --toolbarbutton-icon-fill: var(--lwt-text-color) !important; + } + :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { + list-style-image: none !important; + } + :root:not([sizemode="fullscreen"]) + #toolbar-menubar[autohide="true"][inactive="true"] + + #TabsToolbar + .titlebar-button:is(.titlebar-close:hover) + .toolbarbutton-icon { + transform: translateY(-7px) !important; + } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win7), + (-moz-platform: windows-win7) { + :root:not([lwtheme-image]):-moz-lwtheme { + background-color: transparent !important; + background-image: none !important; + } + #main-menubar:not(:-moz-window-inactive) { + color: var(--lwt-text-color) !important; + } + } + @media (-moz-os-version: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win8) and (prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win8) and (prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-os-version: windows-win7) and (prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-platform: windows-win7) and (prefers-color-scheme: dark) { + #toolbar-menubar:not(:-moz-window-inactive) { + text-shadow: unset !important; + } + } + @media (-moz-os-version: windows-win8) and (-moz-windows-default-theme), + (-moz-platform: windows-win8) and (-moz-windows-default-theme), + (-moz-os-version: windows-win7) and (-moz-windows-default-theme), + (-moz-platform: windows-win7) and (-moz-windows-default-theme) { + #TabsToolbar { + color: inherit !important; + background-image: unset !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:not(:-moz-window-inactive) #navigator-toolbox { + background-color: transparent !important; + } + #TabsToolbar, + #titlebar, + #nav-bar, + #PersonalToolbar, + #tabbrowser-tabs { + -moz-appearance: -moz-mac-source-list !important; + background-color: transparent !important; + } + /* De-emphasize tab icons and names when window is unfocused */ + :root:-moz-window-inactive .tab-content, + :root:-moz-window-inactive #urlbar { + opacity: 0.6; + } + :root:-moz-window-inactive #urlbar-background { + background-color: transparent !important; + } + } +} +@supports -moz-bool-pref("userChrome.theme.transparent.menu") { + .menupopup-arrowscrollbox[part*="content"] { + background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; + } + @media (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (not (-moz-windows-non-native-menus)) and (-moz-platform: windows) { + html#main-window #mainPopupSet menupopup:not(.in-menulist) { + --menu-background-color: Menu !important; + } + } + @supports not -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + html#main-window #mainPopupSet menupopup:not(.in-menulist) { + --menu-background-color: Menu !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.theme.transparent.panel") { + panel[type="arrow"] { + --panel-background: transparent !important; + } + panelview { + background: color-mix(in srgb, var(--arrowpanel-background) 90%, transparent) !important; + } +} +/*= Proton Theme Mode ========================================================*/ +@supports -moz-bool-pref("userChrome.theme.proton_chrome") { + /*= Proton Commons ===========================================================*/ + @-moz-document url("chrome://global/content/commonDialog.xhtml"), url("chrome://pippki/content/editcacert.xhtml"), url("chrome://pippki/content/deletecert.xhtml"), url("chrome://pippki/content/exceptionDialog.xhtml"), url("chrome://mozapps/content/downloads/unknownContentType.xhtml"), url("chrome://global/content/appPicker.xhtml"), url("chrome://browser/content/pageinfo/pageInfo.xhtml") + { + /*- Overwrite --------------------------------------------------------------*/ + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root { + --in-content-page-background: #42414d; + } + } + :root:not(:-moz-lwtheme), + :root[lwt-default-theme-in-dark-mode] { + --checkbox-unchecked-bgcolor: var(--in-content-button-background) !important; + --checkbox-unchecked-hover-bgcolor: var(--in-content-button-background-hover) !important; + --checkbox-unchecked-active-bgcolor: var(--in-content-button-background-active) !important; + --checkbox-checked-bgcolor: var(--in-content-primary-button-background) !important; + --checkbox-checked-color: var(--in-content-primary-button-text-color) !important; + --checkbox-checked-hover-bgcolor: var(--in-content-primary-button-background-hover) !important; + --checkbox-checked-active-bgcolor: var(--in-content-primary-button-background-active) !important; + } + /*- Dialog -----------------------------------------------------------------*/ + #commonDialog, + #editCaCert, + #deleteCertificate, + #exceptiondialog, + #unknownContentType, + #app-picker, + #topBar, + #mainDeck { + -moz-appearance: none !important; /* For Mac */ + color: var(--in-content-page-color) !important; + background-color: var(--in-content-page-background) !important; + /* border-radius: 0 0 8px 8px !important; */ + } + /*- Button -----------------------------------------------------------------*/ + button { + -moz-appearance: none !important; + color: var(--in-content-button-text-color) !important; + background-color: var(--in-content-button-background) !important; + font: inherit; + font-size: 1em !important; + font-weight: 600 !important; + min-height: 32px !important; + border: 1px solid transparent !important; /* shows up in high-contrast mode */ + border-radius: var(--in-content-button-border-radius) !important; + padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; + min-height: 32px !important; + /* Use the same margin of other elements for the alignment */ + margin-inline: 4px !important; + min-width: 6.3em !important; + } + button.medium { + /* Medium and small buttons get sized to 7/14 and 6/12px padding (when adding + * the 1px border): */ + padding: 6px 13px !important; + min-height: 28px !important; + font-size: 0.95em !important; + } + button.small { + padding: 5px 11px !important; + min-height: 24px !important; + font-size: 0.9em !important; + } + /* Remove margin added by button.css */ + xul|button > .button-box > .button-text { + margin: 0 !important; + } + button:not([disabled="true"]):hover { + background-color: var(--in-content-button-background-hover) !important; + color: var(--in-content-button-text-color-hover) !important; + border-color: transparent !important; + } + xul|button:not([disabled="true"]):hover:active, + xul|button[open], + xul|button[open]:hover, + xul|menulist[open="true"]:not([disabled="true"]) { + background-color: var(--in-content-button-background-active) !important; + } + xul|button[default] { + background-color: var(--in-content-primary-button-background) !important; + color: var(--in-content-primary-button-text-color) !important; + } + xul|button[default]:not([disabled="true"]):hover { + background-color: var(--in-content-primary-button-background-hover) !important; + color: var(--in-content-primary-button-text-color) !important; + } + xul|button[default]:not([disabled="true"]):hover:active { + background-color: var(--in-content-primary-button-background-active) !important; + } + xul|button[disabled="true"], + xul|menulist[disabled="true"] { + opacity: 0.4 !important; + } + xul|button:not([disabled="true"]):hover, + xul|menulist:not([disabled="true"]):hover { + background-color: var(--in-content-button-background-hover) !important; + color: var(--in-content-button-text-color-hover) !important; + border-color: transparent !important; + } + @media (prefers-contrast) { + xul|button[default]:not([disabled="true"]):hover { + border-color: currentColor !important; + } + button:focus { + color: var(--in-content-button-text-color) !important; + } + xul|button[default]:focus, + button.primary:focus { + color: var(--in-content-primary-button-text-color) !important; + } + } + button:-moz-focusring, + xul|menulist:-moz-focusring, + xul|checkbox:-moz-focusring > .checkbox-check, + xul|radio[focused="true"]:-moz-focusring { + box-shadow: none !important; + outline: 2px solid var(--in-content-focus-outline-color) !important; + outline-offset: 2px !important; + } + /*- Radio Button -----------------------------------------------------------*/ + xul|radio { + /* margin-inline-start: 0 !important; */ + appearance: none !important; + } + xul|*.radio-check { + appearance: none !important; + width: 16px !important; + height: 16px !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 100% !important; + padding: 0 !important; + margin-inline: 0 6px !important; + margin-block: 2px !important; /* extend the vertical clicktarget */ + background-color: var(--in-content-button-background) !important; + background-position: center !important; + flex-shrink: 0 !important; /* avoid shrinking inside flex container */ + } + xul|*.radio-check[selected] { + -moz-context-properties: fill !important; + fill: currentColor !important; + color: var(--in-content-primary-button-text-color) !important; + background-color: var(--in-content-primary-button-background) !important; + background-image: url("chrome://global/skin/icons/radio.svg") !important; + border-color: transparent !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + } + xul|radio:not([disabled="true"]):hover > xul|*.radio-check { + background-color: var(--in-content-button-background-hover) !important; + color: var(--in-content-button-text-color-hover) !important; + } + xul|radio:not([disabled="true"]):hover:active > xul|*.radio-check { + background-color: var(--in-content-button-background-active) !important; + } + xul|radio:not([disabled="true"])[selected]:hover > xul|*.radio-check { + background-color: var(--in-content-primary-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + } + xul|radio:not([disabled="true"])[selected]:hover:active > xul|*.radio-check { + background-color: var(--in-content-primary-button-background-active) !important; + } + xul|*.radio-label-box { + margin-inline: 0 8px !important; + padding-inline-start: 0 !important; + } + /* Disabled checkboxes, radios and labels */ + xul|checkbox[disabled="true"], + xul|radio[disabled="true"], + xul|label[disabled="true"] { + color: inherit !important; + opacity: 0.5 !important; + } + /*- Check Box --------------------------------------------------------------*/ + /* From checkbox.css */ + checkbox { + appearance: none !important; + align-items: center !important; + -moz-box-align: center !important; + margin: 4px 2px !important; + } + .checkbox-check { + appearance: none !important; + width: 16px !important; + height: 16px !important; + border: 1px solid currentColor !important; + border-radius: 2px !important; + color: var(--checkbox-border-color, ThreeDDarkShadow) !important; + background-color: var(--checkbox-unchecked-bgcolor, Field) !important; + margin-inline-end: 6px !important; /* or 2px */ + margin-block: 2px !important; /* From common.css */ + } + .checkbox-check[checked] { + -moz-context-properties: fill !important; + fill: currentColor !important; + border-color: var(--checkbox-checked-border-color, transparent) !important; + background-image: url("chrome://global/skin/icons/check.svg") !important; + background-position: center !important; + background-repeat: no-repeat !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + color: var(--checkbox-checked-color, AccentColorText) !important; + background-color: var(--checkbox-checked-bgcolor, AccentColor) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + .checkbox-check[checked] { + color: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; + background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !important; + } + } + checkbox:not([disabled="true"]):hover > .checkbox-check { + background-color: var(--checkbox-unchecked-hover-bgcolor, color-mix(in srgb, AccentColor 4%, Field)) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:not([disabled="true"]):hover > .checkbox-check { + background-color: var( + --checkbox-unchecked-hover-bgcolor, + color-mix(in srgb, -moz-accent-color 4%, Field) + ) !important; + } + } + checkbox:not([disabled="true"]):hover:active > .checkbox-check { + background-color: var(--checkbox-unchecked-active-bgcolor, color-mix(in srgb, AccentColor 8%, Field)) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:not([disabled="true"]):hover:active > .checkbox-check { + background-color: var( + --checkbox-unchecked-active-bgcolor, + color-mix(in srgb, -moz-accent-color 8%, Field) + ) !important; + } + } + checkbox:not([disabled="true"]):hover > .checkbox-check[checked] { + background-color: var( + --checkbox-checked-hover-bgcolor, + color-mix(in srgb, currentColor 12.5%, AccentColor) + ) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:not([disabled="true"]):hover > .checkbox-check[checked] { + background-color: var( + --checkbox-checked-hover-bgcolor, + color-mix(in srgb, currentColor 12.5%, -moz-accent-color) + ) !important; + } + } + checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked] { + background-color: var( + --checkbox-checked-active-bgcolor, + color-mix(in srgb, currentColor 25%, AccentColor) + ) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked] { + background-color: var( + --checkbox-checked-active-bgcolor, + color-mix(in srgb, currentColor 25%, -moz-accent-color) + ) !important; + } + } + checkbox:-moz-focusring > .checkbox-check { + outline: 2px solid var(--focus-outline-color, AccentColor) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:-moz-focusring > .checkbox-check { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + } + } + @media (prefers-contrast) { + checkbox:not([disabled="true"]):hover > .checkbox-check { + /* color will set the border-color on the check due to how HCM works for in-content pages. */ + color: var(--checkbox-checked-border-color, color-mix(in srgb, AccentColor 4%, Field)) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:not([disabled="true"]):hover > .checkbox-check { + /* color will set the border-color on the check due to how HCM works for in-content pages. */ + color: var(--checkbox-checked-border-color, color-mix(in srgb, -moz-accent-color 4%, Field)) !important; + } + } + .checkbox-check[checked] { + color: var(--checkbox-checked-border-color, currentColor) !important; + fill: var(--checkbox-checked-color, AccentColorText) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + .checkbox-check[checked] { + fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; + } + } + checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked] > .checkbox-check[checked], + checkbox:not([disabled="true"]):hover > .checkbox-check[checked] > .checkbox-check[checked] { + color: var(--checkbox-checked-border-color-hover, AccentColorText) !important; + fill: var(--checkbox-checked-border-color-hover, AccentColorText) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked] > .checkbox-check[checked], + checkbox:not([disabled="true"]):hover > .checkbox-check[checked] > .checkbox-check[checked] { + color: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; + fill: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; + } + } + } + .checkbox-icon[src] { + margin-inline-end: 2px !important; + } + .checkbox-label { + margin: 1px 0 !important; + } + checkbox[disabled="true"] { + opacity: 0.4 !important; + } + /* From common.css */ + xul|richlistitem > xul|*.checkbox-check { + margin: 3px 6px !important; + } + /*- Menulist ---------------------------------------------------------------*/ + /* From mulist.css */ + xul|menulist { + appearance: none !important; + background-color: var(--in-content-button-background, ButtonFace) !important; + color: var(--in-content-button-text-color, ButtonText) !important; + border-radius: 4px !important; + padding-block: 4px !important; + padding-inline: 12px 8px !important; + margin: 5px 2px 3px !important; + } + xul|menulist[size="medium"] { + padding-block: 6px !important; + padding-inline: 16px 10px !important; + } + xul|menulist[size="large"] { + padding-block: 8px !important; + padding-inline: 16px 12px !important; + } + xul|menulist:hover { + background-color: var(--button-hover-bgcolor, color-mix(in srgb, currentColor 10%, ButtonFace)) !important; + } + xul|menulist:hover:active { + background-color: var(--button-active-bgcolor, color-mix(in srgb, currentColor 20%, ButtonFace)) !important; + } + xul|menulist:-moz-focusring { + outline: 2px solid var(--focus-outline-color, AccentColor) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + xul|menulist:-moz-focusring { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + } + } + #label-box { + align-items: center !important; + -moz-box-align: center !important; + justify-content: center !important; + -moz-box-pack: center !important; + font-weight: 600 !important; + } + dropmarker { + display: flex !important; + display: -moz-box !important; + appearance: none !important; + width: 12px !important; + height: 12px !important; + } + dropmarker[exportparts="icon: dropmarker-icon"] { + /* dropmarker::part(icon) + * ::part is not apply chrome + */ + list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important; + -moz-context-properties: fill !important; + fill: currentColor !important; + } + #highlightable-label:not([highlightable="true"]), + #label[highlightable="true"] { + display: none !important; + } + xul|menuitem > label:not(.menu-text) { + margin: 0 3px !important; + } + /* From common.css */ + xul|menulist > xul|menupopup { + appearance: none !important; + /* Reset native styles on Windows and macOS */ + border: none !important; + background-color: transparent !important; + --panel-border-color: var(--in-content-box-border-color) !important; + --panel-border-radius: 2px !important; + --panel-background: var(--in-content-box-background) !important; + --panel-color: var(--in-content-text-color) !important; + --panel-padding: 0 !important; + } + xul|menulist > xul|menupopup xul|menu, + xul|menulist > xul|menupopup xul|menuitem { + appearance: none !important; + font-size: 1em !important; + padding-block: 0.2em !important; + padding-inline: 10px 30px !important; + } + xul|menulist > xul|menupopup > xul|menu:not([disabled="true"])[_moz-menuactive="true"], + xul|menulist > xul|menupopup > xul|menuitem:not([disabled="true"])[_moz-menuactive="true"] { + color: var(--in-content-item-hover-text) !important; + background-color: var(--in-content-item-hover) !important; + } + xul|menulist > xul|menupopup > xul|menu:not([disabled="true"])[selected="true"], + xul|menulist > xul|menupopup > xul|menuitem:not([disabled="true"])[selected="true"] { + color: var(--in-content-item-selected-text) !important; + background-color: var(--in-content-item-selected) !important; + } + xul|menulist > xul|menupopup > xul|menu[disabled="true"], + xul|menulist > xul|menupopup > xul|menuitem[disabled="true"] { + color: #999 !important; + /* override the [_moz-menuactive="true"] background color from + global/menu.css */ + background-color: transparent !important; + } + xul|menulist > xul|menupopup xul|menuseparator { + appearance: none !important; + margin: 0 !important; + padding: 0 !important; + border-top: 1px solid var(--in-content-box-border-color) !important; + border-bottom: none !important; + } + xul|menulist::part(dropmarker) { + margin-block: 1px !important; + } + /* Override menulist.css */ + xul|menulist[disabled="true"] { + background-color: var(--in-content-button-background) !important; + } + xul|menulist:-moz-focusring > xul|*.menulist-label-box { + outline: none !important; + } + /*- List Boxes -------------------------------------------------------------*/ + html|select[size][multiple], + xul|listheader, + xul|richlistbox { + appearance: none !important; + margin-inline: 0 !important; + background-color: var(--in-content-box-background) !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 4px !important; + color: var(--in-content-text-color) !important; + } + xul|listheader { + border-bottom: none !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; + padding-bottom: 1px !important; + box-shadow: inset 0 -1px var(--in-content-table-border-color) !important; + overflow: clip !important; /* Clip border-radius */ + } + xul|listheader + xul|richlistbox { + margin-top: 0 !important; + border-top: none !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; + } + html|select[size][multiple] > html|option, + xul|treechildren::-moz-tree-row { + padding: 0.3em inherit !important; + margin: 0 !important; + border: none !important; + border-radius: 0 !important; + background-image: none !important; + } + xul|treechildren::-moz-tree-row(multicol, odd) { + background-color: var(--in-content-box-background-odd); + } + html|select[size][multiple] > html|option:hover, + xul|richlistbox > xul|richlistitem:not([disabled="true"], [selected]):hover, + xul|treechildren::-moz-tree-row(hover) { + background-color: var(--in-content-item-hover) !important; + color: var(--in-content-item-hover-text) !important; + } + xul|richlistbox > xul|richlistitem[selected], + xul|treechildren::-moz-tree-row(selected) { + background-color: var(--in-content-item-selected) !important; + color: var(--in-content-item-selected-text) !important; + } + xul|richlistbox:not(#categories) > xul|richlistitem[selected] { + /* Ensure buttons/menulists inside richlistitems (containers, applications) look OK */ + --in-content-button-background: color-mix(in srgb, currentColor 15%, transparent) !important; + --in-content-button-background-hover: color-mix(in srgb, currentColor 30%, transparent) !important; + --in-content-button-background-active: color-mix(in srgb, currentColor 45%, transparent) !important; + --in-content-button-text-color: var(--in-content-item-selected-text) !important; + --in-content-button-text-color-hover: var(--in-content-item-selected-text) !important; + --in-content-focus-outline-color: var(--in-content-item-selected-text) !important; + } + xul|richlistitem[selected] xul|menulist:focus-visible { + outline-offset: -2px !important; + } + /* Use a 2px border so that selected row highlight is still visible behind + an existing high-contrast border that uses the background color */ + @media (prefers-contrast) { + xul|treechildren::-moz-tree-row(selected) { + border: 2px solid currentColor !important; + border-radius: 4px !important; + } + } + xul|panel[type="autocomplete-richlistbox"] { + background-color: var(--in-content-box-background) !important; + border: 1px solid var(--in-content-box-border-color) !important; + color: var(--in-content-text-color) !important; + } + /*- Each OS ----------------------------------------------------------------*/ + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + xul|checkbox, + xul|radio { + padding-inline-start: 0 !important; + } + /* Override menulist.css */ + xul|menulist[disabled="true"] { + background-color: var(--in-content-button-background) !important; + } + xul|menulist:-moz-focusring > xul|*.menulist-label-box { + outline: none !important; + } + } + @media (-moz-gtk-csd-available) { + /* Overriding appearance also avoids incorrect selection background color with light text. */ + xul|button > xul|*.button-box, + xul|menulist::part(label-box), + xul|*.radio-label-box, + xul|*.checkbox-label-box { + appearance: none !important; + } + xul|button[type="menu"] > xul|*.button-box > xul|*.button-menu-dropmarker { + appearance: none !important; + } + xul|menulist { + font-size: inherit !important; + } + xul|menulist::part(dropmarker) { + display: flex; + display: -moz-box; + margin-block: 6px !important; + } + xul|menulist:-moz-focusring::part(label-box) { + outline: none !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + xul|menulist > xul|menupopup > xul|menuitem[checked="true"]::before, + xul|menulist > xul|menupopup > xul|menuitem[selected="true"]::before { + display: none !important; + } + xul|menulist::part(dropmarker) { + display: flex !important; + display: -moz-box !important; + margin-block: 1px !important; + } + xul|menulist > xul|menupopup xul|menu, + xul|menulist > xul|menupopup xul|menuitem { + padding-inline-end: 34px !important; + } + xul|*.checkbox-icon, + xul|*.radio-icon { + margin-inline-end: 0 !important; + } + xul|*.text-link:-moz-focusring { + box-shadow: none !important; + } + } + } + /*= Delete Cert ==============================================================*/ + @-moz-document url("chrome://pippki/content/deletecert.xhtml") + { + #certlist { + border: 1px solid var(--in-content-table-border-color) !important; + border-radius: 4px !important; + } + } /*= Cert Exception Dialog ====================================================*/ + @-moz-document url("chrome://pippki/content/exceptionDialog.xhtml") + { + #locationTextBox { + appearance: none !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 4px !important; + color: inherit !important; + background-color: var(--in-content-box-background) !important; + font-family: inherit !important; + font-size: inherit !important; + padding: 8px !important; + margin: 2px 4px !important; + } + #locationTextBox:focus { + border-color: transparent !important; + outline: 2px solid var(--in-content-focus-outline-color) !important; + outline-offset: -1px !important; /* Prevents antialiasing around the corners */ + } + #locationTextBox:-moz-ui-invalid { + border-color: transparent !important; + outline: 2px solid var(--in-content-border-invalid) !important; + outline-offset: -1px !important; /* Prevents antialiasing around the corners */ + } + #locationTextBox:disabled { + opacity: 0.4 !important; + } + #exceptiondialog:first-child > hbox > vbox:not([flex="1"]) { + width: 48px !important; + height: 48px !important; + background-image: url("chrome://global/skin/icons/warning.svg") !important; + background-size: 48px !important; + background-repeat: no-repeat !important; + -moz-context-properties: fill !important; + fill: currentColor !important; + } + #exceptiondialog:first-child > hbox > vbox > image { + display: none !important; + } + } + /*= Page Info ================================================================*/ + @-moz-document url("chrome://browser/content/pageinfo/pageInfo.xhtml") + { + :root { + --in-content-border-color: color-mix(in srgb, currentColor 41%, transparent) !important; + } + #viewGroup > radio { + padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; + margin: 4px !important; + list-style-image: none !important; + background-image: var(--viewgroup-image) !important; + background-repeat: no-repeat; + background-position: top var(--in-content-button-vertical-padding) center; + background-size: 32px !important; + -moz-context-properties: fill !important; + fill: currentColor !important; + color: var(--in-content-deemphasized-text) !important; /* FieldText */ + } + #viewGroup > radio .radio-icon { + background-image: none !important; + } + @supports not -moz-bool-pref("userChrome.rounding.square_button") { + #viewGroup > radio { + border-radius: 8px !important; + } + } + #viewGroup > radio:hover { + background-color: var(--in-content-button-background-hover) !important; /* #E0E8F6; */ + } + #viewGroup > radio[selected="true"] { + color: var(--in-content-button-text-color) !important; /* SelectedItemText */ + background-color: var(--in-content-button-background-active) !important; /* #C1D2EE; */ + } + #generalTab { + --viewgroup-image: url(chrome://global/skin/icons/page-portrait.svg); + } + #mediaTab { + --viewgroup-image: url(chrome://browser/skin/canvas.svg); + } + #permTab { + --viewgroup-image: url(chrome://browser/skin/permissions.svg); + } + #securityTab { + --viewgroup-image: url(chrome://global/skin/icons/security.svg); + } + #viewGroup > radio > .radio-label-box { + /* Overwrite */ + margin: 0 !important; + padding: 0 6px !important; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #viewGroup > radio > .radio-label-box { + padding-top: 32px !important; /* as -moz-image-region: rect(0px, 32px, 32px, 0px); */ + } + } + #mainDeck input { + color: var(--in-content-page-color) !important; + } + #permList { + -moz-appearance: none !important; + color: var(--in-content-page-color) !important; + background-color: var(--in-content-box-background) !important; + } + .permission:hover { + color: var(--in-content-text-color) !important; + background-color: var(--in-content-button-background-hover) !important; + } + .permission radio[disabled] { + color: var(--in-content-deemphasized-text) !important; + } + treecols { + -moz-appearance: none !important; + background: var(--in-content-table-header-background) !important; + color: var(--in-content-table-header-color) !important; + } + treecols > treecol, + treecols > treecolpicker.treecol-image { + -moz-appearance: none !important; + color: var(--in-content-table-header-color) !important; + background: var(--in-content-table-header-background) !important; + border: 1px solid var(--in-content-table-border-color) !important; + padding: 4px !important; + border-spacing: 0; + text-align: center !important; + } + tree, + treechildren::-moz-tree-row { + -moz-appearance: none !important; + color: var(--in-content-text-color) !important; + background-color: var(--in-content-table-background) !important; + border: 1px solid var(--in-content-table-border-color) !important; + } + treechildren::-moz-tree-row(odd) { + background-color: var(--in-content-box-background-odd) !important; + } + treechildren::-moz-tree-row(hover) { + color: var(--in-content-item-hover-text) !important; + background-color: var(--in-content-item-hover) !important; + } + treechildren::-moz-tree-row(selected) { + background-color: var(--in-content-item-selected) !important; + } + treechildren::-moz-tree-cell { + border-inline: 1px solid var(--in-content-table-border-color) !important; + border-spacing: 0 !important; + padding: 4px !important; + margin: 0 !important; + } + treechildren::-moz-tree-cell-text(hover) { + color: var(--in-content-item-hover-text) !important; + } + treechildren::-moz-tree-cell-text(selected) { + font-weight: 600 !important; + color: var(--in-content-item-selected-text) !important; + } + #imagecontainerbox { + background-color: var(--in-content-box-background) !important; + } + #metatree, + #imagetree, + #imagecontainerbox, + #permList { + border-radius: 4px !important; + } + #metatree, + #imagetree { + overflow: hidden !important; + } + #topBar, + #imagecontainerbox, + #permList { + border-color: var(--in-content-table-border-color) !important; + } + } + /*= Library Popup ============================================================*/ + @-moz-document url("chrome://browser/content/places/places.xhtml") + { + @media (-moz-gtk-csd-available) { + :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: SelectedItem; + --organizer-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 all and (prefers-contrast) { + :root { + --organizer-color: var(--in-content-page-color); + --organizer-deemphasized-color: var(--in-content-deemphasized-text); + --organizer-toolbar-background: rgb(249, 249, 251); /* --toolbar-bgcolor */ + --organizer-pane-background: rgb(229, 229, 235); /* --lwt-accent-color */ + --organizer-content-background: var(--in-content-page-background); + --organizer-hover-background: var(--in-content-button-background-hover); + --organizer-hover-color: var(--organizer-color); + --organizer-selected-background: var(--in-content-button-background-active); + --organizer-selected-color: var(--organizer-color); + --organizer-outline-color: var(--in-content-focus-outline-color); + --organizer-separator-color: var(--organizer-pane-field-border-color); + --organizer-border-color: var(--in-content-border-color); + --organizer-toolbar-field-background: rgb(240, 240, 244); /* --lwt-accent-color */ + --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 (-moz-toolbar-prefers-color-scheme: dark), (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-toolbar-field-background: var(--in-content-page-background); + --organizer-toolbar-field-background-focused: rgb(66, 65, 77); + scrollbar-color: rgba(249, 249, 250, 0.4) rgba(20, 20, 25, 0.3); + } + } + } + /*- Toolbar & Menus ------------------------------------------------------*/ + #placesToolbar { + appearance: none !important; + background-color: var(--organizer-toolbar-background) !important; + color: var(--organizer-color) !important; + border-bottom: 1px solid var(--organizer-border-color) !important; + padding: 4px !important; + padding-inline-end: 6px !important; + } + #placesToolbar > toolbarbutton { + appearance: none !important; + padding: 5px !important; + border-radius: 4px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton { + border-radius: 0 !important; + } + } + #placesToolbar > toolbarbutton[disabled] { + opacity: 0.6 !important; + } + #placesToolbar > toolbarbutton:not([disabled]):hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #placesToolbar > toolbarbutton:not([disabled]):hover:active { + background-color: var(--organizer-selected-background) !important; + } + #placesToolbar > toolbarbutton > .toolbarbutton-icon, + #placesMenu > menu > image, + #placesMenu > menu > .menubar-text { + -moz-context-properties: fill !important; + fill: currentColor !important; + } + #placesMenu { + margin-inline-start: 6px !important; + } + #placesMenu > menu { + appearance: none !important; + color: var(--organizer-color) !important; + padding-block: 5px !important; + padding-inline-start: 5px !important; + border-radius: 4px !important; + margin-inline-end: 2px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesMenu > menu { + border-radius: 0 !important; + } + } + #placesMenu > menu[_moz-menuactive="true"], + #placesMenu > menu:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #placesMenu > menu:hover:active, + #placesMenu > menu[open] { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + } + #placesMenu > menu > .menubar-text { + margin-block: 0 !important; /* override menu.css */ + padding-inline-end: 4px !important; + } + /*- Search Bar & Input ---------------------------------------------------*/ + #searchFilter, + #detailsPane html|input { + appearance: none !important; + background-color: var(--organizer-toolbar-field-background) !important; + color: var(--organizer-color) !important; + border: 1px solid var(--organizer-toolbar-field-border-color) !important; + border-radius: 4px !important; + margin: 0 !important; + padding-block: 2px !important; + min-height: 24px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input { + border-radius: 0 !important; + } + } + #searchFilter[focused] { + box-shadow: var(--organizer-toolbar-field-focus-box-shadow) !important; + background-color: var(--organizer-toolbar-field-background-focused) !important; + border-color: transparent !important; + outline: 2px solid var(--organizer-toolbar-field-focus-border-color) !important; + outline-offset: -2px !important; + } + /*- Sidebar & Splitter ---------------------------------------------------*/ + #placesList { + background-color: var(--organizer-pane-background) !important; + } + #placesView > splitter { + border: 0 !important; + border-inline-end: 1px solid var(--organizer-border-color) !important; + min-width: 0 !important; + width: 3px !important; + background-color: transparent !important; + margin-inline-start: -3px !important; + position: relative !important; + } + /*- Downloads Pane -------------------------------------------------------*/ + #downloadsRichListBox, + #downloadsListBox { + color: var(--organizer-color) !important; + background-color: var(--organizer-content-background) !important; + } + #clearDownloadsButton:focus-visible { + outline: 2px solid var(--organizer-outline-color) !important; + } + richlistitem[selected="true"], + richlistitem:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-color) !important; + } + richlistbox:where(:focus) > richlistitem[selected="true"] { + background-color: var(--organizer-selected-background) !important; + } + /*- 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) !important; + } + tree { + background-color: var(--organizer-content-background) !important; + color: var(--organizer-color) !important; + } + treecol:not([hideheader="true"]), + treecolpicker { + appearance: none !important; + border: none !important; + background-color: var(--in-content-button-background) !important; + color: var(--organizer-color, inherit) !important; + padding: 5px 10px !important; + } + treecol:not([hideheader="true"], [sortable="false"]):hover, + treecolpicker:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-color) !important; + } + treecol:not([hideheader="true"], [sortable="false"]):hover:active, + treecolpicker:hover:active { + background-color: var(--organizer-selected-background) !important; + } + treecol:not([hideheader="true"], :first-child), + treecolpicker { + padding-left: 10px !important; + border-inline-start-width: 1px !important; + border-inline-start-style: solid !important; + border-image: linear-gradient( + transparent 0%, + transparent 20%, + var(--organizer-border-color) 20%, + var(--organizer-border-color) 80%, + transparent 80%, + transparent 100% + ) + 1 1 !important; + } + treecol[sortDirection]:not([hideheader="true"]) > xul|*.treecol-sortdirection { + fill: currentColor !important; + width: 18px !important; + height: 18px !important; + } + treechildren::-moz-tree-row { + background-color: transparent !important; + } + treechildren::-moz-tree-row(hover) { + background-color: var(--organizer-hover-background) !important; + } + treechildren::-moz-tree-row(selected) { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + border: 1px solid transparent !important; + } + treechildren::-moz-tree-image(hover), + treechildren::-moz-tree-twisty(hover), + treechildren::-moz-tree-cell-text(hover) { + color: var(--organizer-hover-color) !important; + } + treechildren::-moz-tree-image(selected), + treechildren::-moz-tree-twisty(selected), + treechildren::-moz-tree-cell-text(selected) { + color: var(--organizer-selected-color) !important; + } + treechildren::-moz-tree-separator { + height: 1px !important; + border-color: var(--organizer-separator-color) !important; + } + treechildren::-moz-tree-separator(hover) { + border-color: var(--organizer-hover-color) !important; + } + treechildren::-moz-tree-separator(selected) { + border-color: var(--organizer-selected-color) !important; + } + treechildren::-moz-tree-cell-text(primary, dropOn), + treechildren::-moz-tree-drop-feedback { + background-color: var(--organizer-outline-color) !important; + } + /*- Info Box -------------------------------------------------------------*/ + #detailsPane { + background-color: var(--organizer-pane-background) !important; + color: var(--organizer-color) !important; + padding: 5px !important; + border-top: 1px solid var(--organizer-border-color) !important; + } + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + appearance: none !important; + min-width: 0 !important; + padding: 5px !important; + margin: 0 !important; + margin-inline-end: 4px !important; + border: 1px solid var(--organizer-pane-field-border-color) !important; + border-radius: 4px !important; + color: var(--organizer-color) !important; + background-color: var(--organizer-content-background) !important; + -moz-context-properties: fill !important; + fill: currentColor !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } + } + #editBookmarkPanelRows .expander-up:hover, + #editBookmarkPanelRows .expander-down:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #editBookmarkPanelRows .expander-up:hover:active, + #editBookmarkPanelRows .expander-down:hover:active { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + } + #editBookmarkPanelRows .expander-up:focus-visible, + #editBookmarkPanelRows .expander-down:focus-visible { + outline: 2px solid var(--organizer-outline-color) !important; + outline-offset: -1px !important; + } + #editBookmarkPanelRows .expander-up > .button-box, + #editBookmarkPanelRows .expander-down > .button-box { + padding: 0 !important; + } + #editBookmarkPanelRows .expander-up { + list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); + } + #editBookmarkPanelRows .expander-down { + list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); + } + #places input { + border: 1px solid var(--organizer-pane-field-border-color) !important; + border-radius: 4px !important; + background-color: var(--organizer-content-background) !important; + color: var(--organizer-color) !important; + min-height: 20px !important; + padding-inline: 4px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #places input { + border-radius: 0 !important; + } + } + #places input:focus { + outline: 2px solid var(--organizer-outline-color) !important; + outline-offset: -1px !important; + } + #places input:not(:read-write):focus { + outline: none !important; + } + .caption-label { + margin-inline-start: 8px !important; + color: var(--organizer-deemphasized-color) !important; + } + #editBMPanel_tagsSelectorRow > richlistbox { + appearance: none !important; + color: var(--organizer-color) !important; + background-color: var(--organizer-content-background) !important; + border: 1px solid var(--organizer-border-color) !important; + border-radius: 4px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } + } + #editBMPanel_tagsSelectorRow > richlistbox > richlistitem { + border: 1px solid transparent !important; + } + #editBMPanel_tagsSelectorRow > richlistbox > richlistitem:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #editBMPanel_tagsSelectorRow > richlistbox > richlistitem[selected] { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + } + } + } + #sanitizeEverythingWarningIcon { + list-style-image: url("chrome://global/skin/icons/warning.svg") !important; + -moz-context-properties: fill; + fill: var(--uc-warning-icon-bgcolor); + width: 48px; + height: 48px; + } +} +/*= Monospace ================================================================*/ +@supports -moz-bool-pref("userChrome.theme.monospace") { + * { + font-family: -moz-fixed; + } +} +/** Decoration ****************************************************************/ +/*= Cursor Types =============================================================*/ +@supports -moz-bool-pref("userChrome.decoration.cursor") { + #appMenu-proton-update-banner, + #appMenu-fxa-status2:not([fxastatus]) > #appMenu-fxa-label2, + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2, + #panelMenu_showAllBookmarks, + #PanelUI-historyMore, + #appMenuClearRecentHistory:not([disabled]), + #appMenu-library-recentlyClosedTabs > .restoreallitem.panel-subview-footer-button, + #appMenu-library-recentlyClosedWindows > .restoreallitem.panel-subview-footer-button, + #BMB_viewBookmarksSidebar, + #BMB_bookmarksShowAllTop, + #BMB_bookmarksShowAll, + #import-button, + menuitem.openintabs-menuitem, + #downloadsListBox .downloadButton, + #downloadsListBox .download-state[exists], + #downloadsListBox .download-state[exists] .downloadDetails, + #downloadsHistory, + #protections-popup-footer .protections-popup-footer-button, + #protections-popup-multiView .panel-subview-footer-button, + #identity-popup-clear-sitedata-button, + #identity-popup-more-info, + #unified-extensions-manage-extensions, + .unified-extensions-item-open-menu, + .unified-extensions-item-menu-button.subviewbutton, + #PopupAutoComplete + > richlistbox + > richlistitem[originaltype="insecureWarning"] + > .ac-title + > .ac-text-overflow-container + > .ac-title-text { + cursor: pointer !important; + } +} +/*= Panel UI Button Separator ================================================*/ +@supports -moz-bool-pref("userChrome.decoration.panel_button_separator") { + :root:not([chromehidden~="toolbar"]) #PanelUI-button { + margin-inline-start: 3px; + padding-inline-start: 2px; + border-inline-start: 1px solid; + border-image: linear-gradient( + transparent 4px, + var(--toolbarseparator-color) 4px, + var(--toolbarseparator-color) calc(100% - 4px), + transparent calc(100% - 4px) + ); + border-image-slice: 1; + } +} +/*= Panel UI Arrow ===========================================================*/ +@supports -moz-bool-pref("userChrome.decoration.panel_arrow") { + #appMenu-popup { + background-image: url("../icons/panelarrow-vertical.svg"); + background-repeat: no-repeat; + background-position-x: right 10px; + background-position-y: top; + -moz-context-properties: fill, stroke; + fill: var(--panel-background); + stroke: var(--panel-border-color); + } + #appMenu-popup[side="top"] { + margin-top: -8px !important; /* Original: -4px */ + padding-top: 4px; + } + #appMenu-popup[side="bottom"] { + background-image: url("../icons/panelarrow-vertical-reverse.svg"); + background-position-y: bottom; + margin-bottom: -8px !important; /* Original: -4px */ + padding-bottom: 4px; + } +} +@media (prefers-reduced-motion: no-preference) { + /*= Field Border ===========================================================*/ + @supports -moz-bool-pref("userChrome.decoration.field_border") { + /*- URL, Search Bar --------------------------------------------------------*/ + #urlbar:hover:not([focused="true"]) > #urlbar-background, + #searchbar:hover:not(:focus-within) { + --toolbar-field-border-color: var(--toolbar-field-focus-border-color); + } + @supports -moz-bool-pref("userChrome.combined.urlbar_with_reload") { + #nav-bar-customization-target + > #stop-reload-button:hover + ~ #urlbar-container + #urlbar:not([focused="true"]) + > #urlbar-background { + --toolbar-field-border-color: var(--toolbar-field-focus-border-color); + } + } + /*- Other Fields -----------------------------------------------------------*/ + /* Sidebar */ + .sidebar-panel[lwt-sidebar] #search-box:hover, + body[lwt-sidebar] xul|search-textbox.tabsFilter:hover { + border-color: var(--lwt-sidebar-highlight-background-color, Highlight) !important; + } + .sidebar-panel:not([lwt-sidebar]) #search-box:hover, + body:not([lwt-sidebar]) xul|search-textbox.tabsFilter:hover { + border-color: AccentColor !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + .sidebar-panel:not([lwt-sidebar]) #search-box:hover, + body:not([lwt-sidebar]) xul|search-textbox.tabsFilter:hover { + border-color: -moz-accent-color !important; + } + } + /* Others */ + #editBMPanel_namePicker:hover, + #editBMPanel_tagsField:hover, + .findbar-container .findbar-textbox:hover { + --input-border-color: color-mix(in srgb, var(--focus-outline-color, AccentColor) 50%, transparent); + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + #editBMPanel_namePicker:hover, + #editBMPanel_tagsField:hover, + .findbar-container .findbar-textbox:hover { + --input-border-color: color-mix(in srgb, var(--focus-outline-color, -moz-accent-color) 50%, transparent); + } + } + } + /*= Downloads Panel ========================================================*/ + @supports -moz-bool-pref("userChrome.decoration.download_panel") { + /* Accent Color for downloaded item */ + #downloadsListBox .download-state[exists] .downloadDetails { + color: var(--button-primary-bgcolor); + } + #downloadsListBox .download-state[exists] .downloadDetails.downloadDetailsHover { + color: var(--button-primary-hover-bgcolor); + } + /* File moved or missing */ + #downloadsListBox .download-state:not([exists], [state="0"]) .downloadTarget { + text-decoration: line-through; + text-decoration-color: color-mix(in srgb, currentColor 65%, transparent); + } + #downloadsListBox .download-state:not([exists], [state="0"]) .downloadTarget:hover { + text-decoration: none; + } + #downloadsListBox .download-state:not([exists], [state="0"]) .downloadTypeIcon { + filter: grayscale(100%) !important; + } + } + /*= Animate ================================================================*/ + @supports -moz-bool-pref("userChrome.decoration.animate") { + /*- Background Color -------------------------------------------------------*/ + button, + toolbarbutton, + stack, + vbox, + .toolbarbutton-icon, + #tabs-newtab-button > .toolbarbutton-icon { + transition: background-color 1s var(--animation-easing-function) !important; + } + button:hover, + toolbarbutton:hover, + stack:hover, + vbox:hover, + .toolbarbutton-icon:hover, + #tabs-newtab-button:hover > .toolbarbutton-icon { + transition: background-color 0.25s var(--animation-easing-function) !important; + } + @media (prefers-reduced-motion: no-preference) and (-moz-gtk-csd-available) { + .tabbrowser-tab:is([visuallyselected], [multiselected], [selected]) .tab-background:not(:-moz-lwtheme) { + transition: background-image 0.25s var(--animation-easing-function) !important; + } + } + .subviewbutton { + /* treechildren::-moz-tree-row: Can't apply + menu, menuitem is not apply. + */ + transition: background-color 0.5s var(--animation-easing-function) !important; + } + .subviewbutton:hover { + transition: background-color 0.1s var(--animation-easing-function) !important; + } + /*- Pinned Tab -------------------------------------------------------------*/ + #tabbrowser-tabs:not([movingtab]) .tabbrowser-tab:not([collapsed]) { + /* -moz-box-flex may be caused #tabbrowser-tabs[closebuttons] */ + transition: -moz-box-flex 0.2s var(--animation-easing-function), flex 0.2s var(--animation-easing-function), + margin-inline-start 0.2s var(--animation-easing-function), min-width 0.1s ease-out, max-width 0.1s ease-out !important; + } + #tabbrowser-tabs:not([movingtab]) .tabbrowser-tab[pinned] { + transition: margin-inline-start 0.2s var(--animation-easing-function), min-width 0.1s ease-out, + max-width 0.1s ease-out !important; + } + #tabbrowser-tabs:not([movingtab]) .tab-content::before, + #tabbrowser-tabs:not([movingtab]) .tab-content::after { + transition: width 0.2s var(--animation-easing-function), transform 0.2s var(--animation-easing-function) !important; + } + #tabbrowser-tabs:not([movingtab]) .tab-content .tab-label-container { + transition: width 0.3s var(--animation-easing-function) !important; + } + #tabbrowser-tabs:not([movingtab]) .tab-content .tab-icon-image { + transition: all 0.3s var(--animation-easing-function) !important; + } + /*- URL / Search Bar -------------------------------------------------------*/ + #urlbar-background, + #searchbar { + transition: border-color 1s var(--animation-easing-function), + background-color 1.5s var(--animation-easing-function) !important; + } + #urlbar-background:hover, + #searchbar:hover { + transition: border-color 0.5s var(--animation-easing-function), + background-color 1s var(--animation-easing-function) !important; + } + /* Buttons in URL bar */ + #tracking-protection-icon-container, + #identity-icon-box, + #identity-permission-box, + #notification-popup-box, + #page-action-buttons > .urlbar-page-action { + transition: background-color 2.5s var(--animation-easing-function) !important; + } + #tracking-protection-icon-container:hover, + #identity-icon-box:hover, + #identity-permission-box:hover, + #notification-popup-box:hover, + #page-action-buttons > .urlbar-page-action:hover { + transition: background-color 1.25s var(--animation-easing-function) !important; + } + @supports -moz-bool-pref("userChrome.combined.urlbar_with_reload") { + #nav-bar-customization-target > #stop-reload-button .toolbarbutton-icon { + transition: background-color 2.5s var(--animation-easing-function) !important; + } + #nav-bar-customization-target > #stop-reload-button .toolbarbutton-icon:hover { + transition: background-color 1.25s var(--animation-easing-function) !important; + } + } + /*- Border - Other Fields --------------------------------------------------*/ + #search-box, + xul|search-textbox.tabsFilter, + #editBMPanel_namePicker, + #editBMPanel_tagsField, + .findbar-container .findbar-textbox { + transition: border-color 1s var(--animation-easing-function) !important; + } + #search-box:hover, + xul|search-textbox.tabsFilter:hover, + #editBMPanel_namePicker:hover, + #editBMPanel_tagsField:hover, + .findbar-container .findbar-textbox:hover { + transition: border-color 0.5s var(--animation-easing-function) !important; + } + /*- Sidebar ----------------------------------------------------------------*/ + @supports not -moz-bool-pref("userChrome.decoration.disable_sidebar_animate") { + #sidebar-box { + /* like #sidebar-box > #sidebar */ + min-width: 14em; + width: 18em; + max-width: 36em; + /* Animation */ + transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, + visibility 0s linear !important; + will-change: margin-inline-start, opacity, visibility; + } + #sidebar-box[hidden="true"] { + display: flex !important; + display: -moz-box !important; + margin-inline-start: -18em; + opacity: 0; + visibility: collapse; + transition-delay: 0s, 0s, 0.25s !important; + } + } + /*- Full Screen ------------------------------------------------------------*/ + #navigator-toolbox { + /* Full screen out */ + transition: margin-top 1s ease; + transform-origin: top; + } + #navigator-toolbox[inFullscreen="true"] { + /* Full screen enter */ + animation-duration: 1s; + animation-name: fullscreen; + animation-timing-function: ease; + /* Full screen navbar not hover */ + transition: margin-top 1.3s var(--animation-easing-function) 50ms; + } + #navigator-toolbox[inFullscreen="true"]:hover { + margin-top: 0 !important; + } + @keyframes fullscreen { + from { + margin-top: 0; + } + /* Don't use `to`: Depending on density */ + } + /*- Expand - Synced Tabs ---------------------------------------------------*/ + @-moz-document url("chrome://browser/content/syncedtabs/sidebar.xhtml") + { + .item-tabs-list { + transition: transform 0.2s ease-out, opacity 0.2s ease-out; + transform: translateY(0%); + opacity: 1; + max-height: 100%; + } + .item.client.closed .item-tabs-list { + display: flex !important; + transition: transform 0.2s ease-out, opacity 0.2s ease-out, + max-height 0.25s cubic-bezier(0.82, 0.085, 0.395, 0.895) 0.05s; + visibility: hidden; + transform: translateY(-100%); + opacity: 0; + max-height: 0; + } + } + /*- Arrow - Synced Tabs ----------------------------------------------------*/ + @-moz-document url("chrome://browser/content/syncedtabs/sidebar.xhtml") + { + /* treechildren::-moz-tree-twisty: Can't apply */ + #template-container .item.client .item-twisty-container { + transition: transform 0.1s var(--animation-easing-function) !important; + } + #template-container .item.client.closed .item-twisty-container { + transform: rotate(-90deg); + background-image: url("chrome://global/skin/icons/arrow-down-12.svg") !important; + } + #template-container .item.client.closed .item-twisty-container:dir(rtl) { + transform: rotate(90deg); + } + } + /*- Arrow - Edit Bookmark Popup --------------------------------------------*/ + #editBookmarkPanelRows .expander-up .button-icon, + #editBookmarkPanelRows .expander-down .button-icon { + transition: transform 0.1s var(--animation-easing-function) !important; + } + #editBookmarkPanelRows .expander-up { + list-style-image: url("chrome://global/skin/icons/arrow-down.svg") !important; + } + #editBookmarkPanelRows .expander-up .button-icon { + transform: rotate(180deg); + } + } + @supports -moz-bool-pref("userChrome.decoration.disable_panel_animate") { + :root { + --panelui-subview-transition-duration: 1ms !important; /* Disable top right corner menu sliding animation (0ms will not work!) */ + } + } +} +/** Rounding ******************************************************************/ +/** Rounding ******************************************************************/ +@supports -moz-bool-pref("userChrome.rounding.square_tab") { + :root { + --tab-border-radius: 0 !important; /* Original: 4px */ + } +} +@supports -moz-bool-pref("userChrome.rounding.square_button") { + :root { + --urlbar-icon-border-radius: 0 !important; /* Original: calc(var(--toolbarbutton-border-radius) - 1px); */ + } + .toolbarbutton-1, + .toolbarbutton-icon, + .panel-info-button, + .searchbar-engine-one-off-item, + .urlbarView-button, + .urlbarView-tip-button, + .urlbarView-action, + toolbarbutton.bookmark-item:not(.subviewbutton), + #sidebar-switcher-target { + --toolbarbutton-border-radius: 0; /* Original: 4px */ + } + button, + .close-icon, + input[type="number"].photon-number::-moz-number-spin-box, + .toggle-group-label, + findbar toolbarbutton, + .notification-button, + #main-menubar > menu { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_tab") or -moz-bool-pref("userChrome.rounding.square_button") { + /* Fix Tab bar button radius */ + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button), + .tab-close-button { + --tab-border-radius: var(--toolbarbutton-border-radius); + } +} +@supports -moz-bool-pref("userChrome.rounding.square_panel") { + :root { + --arrowpanel-border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_panelitem") { + :root { + --arrowpanel-menuitem-border-radius: 0 !important; + --subviewbutton-border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_menupopup") { + menupopup { + --panel-border-radius: 0px !important; + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_menuitem") { + xul|menulist:not([native]), + xul|menulist > xul|menupopup xul|menu, + xul|menulist > xul|menupopup xul|menuitem, + .customization-uidensity-menuitem { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_infobox") { + #sanitizeEverythingWarningBox { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_toolbar") { + :root { + --uc-rounding-toolbar: 0; + } + .container.infobar, + .container.infobar::before, + notification-message { + border-radius: var(--uc-rounding-toolbar) !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_field") { + input:not([type="radio"], [type="checkbox"]), + textarea, + select, + menulist, + tree, + treecols, + listheader, + richlistbox, + search-textbox, + .subviewradio { + border-radius: 0 !important; + } + #urlbar-input-container, + #urlbar-background, + #searchbar { + --toolbarbutton-border-radius: 0; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_urlView_item") { + .urlbarView-row, + .urlbarView-row-inner { + --toolbarbutton-border-radius: 0; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + input[type="checkbox"], + .checkbox-check { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_dialog") { + dialog, + .dialogBox { + border-radius: 0 !important; + } +} +/*= Library ==============================================================*/ +@supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton, + #placesMenu > menu, + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input, + #places input #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } +} +/* +--toolbarbutton-border-radius: 4px; +*/ +/** Reduce Padding ************************************************************/ +/*= Tab Bar - Distribution padding, radius ===================================*/ +@supports -moz-bool-pref("userChrome.tab.lepton_like_padding") or -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root { + --proton-tab-block-margin: var(--tab-block-margin) !important; /* Original: 4px, Legacy */ + } + :root[uidensity="touch"] { + /* Like Original */ + --tab-block-margin: 4px !important; + } +} +@supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { + :root { + --tab-block-margin: 2px !important; /* New version of --proton-tab-block-margin */ + } +} +@supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root { + --tab-block-margin: 0px !important; + } +} +/*= Tab Bar - Reduce Width, Show more tabs ===================================*/ +@supports -moz-bool-pref("userChrome.padding.first_tab") { + /* for First Tab Space */ + :root { + --uc-space-left-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ + } + @supports not -moz-bool-pref("userChrome.padding.first_tab.always") { + :root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), + :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { + padding-inline-start: var(--uc-space-left-tabbar) !important; + } + } + @supports -moz-bool-pref("userChrome.padding.first_tab.always") { + :root:not([tabsintitlebar]) #tabbrowser-tabs, + :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs { + padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width, 0px) + var(--uc-space-left-tabbar)) !important; + } + } +} +@supports -moz-bool-pref("userChrome.padding.tabbar_width") { + /* Titlebar Space */ + :root { + --uc-title-pre-spacer: 30px; /* Original: 40px */ + --uc-title-post-spacer: 25px; /* Original: 40px */ + } + :root:-moz-locale-dir(rtl) { + --uc-title-pre-spacer: 25px; + --uc-title-post-spacer: 30px; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-spacer[type="pre-tabs"] { + width: var(--uc-title-pre-spacer) !important; + } + .titlebar-spacer[type="post-tabs"] { + width: var(--uc-title-post-spacer) !important; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-spacer[type="pre-tabs"] { + width: var(--uc-title-pre-spacer) !important; + } + .titlebar-spacer[type="post-tabs"] { + width: var(--uc-title-post-spacer) !important; + } + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + .titlebar-spacer[type="pre-tabs"] { + width: var(--uc-title-post-spacer) !important; + } + .titlebar-spacer[type="post-tabs"] { + width: var(--uc-title-pre-spacer) !important; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + .titlebar-spacer[type="pre-tabs"] { + width: var(--uc-title-post-spacer) !important; + } + .titlebar-spacer[type="post-tabs"] { + width: var(--uc-title-pre-spacer) !important; + } + } + /* Tabbar Buttons */ + :root { + --newtab-button-minus-width-padding: 2px; + --newtab-button-width-padding: calc(var(--toolbarbutton-inner-padding) - var(--newtab-button-minus-width-padding)); + } + #widget-overflow-mainView #new-tab-button, + #widget-overflow-mainView #alltabs-button { + --newtab-button-width-padding: 0px; + } + #new-tab-button > .toolbarbutton-icon, + #alltabs-button > .toolbarbutton-badge-stack { + /* Original: calc(2 * var(--toolbarbutton-inner-padding) + 16px) */ + width: calc(2 * var(--newtab-button-width-padding) + 16px) !important; + /* Original: --toolbarbutton-inner-padding */ + padding-left: var(--newtab-button-width-padding) !important; + padding-right: var(--newtab-button-width-padding) !important; + } + @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) { + margin-inline-start: 1px !important; + } + } + @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) { + margin-inline-start: 0 !important; + } + } + :root:not([uidensity="touch"]) #tabbrowser-arrowscrollbox { + --scrollbtn-inner-padding: 1px; + --scrollbtn-outer-padding: 3px; + } + #scrollbutton-up { + padding-left: var(--scrollbtn-inner-padding, 4px) !important; /* Original: 4px */ + padding-right: var(--scrollbtn-outer-padding, 4px) !important; + } + #scrollbutton-down { + padding-left: var(--scrollbtn-outer-padding, 4px) !important; /* Original: 4px */ + padding-right: var(--scrollbtn-inner-padding, 4px) !important; + } + :root:not([uidensity="touch"]) #new-tab-button, + #alltabs-button { + --toolbarbutton-outer-padding: 1px; /* Original: 2px*/ + } + /* Tab - Max Size */ + @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root { + --tab-max-width: 240px; + } + } + @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root { + --tab-max-width: 225px; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + :root { + --tab-max-width: 180px; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + :root { + --tab-max-width: 180px; + } + } + } + } + .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + max-width: var(--tab-max-width) !important; /* Original: 225px */ + } + /* neighbouring tabs should "pinch" together */ + #tabbrowser-tabs:not([hasadjacentnewtabbutton]):not([overflow="true"]) + > #tabbrowser-arrowscrollbox + > #tabbrowser-arrowscrollbox-periphery { + min-width: 3px; + } + @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + @supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { + .tabbrowser-tab[pinned] { + padding-inline: 1px !important; + } + .tabbrowser-tab:not([pinned]) { + margin-inline: -1px !important; + } + } + @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + #TabsToolbar:not([multibar]) .tabbrowser-tab:not(:last-of-type) { + margin-inline-end: -2px !important; + } + } + } + @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + .tabbrowser-tab { + padding-inline: 0 !important; + } + } +} +/*= Tab Bar - Reduce Height, Show more contents ==============================*/ +@supports -moz-bool-pref("userChrome.padding.drag_space") { + /* for Extra Drag Space */ + :root { + --uc-space-above-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); + } + @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { + :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar) - var(--tabs-navbar-shadow-size)); + } + } + } + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-gtk-csd-available) { + :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); + } + @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { + :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) + var(--uc-space-above-tabbar)); + } + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #TabsToolbar > .toolbar-items { + padding-top: var(--uc-space-above-tabbar) !important; + } + } + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + /* Add 4px extra margin on top of the tabs toolbar on Windows 7. */ + /* Add extra space to titlebar for dragging */ + :root[sizemode="normal"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, + :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { + padding-top: calc(var(--uc-space-above-tabbar) + 4px) !important; + } + @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { + :root[sizemode="maximized"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, + :root[sizemode="maximized"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { + padding-top: calc(var(--uc-space-above-tabbar) + 4px) !important; + } + } + } + @media (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows-win10), + (-moz-gtk-csd-available) { + /* Add extra space to titlebar for dragging */ + :root[sizemode="normal"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, + :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { + padding-top: var(--uc-space-above-tabbar) !important; + } + @supports -moz-bool-pref("userChrome.padding.drag_space.maximized") { + :root[sizemode="maximized"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, + :root[sizemode="maximized"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { + padding-top: var(--uc-space-above-tabbar) !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.padding.tabbar_height") { + /* Toolbar Height */ + @supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { + :root:not([uidensity]) { + --tab-min-height: 36px !important; + } + :root[uidensity="compact"] { + --tab-min-height: 32px !important; + } + :root[uidensity="touch"] { + --tab-min-height: 41px !important; + } + } + @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root:not([uidensity]) { + --tab-min-height: 32px !important; + } + :root[uidensity="compact"] { + --tab-min-height: 29px !important; + } + :root[uidensity="touch"] { + --tab-min-height: 41px !important; + } + /* Top Margin */ + .tab-background, + .tab-content { + margin-top: 0 !important; + } + } + @supports not -moz-bool-pref("userChrome.tab.lepton_like_padding") { + @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root:not([uidensity]) { + --tab-min-height: 36px !important; /* 38px -> 36px */ + } + :root[uidensity="compact"] { + --tab-min-height: 29px !important; /* 36px -> 29px */ + } + } + } + :root { + /* Works with TabMixPlus */ + --tab-min-height_mlt: calc( + var(--tab-min-height) + 2 * (var(--tab-block-margin, var(--proton-tab-block-margin, 0px))) + ) !important; + } + #TabsToolbar[multibar] .tabbrowser-tab { + height: unset !important; /* Original: var(--tab-min-height_mlt) */ + } + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + :root { + --tab-min-height_mlt: calc( + var(--tab-min-height) + var(--tab-block-margin, var(--proton-tab-block-margin, 0px)) + ) !important; + } + #TabsToolbar { + --toolbarbutton-inner-padding: calc( + (var(--tab-min-height) - 18px) / 2 + ) !important; /* Prevent overflow pinned tab bottom margin */ + } + @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + :root:not([uidensity="compact"]) #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox, + #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #TabsToolbar:not([multibar]) + #tabbrowser-arrowscrollbox[overflowing="true"] + > .tabbrowser-tab[pinned="true"] + .tab-stack, + #TabsToolbar:not([multibar]) + #tabbrowser-arrowscrollbox[overflowing="true"] + > .tabbrowser-tab[pinned="true"] + .tab-content { + max-height: var(--tab-min-height) !important; /* Force apply height */ + } + :root[uidensity="compact"] #TabsToolbar:not([multibar]) #tabbrowser-arrowscrollbox { + height: var(--tab-min-height) !important; + } + } + } + /* Scroll Button - Size Fix */ + :root #tabbrowser-arrowscrollbox { + --scrollbtn-vertical-padding: 3px; + --scrollbtn-vertical-border: 2px; + --scrollbtn-border-radius: 7px; + } + #scrollbutton-up, + #scrollbutton-down { + /* Original: var(--toolbarbutton-inner-padding) calc(var(--toolbarbutton-inner-padding) - 6px) = 9px */ + /* https://github.com/mozilla/gecko-dev/blob/71b1259afd1cdaf41871ae675c2dadb967ea5b34/browser/themes/shared/toolbarbuttons.inc.css#L142 */ + padding-top: var(--scrollbtn-vertical-padding, var(--toolbarbutton-inner-padding)) !important; + padding-bottom: var(--scrollbtn-vertical-padding, var(--toolbarbutton-inner-padding)) !important; + /* Original: 4px */ + border-top-width: var(--scrollbtn-vertical-border, 4px) !important; + border-bottom-width: var(--scrollbtn-vertical-border, 4px) !important; + /* Original: calc(var(--tab-border-radius) + 4px) = 8px */ + border-radius: var(--scrollbtn-border-radius, calc(var(--tab-border-radius) + 4px)) !important; + } + :root[tabsintitlebar]:not([uidensity="compact"]) #toolbar-menubar[autohide="true"] { + height: calc( + var(--tab-min-height) - var(--tabs-navbar-shadow-size) - 2px + ); /* Compact: 28px, Normal: 33px, Touch: 38px */ + } +} +/*= Tool Bar - Button Padding ================================================*/ +@supports -moz-bool-pref("userChrome.padding.toolbar_button") or -moz-bool-pref("userChrome.tab.newtab_button_smaller") { + :root { + --uc-small-toolbarbutton-inner-padding: 6px; + --uc-toolbarbutton-inner-padding-default: 8px; + } + :root[uidensity="compact"] { + --uc-small-toolbarbutton-inner-padding: 4px; + --uc-toolbarbutton-inner-padding-default: 6px; + } + :root[uidensity="touch"] #tabs-newtab-button > .toolbarbutton-icon { + --uc-small-toolbarbutton-inner-padding: 9px; + --uc-toolbarbutton-inner-padding-default: 9px; + } +} +@supports -moz-bool-pref("userChrome.padding.toolbar_button") { + :root[uidensity="compact"] { + --toolbarbutton-outer-padding: 2px !important; /* Original: 3px, General is 2px */ + } + @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + :root { + --toolbarbutton-inner-padding: var(--uc-small-toolbarbutton-inner-padding) !important; + } + } +} +/*= Nav Bar - Reduce Width ===================================================*/ +@supports -moz-bool-pref("userChrome.padding.navbar_width") { + #nav-bar:not([customizing]) toolbarspring { + min-width: 1px !important; + max-width: 100px !important; + } +} +/*= URL Bar - Reduce Padding =================================================*/ +@supports not -moz-bool-pref("userChrome.urlView.as_commandbar") { + @supports -moz-bool-pref("userChrome.padding.urlbar") { + :root:not([uidensity="touch"]) #urlbar-container, + :root:not([uidensity="touch"]) #search-container { + padding-block: 3px !important; /* Original: 4px */ + } + :root:not([uidensity="compact"]) #urlbar-container, + :root:not([uidensity="compact"]) #search-container { + padding-block: 2px !important; + } + /* spread menu */ + :root:not([uidensity]) .urlbarView-row { + padding-block: 1px !important; /* Original: 2px */ + } + :root[uidensity="compact"] .urlbarView-row { + padding-block: 0px !important; + } + :root:not([uidensity]) #urlbar .search-one-offs:not([hidden]) { + padding-block: 8px !important; /* Original: 10px */ + } + :root[uidensity="compact"] #urlbar .search-one-offs:not([hidden]) { + padding-block: 2px !important; + } + } +} +@supports -moz-bool-pref("userChrome.padding.urlView_expanding") or -moz-bool-pref("userChrome.urlView.as_commandbar") { + #urlbar[breakout][breakout-extend] { + top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important; + left: 0 !important; + width: 100% !important; + } + #urlbar[breakout][breakout-extend] > #urlbar-input-container { + height: var(--urlbar-height) !important; + padding-block: 0 !important; + padding-inline: var(--urlbar-container-padding, 0px) !important; + } +} +@supports -moz-bool-pref("userChrome.padding.urlView_expanding") { + #urlbar[breakout][breakout-extend] > #urlbar-background { + animation-name: none !important; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05) !important; + } +} +@supports -moz-bool-pref("userChrome.padding.urlView_result") { + .urlbarView { + margin-inline: 0 !important; + width: 100% !important; + } + .urlbarView-row { + padding-block: 0 !important; + } +} +/*= BookMark Bar - Reduce Height =============================================*/ +@supports -moz-bool-pref("userChrome.padding.bookmarkbar") { + :root[uidensity="compact"] #PersonalToolbar toolbarbutton { + margin-top: 0px !important; /* Original: 2px */ + margin-bottom: 1px !important; + } +} +/*= Info Bar - Reduce Padding ================================================*/ +@supports -moz-bool-pref("userChrome.padding.infobar") or -moz-bool-pref("userChrome.autohide.infobar") { + #tab-notification-deck notification-message[message-bar-type="infobar"]:not([style*="margin-top"]) { + margin: var(--infobar-message-margin, 0 4px var(--infobar-message-vertical-margin, 8px)) !important; + } +} +@supports -moz-bool-pref("userChrome.padding.infobar") { + :root:not([uidensity]) notification-message { + --infobar-message-vertical-margin: 3px; + --infobar-vertical-margin: 7px; + --infobar-button-vertical-margin: 3px; + } + :root[uidensity="compact"] notification-message { + --infobar-message-vertical-margin: 2px; + --infobar-vertical-margin: 6px; + --infobar-button-vertical-margin: 2px; + } + :root[uidensity="touch"] notification-message { + --infobar-message-vertical-margin: 4px; + --infobar-vertical-margin: 8px; + --infobar-button-vertical-margin: 4px; + } + .infobar > .icon { + margin-block: var(--infobar-vertical-margin) !important; /* Original: 8px */ + } + .notification-message { + padding-block: var(--infobar-vertical-margin) !important; /* Original: 8px */ + } + .notification-button-container > .notification-button { + margin-block: var(--infobar-button-vertical-margin) !important; /* Original: 4px */ + } + .notification-close { + margin: var(--infobar-button-vertical-margin) 8px !important; /* Original: 4px 8px */ + } + /* Hard coded for compatibility - Disappearing phenomenon */ + .container.infobar::before { + content: ""; + display: block; + width: 2px; + position: absolute; + background-image: linear-gradient(0deg, #9059ff 0%, #ff4aa2 52.08%, #ffbd4f 100%); + top: 0; + inset-inline-start: 0; + height: 100%; + border-start-start-radius: 4px; + border-end-start-radius: 4px; + } +} +/*= Menu - Reduce Padding ====================================================*/ +@supports -moz-bool-pref("userChrome.padding.menu") { + :root { + --menu-padding: 0.35em; /* Win7, 8: 0px */ + } + :root[uidensity="compact"] { + --menu-padding: 0.25em; + } + :root[uidensity="touch"] { + --menu-padding: 0.5em; + } + @supports -moz-bool-pref("userChrome.padding.menu_compact") { + :root { + --menu-padding: 2px; + } + :root[uidensity="compact"] { + --menu-padding: 0px; + } + } + menupopup > menuitem, + menupopup > menu { + /* Original: 0.5em */ + padding-block: var(--menu-padding) !important; + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + #ContentSelectDropdown > menupopup > menucaption, + #ContentSelectDropdown > menupopup > menuitem { + padding-block: 0 !important; + } + #ContentSelectDropdown > menupopup > menucaption > .menu-iconic-text, + #ContentSelectDropdown > menupopup > menuitem > .menu-iconic-text { + padding-block: var(--menu-padding) !important; + } + } + @media (-moz-gtk-csd-available) { + #ContentSelectDropdown > menupopup > menucaption, + #ContentSelectDropdown > menupopup > menuitem { + padding-block: var(--menu-padding) !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #ContentSelectDropdown > menupopup > menucaption, + #ContentSelectDropdown > menupopup > menuitem { + padding-block: var(--menu-padding) !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:not([uidensity="touch"]) .menu-text, + :root:not([uidensity="touch"]) .menu-iconic-text { + padding-inline-end: 0 !important; /* Original: 2px */ + } + :root:not([uidensity="touch"]) .menupopup-arrowscrollbox { + padding-block: 1px !important; /* Original: 4px*/ + } + :root:not([uidensity="touch"]) #context-navigation:not([hidden]) { + padding: 0 0 1px !important; /* Original: 0 0 4px*/ + } + :root:not([uidensity="touch"]) .menu-right { + margin-right: 6px !important; /* Original: 12px */ + } + } + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + /* Remove border */ + menupopup > menuitem, + menupopup > menu { + padding-block: calc(var(--menu-padding) - 2px) !important; + } + /* Make to original */ + :root:not([uidensity="touch"]) #context-navigation:not([hidden]) { + padding: 0 0 4px !important; + } + } + @media (-moz-gtk-csd-available) { + menupopup > menu { + padding-inline-start: 0.5em; + } + } + /* Arrow Icon Align to Right */ + .bookmark-item.subviewbutton > .menu-right { + margin-inline-end: 0 !important; + } +} +/*= Bookmark Menu - Reduce Padding ===========================================*/ +@supports -moz-bool-pref("userChrome.padding.bookmark_menu") { + :root { + --bookmark-menu-padding: 3px; + } + :root[uidensity="compact"] { + --bookmark-menu-padding: 1.5px; + } + @supports -moz-bool-pref("userChrome.padding.menu_compact") { + :root { + --bookmark-menu-padding: 2px; + } + :root[uidensity="compact"] { + --bookmark-menu-padding: 0px; + } + } + :root:not([uidensity="touch"]) #BMB_bookmarksPopup .subviewbutton, + :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .bookmark-item, + :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .openintabs-menuitem { + padding-block: var(--bookmark-menu-padding) !important; + } + @supports -moz-bool-pref("userChrome.padding.menu_compact") or -moz-bool-pref("userChrome.padding.bookmark_menu.compact") { + :root:not([uidensity="touch"]) #BMB_bookmarksPopup .bookmark-item, + :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .bookmark-item { + min-height: unset !important; /* Original: 24px */ + } + } +} +/*= Global Menu - Set Padding ================================================*/ +@supports -moz-bool-pref("userChrome.padding.global_menubar") { + /* Vertical Align - Center & Height: 100% */ + #main-menubar { + flex: 1 !important; + -moz-box-flex: 1 !important; + } + /* Rounding */ + #main-menubar > menu { + border-radius: 4px; + } + /* Menubar item padding */ + :root { + --global-menubar-padding: 2px; + } + :root[uidensity="compact"] { + --global-menubar-padding: 1px; + } + :root[uidensity="touch"] { + --global-menubar-padding: 4px; + } + #main-menubar > menu { + padding-block: var(--global-menubar-padding) !important; + } + /* Reduce items */ + #main-menubar > menu > menupopup menuitem, + #main-menubar > menu > menupopup menu { + padding-block: var(--bookmark-menu-padding) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + #main-menubar > menu > menupopup menuitem, + #main-menubar > menu > menupopup menu { + --bookmark-menu-padding: 3px; + } + #main-menubar > menu > menupopup menuitem:is([type="checkbox"], [type="radio"]), + #main-menubar > menu > menupopup menu:is([type="checkbox"], [type="radio"]) { + --bookmark-menu-padding: 0px; + } + } +} +/*= Panel - Reduce padding ===================================================*/ +@supports -moz-bool-pref("userChrome.padding.panel") { + :root { + --arrowpanel-menuitem-margin-block: 0; /* FF 102 compatibility */ + --arrowpanel-menuitem-margin-inline: 8px; + --arrowpanel-menuitem-margin: var(--arrowpanel-menuitem-margin-block) var(--arrowpanel-menuitem-margin-inline) !important; /* Original: 0 8px */ + --arrowpanel-menuitem-padding-block: 5px !important; /* Original: 8px */ + --arrowpanel-menuitem-padding-inline: 5px !important; /* Original: 8px */ + --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline) !important; /* Compatibility */ + --arrowpanel-padding: 0.8em !important; /* Original: 16px or .cui-widget-panel, .cui-widget-panel::part(arrowcontent) => 4px 0 */ + } + :root[uidensity="compact"] { + --arrowpanel-menuitem-margin-inline: 4px; /* FF 102 compatibility */ + --arrowpanel-menuitem-padding-block: 3px !important; + --arrowpanel-menuitem-padding-inline: 3px !important; + } + :root[uidensity="touch"] { + --arrowpanel-menuitem-padding-block: 8px !important; /* Original: 8px */ + --arrowpanel-menuitem-padding-inline: 8px !important; /* Original: 8px */ + } + .all-tabs-item { + margin: var(--arrowpanel-menuitem-margin) !important; + } + @supports not -moz-bool-pref("userChrome.icon.disabled") { + @supports not -moz-bool-pref("userChrome.icon.panel") { + .subviewbutton { + min-height: calc(16px + var(--arrowpanel-menuitem-padding-block) * 2) !important; + } + } + } + .unified-extensions-item-menu-button.subviewbutton { + padding: 8px !important; /* Original: var(--arrowpanel-menuitem-padding-inline) */ + } + :root[uidensity="compact"] :is(.unified-extensions-item, .unified-extensions-item-action-button) { + padding-block: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.padding.panel_header") { + .panel-header { + padding: unset !important; + padding-top: 4px !important; + } +} +/*= Popup Panel - Reduce padding =============================================*/ +@supports -moz-bool-pref("userChrome.padding.popup_panel") { + #protections-popup-main-header-label { + height: unset !important; /* Original: 37.6px */ + } + #identity-popup, + #permission-popup, + #protections-popup { + --vertical-section-padding: 0.8em; /* Original: 0.9em */ + } + .protections-popup-footer-button, + .protections-popup-category { + min-height: 24px; /* Original: 32px */ + height: unset !important; + } + /** Popup panel - Compact mode */ + :root[uidensity="compact"] #protections-popup-content { + margin-block: 0 !important; + } + :root[uidensity="compact"] #protections-popup-multiView #protections-popup-footer { + padding-block-start: 0 !important; + padding-block-end: 4px !important; + } + :root[uidensity="compact"] #protections-popup-multiView .protections-popup-footer-button, + :root[uidensity="compact"] #protections-popup-multiView .protections-popup-category { + min-height: 20px !important; + } + :root[uidensity="compact"] #protections-popup-multiView .panel-footer.panel-footer-menulike { + margin: 0 0 3px !important; + } + :root[uidensity="compact"] #protections-popup-multiView .panel-footer.panel-footer-menulike > button { + padding: 3px 8px !important; + } + :root[uidensity="compact"] #protections-popup-trackersView-settings-button { + margin: 4px 8px 0 !important; + } + :root[uidensity="compact"] #identity-popup-multiView #identity-popup-mainView-panel-header { + padding: 2px 5px !important; + } + :root[uidensity="compact"] #protections-popup-no-trackers-found-description { + margin: 2em 4em !important; + } + :root[uidensity="compact"] #downloadsListBox { + margin: 0 !important; + } +} +/** Tab Bar UI ****************************************************************/ +/*= Tabs on Bottom ===========================================================*/ +@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.fullscreen.overlap") { + /* Don't use display: flex at not fullscreen!! side effect #372 */ + :root[sizemode="fullscreen"] #navigator-toolbox { + display: flex !important; /* Needed for content to take up entire height, compatibility with tabs on bottom */ + } + :root[sizemode="fullscreen"] #titlebar, + :root[sizemode="fullscreen"] #nav-bar, + :root[sizemode="fullscreen"] #PersonalToolbar, + :root[sizemode="fullscreen"] #tab-notification-deck, + :root[sizemode="fullscreen"] #tab-notification-deck-template { + flex-basis: 100%; + } + /* -moz-default-appearance: -moz-window-titlebar */ + :root[sizemode="fullscreen"] #titlebar { + -moz-appearance: none !important; + } +} +@supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /*= Tabbar - Move to bottom ==================================================*/ + #titlebar { + order: 2; + -moz-box-ordinal-group: 2; + --tabs-navbar-shadow-size: 0px; + } + #tab-notification-deck { + order: 2; + -moz-box-ordinal-group: 2; + } + #TabsToolbar .titlebar-spacer { + display: none; + } + #TabsToolbar-customization-target > .toolbarbutton-1:last-child { + padding-inline-end: var(--toolbar-start-end-padding, 8px); + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { + #PersonalToolbar { + order: 2; + -moz-box-ordinal-group: 2; + } + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + #navigator-toolbox { + border-bottom-color: var( + --toolbar-bgcolor + ) !important; /* Original: 1px solid var(--chrome-content-separator-color); */ + } + } + } + } + /*= Tabbar - Hidden at single tab ===========================================*/ + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.hidden_single_tab") { + #tabbrowser-tabs .tabbrowser-tab:only-of-type { + display: none !important; + } + #tabbrowser-tabs, + #tabbrowser-tabs arrowscrollbox { + height: auto !important; + min-height: auto !important; + } + @media (prefers-reduced-motion: no-preference) { + #tabbrowser-tabs { + transition: height 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay); + } + } + } + /*= Menubar - Always on top ==================================================*/ + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom_menubar_on_top_patch.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Menubar on top patch - use with tabs_on_bottom.css */ + /* Only really useful if menubar is ALWAYS visible */ + :root:not([sizemode="fullscreen"]) { + --uc-window-control-width: 0px !important; + } + /* Since menubar is statically at top, remove fake drag-space that might be set by window_control_placeholder_support.css */ + :root:not([sizemode="fullscreen"]) #nav-bar { + border-inline-width: 0; + } + #navigator-toolbox { + -moz-window-dragging: drag; + } + :root[sizemode="fullscreen"] #navigator-toolbox { + padding-top: 0px !important; + } + #toolbar-menubar { + position: fixed; + display: flex; + top: var(--uc-titlebar-padding); + height: var(--uc-menubar-height); + width: 100%; + overflow: hidden; + } + :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ + } + #toolbar-menubar > .titlebar-buttonbox-container { + height: 100%; + order: 100; + } + #toolbar-menubar > [flex] { + flex-grow: 100; + } + #toolbar-menubar > spacer[flex] { + order: 99; + flex-grow: 1; + min-width: var(--uc-window-drag-space-post); + } + #toolbar-menubar .toolbarbutton-1 { + --toolbarbutton-inner-padding: 3px; + } + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + visibility: collapse !important; + } + :root:not([chromehidden~="menubar"]):not([sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + .titlebar-buttonbox-container { + visibility: visible; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /*= Tabbar - Move to bottom ==================================================*/ + #titlebar { + order: 2; + -moz-box-ordinal-group: 2; + --tabs-navbar-shadow-size: 0px; + } + #tab-notification-deck { + order: 2; + -moz-box-ordinal-group: 2; + } + #TabsToolbar .titlebar-spacer { + display: none; + } + #TabsToolbar-customization-target > .toolbarbutton-1:last-child { + padding-inline-end: var(--toolbar-start-end-padding, 8px); + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { + #PersonalToolbar { + order: 2; + -moz-box-ordinal-group: 2; + } + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom.above_bookmark") { + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + @supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + #navigator-toolbox { + border-bottom-color: var( + --toolbar-bgcolor + ) !important; /* Original: 1px solid var(--chrome-content-separator-color); */ + } + } + } + } + /*= Tabbar - Hidden at single tab ===========================================*/ + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.hidden_single_tab") { + #tabbrowser-tabs .tabbrowser-tab:only-of-type { + display: none !important; + } + #tabbrowser-tabs, + #tabbrowser-tabs arrowscrollbox { + height: auto !important; + min-height: auto !important; + } + @media screen and (max-width: 1100px) and (prefers-reduced-motion: no-preference) { + #tabbrowser-tabs { + transition: height 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay); + } + } + } + /*= Menubar - Always on top ==================================================*/ + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom_menubar_on_top_patch.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Menubar on top patch - use with tabs_on_bottom.css */ + /* Only really useful if menubar is ALWAYS visible */ + :root:not([sizemode="fullscreen"]) { + --uc-window-control-width: 0px !important; + } + /* Since menubar is statically at top, remove fake drag-space that might be set by window_control_placeholder_support.css */ + :root:not([sizemode="fullscreen"]) #nav-bar { + border-inline-width: 0; + } + #navigator-toolbox { + -moz-window-dragging: drag; + } + :root[sizemode="fullscreen"] #navigator-toolbox { + padding-top: 0px !important; + } + #toolbar-menubar { + position: fixed; + display: flex; + top: var(--uc-titlebar-padding); + height: var(--uc-menubar-height); + width: 100%; + overflow: hidden; + } + :root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive="true"]) { + height: var(--uc-menubar-height) !important; /* calc(var(--tab-min-height) + 2 * var(--tab-block-margin)) */ + } + #toolbar-menubar > .titlebar-buttonbox-container { + height: 100%; + order: 100; + } + #toolbar-menubar > [flex] { + flex-grow: 100; + } + #toolbar-menubar > spacer[flex] { + order: 99; + flex-grow: 1; + min-width: var(--uc-window-drag-space-post); + } + #toolbar-menubar .toolbarbutton-1 { + --toolbarbutton-inner-padding: 3px; + } + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + visibility: collapse !important; + } + :root:not([chromehidden~="menubar"]):not([sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + .titlebar-buttonbox-container { + visibility: visible; + } + } + } + } + } +} +/*= Tab Bar - Oneliner =======================================================*/ +@supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + :root { + --uc-navbar-width-origin: 40vw; + --uc-navbar-width: var(--uc-navbar-width-origin); + --uc-tabbar-width: calc(100vw - var(--uc-navbar-width)); + --uc-navbar-margin: calc(var(--uc-navbar-width) + var(--uc-navbar-gap, 0px)); + } + @supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + :root { + --uc-navbar-width-origin: 50vw; + --uc-navbar-width: 24em; + } + } + #nav-bar { + --uc-navbar-double-block: calc(2 * var(--uc-navbar-block, 0px)); + height: calc(var(--uc-tabbar-height) - var(--uc-navbar-double-block)) !important; + margin-top: calc(var(--uc-tabbar-hide-height) + var(--uc-navbar-double-block)) !important; + margin-bottom: var(--uc-navbar-block, 0px) !important; + } + #titlebar { + transform: translateY(var(--uc-navbar-block, 0px)); + } + #TabsToolbar > .titlebar-buttonbox-container { + transform: translateY(calc(-1 * var(--uc-navbar-block, 0px))); + } + #navigator-toolbox { + position: relative; + z-index: 2; + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + :root { + --uc-navbar-gap: 10px; + --uc-navbar-block: 1.5px; + } + :root[uidensity="compact"] { + --uc-navbar-block: 1px; + } + :root[uidensity="touch"] { + --uc-navbar-block: 3px; + } + #nav-bar { + --toolbarbutton-inner-padding: 6px; /* Original: 8px */ + border-radius: var(--uc-rounding-toolbar, var(--tab-border-radius, 4px)); + } + #nav-bar, + #nav-bar-customization-target { + align-items: center; + -moz-box-align: center; + } + #urlbar-container { + min-height: calc(var(--urlbar-container-height) - 2px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + #navigator-toolbox { + background-color: var(--toolbar-bgcolor) !important; + } + #nav-bar { + --lwt-tabs-border-color: transparent; + background-color: unset !important; + background-image: unset !important; + } + } + #urlbar-container { + min-width: calc( + var(--uc-oneliner-urlbar-base-width, 50px) + 24px + 2 * var(--toolbarbutton-inner-padding) + ) !important; + } + #urlbar[breakout][breakout-extend] { + min-width: calc(310px + 2 * (24px + 2 * var(--toolbarbutton-inner-padding))) !important; + } + #PersonalToolbar { + position: relative; + z-index: -1; + } + toolbarspring.chromeclass-toolbar-additional { + display: none !important; + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-start: var(--uc-navbar-margin) !important; + } + #nav-bar { + margin-inline-end: var(--uc-tabbar-width) !important; + } + .titlebar-spacer[type="pre-tabs"] { + display: none !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-navbar-margin) !important; + } + #nav-bar { + margin-inline-start: var(--uc-tabbar-width) !important; + } + .titlebar-spacer[type="post-tabs"] { + display: none !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + :root { + --uc-navbar-width-origin: 40vw; + --uc-navbar-width: var(--uc-navbar-width-origin); + --uc-tabbar-width: calc(100vw - var(--uc-navbar-width)); + --uc-navbar-margin: calc(var(--uc-navbar-width) + var(--uc-navbar-gap, 0px)); + } + @supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + :root { + --uc-navbar-width-origin: 50vw; + --uc-navbar-width: 24em; + } + } + #nav-bar { + --uc-navbar-double-block: calc(2 * var(--uc-navbar-block, 0px)); + height: calc(var(--uc-tabbar-height) - var(--uc-navbar-double-block)) !important; + margin-top: calc(var(--uc-tabbar-hide-height) + var(--uc-navbar-double-block)) !important; + margin-bottom: var(--uc-navbar-block, 0px) !important; + } + #titlebar { + transform: translateY(var(--uc-navbar-block, 0px)); + } + #TabsToolbar > .titlebar-buttonbox-container { + transform: translateY(calc(-1 * var(--uc-navbar-block, 0px))); + } + #navigator-toolbox { + position: relative; + z-index: 2; + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + :root { + --uc-navbar-gap: 10px; + --uc-navbar-block: 1.5px; + } + :root[uidensity="compact"] { + --uc-navbar-block: 1px; + } + :root[uidensity="touch"] { + --uc-navbar-block: 3px; + } + #nav-bar { + --toolbarbutton-inner-padding: 6px; /* Original: 8px */ + border-radius: var(--uc-rounding-toolbar, var(--tab-border-radius, 4px)); + } + #nav-bar, + #nav-bar-customization-target { + align-items: center; + -moz-box-align: center; + } + #urlbar-container { + min-height: calc(var(--urlbar-container-height) - 2px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + #navigator-toolbox { + background-color: var(--toolbar-bgcolor) !important; + } + #nav-bar { + --lwt-tabs-border-color: transparent; + background-color: unset !important; + background-image: unset !important; + } + } + #urlbar-container { + min-width: calc( + var(--uc-oneliner-urlbar-base-width, 50px) + 24px + 2 * var(--toolbarbutton-inner-padding) + ) !important; + } + #urlbar[breakout][breakout-extend] { + min-width: calc(310px + 2 * (24px + 2 * var(--toolbarbutton-inner-padding))) !important; + } + #PersonalToolbar { + position: relative; + z-index: -1; + } + toolbarspring.chromeclass-toolbar-additional { + display: none !important; + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-start: var(--uc-navbar-margin) !important; + } + #nav-bar { + margin-inline-end: var(--uc-tabbar-width) !important; + } + .titlebar-spacer[type="pre-tabs"] { + display: none !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-navbar-margin) !important; + } + #nav-bar { + margin-inline-start: var(--uc-tabbar-width) !important; + } + .titlebar-spacer[type="post-tabs"] { + display: none !important; + } + } + } + } +} +/*= Tab Bar - Shared Layout ==================================================*/ +@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.tabbar.one_liner") or -moz-bool-pref( + "userChrome.hidden.tabbar" + ) + or -moz-bool-pref("userChrome.tabbar.as_titlebar") { + :root { + --uc-window-control-width: 0px; /* Same as .titlebar-buttonbox-container - Space reserved for window controls */ + --uc-window-drag-space-pre: 0px; /* Same as .titlebar-spacer[type="pre-tabs"] - Extra space reserved on both sides of the nav-bar to be able to drag the window */ + --uc-window-drag-space-post: 0px; /* Same as .titlebar-spacer[type="post-tabs"] */ + --uc-window-control-space: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); + } + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: var(--uc-title-pre-spacer, 40px); + --uc-window-drag-space-post: var(--uc-title-post-spacer, 40px); + } + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 105px; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 138px; + } + } + @media (-moz-gtk-csd-available) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + /* 84px is default value of linux */ + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-close-button) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 28px; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button), + (-moz-gtk-csd-available) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 56px; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 84px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root[tabsintitlebar] { + --uc-window-control-width: 72px; + } + :root[sizemode="fullscreen"] { + --uc-window-control-space: 0px; + } + } + :root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + --uc-window-control-space: 0px; + } + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + @supports (not -moz-bool-pref("userChrome.tabbar.on_bottom")) or + (not -moz-bool-pref("userChrome.hidden.tabbar")) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + --uc-window-control-space: 0px; + } + } + } + @media screen and (min-width: 1100px) { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + } + } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + @supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs { + --uc-window-control-space: 0px; + } + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-space: 0px; + } + } + } + } + } + } + } + @supports selector(:has(a)) { + #navigator-toolbox:has(#toolbar-menubar[autohide="false"]) { + --uc-window-drag-space-pre: 0px; + --uc-window-control-space: 0px; + } + } +} +@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.tabbar.one_liner") or -moz-bool-pref( + "userChrome.hidden.tabbar" + ) { + @supports not -moz-bool-pref("userChrome.hidden.titlebar_container") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + /*= Windows Control - Move to toolbar ========================================*/ + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Titlebar Button Box */ + :root { + --uc-titlebar-padding: 0px; + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + #navigator-toolbox { + padding-top: calc( + max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) + ) !important; + } + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: 0; + right: 0; + z-index: 1; + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { + height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; + } + } + .titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container > .titlebar-buttonbox { + margin-block: 10px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #toolbar-menubar:not([autohide="true"]) { + visibility: visible !important; + height: 0; + } + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + } + } + @media (prefers-reduced-motion: no-preference) { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + transition: opacity 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay, 600ms), + visibility 100ms var(--animation-easing-function) 0.25s !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { + visibility: visible !important; + min-height: 0 !important; + max-height: 0 !important; + } + :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { + visibility: collapse !important; + } + } + /* At Activated Menubar */ + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + /*= Windows Control - Move to toolbar ========================================*/ + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Titlebar Button Box */ + :root { + --uc-titlebar-padding: 0px; + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + #navigator-toolbox { + padding-top: calc( + max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) + ) !important; + } + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: 0; + right: 0; + z-index: 1; + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { + height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; + } + } + .titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container > .titlebar-buttonbox { + margin-block: 10px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #toolbar-menubar:not([autohide="true"]) { + visibility: visible !important; + height: 0; + } + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + } + } + @media (prefers-reduced-motion: no-preference) { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + transition: opacity 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay, 600ms), + visibility 100ms var(--animation-easing-function) 0.25s !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { + visibility: visible !important; + min-height: 0 !important; + max-height: 0 !important; + } + :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { + visibility: collapse !important; + } + } + /* At Activated Menubar */ + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + /*= Windows Control - Move to toolbar ========================================*/ + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Titlebar Button Box */ + :root { + --uc-titlebar-padding: 0px; + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + #navigator-toolbox { + padding-top: calc( + max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) + ) !important; + } + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: 0; + right: 0; + z-index: 1; + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { + height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; + } + } + .titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container > .titlebar-buttonbox { + margin-block: 10px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #toolbar-menubar:not([autohide="true"]) { + visibility: visible !important; + height: 0; + } + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + } + } + @media (prefers-reduced-motion: no-preference) { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + transition: opacity 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay, 600ms), + visibility 100ms var(--animation-easing-function) 0.25s !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { + visibility: visible !important; + min-height: 0 !important; + max-height: 0 !important; + } + :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { + visibility: collapse !important; + } + } + /* At Activated Menubar */ + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (max-width: 1100px) { + /*= Windows Control - Move to toolbar ========================================*/ + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Titlebar Button Box */ + :root { + --uc-titlebar-padding: 0px; + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + #navigator-toolbox { + padding-top: calc( + max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) + ) !important; + } + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: 0; + right: 0; + z-index: 1; + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { + height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); + } + /* At Activated Menubar */ + } + @media screen and (max-width: 1100px) and (-moz-os-version: windows-win10), + screen and (max-width: 1100px) and (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; + } + } + @media screen and (max-width: 1100px) { + .titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container > .titlebar-buttonbox { + margin-block: 10px; + } + } + } + @media screen and (max-width: 1100px) { + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + } + @media screen and (max-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media screen and (max-width: 1100px) and (-moz-os-version: windows-win7), + screen and (max-width: 1100px) and (-moz-os-version: windows-win8), + screen and (max-width: 1100px) and (-moz-os-version: windows-win10), + screen and (max-width: 1100px) and (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; + } + } + @media screen and (max-width: 1100px) { + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #toolbar-menubar:not([autohide="true"]) { + visibility: visible !important; + height: 0; + } + } + } + @media screen and (max-width: 1100px) { + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + } + } + @media screen and (max-width: 1100px) { + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + } + } + } + @media screen and (max-width: 1100px) and (prefers-reduced-motion: no-preference) { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + transition: opacity 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay, 600ms), + visibility 100ms var(--animation-easing-function) 0.25s !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @media screen and (max-width: 1100px) { + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + @media screen and (max-width: 1100px) { + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { + visibility: visible !important; + min-height: 0 !important; + max-height: 0 !important; + } + :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { + visibility: collapse !important; + } + } + } + @media screen and (max-width: 1100px) { + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + } + @media screen and (max-width: 1100px) { + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + :root:not([chromehidden~="menubar"]) + #toolbar-menubar:not([autohide="true"]) + .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + } + @media screen and (min-width: 1100px) { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + /*= Windows Control - Move to toolbar ========================================*/ + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Titlebar Button Box */ + :root { + --uc-titlebar-padding: 0px; + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + #navigator-toolbox { + padding-top: calc( + max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) + ) !important; + } + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: 0; + right: 0; + z-index: 1; + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { + height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); + } + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; + } + } + .titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container > .titlebar-buttonbox { + margin-block: 10px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #toolbar-menubar:not([autohide="true"]) { + visibility: visible !important; + height: 0; + } + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + } + } + @media screen and (min-width: 1100px) and (prefers-reduced-motion: no-preference) { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + transition: opacity 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay, 600ms), + visibility 100ms var(--animation-easing-function) 0.25s !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { + visibility: visible !important; + min-height: 0 !important; + max-height: 0 !important; + } + :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { + visibility: collapse !important; + } + } + /* At Activated Menubar */ + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + :root:not([chromehidden~="menubar"]) + #toolbar-menubar:not([autohide="true"]) + .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + /*= Windows Control - Move to toolbar ========================================*/ + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_on_bottom.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Titlebar Button Box */ + :root { + --uc-titlebar-padding: 0px; + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") { + #navigator-toolbox { + padding-top: calc( + max(var(--uc-menubar-height), var(--uc-menubar-height-default)) + var(--uc-titlebar-padding) + ) !important; + } + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: 0; + right: 0; + z-index: 1; + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container { + height: var(--uc-titlebar-buttonbox-height, var(--uc-navbar-height, 36px)); + } + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows-win10) { + #toolbar-menubar[autohide="true"][inactive="true"] > .titlebar-buttonbox-container .titlebar-button { + stroke: var(--toolbar-color, currentColor) !important; + } + } + .titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container > .titlebar-buttonbox { + margin-block: 10px; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media screen and (min-width: 1100px) and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + @media screen and (min-width: 1100px) and (-moz-os-version: windows-win7), + screen and (min-width: 1100px) and (-moz-os-version: windows-win8), + screen and (min-width: 1100px) and (-moz-os-version: windows-win10), + screen and (min-width: 1100px) and (-moz-platform: windows) { + :root[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + :root[sizemode="maximized"][tabsintitlebar] #navigator-toolbox-background { + margin-top: calc(-1 * var(--uc-titlebar-padding)); + } + :root[sizemode="normal"][tabsintitlebar] #titlebar, + :root[sizemode="maximized"][tabsintitlebar] #titlebar { + appearance: none !important; + } + .browser-toolbar:not(.titlebar-color) { + background-clip: border-box !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #toolbar-menubar:not([autohide="true"]) { + visibility: visible !important; + height: 0; + } + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + visibility: collapse; + } + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + opacity: 1; + visibility: visible; + } + } + } + @media screen and (min-width: 1100px) and (prefers-reduced-motion: no-preference) { + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + transition: opacity 0.25s var(--animation-easing-function) var(--uc-autohide-toolbar-delay, 600ms), + visibility 100ms var(--animation-easing-function) 0.25s !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #toolbar-menubar[inactive]:not([customizing]) + > .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[inFullscreen]:not([macOSNativeFullscreen]) #toolbar-menubar { + visibility: visible !important; + min-height: 0 !important; + max-height: 0 !important; + } + :root[inFullscreen]:not([macOSNativeFullscreen]) #menubar-items { + visibility: collapse !important; + } + } + /* At Activated Menubar */ + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + @supports not -moz-bool-pref("userChrome.hidden.tabbar") { + :root:not([chromehidden~="menubar"]) + #toolbar-menubar:not([autohide="true"]) + .titlebar-buttonbox-container { + visibility: hidden; + } + } + } + } + } + } + @supports not -moz-bool-pref("userChrome.navbar.as_sidebar") { + /*= Navbar - Padding for window controls =====================================*/ + /* Customized https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/window_control_placeholder_support.css */ + #nav-bar { + border-inline-style: solid !important; + border-inline-color: transparent; + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (-moz-os-version: windows-win7) and (max-width: 1100px), + screen and (-moz-os-version: windows-win8) and (max-width: 1100px), + screen and (-moz-os-version: windows-win10) and (max-width: 1100px), + screen and (-moz-platform: windows) and (max-width: 1100px) { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-drag-space-pre) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-control-space) !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-os-version: windows-win7) and (min-width: 1100px), + screen and (-moz-os-version: windows-win8) and (min-width: 1100px), + screen and (-moz-os-version: windows-win10) and (min-width: 1100px), + screen and (-moz-platform: windows) and (min-width: 1100px) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-drag-space-pre) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-control-space) !important; + } + } + } + } + } + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) and (max-width: 1100px) { + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: var(--uc-window-control-space); + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-drag-space-pre) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-control-space) !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement: 0) and (min-width: 1100px) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-drag-space-pre) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-control-space) !important; + } + } + } + } + } + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (max-width: 1100px) { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-control-space, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-control-space, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + #TabsToolbar { + margin-inline-start: var(--uc-window-control-width, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + #TabsToolbar { + margin-inline-start: var(--uc-window-control-width, 0px) !important; + } + } + } + } + } + } + @media (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (max-width: 1100px) { + #nav-bar { + border-inline-start-width: var(--uc-window-control-space); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-control-space, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-start: var(--uc-window-control-space, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #nav-bar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + #TabsToolbar { + margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important; + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + #TabsToolbar { + margin-inline-start: var(--uc-window-control-width, 0px) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (-moz-gtk-csd-available) and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) { + #TabsToolbar { + margin-inline-start: var(--uc-window-control-width, 0px) !important; + } + } + } + } + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container:last-child, + :root[sizemode="fullscreen"] #window-controls { + right: unset; + } + } + } + } +} +/*= Tab Bar - Show only current tab ==========================================*/ +@supports -moz-bool-pref("userChrome.tabbar.as_titlebar") { + :root:not([tabsintitlebar="true"]) #tabbrowser-tabs, + #scrollbutton-up, + #scrollbutton-down, + .titlebar-spacer[type="pre-tabs"], + spacer:is([part="overflow-start-indicator"], [part="overflow-end-indicator"]), + .tabbrowser-tab:not([selected="true"]), + .tabbrowser-tab[selected="true"] .tab-background, + .tabbrowser-tab[selected="true"] .tab-stack:is(::before, ::after), + .tabbrowser-tab[selected="true"] .tab-close-button, + #tabs-newtab-button { + display: none !important; + } + .tabbrowser-tab[selected="true"] { + -moz-window-dragging: drag; + --tab-max-width: 100vw; + min-width: calc(var(--uc-tabbar-width, 100vw) - var(--uc-window-control-space)) !important; + max-width: var(--tab-max-width) !important; + margin-inline-start: calc(var(--tab-shadow-max-size) * -1) !important; + } + .tabbrowser-tab[selected="true"][pinned="true"] { + flex: 100; + -moz-box-flex: 100; + max-width: var(--tab-max-width) !important; + } + .tabbrowser-tab[selected="true"] .tab-label-container { + margin-inline: 0 !important; + } + .tab-content { + margin-inline: auto; + width: 100%; + } + /* Pinned */ + #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned][selected="true"] { + position: relative !important; + } + #tabbrowser-tabs { + --tab-overflow-pinned-tabs-width: 0 !important; + padding-inline: 0 !important; /* Original: var(--tab-overflow-pinned-tabs-width) 0; */ + } + .tab-throbber[pinned], + .tab-icon-pending[pinned], + .tab-icon-image[pinned], + .tab-sharing-icon-overlay[pinned], + .tab-icon-overlay[pinned] { + margin-inline-end: 5.5px; + } + .tab-label-container[pinned] { + width: unset !important; + } + /* Padding */ + @supports not -moz-bool-pref("userChrome.centered.tab") { + #tabbrowser-arrowscrollbox { + margin-inline: 2px !important; + } + :root[sizemode="normal"] #tabbrowser-arrowscrollbox { + margin-inline: 6px !important; + } + } + @supports -moz-bool-pref("userChrome.centered.tab") { + @supports -moz-bool-pref("userChrome.centered.tab.label") { + #tabbrowser-arrowscrollbox { + margin-inline: 2px !important; + } + :root[sizemode="normal"] #tabbrowser-arrowscrollbox { + margin-inline: 6px !important; + } + } + } + @supports -moz-bool-pref("browser.tabs.tabmanager.enabled") { + :root:not([tabsintitlebar="true"]) #tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button, + :root:not([tabsintitlebar="true"]) + #tabbrowser-tabs[hasadjacentnewtabbutton]:not([overflow="true"]) + ~ #new-tab-button { + display: flex !important; + display: -moz-box !important; + } + } +} +/*= Tab Bar - Multi Row ======================================================*/ +@supports -moz-bool-pref("userChrome.tabbar.multi_row") { + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/multi-row_tabs.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + :root { + --uc-multirow-tabbar-rows: 3; + --uc-multirow-tab-dynamic-width: 1; /* Change to 0 for fixed-width tabs using the above width. */ + } + #tabbrowser-tabs { + min-height: unset !important; + padding-inline-start: 0px !important; + } + @-moz-document url("chrome://browser/content/browser.xhtml") + { + #scrollbutton-up ~ spacer, + #scrollbutton-up, + #scrollbutton-down { + display: var(--scrollbutton-display-model, initial); + } + scrollbox[part][orient="horizontal"] { + display: flex; + flex-wrap: wrap; + overflow-y: auto; + max-height: calc((var(--tab-min-height) + 2 * var(--tab-block-margin, 0px)) * var(--uc-multirow-tabbar-rows)); + } + } + .scrollbox-clip[orient="horizontal"], + #tabbrowser-arrowscrollbox { + overflow: -moz-hidden-unscrollable; + display: block; + --scrollbutton-display-model: none; + } + #tabbrowser-tabs .tabbrowser-tab[pinned] { + position: static !important; + margin-inline-start: 0px !important; + } + .tabbrowser-tab[fadein]:not([pinned]) { + flex-grow: var(--uc-multirow-tab-dynamic-width); + } + .tabbrowser-tab > stack { + width: 100%; + height: 100%; + } + /* remove bottom margin so it doesn't throw off row height computation */ + #tabs-newtab-button { + margin-bottom: 0 !important; + } + #tabbrowser-tabs[hasadjacentnewtabbutton][overflow="true"] + > #tabbrowser-arrowscrollbox + > #tabbrowser-arrowscrollbox-periphery + > #tabs-newtab-button { + display: flex !important; + display: -moz-box !important; + } + #alltabs-button, + :root:not([customizing]) #TabsToolbar #new-tab-button, + #tabbrowser-arrowscrollbox > spacer, + .tabbrowser-tab::after { + display: none !important; + } +} +/*= Tab Bar - Scollmode disabled =============================================*/ +@supports -moz-bool-pref("userChrome.tabbar.unscroll") { + /* Disable scrollbox */ + spacer[part="overflow-start-indicator"] + .scrollbox-clip > scrollbox { + overflow: -moz-hidden-unscrollable !important; + } + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([pinned]):not([visuallyselected]) { + /* Set minimum width below which tabs will not shrink */ + --tab-min-width: 16px; + container-type: inline-size; + container-name: backgroundTab; + } + @container backgroundTab (max-width: 46px) { + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([pinned]):not([visuallyselected]) .tab-content { + --inline-tab-padding: 0px; + justify-self: center; + } + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:not([pinned]):not([visuallyselected]) + .tab-icon-stack + > * { + margin-inline-end: 0 !important; + } + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:not([pinned]):not([visuallyselected]) + .tab-label-container, + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:not([pinned]):not([visuallyselected]):hover + .tab-close-button { + visibility: collapse !important; + } + } + #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #tabbrowser-arrowscrollbox-periphery { + position: absolute !important; + right: 0; + top: 50%; + transform: translateY(-50%); + } + #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] + #tabbrowser-arrowscrollbox-periphery + > #tabs-newtab-button { + z-index: 2 !important; + } + #tabbrowser-tabs[closebuttons="activetab"][hasadjacentnewtabbutton="true"] #tabbrowser-arrowscrollbox { + padding-inline-end: calc( + 16px + (var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) * 2 + ) !important; + } +} +/*= Tab Bar - Fill width tab =================================================*/ +@supports -moz-bool-pref("userChrome.tabbar.fill_width") { + /* Why 100vw? Tab closing requires width animation to end and "none" can't be animated */ + .tabbrowser-tab[fadein]:not([style^="max-width"]) { + --tab-max-width: 100vw; + max-width: var(--tab-max-width) !important; + } +} +/** Tab UI ********************************************************************/ +/*= Tab - Connect to window ==============================================*/ +@supports -moz-bool-pref("userChrome.tab.connect_to_window") { + #tabbrowser-tabs[orient="vertical"] { + --uc-tab-border-bottom-radius: var(--tab-border-radius); + } + .tab-background { + border-radius: var(--tab-border-radius) var(--tab-border-radius) var(--uc-tab-border-bottom-radius, 0px) + var(--uc-tab-border-bottom-radius, 0px) !important; + margin-bottom: 0px !important; + } + .tab-content { + margin-top: var(--tab-block-margin); + } + .tab-stack { + margin-top: 0px !important; + margin-bottom: 0px !important; + } + /* Remove line at Toolbar's top */ + #tabbrowser-tabs { + z-index: 1 !important; + } + @supports not -moz-bool-pref("userChrome.tabbar.multi_row") { + #TabsToolbar:not([multibar]) { + overflow: clip; /* Prevent toolbar area over */ + } + } + /* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ + #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { + z-index: 0 !important; + } + #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] .tab-stack { + /* Temporary solution for compatibility #513 */ + overflow-y: clip; + } +} +/*= Selected Tab =============================================================*/ +/*= Selected Tab - Bold ======================================================*/ +@supports not -moz-bool-pref("userChrome.tab.selected_bold") { + .tab-label:is([selected], [attention]) { + font-weight: 400 !important; + } +} +@supports -moz-bool-pref("userChrome.tab.selected_bold") { + .tab-label:is([selected], [attention]) { + font-weight: 600; + } +} + +/*= Selected Tab - Color like toolbar ========================================*/ +@supports -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root:not(:-moz-lwtheme) { + /* Fix for windows's system default theme. Using --toolbar-bgcolor, --toolbar-bgimage fallback */ + --tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */ + --tab-selected-bgimage: unset !important; /* Above FF v101 */ + } + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected="true"]:-moz-lwtheme { + /* Original: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) + */ + background-image: linear-gradient(transparent, transparent), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; + } + @supports -moz-bool-pref("userChrome.theme.transparent.frame") { + :root:not([lwtheme-image]) + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[selected="true"]:-moz-lwtheme { + background-image: linear-gradient(transparent, transparent), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-additional-images, none) !important; + background-repeat: repeat-x, repeat-x, var(--lwt-background-tiling) !important; + background-position: 0 0, 0 0, var(--lwt-background-alignment) !important; + } + } +} +/*= Multi Selected Color - More Contrast =====================================*/ +@supports -moz-bool-pref("userChrome.tab.multi_selected") { + #TabsToolbar { + --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 28%, var(--toolbar-bgcolor, transparent)); + } + #TabsToolbar[brighttext] { + --uc-multiselected-tab-bgcolor: color-mix(in srgb, currentColor 16%, var(--toolbar-bgcolor, transparent)); + } + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]) { + /* Original: + background-attachment: scroll, scroll, fixed; + background-color: transparent; + background-image: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), + var(--lwt-header-image, none); + background-position: 0 0, 0 0, right top; + background-repeat: repeat-x, repeat-x, no-repeat; + background-size: auto 100%, auto 100%, auto auto; + */ + background-attachment: scroll, fixed !important; + background-color: transparent !important; + background-image: linear-gradient(var(--uc-multiselected-tab-bgcolor), var(--uc-multiselected-tab-bgcolor)), + var(--lwt-header-image, none) !important; + background-position: 0 0, right top !important; + background-repeat: repeat-x, no-repeat !important; + background-size: auto 100%, auto auto !important; + } + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + .tab-background[multiselected="true"] { + outline: none !important; + } + } + @supports not -moz-bool-pref("userChrome.tab.connect_to_window") { + /* Backport from FF 99 */ + .tab-background[multiselected="true"] { + outline: 1px solid color-mix(in srgb, var(--focus-outline-color, currentColor) 40%, transparent); + outline-offset: -1px; + } + .tab-background[multiselected="true"][selected="true"] { + outline-width: 2px; + outline-offset: -2px; + } + } +} +/*= Selected Tab - Box Shadow ================================================*/ +@supports -moz-bool-pref("userChrome.tab.box_shadow") { + #TabsToolbar { + --uc-tab-shadow-color: var( + --tab-line-color, + var(--lwt-tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9))) + ); + --uc-tab-shadow-color-bundle: var(--tab-line-color, var(--lwt-tab-line-color, rgba(128, 128, 142, 0.9))); + } + #tabbrowser-tabs:not([noshadowfortests]) .tab-background:is([selected], [multiselected]) { + box-shadow: unset !important; + filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4)); + } + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([selected], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + filter: drop-shadow(0 0 1px var(--uc-tab-shadow-color, transparent)); + } + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[visuallyselected="true"]:not(:focus), + :root:is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[multiselected]:not([visuallyselected]) { + --uc-tab-shadow-color: var(--toolbar-color); + } + /* For themes outside of Light and Dark (which are curated by Mozilla), show a thicker border + around the tab to help themes that are dependent on tab_line to show the selected tab. */ + :root:not( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] + ) + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + --uc-tab-shadow-color: var(--uc-tab-shadow-color-bundle); + filter: drop-shadow(-1px 0px 0px var(--uc-tab-shadow-color, transparent)) + drop-shadow(1px -1px 0px var(--uc-tab-shadow-color, transparent)) drop-shadow(0 0 2px rgba(128, 128, 142, 0.5)); + } + :root:not( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + filter: drop-shadow(-1px 0px 0px var(--uc-tab-shadow-color, transparent)) + drop-shadow(1px -1px 0px var(--uc-tab-shadow-color, transparent)); + } +} +/*= Selected Tab - Bottom Rounded Corner =====================================*/ +@supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") { + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.australis") { + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") { + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") { + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + #TabsToolbar { + --uc-tab-corner-rounding: 3px; /* 10px looks about like chromium - 17px looks close to Australis tabs */ + --uc-tab-corner-padding: 0px; + --uc-tab-corner-position: calc(var(--uc-tab-corner-padding) - var(--uc-tab-corner-rounding)); + --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left.svg"); + --uc-tab-corner-right-side-svg: url("../icons/tab-bottom-corner-right.svg"); + } + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::before, + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::after { + /* Box */ + display: block; + position: absolute; + z-index: 1; + bottom: 0; + /* Shape */ + width: var(--uc-tab-corner-rounding); + height: 100%; + /* Color */ + fill: transparent; + stroke: transparent; + -moz-context-properties: fill, stroke; + /* Image */ + background-size: var(--uc-tab-corner-rounding); + background-repeat: no-repeat; + background-position-y: bottom; + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::before, + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::after { + content: ""; + } + } + @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::before, + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::after { + /* Based on tab background + background-image: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none); + + defaults + background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)); + background-image: var(--tab-selected-bgimage, var(--toolbar-bgimage)); + */ + fill: var( + --lwt-selected-tab-background-color, + var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) + ) !important; + } + } + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::before { + left: var(--uc-tab-corner-position); + background-image: var(--uc-tab-corner-left-side-svg); + } + :root:not([customizing="true"]) .tabbrowser-tab .tab-background::after { + right: var(--uc-tab-corner-position); + background-image: var(--uc-tab-corner-right-side-svg); + } + :root:not([customizing="true"]) .tabbrowser-tab[visuallyselected] .tab-background::before, + :root:not([customizing="true"]) .tabbrowser-tab[visuallyselected] .tab-background::after { + fill: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)); + stroke: var(--tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9))); + } + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + :root:not([customizing="true"]) .tabbrowser-tab[visuallyselected] .tab-background::before, + :root:not([customizing="true"]) .tabbrowser-tab[visuallyselected] .tab-background::after { + content: ""; + } + } + :root:not([customizing="true"]) .tabbrowser-tab[multiselected] .tab-background::before, + :root:not([customizing="true"]) .tabbrowser-tab[multiselected] .tab-background::after { + fill: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)); + } + :root:not([customizing="true"]) + .tabbrowser-tab:hover:not([visuallyselected], [multiselected]) + .tab-background::before, + :root:not([customizing="true"]) + .tabbrowser-tab:hover:not([visuallyselected], [multiselected]) + .tab-background::after { + fill: color-mix(in srgb, currentColor 11%, transparent); + } + @supports -moz-bool-pref("userChrome.tab.multi_selected") { + :root:not([customizing="true"]) + .tabbrowser-tab[multiselected]:not([visuallyselected]) + .tab-background::before, + :root:not([customizing="true"]) + .tabbrowser-tab[multiselected]:not([visuallyselected]) + .tab-background::after { + fill: color-mix(in srgb, currentColor 65%, transparent); + opacity: 0.3; + } + } + :root:not([customizing="true"])::is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[visuallyselected] + .tab-background:-moz-lwtheme::before, + :root:not([customizing="true"])::is( + [lwtheme-mozlightdark], + [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] + ) + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[visuallyselected] + .tab-background:-moz-lwtheme::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color); + } + @media (-moz-gtk-csd-available) { + :root:not([customizing="true"]) { + /* Fill color for GTK */ + } + :root:not([customizing="true"]):not([lwtheme="true"]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + .tab-background::before, + :root:not([customizing="true"]):not([lwtheme="true"]) + .tabbrowser-tab:is([visuallyselected], [multiselected]) + .tab-background::after { + /* As GTK Toolbar's background-color + background-image + * --toolbar-non-lwt-bgcolor: -moz-dialog; + * --toolbar-non-lwt-bgimage: linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,.15)); + */ + fill: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog); + stroke: transparent; + opacity: 1; + } + :root:not([customizing="true"]):not([lwtheme="true"]) + #TabsToolbar[brighttext] + .tabbrowser-tab[visuallyselected] + .tab-background::before, + :root:not([customizing="true"]):not([lwtheme="true"]) + #TabsToolbar[brighttext] + .tabbrowser-tab[visuallyselected] + .tab-background::after { + stroke: transparent; + } + } + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.australis" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.chrome" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + #TabsToolbar { + --uc-tab-corner-height: calc(var(--tab-min-height) + 1px); + --uc-tab-corner-size: var(--uc-tab-corner-height); + --uc-tab-corner-half-size: calc(var(--uc-tab-corner-size) / 2); + --uc-tab-corner-half-size-reverse: calc(var(--uc-tab-corner-half-size) * -1); + --uc-tab-corner-bgimage: none; + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") { + #TabsToolbar { + --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-wave.svg"); + --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-wave.svg#svgClipPath"); + --uc-tab-corner-right-side-svg: url("../icons/tab-bottom-corner-right-wave.svg"); + --uc-tab-corner-right-side-clipPath: url("../icons/tab-bottom-corner-right-wave.svg#svgClipPath"); + --uc-tab-corner-left-side-svg-clipped: url("../icons/tab-bottom-corner-left-wave-clipped.svg"); + --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-wave-clipped.svg"); + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.australis") { + #TabsToolbar { + --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-australis.svg"); + --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-australis.svg#svgClipPath"); + --uc-tab-corner-right-side-svg: url("../icons/tab-bottom-corner-right-australis.svg"); + --uc-tab-corner-right-side-clipPath: url("../icons/tab-bottom-corner-right-australis.svg#svgClipPath"); + --uc-tab-corner-left-side-svg-clipped: url("../icons/tab-bottom-corner-left-australis-clipped.svg"); + --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-australis-cilpped.svg"); + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") { + #TabsToolbar { + --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-chrome.svg"); + --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-chrome.svg#svgClipPath"); + --uc-tab-corner-right-side-svg: url("../icons/tab-bottom-corner-right-chrome.svg"); + --uc-tab-corner-right-side-clipPath: url("../icons/tab-bottom-corner-right-chrome.svg#svgClipPath"); + --uc-tab-corner-left-side-svg-clipped: url("../icons/tab-bottom-corner-left-chrome-clipped.svg"); + --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-chrome-clipped.svg"); + --uc-tab-corner-size: 16px; + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") { + #TabsToolbar { + --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-chromeLegacy.svg"); + --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-chromeLegacy.svg#svgClipPath"); + --uc-tab-corner-right-side-svg: url("../icons/tab-bottom-corner-right-chromeLegacy.svg"); + --uc-tab-corner-right-side-clipPath: url("../icons/tab-bottom-corner-right-chromeLegacy.svg#svgClipPath"); + --uc-tab-corner-left-side-svg-clipped: url("../icons/tab-bottom-corner-left-chromeLegacy-clipped.svg"); + --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-chromeLegacy-clipped.svg"); + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + #TabsToolbar { + --uc-tab-corner-left-side-svg: url("../icons/tab-bottom-corner-left-edge.svg"); + --uc-tab-corner-left-side-clipPath: url("../icons/tab-bottom-corner-left-edge.svg#svgClipPath"); + --uc-tab-corner-right-side-svg: url("../icons/tab-bottom-corner-right-edge.svg"); + --uc-tab-corner-right-side-clipPath: url("../icons/tab-bottom-corner-right-edge.svg#svgClipPath"); + --uc-tab-corner-left-side-svg-clipped: url("../icons/tab-bottom-corner-left-edge-clipped.svg"); + --uc-tab-corner-right-side-svg-clipped: url("../icons/tab-bottom-corner-right-edge-clipped.svg"); + --uc-tab-corner-size: 14px; + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + .tabbrowser-tab { + padding-inline: 0 !important; + overflow-clip-margin: var(--uc-tab-corner-half-size) !important; + } + .tabbrowser-tab .tab-background { + --tab-border-radius: 0px; + margin-inline: var(--uc-tab-corner-half-size) !important; + position: relative; + } + } + @supports not -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + .tabbrowser-tab[visuallyselected] { + padding-inline: 0 !important; + overflow-clip-margin: var(--uc-tab-corner-half-size) !important; + } + .tabbrowser-tab[visuallyselected] .tab-background { + --tab-border-radius: 0px; + margin-inline: var(--uc-tab-corner-half-size) !important; + position: relative; + } + .tabbrowser-tab[visuallyselected] .tab-background::before, + .tabbrowser-tab[visuallyselected] .tab-background::after { + content: ""; + } + } + .tabbrowser-tab .tab-background::before, + .tabbrowser-tab .tab-background::after { + /* Box */ + display: block; + position: absolute; + z-index: -1; + bottom: -1px; + /* Shape */ + width: var(--uc-tab-corner-size); + height: var(--uc-tab-corner-height); + /* Color */ + fill: transparent; + -moz-context-properties: fill; + /* Image */ + background-size: cover, auto auto; + background-repeat: no-repeat, no-repeat; + background-position: bottom, right top; + background-attachment: scroll, fixed; + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.all") { + .tabbrowser-tab .tab-background::before, + .tabbrowser-tab .tab-background::after { + content: ""; + } + } + @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + .tabbrowser-tab .tab-background::before, + .tabbrowser-tab .tab-background::after { + /* Based on tab background + background-image: linear-gradient(var(--lwt-selected-tab-background-color, transparent), var(--lwt-selected-tab-background-color, transparent)), linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none); + + defaults + background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)); + background-image: var(--tab-selected-bgimage, var(--toolbar-bgimage)); + */ + fill: var(--lwt-selected-tab-background-color, var(--tab-selected-bgcolor, var(--toolbar-bgcolor))) !important; + } + } + .tabbrowser-tab .tab-background::before { + right: 100%; + background-image: var(--uc-tab-corner-left-side-svg), var(--uc-tab-corner-bgimage); + clip-path: var(--uc-tab-corner-left-side-clipPath); + } + .tabbrowser-tab .tab-background::after { + left: 100%; + background-image: var(--uc-tab-corner-right-side-svg), var(--uc-tab-corner-bgimage); + clip-path: var(--uc-tab-corner-right-side-clipPath); + } + .tabbrowser-tab:has(+ .tabbrowser-tab[visuallyselected]) .tab-background::after { + --uc-tab-corner-right-side-svg: var(--uc-tab-corner-right-side-svg-clipped); + } + .tabbrowser-tab[visuallyselected] + .tabbrowser-tab .tab-background::before { + --uc-tab-corner-left-side-svg: var(--uc-tab-corner-left-side-svg-clipped); + } + .tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background { + --uc-tab-corner-bgimage: var(--lwt-header-image, none); + } + .tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background::before, + .tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background::after { + fill: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)); + } + .tabbrowser-tab:hover:not([visuallyselected], [multiselected]) .tab-background::before, + .tabbrowser-tab:hover:not([visuallyselected], [multiselected]) .tab-background::after { + fill: color-mix(in srgb, currentColor 11%, transparent); + } + @supports -moz-bool-pref("userChrome.tab.multi_selected") { + .tabbrowser-tab[multiselected]:not([visuallyselected]) .tab-background::before, + .tabbrowser-tab[multiselected]:not([visuallyselected]) .tab-background::after { + fill: var(--uc-multiselected-tab-bgcolor); + } + } + #tabbrowser-tabs[movingtab] .tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background:-moz-lwtheme { + --uc-tab-corner-bgimage: none; + } + @media (-moz-gtk-csd-available) { + /* Fill color for GTK */ + @supports -moz-bool-pref("userChrome.tab.box_shadow") { + :root:not([lwtheme="true"]) .tabbrowser-tab { + --uc-tab-shadow-color: rgba(0, 0, 0, 0.4); + } + } + :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background { + background-clip: content-box; + } + :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background::before, + :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background::after { + /* As GTK Toolbar's background-color + background-image + * --toolbar-non-lwt-bgcolor: -moz-dialog; + * --toolbar-non-lwt-bgimage: linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,.15)); + */ + --uc-tab-corner-bgimage: linear-gradient(var(--toolbar-non-lwt-bgcolor), var(--toolbar-non-lwt-bgcolor)); + fill: rgba(255, 255, 255, 0.075); + } + @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background::before, + :root:not([lwtheme="true"]) .tabbrowser-tab[visuallyselected] .tab-background::after { + fill: rgba(255, 255, 255, 0.15); + } + } + } + #tabbrowser-tabs[positionpinnedtabs], + #tabbrowser-tabs:not([overflow]) .tabbrowser-tab:first-of-type, + #tabbrowser-tabs[overflow] + .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) { + margin-left: var(--uc-tab-corner-half-size) !important; + } + .tabbrowser-tab:last-of-type { + margin-right: var(--uc-tab-corner-half-size) !important; + } + } +} +/*= Selected Tab - Photon like contextline ===================================*/ +@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") or -moz-bool-pref("userChrome.tab.static_separator") or -moz-bool-pref( + "userChrome.tab.bar_separator" + ) { + :root[lwtheme-mozlightdark] #tabbrowser-tabs, + :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], + :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { + --tab-line-color: rgb(10, 132, 255) !important; + } + @media (-moz-gtk-csd-available) { + :root:not(:-moz-lwtheme) #tabbrowser-tabs { + --tab-line-color: Highlight !important; /* -moz-accent-color */ + } + } +} +@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") { + .tab-context-line { + display: inline-flex !important; + display: -moz-inline-box !important; + height: 2px !important; + border-radius: var(--tab-border-radius, 4px) var(--tab-border-radius, 4px) 0 0 !important; + } + .tabbrowser-tab:is([selected], [multiselected]) .tab-context-line { + /* Photon like color + Default: var(--tab-line-color, rgb(10, 132, 255)) + Automatic: color-mix(in srgb, var(--button-primary-bgcolor) 80%, transparent) + + FF v96+ replace by var(--lwt-tab-line-color) */ + background-color: var(--tab-line-color, var(--lwt-tab-line-color, rgb(10, 132, 255))) !important; + } + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) > .tab-stack > .tab-background > .tab-context-line { + background-color: rgba(0, 0, 0, 0.2) !important; + opacity: 1 !important; + transform: none !important; + } + #TabsToolbar[brighttext] + .tabbrowser-tab:hover:not([selected="true"], [multiselected]) + > .tab-stack + > .tab-background + > .tab-context-line { + background-color: rgba(255, 255, 255, 0.2) !important; + } + /* Prevent identity color flashing */ + .tabbrowser-tab[usercontextid] .tab-context-line { + --identity-icon-color: none; + } + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; + } + /* Animation */ + .tabbrowser-tab:not([selected="true"], [multiselected]) .tab-context-line { + opacity: 0 !important; + transform: scaleX(0) !important; + } + @media (prefers-reduced-motion: no-preference) { + .tabbrowser-tab:not([selected="true"], [multiselected]) .tab-context-line { + transition: transform 250ms var(--animation-easing-function), opacity 250ms var(--animation-easing-function) !important; /* --animation-easing-function: cubic-bezier(.07, .95, 0, 1); */ + } + } + /* Remove side's background color border */ + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + --tabs-border-color: rgba(0, 0, 0, 0.3) !important; + box-shadow: 0 0 1px var(--tabs-border-color) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) */ + } + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tabs-border-color), 0 0 4px rgba(128, 128, 142, 0.5) !important; /* Original: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ + } + /* Container Tab */ + .tabbrowser-tab[usercontextid] > .tab-stack > .tab-background > .tab-context-line { + margin: unset !important; + } +} +/*= Unselected Tab - Divide line =============================================*/ +/*= Unselected Tab - Dynamic Separator =======================================*/ +@supports -moz-bool-pref("userChrome.tab.dynamic_separator") { + #tabbrowser-arrowscrollbox { + --start-tab-separator-position-x: -1.5px; + --end-tab-separator-position-x: 1.5px; + --tab-separator-position-x: -2.5px; + --tab-separator-position-y: calc(-50% + 1px); + } + #tabbrowser-arrowscrollbox:-moz-locale-dir(rtl) { + --start-tab-separator-position-x: 1.5px; + --end-tab-separator-position-x: -1.5px; + --tab-separator-position-x: 2.5px; + } + #tabbrowser-arrowscrollbox-periphery { + position: relative; + } + @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + .tab-stack::before, + #tabs-newtab-button::before { + /* Box Model */ + content: ""; + display: block; + position: absolute; + /* Position */ + top: 50%; + /* Bar shape */ + width: 1px; + height: 20px; + /* Bar Color */ + opacity: 0; + background-color: var(--toolbarseparator-color); + /* More position */ + transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)); + } + @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { + .tab-stack::before, + #tabs-newtab-button::before { + background-color: var(--tabs-border-color); + } + } + #tabs-newtab-button::before { + left: calc(50% - (8px + var(--toolbarbutton-inner-padding))); + } + } + @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + .tab-stack::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type + .tab-stack::after { + /* Box Model */ + content: ""; + display: block; + position: absolute; + /* Position */ + top: 50%; + /* Bar shape */ + width: 1px; + height: 20px; + /* Bar Color */ + opacity: 0; + background-color: var(--toolbarseparator-color); + } + @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { + .tab-stack::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type + .tab-stack::after { + background-color: var(--tabs-border-color); + } + } + .tab-stack::before { + transform: translateX(var(--tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; + } + .tabbrowser-tab:last-of-type .tab-stack::after { + right: 0; + transform: translateX(var(--end-tab-separator-position-x)) translateY(var(--tab-separator-position-y)) !important; + } + } + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-of-type) .tab-stack::before { + opacity: var(--tab-separator-opacity); + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + opacity: var(--tab-separator-opacity); + transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):first-of-type .tab-stack::before { + opacity: var(--tab-separator-opacity); + transform: translateX(var(--start-tab-separator-position-x)) translateY(var(--tab-separator-position-y)); + } + } + } + } + } + @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #tabs-newtab-button:not(:hover, [open])::before { + opacity: var(--tab-separator-opacity); + } + } + @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type + .tab-stack::after { + opacity: var(--tab-separator-opacity); + } + } + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))):is( + [visuallyselected], + [multiselected], + :hover + ) + .tab-stack::before, + #navigator-toolbox:not([movingtab]) + #tabbrowser-arrowscrollbox[overflowing] + tab.tabbrowser-tab:is([first-visible-unpinned-tab], :nth-child(1 of :not([pinned], [hidden]))) + .tab-stack::before { + opacity: 0 !important; + } + @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + + .tabbrowser-tab + .tab-stack::before, + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) + ~ #tabs-newtab-button::before, + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:last-of-type:is([visuallyselected], [multiselected], :hover) + ~ #tabbrowser-arrowscrollbox-periphery + #tabs-newtab-button::before { + opacity: 0 !important; + } + } + @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + + .tabbrowser-tab:not([visuallyselected]) + .tab-stack::before { + opacity: 0 !important; + } + :root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 2px; + } + :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 1px; + } + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + .tab-stack::before { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #tabs-newtab-button::before { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + } + @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover):last-of-type + .tab-stack::after { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + } + } + /* Latest Tab & New tab margin */ + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab:last-of-type { + margin-inline-end: 1px !important; + } +} +/*= Unselected Tab - Static Separator ========================================*/ +@supports -moz-bool-pref("userChrome.tab.static_separator") { + #TabsToolbar { + --toolbarseparator-color: color-mix(in srgb, currentColor 30%, transparent); + } + .tab-stack::before, + .tabbrowser-tab:last-of-type .tab-stack::after { + content: ""; + } + .tab-stack::before, + .tab-stack::after { + /* Box Model */ + display: block; + position: absolute; + /* Position */ + top: 50%; + transform: translateY(-50%); + z-index: 1; + /* Bar shape */ + width: 0px; + height: 100%; + /* Bar Color */ + border-right: 1px solid var(--toolbarseparator-color); + } + .tab-stack::after { + right: 0; + } + @supports -moz-bool-pref("userChrome.tab.static_separator.selected_accent") { + .tabbrowser-tab[visuallyselected] .tab-stack::before, + .tabbrowser-tab[visuallyselected] + .tabbrowser-tab .tab-stack::before, + .tabbrowser-tab[visuallyselected] .tab-stack::after { + --toolbarseparator-color: var(--tab-line-color, var(--lwt-tab-line-color, rgb(10, 132, 255))); + } + } + @supports not -moz-bool-pref("userChrome.tab.static_separator.selected_accent") { + .tabbrowser-tab[visuallyselected] .tab-stack::before, + .tabbrowser-tab[visuallyselected] + .tabbrowser-tab .tab-stack::before, + .tabbrowser-tab[visuallyselected] .tab-stack::after { + opacity: 0; + } + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + .tab-stack::before, + .tab-stack::after { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + } +} +/*= Unselected Tab - Bar Separator ===========================================*/ +@supports -moz-bool-pref("userChrome.tab.bar_separator") { + .tab-stack::before { + /* Box Model */ + content: ""; + display: block; + position: absolute; + /* Position */ + top: 50%; + left: 0%; + transform: translateX(calc((var(--inline-tab-padding) - 5px) / 2)) translateY(calc(-50% + var(--tab-block-margin))); + z-index: 1; + /* Bar shape */ + width: 3px; + height: 20px; + /* Bar Color */ + background-color: var( + --uc-bar-separator-color, + var(--tab-line-color, var(--lwt-tab-line-color, rgb(10, 132, 255))) + ); + } + @media (prefers-reduced-motion: no-preference) { + .tab-stack::before { + transition-property: opacity, background-color; + transition-duration: 0.2s; + transition-timing-function: var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + } + :root[sessionrestored] .tabbrowser-tab[busy] .tab-stack::before { + --uc-bar-separator-color: currentColor; + opacity: 0.7; + } + :root[sessionrestored] .tabbrowser-tab[busy][progress] .tab-stack::before { + --uc-bar-separator-color: var(--tab-loading-fill); + opacity: 1; + } + :root[sessionrestored] + #TabsToolbar[brighttext] + .tabbrowser-tab[busy][progress]:not([selected="true"]) + .tab-stack::before { + --uc-bar-separator-color: var(--lwt-tab-loading-fill-inactive, #84c1ff); + } + @supports -moz-bool-pref("userChrome.tab.unloaded") { + :root[sessionrestored] .tabbrowser-tab[pending] .tab-stack::before { + opacity: 0.7; + } + } +} +/*= New tab button ============================================================*/ +/*= New tab button - Looks like tab ==========================================*/ +@supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + #tabs-newtab-button { + /* Size */ + align-items: stretch !important; + -moz-box-align: stretch !important; + padding-top: var(--tab-block-margin) !important; + } + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + #tabs-newtab-button { + /* Original: + margin: 0 0 var(--tabs-navbar-shadow-size) !important + => Can't override style. Therefore, we should approach it by bypass. + */ + --tabs-navbar-shadow-size: -1px; /* Original: 1px */ + --uc-tabs-navbar-shadow-size: 0.5px; + --uc-tab-corner-rounding: 4px; /* Hardcoded */ + --uc-newtab-bgcolor: transparent; + /* Corner Rounding Image */ + --uc-newtab-position: calc((var(--uc-tab-corner-rounding) / 2) * -1); + background-image: var(--uc-tab-corner-left-side-svg), var(--uc-tab-corner-right-side-svg); + background-repeat: no-repeat; + background-position: left var(--uc-newtab-position) bottom var(--uc-tabs-navbar-shadow-size), + right var(--uc-newtab-position) bottom var(--uc-tabs-navbar-shadow-size); + background-size: var(--uc-tab-corner-rounding); + /* Corner Rounding Color */ + fill: var(--uc-newtab-bgcolor) !important; + -moz-context-properties: fill !important; + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.australis" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.chrome" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + #tabs-newtab-button { + --uc-newtab-position: 0px; + --uc-newtab-non-corner-bgwidth: 0px; + --uc-tab-corner-half-height: calc(var(--uc-tab-corner-height) / 2); + --uc-tab-corner-half-height-reverse: calc(var(--uc-tab-corner-half-height) * -1); + transform: translateX(var(--uc-tab-corner-half-height-reverse)); + padding-inline: var(--uc-tab-corner-half-height) !important; + overflow-clip-margin: var(--uc-tab-corner-half-height) !important; + background-image: var(--uc-tab-corner-left-side-svg), + linear-gradient(to left, var(--uc-newtab-bgcolor), var(--uc-newtab-bgcolor)), + var(--uc-tab-corner-right-side-svg); + background-position: left var(--uc-newtab-position) bottom var(--uc-tabs-navbar-shadow-size), + center bottom var(--uc-tabs-navbar-shadow-size), + right var(--uc-newtab-position) bottom var(--uc-tabs-navbar-shadow-size); + background-size: var(--uc-tab-corner-height) var(--uc-tab-corner-height), + var(--uc-newtab-non-corner-bgwidth) var(--uc-tab-corner-height), + var(--uc-tab-corner-height) var(--uc-tab-corner-height); + background-origin: padding-box; + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome") or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + #tabs-newtab-button { + --uc-newtab-non-corner-bgwidth: calc(2 * var(--toolbarbutton-inner-padding)); + } + } + } + } + /* Corner Rounding Color */ + #tabs-newtab-button:hover { + --uc-newtab-bgcolor: var(--toolbarbutton-hover-background); + } + #tabs-newtab-button:hover:active { + --uc-newtab-bgcolor: var(--toolbarbutton-active-background); + } + @media (-moz-windows-accent-color-in-titlebar) { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + fill: color-mix(in srgb, AccentColorText 10%, transparent) !important; /* Hardcoded for compatibility */ + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover:active, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover:active { + fill: color-mix(in srgb, AccentColorText 15%, transparent) !important; /* Hardcoded for compatibility */ + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.australis" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.chrome" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + background-image: var(--uc-tab-corner-left-side-svg), + linear-gradient( + to left, + color-mix(in srgb, AccentColorText 10%, transparent), + color-mix(in srgb, AccentColorText 10%, transparent) + ), + var(--uc-tab-corner-right-side-svg); + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover:active, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabs-newtab-button:hover:active { + background-image: var(--uc-tab-corner-left-side-svg), + linear-gradient( + to left, + color-mix(in srgb, AccentColorText 15%, transparent), + color-mix(in srgb, AccentColorText 15%, transparent) + ), + var(--uc-tab-corner-right-side-svg); + } + } + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + fill: color-mix( + in srgb, + -moz-accent-color-foreground 10%, + transparent + ) !important; /* Hardcoded for compatibility */ + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover:active, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabs-newtab-button:hover:active { + fill: color-mix( + in srgb, + -moz-accent-color-foreground 15%, + transparent + ) !important; /* Hardcoded for compatibility */ + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.australis" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.chrome" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) #tabs-newtab-button:hover { + background-image: var(--uc-tab-corner-left-side-svg), + linear-gradient( + to left, + color-mix(in srgb, -moz-accent-color-foreground 10%, transparent), + color-mix(in srgb, -moz-accent-color-foreground 10%, transparent) + ), + var(--uc-tab-corner-right-side-svg); + } + :root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme) #tabs-newtab-button:hover:active, + :root[tabsintitlebar][lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive) + #tabs-newtab-button:hover:active { + background-image: var(--uc-tab-corner-left-side-svg), + linear-gradient( + to left, + color-mix(in srgb, -moz-accent-color-foreground 15%, transparent), + color-mix(in srgb, -moz-accent-color-foreground 15%, transparent) + ), + var(--uc-tab-corner-right-side-svg); + } + } + } + } + } + /* '+'Icon */ + #tabs-newtab-button .toolbarbutton-icon { + border-radius: var(--tab-border-radius) var(--tab-border-radius) 0 0 !important; /* Original: var(--tab-border-radius) */ + padding: calc(var(--toolbarbutton-inner-padding) - var(--tab-block-margin) / 4) var(--toolbarbutton-inner-padding) + calc(var(--toolbarbutton-inner-padding) + var(--tab-block-margin) / 4 + var(--uc-tabs-navbar-shadow-size)) !important; + -moz-context-properties: fill, fill-opacity; + fill: var(--toolbarbutton-icon-fill); + fill-opacity: var(--toolbarbutton-icon-fill-opacity); + } + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner.wave") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.australis" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.chrome_legacy") or -moz-bool-pref( + "userChrome.tab.bottom_rounded_corner.chrome" + ) or -moz-bool-pref("userChrome.tab.bottom_rounded_corner.edge") { + #tabs-newtab-button .toolbarbutton-icon { + --tab-border-radius: 0px; + width: unset !important; + padding-inline: 0px !important; + margin-inline: calc(var(--uc-tab-corner-half-height) - 7.75px) !important; + background-color: transparent !important; + } + } + /* Fix tab overlap #678 */ + @supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + tab:where([visuallyselected="true"]) { + z-index: 1; + } + } +} +/*= New tab button - Smaller button ==========================================*/ +@supports -moz-bool-pref("userChrome.tab.newtab_button_smaller") { + #tabs-newtab-button > .toolbarbutton-icon { + --tab-border-radius: var(--toolbarbutton-border-radius); + margin-left: 1px; + /* Original: calc((var(--tab-min-height) - 16px) / 2) = 10px */ + --toolbarbutton-inner-padding: var(--uc-small-toolbarbutton-inner-padding); + } +} +/*= New tab button - Proton like button ======================================*/ +@supports -moz-bool-pref("userChrome.tab.newtab_button_proton") { + :root:not([uidensity="touch"]) #tabs-newtab-button > .toolbarbutton-icon { + --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 1px); + } +} +/*= Unloaded Tab - Contents Opacity ===========================================*/ +@supports -moz-bool-pref("userChrome.tab.unloaded") { + .tabbrowser-tab[pending] .tab-content { + opacity: 0.7; + } +} +/*= Clipped tabs =============================================================*/ +/** Clipped tabs - Letters cleary *********************************************/ +@supports -moz-bool-pref("userChrome.tab.letters_cleary") { + #tabbrowser-tabs[closebuttons="activetab"] { + --inline-tab-padding: 7px !important; /* Original: 8px */ + } + #tabbrowser-tabs[overflow="true"] { + --inline-tab-padding: 6px !important; /* Original: 8px */ + } + .tab-content[pinned] { + --inline-tab-padding: 10px; /* Prevent overflow pinned tab's divide line not aligned */ + padding-inline: var(--inline-tab-padding) !important; + } + :root[uidensity="compact"] .tab-content[pinned] { + --inline-tab-padding: 8px; + } + .tabbrowser-tab .tab-label-container { + --tab-label-mask-size: 1.8em; /* Original: 2em */ + } + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab .tab-label-container { + --tab-label-mask-size: 30%; + } + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:is([visuallyselected="true"], [multiselected="true"]) + .tab-label-container { + --tab-label-mask-size: 25%; + } + .tabbrowser-tab[visuallyselected="true"]:not([labelendaligned]):hover .tab-label-container, + #tabbrowser-tabs:not([closebuttons="activetab"]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab:not([visuallyselected="true"], [labelendaligned]):hover + .tab-label-container { + --tab-label-mask-size: 0.9em; /* Original: 1em */ + } +} +/** Clipped tabs - Show close button at hover *********************************/ +@supports -moz-bool-pref("userChrome.tab.close_button_at_hover") { + #tabbrowser-tabs[closebuttons="activetab"] + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab:not([pinned]) + > .tab-stack + > .tab-content + > .tab-close-button:not([selected="true"]) { + display: inline-flex !important; + display: -moz-inline-box !important; + } + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([visuallyselected]) .tab-close-button { + visibility: collapse !important; + opacity: 0; + } + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:hover .tab-close-button { + visibility: visible !important; + opacity: 1; + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.with_selected") { + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([pinned]):not(:hover) .tab-close-button { + visibility: collapse !important; + opacity: 0; + } + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.always") { + .tabbrowser-tab:not([visuallyselected]) .tab-close-button { + visibility: collapse !important; + opacity: 0; + } + .tabbrowser-tab:hover .tab-close-button { + visibility: visible !important; + opacity: 1; + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.with_selected") { + .tabbrowser-tab:not([pinned]):not(:hover) .tab-close-button { + visibility: collapse !important; + opacity: 0; + } + } + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + /* Fade out */ + .tabbrowser-tab .tab-close-button { + transition: opacity 0.1s var(--animation-easing-function) !important; + } + /* Fade in */ + .tabbrowser-tab:hover .tab-close-button { + transition: opacity 0.25s var(--animation-easing-function) !important; + } + } + /* Closed Button's icon thicker */ + .tabbrowser-tab .tab-content > .close-icon { + list-style-image: url("../icons/dismiss-filled.svg") !important; + } + /* Closed Button's icon larger */ + .tab-close-button { + padding: 6px !important; /* Original: 7px */ + } + .tabbrowser-tab:not(:hover, [pinned]) > .tab-stack > .tab-content > .tab-close-button { + padding-inline-start: 1px !important; /* Original: 0px */ + width: 19px !important; /* Original: 17px */ + } + /* Closed Button's padding reduce */ + #tabbrowser-tabs[closebuttons="activetab"] .tab-content > .tab-close-button { + margin-inline-end: calc( + var(--inline-tab-padding) / -2 + 2px + ) !important; /* Original: calc(var(--inline-tab-padding) / -2)*/ + padding: 4px !important; /* Original: 7px */ + width: 20px !important; /* Original: 24px */ + height: 20px !important; /* Original: 24px */ + } + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:not(:hover) + > .tab-stack + > .tab-content + > .tab-close-button { + padding-inline-start: 3px !important; /* Original: 0px */ + width: 19px !important; /* Redefine from 19px !important, Original: 17px = (width - padding) */ + } +} +/** Clipped tabs - Show close button at pinned tab ****************************/ +@supports -moz-bool-pref("userChrome.tab.close_button_at_pinned") { + @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { + #tabbrowser-tabs { + --uc-close-button-size: 24px; + --uc-close-button-padding: 6px; + --uc-close-button-margin: calc((var(--uc-close-button-size) - 16px) / -2); + } + #tabbrowser-tabs[closebuttons="activetab"] { + --uc-close-button-size: 20px; + --uc-close-button-padding: 4px; + } + .tabbrowser-tab[pinned][visuallyselected]:not([style*="transform: translateX"]):hover:not([busy]) + .tab-close-button { + display: flex !important; + display: -moz-box !important; + order: -1 !important; + -moz-box-ordinal-group: 0 !important; + /* Looks like hover */ + width: var(--uc-close-button-size) !important; + height: var(--uc-close-button-size) !important; + padding: var(--uc-close-button-padding) !important; + margin-inline: var(--uc-close-button-margin) !important; + } + .tabbrowser-tab[pinned][visuallyselected]:not([style*="transform: translateX"]):hover:not([busy]) .tab-icon-stack { + width: 0 !important; + position: absolute; + bottom: 8px; + } + .tabbrowser-tab[pinned][visuallyselected]:not([style*="transform: translateX"]):hover .tab-icon-image { + display: none !important; + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned.always") { + .tabbrowser-tab[pinned][visuallyselected]:not([busy]) .tab-close-button { + display: flex !important; + display: -moz-box !important; + order: -1 !important; + -moz-box-ordinal-group: 0 !important; + /* Looks like hover */ + width: var(--uc-close-button-size) !important; + height: var(--uc-close-button-size) !important; + padding: var(--uc-close-button-padding) !important; + margin-inline: var(--uc-close-button-margin) !important; + } + .tabbrowser-tab[pinned][visuallyselected]:not([busy]) .tab-icon-stack { + width: 0 !important; + position: absolute; + bottom: 8px; + } + .tabbrowser-tab[pinned][visuallyselected] .tab-icon-image { + display: none !important; + } + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned.background") { + .tabbrowser-tab[pinned]:not([style*="transform: translateX"]):hover:not([busy]) .tab-close-button { + display: flex !important; + display: -moz-box !important; + order: -1 !important; + -moz-box-ordinal-group: 0 !important; + /* Looks like hover */ + width: var(--uc-close-button-size) !important; + height: var(--uc-close-button-size) !important; + padding: var(--uc-close-button-padding) !important; + margin-inline: var(--uc-close-button-margin) !important; + } + .tabbrowser-tab[pinned]:not([style*="transform: translateX"]):hover:not([busy]) .tab-icon-stack { + width: 0 !important; + position: absolute; + bottom: 8px; + } + .tabbrowser-tab[pinned]:not([style*="transform: translateX"]):hover .tab-icon-image { + display: none !important; + } + } + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab[pinned]:not([style*="transform: translateX"]):hover:not([busy]) + .tab-close-button { + margin-inline-end: var(--uc-close-button-margin) !important; + } + } +} +/** Clipped tabs - Always show tab icon ***************************************/ +@supports -moz-bool-pref("userChrome.tab.always_show_tab_icon") { + .tab-icon-image:not([src], [pinned], [crashed], [busy]) { + display: inline-flex !important; + display: -moz-inline-box !important; + } +} +/*= Sound Tab ================================================================*/ +/*= Sound Tab - Hide Label ===================================================*/ +@supports -moz-bool-pref("userChrome.tab.sound_hide_label") { + @supports not -moz-bool-pref("userChrome.tab.sound_show_label") { + .tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { + display: none !important; + } + } +} +/*= Sound Tab - Show Label ===================================================*/ +@supports -moz-bool-pref("userChrome.tab.sound_show_label") { + .tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { + display: flex !important; + display: -moz-box !important; + } +} +/*= Sound Tab - Show with Favicons ===========================================*/ +@supports -moz-bool-pref("userChrome.tab.sound_with_favicons") { + /* Makes the favicons always visible (also on hover) */ + .tab-icon-image:not([pinned]) { + opacity: 1 !important; + } + /* Makes the speaker icon to always appear if the tab is playing (not only on hover) */ + .tabbrowser-tab { + --uc-sound-tab-icon-position-x-default: -0.5px; + --uc-sound-tab-icon-position-x: var(--uc-sound-tab-icon-position-x-default); + --uc-sound-tab-icon-position-y: -6px; + } + .tabbrowser-tab:-moz-locale-dir(rtl) { + --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + .tabbrowser-tab:not([pinned]) { + --uc-sound-tab-icon-position-x-default: 7px; + --uc-sound-tab-icon-position-y: -1px; + } + } + .tab-icon-overlay:not([crashed]), + .tab-icon-overlay[pinned][crashed][selected] { + /* Position */ + top: 0 !important; + inset-inline-end: -9px !important; + z-index: 1 !important; + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(var(--uc-sound-tab-icon-position-y)); + /* Shape */ + padding: 1.5px !important; + border-radius: 10px !important; + width: 17px !important; + height: 17px !important; + } + .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { + /* Color */ + color: currentColor !important; + stroke: transparent !important; + background: transparent !important; + fill-opacity: 0.8 !important; + opacity: 1 !important; + } + /* Label */ + @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 4px; + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 8px; + } + } + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container[labeldirection="ltr"], + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { + --uc-sound-tab-label-position-x: var(--uc-sound-tab-label-position-x-default); + } + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container[labeldirection="rtl"], + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { + --uc-sound-tab-label-position-x: calc(-1 * var(--uc-sound-tab-label-position-x-default)); + } + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container + > * { + transform: translateX(var(--uc-sound-tab-label-position-x)); + } + } + @supports -moz-bool-pref("userChrome.hidden.tab_icon") { + @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 4px; + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container { + --uc-sound-tab-label-position-x-default: 8px; + } + } + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container[labeldirection="ltr"], + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { + --uc-sound-tab-label-position-x: var(--uc-sound-tab-label-position-x-default); + } + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container[labeldirection="rtl"], + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { + --uc-sound-tab-label-position-x: calc(-1 * var(--uc-sound-tab-label-position-x-default)); + } + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container + > * { + transform: translateX(var(--uc-sound-tab-label-position-x)); + } + } + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + .tab-icon-overlay:not([crashed]), + .tab-icon-overlay[pinned][crashed][selected] { + transition: 0.1s var(--animation-easing-function); + } + .tab-label-container > * { + transition: transform 0.25s var(--animation-easing-function); + } + } + /* None exist favicon - Size bigger */ + @supports not -moz-bool-pref("userChrome.tab.always_show_tab_icon") { + .tabbrowser-tab .tab-label-container[labeldirection="ltr"], + .tabbrowser-tab .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { + --uc-sound-tab-no-icon-position-x: -0.5px; + --uc-sound-tab-no-icon-label-position-x: 3px; + } + .tabbrowser-tab .tab-label-container[labeldirection="rtl"], + .tabbrowser-tab .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { + --uc-sound-tab-no-icon-position-x: 0.5px; + --uc-sound-tab-no-icon-label-position-x: -3px; + } + @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + .tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) { + transform: translateX(var(--uc-sound-tab-no-icon-position-x)) translateY(-1px); + inset-inline-end: 0 !important; + margin-inline-end: 0 !important; + padding: 0 !important; + } + .tabbrowser-tab:not([image]):is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { + opacity: 0 !important; /* Favicon hidden */ + } + .tabbrowser-tab:not([image]):not([image]):not([pinned], [sharing], [crashed]):is( + [soundplaying], + [muted], + [activemedia-blocked] + ) + .tab-label-container + > * { + transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); + } + } + @supports -moz-bool-pref("userChrome.hidden.tab_icon") { + @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + .tabbrowser-tab .tab-icon-overlay:not([pinned], [sharing], [crashed]) { + transform: translateX(var(--uc-sound-tab-no-icon-position-x)) translateY(-1px); + inset-inline-end: 0 !important; + margin-inline-end: 0 !important; + padding: 0 !important; + } + .tabbrowser-tab:is([soundplaying], [muted], [activemedia-blocked]) .tab-icon-image:not([pinned]) { + opacity: 0 !important; /* Favicon hidden */ + } + .tabbrowser-tab:not([image]):not([pinned], [sharing], [crashed]):is( + [soundplaying], + [muted], + [activemedia-blocked] + ) + .tab-label-container + > * { + transform: translateX(var(--uc-sound-tab-no-icon-label-position-x)); + } + } + } + } + /* Busy - Show */ + .tab-throbber[busy], + .tab-icon-pending[busy] { + opacity: 1 !important; + } + /* Busy - Overlay Position */ + .tabbrowser-tab:not([pinned])[busy] .tab-icon-overlay:is([soundplaying], [muted], [activemedia-blocked]) { + transform: translateX(var(--uc-sound-tab-icon-position-x)) translateY(-6px); + } + .tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed])[busy] { + inset-inline-end: -9px !important; + margin-inline-end: 9.5px !important; + padding: 1.5px !important; + } + /* Hover */ + .tab-icon-overlay:not([crashed])[soundplaying]:hover, + .tab-icon-overlay:not([crashed])[muted]:hover, + .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { + color: var(--toolbar-bgcolor, white) !important; + stroke: var(--lwt-tab-text, var(--toolbar-color)) !important; + background-color: var(--lwt-tab-text, var(--toolbar-color)) !important; + fill-opacity: 0.95 !important; + } + #TabsToolbar[brighttext] .tab-icon-overlay:not([crashed])[soundplaying]:hover, + #TabsToolbar[brighttext] .tab-icon-overlay:not([crashed])[muted]:hover, + #TabsToolbar[brighttext] .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { + color: var(--toolbar-bgcolor, black) !important; + } + .tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]):hover { + padding: 0 !important; + } +} +/*= PictureInPicture Tab - Show PIP Icon =====================================*/ +@supports -moz-bool-pref("userChrome.tab.pip") { + #tabbrowser-tabs:not([closebuttons="activetab"]) .tabbrowser-tab[pictureinpicture]:not([pinned]) .tab-content::after, + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab[pictureinpicture]:not([pinned], :hover) + .tab-content::after { + content: ""; + } + .tabbrowser-tab[pictureinpicture]:not([pinned]) .tab-content::after { + /* Shape */ + display: inline-flex !important; + display: -moz-inline-box !important; + width: 14px; + height: 14px; + background-size: 14px; + order: 1 !important; + -moz-box-ordinal-group: 1 !important; + /* Color */ + fill: currentColor; + opacity: 0.8; + -moz-context-properties: fill; + /* Icon */ + background-image: url("chrome://global/skin/media/picture-in-picture-open.svg"); + } + .tabbrowser-tab[pictureinpicture]:not([pinned])[selected] .tab-content::after { + opacity: 0.95; + } + /* Close Button's position */ + .tabbrowser-tab[pictureinpicture]:not([pinned]) .tab-close-button { + order: 2 !important; + -moz-box-ordinal-group: 2 !important; + } + #tabbrowser-tabs:not([closebuttons="activetab"]) .tabbrowser-tab[pictureinpicture]:not([pinned]) .tab-close-button { + margin-left: 7px !important; + } + #tabbrowser-tabs:not([closebuttons="activetab"]) + .tabbrowser-tab[pictureinpicture]:not([pinned]):hover + .tab-close-button { + margin-left: 2px !important; + } +} +/*= Container Tab - Color line at icon's bottom ==============================*/ +@supports -moz-bool-pref("userChrome.tab.container") { + @supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") { + @supports not -moz-bool-pref("userChrome.tab.photon_like_contextline") { + .tab-context-line { + display: none; + } + } + #tabbrowser-tabs { + --uc-container-position-x: 9px; + --uc-container-position-y-default: 11.5px; + --uc-container-position-y-bottom: calc(50% + var(--uc-container-position-y-default)); + --uc-container-position-y: var(--uc-container-position-y-bottom); + --uc-titlechanged-container-position-x: 32%, 50%, 70%; + } + #tabbrowser-tabs:-moz-locale-dir(rtl) { + --uc-container-position-x: -9px; + } + @supports -moz-bool-pref("userChrome.tab.container.on_top") { + #tabbrowser-tabs { + --uc-container-position-y: calc(50% - var(--uc-container-position-y-default)); + } + } + :root[uidensity="compact"] #tabbrowser-tabs { + --uc-container-position-y-default: 10.5px; + --uc-titlechanged-container-position-x: 30%, 50%, 70%; + } + :root[uidensity="touch"] #tabbrowser-tabs { + --uc-container-position-y-default: 12.5px; + } + .tab-content::before { + /* Box Model */ + content: ""; + display: block; + position: absolute; + top: 50%; + transform: translate(var(--uc-container-position-x), var(--uc-container-position-y)); + /* Shape */ + border-bottom: 2px solid var(--identity-icon-color); + width: 25%; + opacity: 0.75; + } + .tabbrowser-tab[visuallyselected]:not([pinned]) .tab-content::before { + width: calc(100% - 30px); + opacity: 1; + } + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab[visuallyselected]:not([pinned]) .tab-content::before { + width: calc(100% - 33px); + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + .tab-content:not([titlechanged])::before { + transition: 0.15s var(--animation-easing-function); + transition-property: width, opacity; + } + } + /* Pinned Tab */ + .tabbrowser-tab[pinned] .tab-content::before { + transform: translateY(var(--uc-container-position-y)); + width: 16px; + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned") { + .tabbrowser-tab[pinned][visuallyselected]:not([busy]):hover .tab-content::before { + opacity: 0; + } + } + @supports not -moz-bool-pref("userChrome.tab.container.on_top") { + .tab-content[titlechanged]::before { + opacity: 0; + } + /* Pinned Tab - Titlechanged Indicator override */ + .tabbrowser-tab:is([image], [pinned])[usercontextid] + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab[usercontextid] > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: radial-gradient(circle, var(--attention-icon-color), var(--attention-icon-color) 2px, transparent 2px); */ + --dotted-identity-image: radial-gradient( + circle, + var(--identity-icon-color), + var(--identity-icon-color) 2px, + transparent 2px + ); + background-image: var(--dotted-identity-image), var(--dotted-identity-image), var(--dotted-identity-image) !important; + background-position-x: var(--uc-titlechanged-container-position-x) !important; + } + .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ + background-position-y: top var(--uc-container-position-y) !important; + } + /* Pinned Tab - Titlechanged & soundplaying */ + .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[pinned][titlechanged]:not([selected="true"]) { + --uc-titlechanged-container-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px); + } + :root[uidensity="compact"] + .tabbrowser-tab:is([image], [pinned])[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + :root[uidensity="compact"] + .tabbrowser-tab[usercontextid]:is([soundplaying], [muted], [activemedia-blocked]) + > .tab-stack + > .tab-content[pinned][titlechanged]:not([selected="true"]) { + --uc-titlechanged-container-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px); + } + } + @supports -moz-bool-pref("userChrome.tab.container.on_top") { + .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected="true"]), + .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected="true"]) { + /* Original: center bottom calc(6.5px + var(--tabs-navbar-shadow-size)); */ + background-position-y: top var(--uc-container-position-y-bottom) !important; + } + } + } +} +/*= Crashed Tab - Don't show Favicons ========================================*/ +@supports -moz-bool-pref("userChrome.tab.crashed") { + .tab-icon-image[crashed] { + display: none !important; + } +} +/** Nav Bar UI ****************************************************************/ +/*= Nav Bar - Navbar comabine with sidebar===================================*/ +@supports -moz-bool-pref("userChrome.navbar.as_sidebar") { + :root { + --uc-navbar-margin-block: var(--toolbarbutton-inner-padding); + --uc-urlbar-margin-top: calc(var(--uc-navbar-height) + var(--uc-navbar-margin-block)); + --uc-urlbar-container-height: 36px; + --uc-navbar-sideblock-height: calc(var(--uc-urlbar-margin-top) + var(--uc-urlbar-container-height)); + } + #nav-bar, + #sidebar-box, + #sidebar-header, + #sidebar { + min-width: var(--uc-sidebar-activate-width) !important; + max-width: var(--uc-sidebar-activate-width) !important; + } + #nav-bar, + #wrapper-urlbar-container, + #urlbar-container { + position: absolute !important; + } + #nav-bar-customization-target { + justify-content: space-between; + -moz-box-pack: justify; + } + #nav-bar { + z-index: 1; + margin-top: calc( + var(--uc-tabbar-height) + var(--uc-bm-height) + var(--uc-menubar-height) + var(--uc-navbar-margin-block) + ); + overflow-y: visible !important; + background: none !important; + box-shadow: none !important; + -moz-window-dragging: drag; + } + @supports selector(:has(a)) { + :root:has(#sidebar-box[hidden="true"]) #nav-bar { + margin-inline-start: var(--uc-sidebar-activate-width-reverse) !important; + opacity: 0; + visibility: hidden; + } + :root:has(#sidebar-box[positionend="true"]) #nav-bar { + right: 0; + } + } + @media (prefers-reduced-motion: no-preference) { + @supports -moz-bool-pref("userChrome.decoration.animate") { + @supports not -moz-bool-pref("userChrome.decoration.disable_sidebar_animate") { + #nav-bar { + transition: margin-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, + visibility 0s linear, + margin-top var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + will-change: margin-inline-start, opacity, visibility, margin-top; + } + :root:has(#sidebar-box[hidden="true"]) #nav-bar, + #navigator-toolbox:is(:hover, :focus-within) #nav-bar { + transition-delay: 0s, 0s, 0.25s, 0s, 0s !important; + } + } + @supports -moz-bool-pref("userChrome.decoration.disable_sidebar_animate") { + #nav-bar { + transition: margin-top var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + will-change: margin-top; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar { + transition-delay: 0s !important; + } + } + } + } + #urlbar-container { + top: var(--uc-urlbar-margin-top); + min-width: calc(var(--uc-sidebar-activate-width) - 2 * var(--toolbarbutton-inner-padding)) !important; + margin-inline: auto !important; /* Original: var(--urlbar-margin-inline) */ + left: 50%; + transform: translateX(-50%); + } + #customizableui-special-spring1, + #customizableui-special-spring2, + #wrapper-customizableui-special-spring1, + #wrapper-customizableui-special-spring2 { + display: none !important; + } + #sidebar-header { + margin-top: var(--uc-navbar-sideblock-height) !important; + -moz-window-dragging: drag; + } + :root[customizing="true"] #wrapper-urlbar-container { + left: 50%; + } + :root[customizing="true"] #browser[collapsed="true"] { + visibility: visible !important; + } + :root[customizing="true"] #browser[collapsed="true"] #appcontent { + visibility: collapse; + } + :root[customizing="true"] #browser[collapsed="true"] #sidebar-box { + position: absolute; + height: 100%; + } + :root[customizing="true"] #browser[collapsed="true"] #sidebar-box[positionend="true"] { + right: 0; + } + :root[customizing="true"] #customization-container { + --uc-customization-conatiner-margin: var(--uc-navbar-height-default); + width: calc(100% - var(--uc-sidebar-activate-width)); + height: calc(100% - var(--uc-customization-conatiner-margin)); + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + :root[customizing="true"] #customization-container { + --uc-customization-conatiner-margin: calc(var(--uc-navbar-height-default) - var(--uc-tabbar-height-default)); + } + } + :root[customizing="true"]:has(#sidebar-box:not([positionend="true"])) #customization-container { + margin-inline-start: var(--uc-sidebar-activate-width); + } + :root[customizing="true"]:has(#sidebar-box[positionend="true"]) #customization-container { + margin-inline-end: var(--uc-sidebar-activate-width); + } + :root[customizing="true"] #customization-palette-container, + :root[customizing="true"] #customization-panel-container { + flex-shrink: 0.5 !important; + } +} +/** Bookark Bar UI ************************************************************/ +@supports -moz-bool-pref("userChrome.bookmarkbar.multi_row") { + #PersonalToolbar { + --uc-multirow-bookmark-rows: 3; + --uc-multirow-bookmark-row-margin: 2px; + max-height: none !important; + } + #PlacesToolbar > hbox { + display: block; + width: 100vw; + } + #PlacesToolbarItems { + display: flex; + flex-wrap: wrap; + overflow-y: auto; + scroll-snap-type: y mandatory; + max-height: calc( + var(--uc-multirow-bookmark-rows) * + ( + var(--uc-bm-height, calc(20px + 2 * var(--bookmark-block-padding, 4px))) + 2 * + var(--uc-multirow-bookmark-row-margin) + ) + ) !important; + } + #PlacesChevron { + display: none; + } + #PlacesToolbarItems > .bookmark-item { + scroll-snap-align: start; + margin-block: var(--uc-multirow-bookmark-row-margin) !important; + } +} +/** Url View UI ***************************************************************/ +/*= Url Bar - Icon box as Separator ==========================================*/ +@supports -moz-bool-pref("userChrome.urlbar.iconbox_with_separator") { + #identity-box { + /* separator */ + position: relative; + } + #identity-box[pageproxystate="valid"].notSecureText > .identity-box-button:not(:hover, [open]), + #identity-box[pageproxystate="valid"].chromeUI > .identity-box-button:not(:hover, [open]), + #identity-box[pageproxystate="valid"].extensionPage > .identity-box-button:not(:hover, [open]) { + /* remove background from urlbar box */ + background-color: transparent !important; + } + #identity-box[pageproxystate="valid"].notSecureText > .identity-box-button:not(:hover, [open])::after, + #identity-box[pageproxystate="valid"].chromeUI > .identity-box-button:not(:hover, [open])::after, + #identity-box[pageproxystate="valid"].extensionPage > .identity-box-button:not(:hover, [open])::after { + opacity: 0.375; + } + #identity-box[pageproxystate="valid"].notSecureText > .identity-box-button::after, + #identity-box[pageproxystate="valid"].chromeUI > .identity-box-button::after, + #identity-box[pageproxystate="valid"].extensionPage > .identity-box-button::after { + /* Box Model */ + content: ""; + position: absolute; + display: block; + /* Position */ + right: 0; + top: 50%; + transform: translateY(-50%); + /* Bar shape */ + width: 1px; + height: 1em; + /* Bar Color */ + opacity: 0; + background-color: currentColor; + } + #identity-box[pageproxystate="valid"] #identity-icon-label { + /* increase space between icon and text - as identity box padding */ + padding-inline-start: 8px !important; + } + @media (prefers-reduced-motion: no-preference) { + .identity-box-button::after { + transition: opacity 0.2s var(--animation-easing-function); + } + } +} +/*= Url View - Share Layout ==================================================*/ +@supports -moz-bool-pref("userChrome.urlView.as_commandbar") or -moz-bool-pref("userChrome.urlView.full_width_padding") { + .urlbarView { + --uc-urlView-padding: calc(5px + var(--urlbar-container-padding)); + margin-inline: 0 !important; /* Original: calc(5px + var(--urlbar-container-padding)) */ + } +} +/*= Url View - Looks like Launcher ===========================================*/ +@supports -moz-bool-pref("userChrome.urlView.as_commandbar") { + /* Init & Base Layout */ + .urlbarView { + --urlbarView-favicon-width: 32px; /* Original: 16px */ + --uc-urlView-typeIcon-size: 18px; + --uc-urlView-icon-size-differ: 14px; + --uc-searchBar-icon-size: 20px; + --uc-searchBar-button-size: 32px; + --uc-urlView-row-padding: 8px; + --uc-urlView-row-bottom: 2px; + --uc-urlView-margin: calc(var(--uc-sidebar-activate-width, 18rem) + var(--toolbarbutton-inner-padding)); + position: fixed !important; + left: 50vw; + transform: translateX(-50%); + top: 12vh !important; + width: calc(100vw - (var(--uc-urlView-margin) + var(--toolbarbutton-inner-padding))) !important; + /* paddding as margin */ + /* background */ + background-color: var(--toolbar-field-focus-background-color) !important; + background-clip: border-box; + border: 1px solid var(--arrowpanel-border-color) !important; + border-radius: var(--toolbarbutton-border-radius) !important; + box-shadow: 0 2px 14px rgba(0, 0, 0, 0.13); + } + @supports not -moz-bool-pref("userChrome.urlView.full_width_padding") { + .urlbarView { + padding-inline: var(--uc-urlView-padding) !important; + } + } + .urlbarView-body-inner { + border-top: none !important; + } + /* Big icons */ + :root[uidensity="compact"] .urlbarView { + --urlbarView-favicon-width: 24px; /* Original: 16px */ + --uc-urlView-typeIcon-size: 16px; + --uc-urlView-icon-size-differ: 8px; + --uc-searchBar-icon-size: 18px; + --uc-searchBar-button-size: 30px; + } + :root[uidensity="touch"] .urlbarView { + --uc-urlView-row-padding: 17px; + --uc-urlView-row-bottom: 11px; + } + .urlbarView-row:not([type="tip"], [type="dynamic"]) { + position: relative; + min-height: calc(var(--urlbarView-favicon-width) + var(--uc-urlView-row-padding)) !important; + } + .urlbarView-row:not([type="tip"], [type="dynamic"]) .urlbarView-row-inner { + height: var(--urlbarView-favicon-width) !important; + } + .urlbarView-row:not([type="tip"], [type="dynamic"]) .urlbarView-favicon { + position: absolute; + top: 50%; + transform: translateY(-50%); + } + .urlbarView-row:not([type="tip"], [type="dynamic"]) .urlbarView-title { + padding-inline-start: calc( + var(--urlbarView-item-inline-padding) + var(--identity-box-margin-inline) + var(--urlbarView-favicon-width) + ) !important; + } + .urlbarView-row:not([type="tip"], [type="dynamic"]) .urlbarView-type-icon { + width: var(--uc-urlView-typeIcon-size) !important; + height: var(--uc-urlView-typeIcon-size) !important; + margin-inline-start: calc( + var(--uc-urlView-icon-size-differ) + var(--urlbarView-item-inline-padding) + ) !important; /* Original: 8px */ + bottom: var(--uc-urlView-row-bottom); + } + .urlbarView-row[dynamicType="quickactions"] .urlbarView-favicon-img { + width: var(--urlbarView-favicon-width) !important; /* Original: 16px */ + height: var(--urlbarView-favicon-width) !important; /* Original: 16px */ + } + .urlbarView-row[dynamicType="quickactions"] .urlbarView-label { + font-size: 0.95em !important; /* Original: 11px */ + } + :root[uidensity="touch"] .urlbarView-row { + padding-block: 6px !important; + } + :root[uidensity="touch"] .urlbarView-row-inner { + padding-block: 11px !important; + } + #urlbar .searchbar-engine-one-off-item { + min-width: var(--uc-searchBar-button-size) !important; /* Original: 28px */ + height: var(--uc-searchBar-button-size) !important; + } + #urlbar .searchbar-engine-one-off-item > .button-box > .button-icon { + width: var(--uc-searchBar-icon-size) !important; /* Original: 16px */ + height: var(--uc-searchBar-icon-size) !important; + } +} +/*= Url View - Full Width Pddding ============================================*/ +@supports -moz-bool-pref("userChrome.urlView.full_width_padding") { + .urlbarView { + --uc-urlView-padding-double: calc(var(--uc-urlView-padding) * 2); + --uc-urlView-full-width-padding: var(--uc-urlView-padding-double); + } + @supports not -moz-bool-pref("userChrome.urlView.as_commandbar") { + .urlbarView { + --uc-urlView-full-width-padding: var(--uc-urlView-padding); + width: 100% !important; + } + } + #urlbar[open] > .urlbarView > .urlbarView-body-outer > .urlbarView-body-inner { + border-color: transparent !important; + } + #urlbar[open] > .urlbarView > .urlbarView-body-outer > .urlbarView-body-inner::before { + content: ""; + position: absolute; + border-top: 1px solid var(--autocomplete-popup-separator-color); + transform: translate(-50%, -1px); + left: 50%; + } + #urlbar[open] > .urlbarView > .urlbarView-body-outer > .urlbarView-body-inner::before, + .urlbarView .search-one-offs { + width: calc(100% + 2px - var(--uc-urlView-padding-double)) !important; + } + .urlbarView .search-one-offs { + margin-inline: var(--uc-urlView-full-width-padding) !important; + } + .urlbarView-row-inner { + padding-inline: calc(var(--uc-urlView-full-width-padding) + var(--urlbarView-item-inline-padding)) !important; + } +} +/*= Url View - Always show page actions ======================================*/ +@supports -moz-bool-pref("userChrome.urlbar.always_show_page_actions") { + #urlbar:not([breakout-extend="true"]) #pageActionButton { + display: block !important; + visibility: visible !important; + } +} +/*= Url View - Move icon to left =============================================*/ +@supports -moz-bool-pref("userChrome.urlView.move_icon_to_left") { + .urlbarView-type-icon { + min-width: 16px !important; + height: 16px !important; + margin-block: 0 !important; + margin-inline-start: 0 !important; + } + .urlbarView-favicon { + margin-inline-start: 20px !important; + } +} +/*= Url View - Go button when typing =========================================*/ +@supports -moz-bool-pref("userChrome.urlView.go_button_when_typing") { + #urlbar-input-container[pageproxystate="invalid"] #urlbar-go-button { + display: block !important; + } +} +/*= Url View - Item Focus Border =============================================*/ +@supports -moz-bool-pref("userChrome.urlView.focus_item_border") { + .urlbarView-row:not([type="tip"], [type="dynamic"])[selected] > .urlbarView-row-inner, + .urlbarView-row-inner[selected] { + box-shadow: 3px 0 var(--toolbar-field-focus-border-color) inset !important; + } +} +/** Panel UI ******************************************************************/ +@supports -moz-bool-pref("userChrome.panel.remove_strip") { + #appMenu-fxa-separator { + --panel-separator-zap-gradient: none; /* Original: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%) */ + } +} +@supports -moz-bool-pref("userChrome.panel.full_width_separator") { + /* Full width separators */ + :root { + /* Original + --panel-separator-margin-vertical: 4px; + --panel-separator-margin-horizontal: 8px; + --panel-separator-margin: var(--panel-separator-margin-vertical) var(--panel-separator-margin-horizontal); + */ + --panel-separator-margin-horizontal: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.panel.full_width_padding") { + /* Original + --arrowpanel-menuitem-margin: 0 8px; + --arrowpanel-menuitem-padding-block: 8px; + --arrowpanel-menuitem-padding-inline: 8px; + --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline); + */ + :root, + :root:is([uidensity="compact"], [uidensity="touch"]) { + --arrowpanel-menuitem-margin: 0 !important; + --arrowpanel-menuitem-margin-inline: 0 !important; + --arrowpanel-menuitem-padding-inline: calc(var(--arrowpanel-menuitem-padding-block) + 8px) !important; + } +} +/** Sidebar UI ****************************************************************/ +@supports -moz-bool-pref("userChrome.sidebar.overlap") or -moz-bool-pref("userChrome.autohide.sidebar") or -moz-bool-pref( + "userChrome.navbar.as_sidebar" + ) { + :root { + /* Original + min-width: 14em; + width: 18em; + max-width: 36em; + */ + --uc-sidebar-width: 40px; + --uc-sidebar-activate-width: 18rem; + --uc-sidebar-activate-width-reverse: calc(-1 * var(--uc-sidebar-activate-width)); + --uc-sidebar-fullscreen-width: 4px; + --uc-sidebar-shadow-size: 1px; + --uc-sidebar-shadow-width: 0px; + --uc-sidebar-shadow-position: var(--uc-sidebar-shadow-position-default); + --uc-sidebar-shadow-position-default: calc(var(--uc-sidebar-shadow-size) + var(--uc-sidebar-shadow-width)); + --uc-sidebar-shadow-color: #28282f; + --uc-autohide-sidebar-speed: 750ms; + --uc-autohide-fullscreen-sidebar-speed: 1s; + --uc-autohide-sidebar-delay: 600ms; /* Wait 0.6s before hiding sidebar */ + } + #sidebar-splitter { + display: none !important; + } +} +@supports -moz-bool-pref("userChrome.sidebar.overlap") or -moz-bool-pref("userChrome.autohide.sidebar") { + #sidebar-box { + --uc-sidebar-shadow-color: #28282f; + z-index: 1 !important; + position: relative !important; + box-shadow: var(--uc-sidebar-shadow-position) 0px 15px -10px var(--uc-sidebar-shadow-color); + } + #sidebar-box[positionend="true"] { + --uc-sidebar-shadow-position: calc(-1 * var(--uc-sidebar-shadow-position-default)); + } + #sidebar { + display: block; + } +} +@supports -moz-bool-pref("userChrome.sidebar.overlap") { + #sidebar-box[positionend="true"] { + direction: rtl; + } + #sidebar-header, + #sidebar { + background-color: var(--sidebar-background-color) !important; + color: var(--sidebar-text-color) !important; + overflow: hidden; + } + #sidebar-header { + font-size: unset !important; + } + #sidebar-header > #sidebar-switcher-target { + font-size: 1.333em; + } + @supports not -moz-bool-pref("userChrome.autohide.sidebar") { + #sidebar-box, + #sidebar-header, + #sidebar { + min-width: var(--uc-sidebar-activate-width) !important; + max-width: var(--uc-sidebar-activate-width) !important; + } + #sidebar-box { + margin-inline-start: var(--uc-sidebar-activate-width-reverse) !important; + will-change: padding-inline; + --uc-sidebar-shadow-width: var(--uc-sidebar-activate-width); + } + #sidebar-box:not([hidden="true"]) { + padding-inline-start: var(--uc-sidebar-activate-width) !important; + } + @media (prefers-reduced-motion: no-preference) { + #sidebar-box { + transition: padding-inline-start 0.25s var(--animation-easing-function), opacity 0.25s ease-in-out, + box-shadow 0s linear, visibility 0s linear !important; + } + } + } +} +/** Combined UI ***************************************************************/ +/*= Combined - At URL bar ====================================================*/ +@supports -moz-bool-pref("userChrome.combined.nav_button") or -moz-bool-pref( + "userChrome.combined.nav_button.home_button" + ) or -moz-bool-pref("userChrome.combined.urlbar.nav_button") or -moz-bool-pref( + "userChrome.combined.urlbar.home_button" + ) or -moz-bool-pref("userChrome.combined.urlbar.reload_button") { + #nav-bar { + --uc-combined-circlebutton-background: hsla(0, 100%, 100%, 0.5); + --uc-combined-circlebutton-hover-background: var(--uc-combined-circlebutton-background); + --uc-combined-circlebutton-active-background: var(--toolbarbutton-active-background); + --uc-combined-circlebutton-border-color: hsla(240, 5%, 5%, 0.3); + --uc-toolbarbutton-boundary: calc(var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding)); + --uc-toolbarbutton-padding: calc(2 * var(--uc-toolbarbutton-boundary)); + --uc-toolbarbutton-size: calc(12px + var(--uc-toolbarbutton-padding)); + --uc-toolbarbutton-halfsize: calc(6px + var(--uc-toolbarbutton-boundary)); + --uc-urlbar-icon-size: calc(16px + 2 * var(--urlbar-icon-padding)); + } + #nav-bar[brighttext] { + --uc-combined-circlebutton-background: var(--toolbarbutton-hover-background); + --uc-combined-circlebutton-hover-background: var(--toolbarbutton-active-background); + --uc-combined-circlebutton-active-background: color-mix(in srgb, currentColor 20%, transparent); + } + #nav-bar-customization-target > * { + order: 1; + -moz-box-ordinal-group: 1; + } + #nav-bar-customization-target > #urlbar-container { + order: 5; + -moz-box-ordinal-group: 5; + } + #nav-bar-customization-target > #urlbar-container ~ * { + order: 7; + -moz-box-ordinal-group: 7; + } +} +@supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") or -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target > #urlbar-container { + /* var(--urlbar-margin-inline) */ + margin-inline-start: calc(-1 * var(--uc-urlbar-combined-margin, 0px)) !important; + } + #nav-bar-customization-target > #urlbar-container > #urlbar:not([breakout][breakout-extend]) { + padding-left: var(--uc-urlbar-combined-margin, 0px); + } + @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + #nav-bar-customization-target > #urlbar-container { + --uc-urlbar-combined-margin: var(--uc-toolbarbutton-size); + } + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + #nav-bar-customization-target > #urlbar-container { + --uc-urlbar-combined-margin: var(--uc-toolbarbutton-halfsize); + } + @supports -moz-bool-pref("userChrome.combined.nav_button") { + @supports -moz-bool-pref("userChrome.combined.nav_button.home_button") { + @supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target > #urlbar-container { + --uc-urlbar-combined-margin: var(--uc-toolbarbutton-size); + } + } + } + } + } + @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @supports -moz-bool-pref("userChrome.autohide.forward_button") { + #nav-bar-customization-target + > #forward-button[disabled="true"] + ~ #urlbar-container + > #urlbar:not([breakout][breakout-extend]) { + padding-left: calc(var(--uc-urlbar-combined-margin, 0px) - var(--urlbar-icon-padding)); + } + } + @media (prefers-reduced-motion: no-preference) { + #nav-bar-customization-target > #forward-button[disabled="true"] ~ #urlbar-container > #urlbar { + transition-property: margin-left, padding-left; + transition-duration: 0.5s; + transition-timing-function: var(--animation-easing-function); + } + } + } +} +@supports -moz-bool-pref("userChrome.combined.nav_button") or -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") or + (not -moz-bool-pref("userChrome.combined.sub_button.as_normal")) or + (-moz-bool-pref("userChrome.combined.nav_button") and -moz-bool-pref("userChrome.combined.urlbar.home_button")) { + #nav-bar-customization-target > #forward-button { + --uc-forward-button-margin: calc(-1 * var(--uc-toolbarbutton-boundary) + 1px); + z-index: 2; + position: relative; + } + #nav-bar-customization-target > #forward-button > .toolbarbutton-icon { + padding-inline-end: var(--urlbar-icon-padding) !important; /* Original: var(--toolbarbutton-inner-padding) */ + padding-block: var(--urlbar-icon-padding) !important; + height: var(--uc-urlbar-icon-size) !important; + } + @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + #nav-bar-customization-target > #forward-button { + padding-inline-end: 0px !important; /* Original: var(--toolbarbutton-outer-padding) */ + } + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @supports not -moz-bool-pref("userChrome.combined.sub_button.none_background") { + @supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @supports not -moz-bool-pref("userChrome.combined.nav_button.home_button") { + #nav-bar-customization-target > #forward-button > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-background); + } + #nav-bar-customization-target > #forward-button:not([disabled], [open]):hover > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-hover-background) !important; + box-shadow: 0 1px 6px hsla(0deg, 0%, 0%, 0.1); + border-color: hsla(240deg, 5%, 5%, 0.35); + } + #nav-bar-customization-target > #forward-button[open] > .toolbarbutton-icon, + #nav-bar-customization-target > #forward-button:not([disabled]):hover:active > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-active-background) !important; + border-color: hsla(240deg, 5%, 5%, 0.4); + } + #nav-bar-customization-target > #forward-button[disabled="true"] > .toolbarbutton-icon { + background-color: color-mix( + in srgb, + var(--toolbarbutton-hover-background), + var(--toolbar-field-background-color) 40% + ) !important; + fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); + } + @supports not -moz-bool-pref("userChrome.autohide.forward_button") { + #nav-bar-customization-target > #forward-button[disabled="true"][disabled="true"] { + opacity: 1 !important; /* Original: 0.4 */ + } + } + } + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target > #forward-button > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-background); + } + #nav-bar-customization-target > #forward-button:not([disabled], [open]):hover > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-hover-background) !important; + box-shadow: 0 1px 6px hsla(0deg, 0%, 0%, 0.1); + border-color: hsla(240deg, 5%, 5%, 0.35); + } + #nav-bar-customization-target > #forward-button[open] > .toolbarbutton-icon, + #nav-bar-customization-target > #forward-button:not([disabled]):hover:active > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-active-background) !important; + border-color: hsla(240deg, 5%, 5%, 0.4); + } + #nav-bar-customization-target > #forward-button[disabled="true"] > .toolbarbutton-icon { + background-color: color-mix( + in srgb, + var(--toolbarbutton-hover-background), + var(--toolbar-field-background-color) 40% + ) !important; + fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); + } + @supports not -moz-bool-pref("userChrome.autohide.forward_button") { + #nav-bar-customization-target > #forward-button[disabled="true"][disabled="true"] { + opacity: 1 !important; /* Original: 0.4 */ + } + } + } + } + } + @supports not -moz-bool-pref("userChrome.autohide.forward_button") { + #nav-bar-customization-target > #forward-button { + margin-inline-start: var(--uc-forward-button-margin) !important; + } + } + @supports -moz-bool-pref("userChrome.autohide.forward_button") { + #nav-bar-customization-target > #forward-button:not([disabled="true"]) { + margin-inline-start: var(--uc-forward-button-margin) !important; + } + } + } + #nav-bar-customization-target > #back-button { + position: relative; + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + @supports not -moz-bool-pref("userChrome.combined.nav_button.home_button") { + #nav-bar-customization-target > #back-button > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-background); + } + #nav-bar-customization-target > #back-button:not([disabled], [open]):hover > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-hover-background) !important; + box-shadow: 0 1px 6px hsla(0deg, 0%, 0%, 0.1); + border-color: hsla(240deg, 5%, 5%, 0.35); + } + #nav-bar-customization-target > #back-button[open] > .toolbarbutton-icon, + #nav-bar-customization-target > #back-button:not([disabled]):hover:active > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-active-background) !important; + border-color: hsla(240deg, 5%, 5%, 0.4); + } + #nav-bar-customization-target > #back-button[disabled="true"] > .toolbarbutton-icon { + background-color: color-mix( + in srgb, + var(--toolbarbutton-hover-background), + var(--toolbar-field-background-color) 40% + ) !important; + fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); + } + @supports not -moz-bool-pref("userChrome.autohide.back_button") { + #nav-bar-customization-target > #back-button[disabled="true"][disabled="true"] { + opacity: 1 !important; /* Original: 0.4 */ + } + } + } + } + @supports -moz-bool-pref("userChrome.combined.nav_button.home_button") or -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target > #back-button { + z-index: 2; + } + @supports not -moz-bool-pref("userChrome.combined.sub_button.as_normal") { + #nav-bar-customization-target > #back-button { + margin-inline-end: calc(-1 * var(--uc-toolbarbutton-boundary) - 1px) !important; + } + @supports not -moz-bool-pref("userChrome.combined.sub_button.none_background") { + #nav-bar-customization-target > #back-button > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-background); + } + #nav-bar-customization-target > #back-button:not([disabled], [open]):hover > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-hover-background) !important; + box-shadow: 0 1px 6px hsla(0deg, 0%, 0%, 0.1); + border-color: hsla(240deg, 5%, 5%, 0.35); + } + #nav-bar-customization-target > #back-button[open] > .toolbarbutton-icon, + #nav-bar-customization-target > #back-button:not([disabled]):hover:active > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-active-background) !important; + border-color: hsla(240deg, 5%, 5%, 0.4); + } + #nav-bar-customization-target > #back-button[disabled="true"] > .toolbarbutton-icon { + background-color: color-mix( + in srgb, + var(--toolbarbutton-hover-background), + var(--toolbar-field-background-color) 40% + ) !important; + fill: color-mix(in srgb, var(--toolbarbutton-icon-fill), transparent 60%); + } + @supports not -moz-bool-pref("userChrome.autohide.back_button") { + #nav-bar-customization-target > #back-button[disabled="true"][disabled="true"] { + opacity: 1 !important; /* Original: 0.4 */ + } + } + } + #nav-bar-customization-target > #back-button > .toolbarbutton-icon { + padding-inline-start: var(--urlbar-icon-padding) !important; /* Original: var(--toolbarbutton-inner-padding) */ + padding-block: var(--urlbar-icon-padding) !important; + height: var(--uc-urlbar-icon-size) !important; + } + } + } + @supports not -moz-bool-pref("userChrome.combined.nav_button.home_button") { + @supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target > #back-button { + z-index: 3 !important; + background-color: var(--toolbar-bgcolor) !important; + background-clip: content-box !important; + border-radius: 100%; + padding-block: 0 !important; + } + @supports -moz-bool-pref("userChrome.padding.toolbar_button") { + @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + #nav-bar-customization-target > #back-button { + --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); + } + } + } + @supports not -moz-bool-pref("userChrome.autohide.back_button") { + #nav-bar-customization-target > #back-button { + padding-inline-end: 0 !important; + } + } + @supports -moz-bool-pref("userChrome.autohide.back_button") { + #nav-bar-customization-target > #back-button:not([disabled="true"]) { + padding-inline-end: 0 !important; + } + #nav-bar-customization-target > #back-button[disabled="true"] { + padding-inline-end: calc(var(--toolbarbutton-outer-padding) + 1px) !important; + } + } + #nav-bar-customization-target > #back-button > menupopup { + margin-top: -1px !important; + } + #nav-bar-customization-target > #back-button > .toolbarbutton-icon { + background-origin: padding-box; + background-clip: padding-box; + border: 1px solid var(--uc-combined-circlebutton-border-color); + border-radius: 10000px !important; + padding-inline-end: var(--urlbar-icon-padding) !important; + height: auto !important; + } + } + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + #nav-bar-customization-target > #back-button { + z-index: 3 !important; + background-color: var(--toolbar-bgcolor) !important; + background-clip: content-box !important; + border-radius: 100%; + padding-block: 0 !important; + } + @supports -moz-bool-pref("userChrome.padding.toolbar_button") { + @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + #nav-bar-customization-target > #back-button { + --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); + } + } + } + @supports not -moz-bool-pref("userChrome.autohide.back_button") { + #nav-bar-customization-target > #back-button { + padding-inline-end: 0 !important; + } + } + @supports -moz-bool-pref("userChrome.autohide.back_button") { + #nav-bar-customization-target > #back-button:not([disabled="true"]) { + padding-inline-end: 0 !important; + } + #nav-bar-customization-target > #back-button[disabled="true"] { + padding-inline-end: calc(var(--toolbarbutton-outer-padding) + 1px) !important; + } + } + #nav-bar-customization-target > #back-button > menupopup { + margin-top: -1px !important; + } + #nav-bar-customization-target > #back-button > .toolbarbutton-icon { + background-origin: padding-box; + background-clip: padding-box; + border: 1px solid var(--uc-combined-circlebutton-border-color); + border-radius: 10000px !important; + padding-inline-end: var(--urlbar-icon-padding) !important; + height: auto !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.combined.nav_button") { + @supports -moz-bool-pref("userChrome.combined.nav_button.home_button") { + #nav-bar-customization-target > #home-button { + position: relative; + z-index: 3 !important; + background-color: var(--toolbar-bgcolor) !important; + background-clip: content-box !important; + border-radius: 100%; + padding-block: 0 !important; + padding-inline-end: 0 !important; + } + @supports -moz-bool-pref("userChrome.padding.toolbar_button") { + @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + #nav-bar-customization-target > #home-button { + --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); + } + } + } + #nav-bar-customization-target > #home-button > menupopup { + margin-top: -1px !important; + } + #nav-bar-customization-target > #home-button > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-background); + background-origin: padding-box; + background-clip: padding-box; + border: 1px solid var(--uc-combined-circlebutton-border-color); + border-radius: 10000px !important; + padding-inline-end: var(--urlbar-icon-padding) !important; + height: auto !important; + } + #nav-bar-customization-target > #home-button:hover > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-hover-background) !important; + box-shadow: 0 1px 6px hsla(0deg, 0%, 0%, 0.1); + border-color: hsla(240deg, 5%, 5%, 0.35); + } + #nav-bar-customization-target > #home-button:hover:active > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-active-background) !important; + border-color: hsla(240deg, 5%, 5%, 0.4); + } + } +} +@supports -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + #nav-bar-customization-target > #back-button { + order: 2; + -moz-box-ordinal-group: 2; + } + #nav-bar-customization-target > #forward-button { + order: 4; + -moz-box-ordinal-group: 4; + } + @supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target + > :first-child:is(#back-button, #forward-button, #home-button) + + :is(toolbarbutton, toolbaritem):not(#back-button, #forward-button, #home-button), + #nav-bar-customization-target + > :first-child:is(#back-button, #forward-button, #home-button) + + :is(#back-button, #forward-button, #home-button) + + :is(toolbarbutton, toolbaritem):not(#back-button, #forward-button, #home-button), + #nav-bar-customization-target + > :first-child:is(#back-button, #forward-button, #home-button) + + :is(#back-button, #forward-button, #home-button) + + :is(#back-button, #forward-button, #home-button) + + :is(toolbarbutton, toolbaritem) { + padding-inline-start: var(--toolbar-start-end-padding) !important; + } + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target + > :first-child:is(#back-button, #forward-button) + + :is(toolbarbutton, toolbaritem):not(#back-button, #forward-button), + #nav-bar-customization-target + > :first-child:is(#back-button, #forward-button) + + :is(#back-button, #forward-button) + + :is(toolbarbutton, toolbaritem) { + padding-inline-start: var(--toolbar-start-end-padding) !important; + } + } +} +@supports -moz-bool-pref("userChrome.combined.urlbar.home_button") { + #nav-bar-customization-target > #home-button { + order: 3; + -moz-box-ordinal-group: 3; + } + @supports not -moz-bool-pref("userChrome.combined.urlbar.nav_button") { + #nav-bar-customization-target > #home-button:is(:first-child) + :is(toolbarbutton, toolbaritem) { + padding-inline-start: var(--toolbar-start-end-padding) !important; + } + } + #nav-bar-customization-target > #home-button { + position: relative; + z-index: 3 !important; + background-color: var(--toolbar-bgcolor) !important; + background-clip: content-box !important; + border-radius: 100%; + padding-block: 0 !important; + padding-inline-end: 0 !important; + } + @supports -moz-bool-pref("userChrome.padding.toolbar_button") { + @supports -moz-bool-pref("userChrome.padding.toolbar_button.compact") { + #nav-bar-customization-target > #home-button { + --toolbarbutton-inner-padding: var(--uc-toolbarbutton-inner-padding-default); + } + } + } + #nav-bar-customization-target > #home-button > menupopup { + margin-top: -1px !important; + } + #nav-bar-customization-target > #home-button > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-background); + background-origin: padding-box; + background-clip: padding-box; + border: 1px solid var(--uc-combined-circlebutton-border-color); + border-radius: 10000px !important; + padding-inline-end: var(--urlbar-icon-padding) !important; + height: auto !important; + } + #nav-bar-customization-target > #home-button:hover > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-hover-background) !important; + box-shadow: 0 1px 6px hsla(0deg, 0%, 0%, 0.1); + border-color: hsla(240deg, 5%, 5%, 0.35); + } + #nav-bar-customization-target > #home-button:hover:active > .toolbarbutton-icon { + background-color: var(--uc-combined-circlebutton-active-background) !important; + border-color: hsla(240deg, 5%, 5%, 0.4); + } +} +@supports -moz-bool-pref("userChrome.combined.urlbar.reload_button") { + #nav-bar-customization-target > #stop-reload-button { + order: 6; + -moz-box-ordinal-group: 6; + } + #urlbar { + padding-right: calc(var(--uc-toolbarbutton-size) - var(--urlbar-margin-inline) / 2); + } + #nav-bar-customization-target > #stop-reload-button { + z-index: 3; + position: relative; + --toolbarbutton-hover-background: var(--urlbar-box-hover-bgcolor); + color: var(--urlbar-box-hover-text-color) !important; + margin-left: calc(-1 * (var(--uc-toolbarbutton-size) + var(--urlbar-margin-inline))); + } + #nav-bar-customization-target > #stop-reload-button > .toolbarbutton-1 > .toolbarbutton-icon { + width: var(--uc-urlbar-icon-size) !important; + height: var(--uc-urlbar-icon-size) !important; + padding: var(--urlbar-icon-padding) !important; + } +} +/** Others UI *****************************************************************/ +/*= Counter for Tab ==========================================================*/ +@supports -moz-bool-pref("userChrome.counter.tab") { + #tabbrowser-tabs { + counter-reset: tab-counts; + } + .tabbrowser-tab:not([hidden="true"]) { + counter-increment: tab-counts; + } + .tabbrowser-tab:not([hidden="true"])[pinned="true"] .tab-label-container::before { + content: " " counter(tab-counts); + } + .tabbrowser-tab:not([hidden="true"]):not([pinned="true"]) .tab-label-container::before { + content: counter(tab-counts) ": "; + } + .tabbrowser-tab:not([hidden="true"]) .tab-label-container { + display: grid; + align-content: safe center; + align-items: safe center; + } + @supports -moz-bool-pref("userChrome.centered.tab") { + @supports not -moz-bool-pref("userChrome.centered.tab.label") { + .tabbrowser-tab:not([hidden="true"]) .tab-label-container { + justify-content: start; + justify-items: start; + } + } + } + @supports not -moz-bool-pref("userChrome.centered.tab") { + .tabbrowser-tab:not([hidden="true"]) .tab-label-container { + justify-content: start; + justify-items: start; + } + } + .tabbrowser-tab:not([hidden="true"]) .tab-label-container::before { + display: inline-block; + grid-row: 1; + } + .tabbrowser-tab:not([hidden="true"]) .tab-label-container > .tab-text { + grid-row: 1; + } + .tabbrowser-tab:not([hidden="true"]) .tab-label-container[pinned] { + width: unset !important; /* Original: 0 */ + } + .tabbrowser-tab:not([hidden="true"]) .tab-label-container[pinned] > .tab-text, + .tabbrowser-tab:not([hidden="true"]) .tab-label-container[pinned] > .tab-secondary-label { + width: 0; + } + .tab-label, + .tab-secondary-label { + overflow: hidden; + } + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons") { + @supports not -moz-bool-pref("userChrome.hidden.tab_icon") { + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container[labeldirection="ltr"], + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { + --uc-sound-tab-label-position-x: 2px; + } + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container[labeldirection="rtl"], + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { + --uc-sound-tab-label-position-x: -2px; + } + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container::before { + transform: translateX(var(--uc-sound-tab-label-position-x, 0px)); + } + } + @supports -moz-bool-pref("userChrome.hidden.tab_icon") { + @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container[labeldirection="ltr"], + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container:not([labeldirection]):-moz-locale-dir(ltr) { + --uc-sound-tab-label-position-x: 2px; + } + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container[labeldirection="rtl"], + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked])[pinned] + .tab-label-container:not([labeldirection]):-moz-locale-dir(rtl) { + --uc-sound-tab-label-position-x: -2px; + } + .tabbrowser-tab:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label-container::before { + transform: translateX(var(--uc-sound-tab-label-position-x, 0px)); + } + } + } + .tab-label-container::beforee { + transition: transform 0.25s var(--animation-easing-function); + } + } +} +/*= Counter for Bookmark menu ================================================*/ +@supports -moz-bool-pref("userChrome.counter.bookmark_menu") { + menupopup[placespopup="true"] > menu.bookmark-item > .menu-right { + counter-reset: bookmark-counts 0; + } + menupopup[placespopup="true"] > menu.bookmark-item::after { + display: inline-flex; + display: -moz-inline-box; + content: "(" counter(bookmark-counts) ")"; + } + menupopup[placespopup="true"] > menu.bookmark-item > .menu-iconic-highlightable-text, + menupopup[placespopup="true"] > menu.bookmark-item > .menu-accel-container, + menupopup[placespopup="true"] > menu.bookmark-item > .menu-right { + order: 2; + -moz-box-ordinal-group: 2; + } + menu.bookmark-item > menupopup[placespopup="true"] > .bookmark-item { + counter-increment: bookmark-counts; + } +} +@supports -moz-bool-pref("userChrome.findbar.floating_on_top") { + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/floating_findbar_on_top.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + /* Note that privacy.resistFingerprinting.letterboxing prevents this from working properly */ + #main-window > body > box { + z-index: 1; + } + findbar { + order: -1; + -moz-box-ordinal-group: 0; + position: relative; + height: 0 !important; + overflow: visible; + border-top: none !important; + padding: 0 !important; + background: none !important; + pointer-events: none; + z-index: 1; + margin-right: 16px; + border-right: 1px solid var(--chrome-content-separator-color); + } + findbar::before { + content: ""; + display: flex; + display: -moz-box; + position: absolute; + flex: 200; + -moz-box-flex: 200; + } + .findbar-container, + .findbar-closebutton { + border-style: solid; + border-color: var(--chrome-content-separator-color); + background: var(--uc-light-bkgnd-color, var(--toolbar-bgcolor)) !important; + pointer-events: auto; + height: 33px !important; + } + .findbar-container { + flex-direction: row-reverse; + -moz-box-direction: reverse; + border-width: 0 0 1px 1px; + border-radius: var(--uc-rounding-toolbar, var(--toolbarbutton-border-radius)) 0 0 + var(--uc-rounding-toolbar, var(--toolbarbutton-border-radius)) !important; + } + .findbar-container > .findbar-find-fast { + padding: var(--toolbarbutton-inner-padding) 1px; + margin: 0 !important; + } + .findbar-container > .findbar-find-status { + display: flex; + display: -moz-box; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; + -moz-box-flex: 1; + } + .findbar-container > hbox { + margin-inline: 5px; + } + .findbar-closebutton { + width: 30px !important; /* Original: 24px */ + margin: 0 !important; + border-width: 0 1px 1px 0px; + border-radius: 0 var(--toolbarbutton-border-radius) var(--toolbarbutton-border-radius) 0 !important; + padding: 2px 5px 2px 3px !important; + overflow: clip; + } + .findbar-closebutton image { + padding: 4px; + border-radius: var(--toolbarbutton-border-radius); + } + .findbar-closebutton:hover > image { + background: var(--toolbarbutton-hover-background) !important; + } +} +/** Fullscreen - Overlap toolbar **********************************************/ +@supports -moz-bool-pref("userChrome.fullscreen.overlap") { + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox { + position: fixed !important; /* Needed for content to take up entire height */ + z-index: 1000 !important; /* Puts the UI above the content */ + } + :root[sizemode="fullscreen"] :-moz-any(#navigator-toolbox, #titlebar, #nav-bar, #PersonalToolbar) { + width: 100%; /* Makes the UI take up the entire width */ + } + @media (-moz-gtk-csd-available) { + /* Fix transparent background */ + :root[tabsintitlebar][sizemode="fullscreen"] #TabsToolbar:not(:-moz-lwtheme) { + appearance: auto !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.fullscreen.show_bookmarkbar") { + :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized="true"]:not([collapsed="true"]), + :root[sizemode="fullscreen"] #PersonalToolbar[initialized="true"] { + visibility: unset !important; /* Makes the bookmarks toolbar visible if enabled */ + } +} +/** Centered ******************************************************************/ +/*= Centered - Tab ===========================================================*/ +@supports -moz-bool-pref("userChrome.centered.tab") { + .tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]), + .tabbrowser-tab:not(:hover, [pinned]) .tab-label-container:not([textoverflow]) { + margin-inline-end: 5px; + } + @supports -moz-bool-pref("userChrome.tab.close_button_at_hover") { + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:not(:hover, [pinned]) + .tab-label-container:not([textoverflow]) { + margin-inline-end: 1px; + } + #tabbrowser-tabs[closebuttons="activetab"] + .tabbrowser-tab:not([selected]):not(:hover, [pinned]) + .tab-label-container + label { + padding-inline-end: 18px; + } + } + @supports not -moz-bool-pref("userChrome.centered.tab.label") { + .tab-icon-stack { + flex: 1; + -moz-box-flex: 1; + justify-content: end; + } + } + @supports -moz-bool-pref("userChrome.centered.tab.label") { + /* Based on https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/centered_tab_label.css */ + .tab-label-container { + display: grid; + justify-content: safe center; + align-items: safe center; + } + .tab-label, + .tab-secondary-label { + overflow: clip; + } + .tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]), + .tabbrowser-tab:not(:hover, [pinned]) .tab-label-container:not([textoverflow]) { + margin-inline-end: 5px; + } + } +} +/*= Centered - URL Bar =======================================================*/ +@supports -moz-bool-pref("userChrome.centered.urlbar") { + #urlbar:not([focused]) #urlbar-input, + #urlbar:not([focused]) .urlbar-input { + text-align: center !important; + } +} +/*= Centered - Bookmark Bar ==================================================*/ +@supports -moz-bool-pref("userChrome.centered.bookmarkbar") { + #PlacesToolbarItems { + display: flex !important; + justify-content: safe center !important; + } +} +/** Auto Hide *****************************************************************/ +@supports -moz-bool-pref("userChrome.autohide.back_button") or -moz-bool-pref("userChrome.autohide.forward_button") { + :root { + --uc-toolbarbutton-hide-size: calc( + -1 * (16px + (2 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding)))) + ); + } +} +@-moz-document url("chrome://browser/content/browser.xhtml") +{ + @supports -moz-bool-pref("userChrome.autohide.back_button") { + :root:not([customizing="true"]) #back-button[disabled="true"] { + margin-left: var(--uc-toolbarbutton-hide-size) !important; + opacity: 0 !important; + pointer-events: none; + } + @media (prefers-reduced-motion: no-preference) { + #back-button { + transition-property: background-color, opacity, margin-left !important; + } + #back-button[disabled="true"] { + transition: background-color 1s var(--animation-easing-function), opacity 1s var(--animation-easing-function), + margin-left 0.5s ease !important; + } + } + } + @supports -moz-bool-pref("userChrome.autohide.forward_button") { + :root:not([customizing="true"]) #forward-button[disabled="true"] { + margin-left: var(--uc-toolbarbutton-hide-size) !important; + opacity: 0 !important; + pointer-events: none; + } + @media (prefers-reduced-motion: no-preference) { + #forward-button { + transition-property: background-color, opacity, margin-left !important; + } + #forward-button[disabled="true"] { + transition: background-color 1s var(--animation-easing-function), opacity 1s var(--animation-easing-function), + margin-left 0.5s ease !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.autohide.page_action") { + #page-action-buttons > .urlbar-page-action { + margin-inline-end: calc(-16px - 2 * var(--urlbar-icon-padding)); + opacity: 0; + } + #urlbar-container:is(:hover, :focus-within) #page-action-buttons > .urlbar-page-action, + .urlbar-page-action[open], + .urlbar-page-action[open] ~ .urlbar-page-action { + margin-inline-end: 0px !important; + opacity: 1; + } + @media (prefers-reduced-motion: no-preference) { + #page-action-buttons > .urlbar-page-action { + transition: margin-inline-end 50ms var(--animation-easing-function) 900ms, + opacity 1.5s var(--animation-easing-function) 600ms !important; + } + @supports -moz-bool-pref("userChrome.decoration.animate") { + #page-action-buttons > .urlbar-page-action { + transition: margin-inline-end 50ms var(--animation-easing-function) 900ms, + opacity 1.5s var(--animation-easing-function) 600ms, background-color 2.5s var(--animation-easing-function) !important; + } + } + #urlbar-container:is(:hover, :focus-within) #page-action-buttons > .urlbar-page-action, + .urlbar-page-action[open], + .urlbar-page-action[open] ~ .urlbar-page-action { + transition-delay: 0s !important; + } + } +} +@supports -moz-bool-pref("userChrome.autohide.tab") { + @supports not -moz-bool-pref("userChrome.autohide.tab.opacity") { + @supports not -moz-bool-pref("userChrome.autohide.tab.blur") { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + margin-bottom: -64px; + } + } + } + @supports -moz-bool-pref("userChrome.autohide.tab.opacity") { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + opacity: 0%; + } + } + @supports -moz-bool-pref("userChrome.autohide.tab.blur") { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + filter: blur(8px); + } + } + @media (prefers-reduced-motion: no-preference) { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + transition-timing-function: var(--animation-easing-function); + transition-duration: 0.2s; + transition-delay: 600ms; + } + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]):is(:hover, :focus-within) { + transition-delay: 0s; + } + @supports not -moz-bool-pref("userChrome.autohide.tab.opacity") { + @supports not -moz-bool-pref("userChrome.autohide.tab.blur") { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + transition-property: margin-bottom; + } + } + } + @supports -moz-bool-pref("userChrome.autohide.tab.opacity") { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + transition-property: opacity; + } + } + @supports -moz-bool-pref("userChrome.autohide.tab.blur") { + .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { + transition-property: filter; + } + } + } +} +:root { + --uc-autohide-toolbar-speed: 0.25s; + --uc-autohide-toolbar-delay: 600ms; +} + +@supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref( + "userChrome.autohide.bookmarkbar" + ) + or -moz-bool-pref("userChrome.tabbar.one_liner") or -moz-bool-pref("userChrome.tabbar.on_bottom.menubar_on_top") or -moz-bool-pref( + "userChrome.hidden.tabbar" + ) or -moz-bool-pref("userChrome.navbar.as_sidebar") { + :root { + --uc-tabbar-height: var(--uc-tabbar-height-default); + --uc-tabbar-height-default: var(--tab-min-height); + --uc-tabbar-hide-height: calc(-1 * var(--uc-tabbar-height)); + --uc-navbar-height: var(--uc-navbar-height-default); + --uc-navbar-height-default: calc( + 16px + 2 * (var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) + ); + --uc-navbar-hide-height: calc(-1 * var(--uc-navbar-height)); + --uc-bm-height: var(--uc-bm-height-default); + --uc-bm-height-default: calc( + 20px + (2 * var(--bookmark-block-padding, 4px)) + ); /* 20px = 16px + (2px * 2) [margin block] */ + --uc-bm-hide-height: calc(-1 * var(--uc-bm-height)); + --uc-titlebar-buttonbox-height: 34px; + --uc-menubar-height: 0px; + --uc-menubar-height-default: calc(1.6rem + 2px); + --uc-menubar-inner-height: calc(1.6rem - 2px); + } + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + :root { + --uc-tabbar-height: 0px; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + :root { + --uc-tabbar-height: 0px; + } + } + } + } + } + @supports -moz-bool-pref("userChrome.hidden.navbar") { + :root { + --uc-navbar-height: 0px; + } + } + @supports selector(:has(a)) { + :root:not([tabsintitlebar]):has(#toolbar-menubar) { + --uc-menubar-height: var(--uc-menubar-height-default); + } + @media (-moz-gtk-csd-available) { + :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + --uc-menubar-height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + --uc-menubar-height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); + } + } + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"]) { + --uc-menubar-height: calc(var(--tab-min-height) + var(--tab-block-margin)); + } + } + :root[tabsintitlebar]:has(#toolbar-menubar[autohide="false"]) { + --uc-menubar-height: var(--uc-titlebar-buttonbox-height); + } + :root:not([tabsintitlebar]):has(#toolbar-menubar[autohide="true"][inactive="true"]), + :root[tabsintitlebar]:has(#toolbar-menubar[autohide="true"][inactive="true"]) { + --uc-menubar-height: 0px; + } + #navigator-toolbox:has(#PersonalToolbar[collapsed="true"]) { + --uc-bm-height: 0px; + } + @supports -moz-bool-pref("userChrome.navbar.as_sidebar") { + #navigator-toolbox:has(#PersonalToolbar[collapsed="false"]) #nav-bar { + --uc-bm-height: var(--uc-bm-height-default); + } + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:has(#PersonalToolbar[collapsed="false"]):not(:hover) #nav-bar { + --uc-bm-height: 0px; + } + } + } + } +} +@supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref( + "userChrome.autohide.bookmarkbar" + ) + or -moz-bool-pref("userChrome.autohide.infobar") { + #navigator-toolbox { + position: relative; + } + #navigator-toolbox:is(:hover, :focus-within) { + z-index: 2; + } + #navigator-toolbox:is(:hover, :focus-within) #PersonalToolbar { + z-index: -1; + } + #navigator-toolbox:not(:hover):not(:focus-within) { + animation: 1s keepfront; + } + @keyframes keepfront { + from { + z-index: 3; + } + to { + z-index: 3; + } + } + #sidebar-box:is(:hover, :focus-within) { + position: relative; + z-index: 2 !important; + } + @supports -moz-bool-pref("userChrome.autohide.toolbar_overlap") { + #navigator-toolbox { + --uc-toolbar-hide-height: calc(-1 * var(--uc-toolbar-height, 0)); + margin-bottom: var(--uc-toolbar-hide-height) !important; + } + @media (prefers-reduced-motion: no-preference) { + @supports -moz-bool-pref("userChrome.decoration.animate") { + #navigator-toolbox { + transition: margin-top 1s ease, + margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay); + } + #navigator-toolbox:is(:hover, :focus-within) { + transition-delay: 0s !important; + } + #navigator-toolbox[inFullscreen="true"] { + transition: margin-top 1.3s var(--animation-easing-function) 50ms, + margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay); + } + } + @supports not -moz-bool-pref("userChrome.decoration.animate") { + #navigator-toolbox { + transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay); + } + #navigator-toolbox:is(:hover, :focus-within) { + transition-delay: 0s !important; + } + } + } + @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") { + @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: var(--uc-tabbar-height); + } + @supports not -moz-bool-pref("userChrome.autohide.navbar") { + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-bm-height)); + } + } + } + @supports -moz-bool-pref("userChrome.autohide.navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height)); + } + } + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height) + var(--uc-bm-height)); + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height)); + } + } + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-tabbar-height) + var(--uc-navbar-height) + var(--uc-bm-height)); + } + } + } + } + } + } + } + } + @supports not -moz-bool-pref("userChrome.autohide.tabbar") { + @supports not -moz-bool-pref("userChrome.autohide.navbar") { + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: var(--uc-bm-height); + } + } + } + @supports -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: var(--uc-navbar-height); + } + } + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-navbar-height) + var(--uc-bm-height)); + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + @supports not -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: var(--uc-navbar-height); + } + } + @supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #navigator-toolbox:is(:hover, :focus-within) { + --uc-toolbar-height: calc(var(--uc-navbar-height) + var(--uc-bm-height)); + } + } + } + } + } + } + } + } + } +} +@supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.autohide.navbar") { + @supports -moz-bool-pref("userChrome.autohide.tabbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + :root:not([customizing]) #titlebar { + margin-bottom: var(--uc-tabbar-hide-height); + will-change: margin-bottom; + } + #TabsToolbar:not([customizing]) { + will-change: opacity; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]), + #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { + opacity: 0; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { + opacity: 0; + } + } + #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + margin-bottom: 0px; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar, + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar .titlebar-buttonbox-container { + opacity: 1; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar > *:not(.titlebar-buttonbox-container) { + opacity: 1; + } + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (min-width: 1100px) { + :root:not([customizing]) #titlebar { + margin-bottom: var(--uc-tabbar-hide-height); + will-change: margin-bottom; + } + #TabsToolbar:not([customizing]) { + will-change: opacity; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]), + #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { + opacity: 0; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { + opacity: 0; + } + } + #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + margin-bottom: 0px; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar, + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar .titlebar-buttonbox-container { + opacity: 1; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar > *:not(.titlebar-buttonbox-container) { + opacity: 1; + } + } + } + @supports -moz-bool-pref("userChrome.autohide.tabbar") { + :root:not([customizing]) #titlebar { + margin-bottom: var(--uc-tabbar-hide-height); + will-change: margin-bottom; + } + #TabsToolbar:not([customizing]) { + will-change: opacity; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]), + #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { + opacity: 0; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { + opacity: 0; + } + } + #navigator-toolbox:is(:hover, :focus-within) > #titlebar { + margin-bottom: 0px; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar, + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar .titlebar-buttonbox-container { + opacity: 1; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar > *:not(.titlebar-buttonbox-container) { + opacity: 1; + } + } + } + } + @media (prefers-reduced-motion: no-preference) { + #titlebar:not([customizing]) { + transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + background-color 1s var(--animation-easing-function) !important; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]), + #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { + transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay) !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #TabsToolbar:not([customizing]) > *:not(.titlebar-buttonbox-container) { + transition: opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay) !important; + } + } + #navigator-toolbox:is(:hover, :focus-within) { + transition-delay: 0s !important; + } + #navigator-toolbox:is(:hover, :focus-within) > #titlebar:not([customizing]) { + transition-delay: 0s !important; + } + @supports not -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar:not([customizing]), + #navigator-toolbox:is(:hover, :focus-within) #TabsToolbar:not([customizing]) .titlebar-buttonbox-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.on_bottom") { + #navigator-toolbox:is(:hover, :focus-within) + #TabsToolbar:not([customizing]) + > *:not(.titlebar-buttonbox-container) { + transition-delay: 0s !important; + } + } + } + } + @supports -moz-bool-pref("userChrome.autohide.navbar") or -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.autohide.navbar") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar:not([customizing]) { + margin-bottom: var(--uc-navbar-hide-height); + opacity: 0; + will-change: margin-bottom, opacity; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { + margin-bottom: 0; + opacity: 1; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + #nav-bar:not([customizing]) { + margin-bottom: var(--uc-navbar-hide-height); + opacity: 0; + will-change: margin-bottom, opacity; + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { + margin-bottom: 0; + opacity: 1; + } + } + } + } + } + @media (prefers-reduced-motion: no-preference) { + #nav-bar:not([customizing]) { + transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + } + @supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + #nav-bar:not([customizing]) { + transition: margin-inline var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + } + } + #navigator-toolbox:is(:hover, :focus-within) #nav-bar:not([customizing]) { + transition-delay: 0s !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.autohide.bookmarkbar") { + #PersonalToolbar:not([customizing]) { + margin-bottom: var(--uc-bm-hide-height); + opacity: 0; + will-change: margin-bottom, opacity; + } + @supports -moz-bool-pref("userChrome.autohide.toolbar_overlap") { + @supports not -moz-bool-pref("userChrome.autohide.toolbar_overlap.allow_layout_shift") { + @supports not selector(:has(a)) { + #PersonalToolbar:not([customizing])[collapsed="true"] { + visibility: visible !important; + max-height: unset !important; + } + } + } + } + #navigator-toolbox:is(:hover, :focus-within) #PersonalToolbar:not([customizing]) { + margin-bottom: 0; + opacity: 1; + } + @media (prefers-reduced-motion: no-preference) { + #PersonalToolbar:not([customizing]) { + transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), + min-height 170ms ease-out, max-height 170ms ease-out, var(--ext-theme-background-transition) !important; + } + #navigator-toolbox:is(:hover, :focus-within) #PersonalToolbar:not([customizing]) { + transition-delay: 0s !important; + } + } +} +@supports -moz-bool-pref("userChrome.autohide.infobar") { + #tab-notification-deck:not([customizing]) > .notificationbox-stack { + --infobar-height: calc( + 25px + (var(--infobar-button-vertical-margin, 4px) * 2) + var(--infobar-message-vertical-margin, 8px) + ); + } + #tab-notification-deck:not([customizing]) > .notificationbox-stack[slot="selected"] > notification-message { + --infobar-message-margin: 0 4px calc(-1 * var(--infobar-height)); + opacity: 0; + will-change: margin-bottom, opacity; + } + #navigator-toolbox:is(:hover, :focus-within) + #tab-notification-deck:not([customizing]) + > .notificationbox-stack[slot="selected"] + > notification-message { + --infobar-message-margin: 0 4px var(--infobar-message-vertical-margin, 8px); + opacity: 1; + } + @supports -moz-bool-pref("userChrome.autohide.toolbar_overlap") { + #tab-notification-deck:not([customizing]) { + height: 0; + } + } + @media (prefers-reduced-motion: no-preference) { + #tab-notification-deck:not([customizing]) > .notificationbox-stack[slot="selected"] > notification-message { + transition: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + opacity var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + } + #navigator-toolbox:is(:hover, :focus-within) + #tab-notification-deck:not([customizing]) + > .notificationbox-stack[slot="selected"] + > notification-message { + transition-delay: 0s !important; + } + } +} +@supports -moz-bool-pref("userChrome.autohide.sidebar") { + #sidebar-box { + min-width: var(--uc-sidebar-width) !important; + max-width: var(--uc-sidebar-width) !important; + } + :root[inFullscreen="true"] #sidebar-box { + min-width: var(--uc-sidebar-activate-width) !important; + max-width: var(--uc-sidebar-activate-width) !important; + } + @supports -moz-bool-pref("userChrome.sidebar.overlap") { + #sidebar-header, + #sidebar { + min-width: var(--uc-sidebar-width) !important; + max-width: var(--uc-sidebar-width) !important; + will-change: min-width, max-width; + } + #sidebar-box:is(:hover, :focus-within), + #sidebar-box:has(#sidebar-switcher-target.active) { + --uc-sidebar-shadow-width: calc(var(--uc-sidebar-activate-width) - var(--uc-sidebar-width)); + } + #sidebar-box:is(:hover, :focus-within) > #sidebar-header, + #sidebar-box:is(:hover, :focus-within) > #sidebar, + #sidebar-box:has(#sidebar-switcher-target.active) > #sidebar-header, + #sidebar-box:has(#sidebar-switcher-target.active) > #sidebar { + min-width: var(--uc-sidebar-activate-width) !important; + max-width: var(--uc-sidebar-activate-width) !important; + } + :root[inFullscreen="true"] #sidebar-box { + --uc-sidebar-shadow-width: var(--uc-sidebar-fullscreen-width); + margin-inline-start: var(--uc-sidebar-activate-width-reverse) !important; + padding-inline-start: var(--uc-sidebar-fullscreen-width); + will-change: padding-inline-start, opacity, box-shadow, visibility; + } + :root[inFullscreen="true"] #sidebar-box:is(:hover, :focus-within) { + --uc-sidebar-shadow-width: var(--uc-sidebar-activate-width); + padding-inline-start: var(--uc-sidebar-activate-width); + } + :root[inFullscreen="true"] #sidebar-box #sidebar-header, + :root[inFullscreen="true"] #sidebar-box #sidebar { + min-width: calc(var(--uc-sidebar-activate-width)) !important; + max-width: calc(var(--uc-sidebar-activate-width)) !important; + will-change: unset; + } + @media (prefers-reduced-motion: no-preference) { + #sidebar-header, + #sidebar { + transition: min-width var(--uc-autohide-sidebar-speed) var(--animation-easing-function) + var(--uc-autohide-sidebar-delay) !important; + } + #sidebar-box:is(:hover, :focus-within), + #siebar-box:has(#sidebar-switcher-target.active) { + transition: margin-inline-start var(--uc-autohide-sidebar-speed) var(--animation-easing-function), + opacity var(--uc-autohide-sidebar-speed) ease-in-out, + box-shadow var(--uc-autohide-sidebar-speed) var(--animation-easing-function) var(--uc-autohide-sidebar-speed), + visibility 0s linear !important; + } + #sidebar-box:is(:hover, :focus-within) > #sidebar-header, + #sidebar-box:is(:hover, :focus-within) > #sidebar, + #siebar-box:has(#sidebar-switcher-target.active) > #sidebar-header, + #siebar-box:has(#sidebar-switcher-target.active) > #sidebar { + transition-delay: 0ms !important; + } + :root[inFullscreen="true"] #sidebar-box { + transition: padding-inline-start var(--uc-autohide-fullscreen-sidebar-speed) var(--animation-easing-function) + var(--uc-autohide-sidebar-delay), + opacity var(--uc-autohide-fullscreen-sidebar-speed) ease-in-out, + box-shadow calc(var(--uc-autohide-fullscreen-sidebar-speed) + 0.05s) var(--animation-easing-function), + visibility 0s linear !important; + } + :root[inFullscreen="true"] #sidebar-box:is(:hover, :focus-within), + :root[inFullscreen="true"] #sidebar-box:has(#sidebar-switcher-target.active) { + transition-delay: 0ms !important; + } + } + } + @supports not -moz-bool-pref("userChrome.sidebar.overlap") { + #sidebar-box { + --uc-sidebar-fullscreen-margin: calc( + var(--uc-sidebar-fullscreen-width) + var(--uc-sidebar-activate-width-reverse) + ); + overflow: hidden; + will-change: min-width, max-width; + } + #sidebar-box:is(:hover, :focus-within), + #sidebar-box:has(#sidebar-switcher-target.active) { + min-width: var(--uc-sidebar-activate-width) !important; + max-width: var(--uc-sidebar-activate-width) !important; + } + :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]) { + margin-inline-start: var(--uc-sidebar-fullscreen-margin) !important; + will-change: margin-inline-start; + } + :root[inFullscreen="true"] #sidebar-box:not([positionend="true"]):is(:hover, :focus-within) { + margin-inline-start: 0 !important; + } + :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + margin-inline-end: var(--uc-sidebar-fullscreen-margin) !important; + will-change: margin-inline-end; + } + :root[inFullscreen="true"] #sidebar-box[positionend="true"]:is(:hover, :focus-within) { + margin-inline-end: 0 !important; + } + @media (prefers-reduced-motion: no-preference) { + #sidebar-box { + transition: min-width var(--uc-autohide-sidebar-speed) var(--animation-easing-function) + var(--uc-autohide-sidebar-delay), + max-width var(--uc-autohide-sidebar-speed) var(--animation-easing-function) var(--uc-autohide-sidebar-delay) !important; + } + #sidebar-box:is(:hover, :focus-within), + #sidebar-box:has(#sidebar-switcher-target.active) { + transition-delay: 0ms !important; + } + :root[inFullscreen="true"] #sidebar-box { + transition: margin-inline-start var(--uc-autohide-fullscreen-sidebar-speed) var(--animation-easing-function) + var(--uc-autohide-sidebar-delay) !important; + } + :root[inFullscreen="true"] #sidebar-box[positionend="true"] { + transition-property: margin-inline-end !important; + } + :root[inFullscreen="true"] #sidebar-box:is(:hover, :focus-within), + :root[inFullscreen="true"] #sidebar-box:has(#sidebar-switcher-target.active) { + transition-delay: 0ms !important; + } + } + } +} +@supports -moz-bool-pref("userChrome.autohide.fill_urlbar") { + #nav-bar:not(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) #urlbar-container { + order: -1; + -moz-box-ordinal-group: 0; + min-width: calc( + var(--uc-navbar-width, 100vw) - + (2 * var(--urlbar-margin-inline) + var(--uc-window-drag-space-pre, 0px) + var(--uc-navbar-gap, 0px)) + ) !important; + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + #nav-bar:is(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) { + --uc-tabbar-width: calc(100vw - var(--uc-navbar-width-origin)); + } + } + @media (prefers-reduced-motion: no-preference) { + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + #nav-bar { + transition: margin-inline var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + } + #nav-bar:is(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (prefers-reduced-motion: no-preference) and (min-width: 1100px) { + #nav-bar { + transition: margin-inline var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay), + var(--ext-theme-background-transition) !important; + } + #nav-bar:is(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) { + transition-delay: 0s !important; + } + } + } + } + @supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + #urlbar-container { + transition: min-width var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay); + } + #nav-bar:is(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) #urlbar-container { + transition-delay: 0s !important; + } + } + @supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (prefers-reduced-motion: no-preference) and (max-width: 1100px) { + #urlbar-container { + transition: min-width var(--uc-autohide-toolbar-speed) var(--animation-easing-function) + var(--uc-autohide-toolbar-delay); + } + #nav-bar:is(:hover, :focus-within, [urlbar-exceeds-toolbar-bounds="true"]) #urlbar-container { + transition-delay: 0s !important; + } + } + } + } + } +} +/** Hidden ********************************************************************/ +@supports not -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #TabsToolbar { + display: none !important; + } + } + @supports -moz-bool-pref("userChrome.hidden.navbar") { + #nav-bar { + visibility: collapse; /* display: none is not work */ + } + } +} +@supports -moz-bool-pref("userChrome.tabbar.one_liner") { + @supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") { + @media screen and (max-width: 1100px) { + @supports -moz-bool-pref("userChrome.hidden.tabbar") { + #TabsToolbar { + display: none !important; + } + } + @supports -moz-bool-pref("userChrome.hidden.navbar") { + #nav-bar { + visibility: collapse; /* display: none is not work */ + } + } + } + } +} +@supports -moz-bool-pref("userChrome.hidden.tab_icon") { + @supports not -moz-bool-pref("userChrome.hidden.tab_icon.always") { + .tabbrowser-tab:not([pinned="true"]) .tab-icon-image { + display: none; + } + } + @supports -moz-bool-pref("userChrome.hidden.tab_icon.always") { + .tabbrowser-tab:not([pinned="true"]) .tab-icon-stack { + display: none; + } + } +} +@supports -moz-bool-pref("userChrome.hidden.private_indicator") { + .private-browsing-indicator, + #private-browsing-indicator-with-label { + display: none; + } +} +@supports -moz-bool-pref("userChrome.hidden.titlebar_container") { + .titlebar-buttonbox-container { + display: none !important; + } +} +@supports -moz-bool-pref("userChrome.hidden.sidebar_header") { + @supports not -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { + #sidebar-header { + display: none !important; + } + } + @supports -moz-bool-pref("userChrome.hidden.sidebar_header.vertical_tab_only") { + #sidebar-box:is( + [sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"], + [sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"], + [sidebarcommand="sidebartabs_asamuzak_jp-sidebar-action"] + ) + #sidebar-header { + display: none !important; + } + } +} +@supports -moz-bool-pref("userChrome.hidden.urlbar_iconbox") { + @supports not -moz-bool-pref("userChrome.hidden.urlbar_iconbox.label_only") { + #identity-box[pageproxystate="valid"].notSecureText #identity-icon-label, + #identity-box[pageproxystate="valid"].chromeUI #identity-icon-box, + #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box { + display: none; + } + #identity-box[pageproxystate="valid"].notSecureText #identity-icon-box { + padding-inline-end: 5px; /* Original: 8px */ + } + } + @supports -moz-bool-pref("userChrome.hidden.urlbar_iconbox.label_only") { + #identity-box[pageproxystate="valid"].notSecureText, + #identity-box[pageproxystate="valid"].chromeUI, + #identity-box[pageproxystate="valid"].extensionPage { + margin-inline-end: var(--identity-box-margin-inline) !important; + } + #identity-box[pageproxystate="valid"].chromeUI #identity-icon-box:not(:hover), + #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box:not(:hover) { + background-color: transparent !important; + } + @supports not -moz-bool-pref("userChrome.urlbar.iconbox_with_separator") { + #identity-box[pageproxystate="valid"].chromeUI #identity-icon-box, + #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box { + padding-inline: var(--urlbar-icon-padding) !important; + } + } + #identity-box[pageproxystate="valid"] #identity-icon-label { + display: none !important; + } + } +} +@supports -moz-bool-pref("userChrome.hidden.bookmarkbar_icon") { + #PlacesToolbarItems .bookmark-item > .toolbarbutton-icon { + display: none; + } +} +@supports -moz-bool-pref("userChrome.hidden.bookmarkbar_label") { + #PlacesToolbarItems .bookmark-item > .toolbarbutton-text { + visibility: collapse; /* display: none is not work */ + } +} + +@supports -moz-bool-pref("userChrome.hidden.disabled_menu") { + menu[disabled="true"], + menuitem:not(#context-back, #context-forward)[disabled="true"] { + visibility: collapse !important; + } + @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + #context-back[disabled="true"], + #context-forward[disabled="true"] { + visibility: collapse !important; + } + } +} +/** Icons *********************************************************************/ +@supports not -moz-bool-pref("userChrome.icon.disabled") { + /** Library - Icons Replace ***************************************************/ + @supports -moz-bool-pref("userChrome.icon.library") { + /*= Standard Folder - More Visible ===========================================*/ + /* on Toolbar and Menus */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer]), + :-moz-any(#bookmarks-view, #historyTree, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(title, container), + #editBMPanel_folderMenuList:not([selectedGuid="toolbar_____"], [selectedGuid="menu________"]), + #editBMPanel_folderMenuList .folder-icon:not([id]), + .downloadIconShow > .button-box > .button-icon { + list-style-image: url("../icons/folder.svg") !important; + } + /* Standard Folder - Open */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer])[open="true"], + :-moz-any(#bookmarks-view, #historyTree, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(title, container, open) { + list-style-image: url("../icons/folder-open.svg") !important; + } + /*= Other Folder - Inbox Icon ================================================*/ + /* on Menus */ + #PlacesToolbar #OtherBookmarks, + #BMB_bookmarksPopup #BMB_unsortedBookmarks, + #bookmarksMenuPopup #menu_unsortedBookmarks, + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, OrganizerQuery_UnfiledBookmarks), + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, queryFolder_unfiled_____), + #editBMPanel_unfiledRootItem, + #editBMPanel_folderMenuList[selectedGuid="unfiled_____"] { + list-style-image: url("../icons/mail-inbox-all.svg") !important; + } + /* Other Folder - Open */ + #PlacesToolbar #OtherBookmarks[open="true"], + #BMB_bookmarksPopup #BMB_unsortedBookmarks[open="true"], + #bookmarksMenuPopup #menu_unsortedBookmarks[open="true"], + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, OrganizerQuery_UnfiledBookmarks), + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, queryFolder_unfiled_____) { + list-style-image: url("../icons/mail-inbox.svg") !important; + } + /*= Default Icon - Override ===================================================*/ + /* https://github.com/mozilla/gecko-dev/blob/master/browser/themes/shared/places/tree-icons.css */ + /* Query */ + :-moz-any(#historyTree, #placesList, #placeContent) treechildren::-moz-tree-image(title, query) { + list-style-image: url("chrome://browser/skin/places/folder-smart.svg") !important; + } + /* History */ + :-moz-any(#historyTree, #placesList, #placeContent) treechildren::-moz-tree-image(title, query, dayContainer), + :-moz-any(#historyTree, #placesList, #placeContent) + treechildren::-moz-tree-image(query, OrganizerQuery_history____v) { + list-style-image: url("chrome://browser/skin/history.svg") !important; + } + /* Downloads */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, OrganizerQuery_downloads__v) { + list-style-image: url("chrome://browser/skin/downloads/downloads.svg") !important; + } + /* Tag */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(title, query, tagContainer), + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, OrganizerQuery_tags_______v) { + list-style-image: url("chrome://browser/skin/places/tag.svg") !important; + } + /* Bookmark */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, OrganizerQuery_allbms_____v) { + list-style-image: url("chrome://browser/skin/bookmark.svg") !important; + } + /* Bookmark Toolbar */ + #BMB_bookmarksPopup #BMB_bookmarksToolbar, + #bookmarksMenuPopup #bookmarksToolbarFolderMenu, + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, queryFolder_toolbar_____) { + list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.svg") !important; + } + /* Bookmark Menu */ + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, queryFolder_menu________) { + list-style-image: url("chrome://browser/skin/places/bookmarksMenu.svg") !important; + } + /*= Default Icon - Open ======================================================*/ + /* Query */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"][query="true"]:not([tagContainer])[open="true"] + > .menu-iconic-left + > .menu-iconic-icon { + transform: rotate(15deg) !important; + } + /* History */ + :-moz-any(#historyTree, #placesList, #placeContent) treechildren::-moz-tree-image(title, query, open, dayContainer), + :-moz-any(#historyTree, #placesList, #placeContent) + treechildren::-moz-tree-image(query, open, OrganizerQuery_history____v) { + list-style-image: url("../icons/history-reverse.svg") !important; + } + /* Tag */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"][tagContainer="true"][open="true"], + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(title, query, open, tagContainer), + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, open, OrganizerQuery_tags_______v) { + list-style-image: url("../icons/tag-open.svg") !important; + } + /* Bookmark */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, open, OrganizerQuery_allbms_____v) { + list-style-image: url("chrome://browser/skin/bookmark-hollow.svg") !important; + } + /* Bookmark Toolbar */ + #BMB_bookmarksPopup #BMB_bookmarksToolbar[open="true"], + #bookmarksMenuPopup #bookmarksToolbarFolderMenu[open="true"], + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, queryFolder_toolbar_____) { + list-style-image: url("../icons/bookmarksToolbar-open.svg") !important; + } + /* Bookmark Menu */ + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, queryFolder_menu________) { + list-style-image: url("../icons/bookmarksMenu-open.svg") !important; /* or bookmarksMenu-open2.svg" */ + } + @-moz-document url("chrome://browser/content/places/places.xhtml") + { + @media (-moz-gtk-csd-available) { + /*= Menubar - Icons ==========================================================*/ + #organizeButton, + #viewMenu, + #maintenanceButton, + #back-button, + #forward-button, + #clearDownloadsButton { + fill: currentColor !important; + -moz-context-properties: fill, fill-opacity, stroke !important; + } + /* Add */ + #organizeButton { + list-style-image: url("chrome://global/skin/icons/settings.svg") !important; + } + #viewMenu { + list-style-image: url("../icons/sort.svg") !important; + } + #maintenanceButton { + list-style-image: url("../icons/import-export.svg") !important; + } + #clearDownloadsButton { + list-style-image: url("chrome://global/skin/icons/delete.svg") !important; + } + #clearDownloadsButton > .toolbarbutton-icon { + display: inline-flex !important; + display: -moz-inline-box !important; + margin-top: 0; + margin-bottom: 0; + margin-inline-start: 0; + margin-inline-end: 2px; + } + /* Replace */ + #back-button { + list-style-image: url("chrome://browser/skin/back.svg") !important; + } + #forward-button { + list-style-image: url("chrome://browser/skin/forward.svg") !important; + } + #back-button:-moz-locale-dir(rtl) > .toolbarbutton-icon, + #forward-button:-moz-locale-dir(rtl) > .toolbarbutton-icon { + transform: scaleX(-1) !important; + } + } + } + } + /** Panel - Icons *************************************************************/ + :root { + --uc-sidebar-icon: url("chrome://browser/skin/sidebars.svg"); + --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars-right.svg"); + } + @supports selector(:has(a)) { + :root:has(#sidebar-box[positionend="true"]) { + --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); + --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.panel") { + /*= Padding ==================================================================*/ + :root { + --arrowpanel-menuicon-padding: 8px; + --arrowpanel-menublank-padding: calc( + var(--arrowpanel-menuicon-padding) * 2 + var(--arrowpanel-menuitem-padding-inline) + ) !important; + --arrowpanel-menuimageblank-padding: calc(var(--arrowpanel-menuitem-padding-inline) - 2px) !important; + --arrowpanel-menuimageblank-padding-block: calc(var(--arrowpanel-menuitem-padding-block) - 2px) !important; + } + .subviewbutton > .toolbarbutton-icon { + width: 16px; + } + @supports not -moz-bool-pref("userChrome.icon.panel_full") { + :root { + /* Global */ + --arrowpanel-menuicon-paddingx2: calc(var(--arrowpanel-menuicon-padding) * 2); + /* General Panel */ + --arrowpanel-menublank-padding: calc(var(--arrowpanel-menuicon-paddingx2) + 8px) !important; + --arrowpanel-menuimageblank-padding: calc(var(--arrowpanel-menuitem-padding-inline) - 2px) !important; + /* Blank Menu Left Padding */ + --arrowpanel-menuimageblank-padding-horizontal: calc( + var(--arrowpanel-menuicon-paddingx2) + var(--arrowpanel-menuitem-padding-inline) + ); + --arrowpanel-menuitemblank-padding: calc(var(--arrowpanel-menuitem-padding-block) + 1px); + } + } + #downloadsHistory .button-text, + .subviewbutton > .toolbarbutton-text { + padding-inline-start: var(--arrowpanel-menuicon-padding) !important; + } + .toolbaritem-combined-buttons:not(.unified-extensions-item) + > .subviewbutton:not(.subviewbutton-iconic) + > .toolbarbutton-text { + padding-inline-start: 0 !important; + } + #panelMenu_bookmarksMenu .subviewbutton[disabled="true"] .toolbarbutton-text, + #appMenu_historyMenu .subviewbutton[disabled="true"] .toolbarbutton-text { + padding-inline-start: var(--arrowpanel-menublank-padding) !important; + } + #appMenu-proton-update-banner .toolbarbutton-text { + margin-inline-start: 0 !important; + padding-inline-start: 0 !important; /* FF v107 */ + } + #appMenu-multiView .subviewbutton::before, + #appMenu-proton-update-banner::before { + display: inline-flex; + display: -moz-inline-box; + margin-inline-end: var(--arrowpanel-menuicon-padding); + width: 16px; + height: 16px; + } + #appMenu-proton-update-banner { + margin-bottom: 2px !important; + padding-inline-start: var(--arrowpanel-menuitem-padding-inline) !important; + } + #appMenu-fxa-status2, + #appMenu-zoom-controls2, + #appMenu-zoom-controls { + align-items: center; + padding-top: var(--arrowpanel-menuimageblank-padding-block) !important; + padding-bottom: var(--arrowpanel-menuimageblank-padding-block) !important; + } + #appMenu-zoom-controls2::before, + #appMenu-zoom-controls::before { + margin-inline-end: 0 !important; + } + #appMenu-zoomReduce-button2, + #appMenu-zoomReset-button2, + #appMenu-zoomEnlarge-button2, + #appMenu-fullscreen-button2 { + --arrowpanel-menuitem-padding-block: 0px; + } + .subviewbutton[type="checkbox"]:not([checked="true"], #allTabsMenu_sortTabsButton) > .toolbarbutton-text { + margin-left: 16px !important; + } + /* Icons Color */ + #appMenu-multiView .subviewbutton::before, + #appMenu-proton-update-banner::before, + #downloadsHistory .button-icon, + .subviewbutton:not(#appMenu-proton-update-banner) > image { + fill: currentColor !important; + fill-opacity: var(--toolbarbutton-icon-fill-opacity) !important; + -moz-context-properties: fill, fill-opacity, stroke !important; + } + #appMenu-zoomReduce-button2 > .toolbarbutton-icon, + #appMenu-zoomEnlarge-button2 > .toolbarbutton-icon { + stroke: var(--zoom-controls-bgcolor, var(--button-bgcolor, ButtonFace)) !important; + } + #appMenu-zoomReduce-button2:not([disabled], [open], :active):is(:hover) > .toolbarbutton-icon, + #appMenu-zoomEnlarge-button2:not([disabled], [open], :active):is(:hover) > .toolbarbutton-icon { + stroke: var(--button-hover-bgcolor) !important; + } + .subviewbutton[disabled="true"] > image { + /* Ghost icons when disabled */ + opacity: 0.4; + } + /*= Panel - Main =============================================================*/ + #appMenu-proton-addon-banners > .addon-banner-item > .toolbarbutton-icon { + display: inline-flex !important; + display: -moz-inline-box !important; + margin-inline-start: var(--arrowpanel-menuicon-padding); + order: -1 !important; + -moz-box-ordinal-group: 0 !important; + } + #appMenu-proton-update-banner::before { + content: url("../icons/whatsnew.svg"); + } + #appMenu-fxa-status2::before { + /* Don't exist img tag */ + content: url("chrome://browser/skin/fxa/avatar-empty.svg"); + } + #appMenu-fxa-status2:is([fxastatus="signedin"], [fxastatus="unverified"], [fxastatus="login-failed"])::before { + display: none; + } + #appMenu-fxa-status2:is([fxastatus="signedin"], [fxastatus="unverified"], [fxastatus="login-failed"]) + #appMenu-fxa-label2::before { + /* url("https://profile.accounts.firefox.com/v1/avatar/a") */ + content: ""; + border-radius: 50% !important; + background-size: 16px !important; + background-image: var(--avatar-image-url) !important; + } + @supports -moz-bool-pref("userChrome.icon.panel_full") or -moz-bool-pref("userChrome.icon.panel_photon") { + #appMenu-new-tab-button2 { + list-style-image: url("chrome://browser/skin/new-tab.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.panel_photon") { + #appMenu-save-file-button2, + #appMenu-find-button2, + #appMenu-more-button2 { + padding-top: var(--arrowpanel-menuitemblank-padding) !important; + padding-bottom: var(--arrowpanel-menuitemblank-padding) !important; + } + #appMenu-zoom-controls2, + #appMenu-zoom-controls { + padding-inline-start: var(--arrowpanel-menuimageblank-padding-horizontal) !important; + } + } + @supports not -moz-bool-pref("userChrome.icon.panel_photon") { + @supports not -moz-bool-pref("userChrome.icon.panel_full") { + #appMenu-new-tab-button2, + #appMenu-passwords-button, + #appMenu-extensions-themes-button, + #appMenu-save-file-button2, + #appMenu-find-button2, + #appMenu-more-button2, + #appMenu-help-button2, + #appMenu-quit-button2 { + padding-top: var(--arrowpanel-menuitemblank-padding-block) !important; + padding-bottom: var(--arrowpanel-menuitemblank-padding-block) !important; + } + #appMenu-zoom-controls2, + #appMenu-zoom-controls { + padding-inline-start: var(--arrowpanel-menuimageblank-padding-horizontal) !important; + } + } + } + #appMenu-new-window-button2 { + list-style-image: url("chrome://browser/skin/window.svg"); + } + #appMenu-new-private-window-button2 { + list-style-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #appMenu-bookmarks-button { + list-style-image: url("chrome://browser/skin/bookmark.svg"); + } + #appMenu-history-button { + list-style-image: url("chrome://browser/skin/history.svg"); + } + #appMenu-downloads-button { + list-style-image: url("chrome://browser/skin/downloads/downloads.svg"); + } + @supports -moz-bool-pref("userChrome.icon.panel_full") or -moz-bool-pref("userChrome.icon.panel_photon") { + #appMenu-passwords-button { + list-style-image: url("chrome://browser/skin/login.svg"); + } + #appMenu-extensions-themes-button { + list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); + } + } + #appMenu-print-button2 { + list-style-image: url("chrome://global/skin/icons/print.svg"); + } + @supports -moz-bool-pref("userChrome.icon.panel_full") { + #appMenu-save-file-button2 { + list-style-image: url("../icons/toolbarButton-download.svg"); + } + #appMenu-find-button2 { + list-style-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #appMenu-translate-button { + list-style-image: url(chrome://browser/skin/translations.svg); + } + #appMenu-zoom-controls2::before, + #appMenu-zoom-controls::before { + content: url("../icons/screenshot.svg"); + } + } + #save-page-button { + list-style-image: url("../icons/toolbarButton-download.svg") !important; + } + #appMenu-settings-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } + @supports -moz-bool-pref("userChrome.icon.panel_full") { + #appMenu-more-button2 { + list-style-image: url("chrome://browser/skin/ion.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.panel_full") or -moz-bool-pref("userChrome.icon.panel_photon") { + #appMenu-help-button2 { + list-style-image: url("chrome://global/skin/icons/help.svg"); + } + #appMenu-quit-button2 { + list-style-image: url("../icons/quit.svg"); + } + } + /*= Panel - Account ==========================================================*/ + #PanelUI-fxa-menu-connect-device-button .toolbarbutton-icon, + #PanelUI-fxa-menu-account-signout-button .toolbarbutton-icon { + width: 16px !important; + height: 16px !important; + } + /* Default */ + #fxa-manage-account-button::before { + content: ""; + display: inline-flex; + display: -moz-inline-box; + width: 32px !important; + height: 32px !important; + border-radius: 50%; + background-size: 32px; + background-image: var(--avatar-image-url); + margin-inline-end: var(--arrowpanel-menuicon-padding); + } + @supports -moz-bool-pref("userChrome.icon.account_image_to_right") { + #fxa-manage-account-button::before { + order: 2 !important; + -moz-box-ordinal-group: 2 !important; + } + } + @supports -moz-bool-pref("userChrome.icon.account_label_to_right") { + #fxa-menu-header-title, + #fxa-menu-header-description { + text-align: right; + } + } + .syncNowBtn { + visibility: visible !important; + order: -1 !important; + -moz-box-ordinal-group: 0 !important; + margin-inline-end: var(--arrowpanel-menuicon-padding); + } + #PanelUI-fxa-menu-setup-sync-button { + list-style-image: url("chrome://browser/skin/sync.svg"); + } + #PanelUI-fxa-menu-connect-device-button { + list-style-image: url("../icons/add-device.svg"); + } + #PanelUI-fxa-menu-sendtab-button { + list-style-image: url("../icons/send-to-device.svg"); + } + #PanelUI-fxa-menu-sync-prefs-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } + #PanelUI-fxa-menu-account-signout-button { + list-style-image: url("../icons/sign-out.svg"); + } + #PanelUI-remotetabs-view-managedevices::before { + /* Box */ + content: ""; + padding-inline-end: 16px; + padding-block: 1px; + margin-inline-end: var(--arrowpanel-menuicon-padding); + /* Color */ + fill: currentColor; + fill-opacity: var(--toolbarbutton-icon-fill-opacity); + -moz-context-properties: fill, fill-opacity, stroke; + background-size: 16px; + background-repeat: no-repeat; + background-position: left center; + background-image: url("chrome://global/skin/icons/settings.svg"); + } + .PanelUI-remotetabs-notabsforclient-label { + margin-inline-start: calc( + var(--arrowpanel-menuicon-padding) + var(--arrowpanel-menuitem-padding-inline) + ) !important; + padding-inline-start: var(--arrowpanel-menublank-padding) !important; + } + /* Change Separator */ + #PanelUI-fxa-menu::before { + content: ""; + display: flex; + display: -moz-box; + border-bottom: 1px solid var(--panel-separator-color); + margin: var(--panel-separator-margin); + padding: 0; + } + #PanelUI-fxa-menu > :first-child { + order: -1; + -moz-box-ordinal-group: 0; + } + #PanelUI-sign-out-separator { + display: none; + } + .pageAction-sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target[clientType=""], + .sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target[clientType=""] { + list-style-image: url("../icons/send-to-device.svg"); + } + .pageAction-sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target:not([clientType]), + .sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target:not([clientType]) { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= Panel - Bookmark =========================================================*/ + #panelMenuBookmarkThisPage { + list-style-image: url("chrome://browser/skin/bookmark-hollow.svg"); + } + panelMenuBookmarkThisPage[starred] { + list-style-image: url("chrome://browser/skin/bookmark.svg"); + } + #panelMenu_searchBookmarks { + list-style-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #panelMenu_viewBookmarksToolbar { + list-style-image: url("chrome://browser/skin/bookmarks-toolbar.svg"); + } + #panelMenu_showAllBookmarks { + list-style-image: url("chrome://browser/skin/bookmark-star-on-tray.svg"); + } + /*= Panel - History ==========================================================*/ + #appMenuRecentlyClosedTabs { + list-style-image: url("chrome://browser/skin/tab.svg"); + } + #appMenuRecentlyClosedWindows { + list-style-image: url("chrome://browser/skin/window.svg"); + } + #appMenuSearchHistory { + list-style-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #appMenuRestoreSession, + #appMenu-restoreSession { + list-style-image: url("../icons/restore-session.svg"); + } + #appMenuClearRecentHistory { + list-style-image: url("chrome://browser/skin/forget.svg"); + } + #PanelUI-historyMore { + list-style-image: url("chrome://browser/skin/history.svg"); + } + #appMenu-library-recentlyClosedTabs { + list-style-image: url("../icons/movetowindow-16.svg"); + } + #appMenu-library-recentlyClosedWindows { + list-style-image: url("../icons/restore-session.svg"); + } + /*= Panel - More tools =======================================================*/ + #appmenu-moreTools-button { + list-style-image: url("chrome://browser/skin/customize.svg"); + } + /* Web Developer Tools */ + #appmenu-developer-tools-view .subviewbutton:nth-child(1), + #PanelUI-developer-tools-view .subviewbutton:nth-child(1) { + list-style-image: url("../icons/developer.svg"); + } + /* Task Manager */ + #appmenu-developer-tools-view .subviewbutton:nth-child(2), + #PanelUI-developer-tools-view .subviewbutton:nth-child(2) { + list-style-image: url("../icons/performance.svg"); + } + /* Remote Debugging - Edge bug.svg */ + #appmenu-developer-tools-view .subviewbutton:nth-child(3), + #PanelUI-developer-tools-view .subviewbutton:nth-child(3) { + list-style-image: url("../icons/bug.svg"); + } + /* Browser Toolbox - Edge webdeveloper.svg */ + #appmenu-developer-tools-view .subviewbutton:nth-child(4), + #PanelUI-developer-tools-view .subviewbutton:nth-child(4) { + list-style-image: url("../icons/window-dev-tools.svg"); + } + /* Browser Content Toolbox */ + #appmenu-developer-tools-view .subviewbutton:nth-child(5), + #PanelUI-developer-tools-view .subviewbutton:nth-child(5) { + list-style-image: url("../icons/command-frames.svg"); + } + /* Browser Console */ + #appmenu-developer-tools-view .subviewbutton:nth-last-child(5), + #PanelUI-developer-tools-view .subviewbutton:nth-last-child(5) { + list-style-image: url("chrome://devtools/skin/images/command-console.svg"); + } + /* Responsive Design Mode */ + #appmenu-developer-tools-view .subviewbutton:nth-last-child(4), + #PanelUI-developer-tools-view .subviewbutton:nth-last-child(4) { + list-style-image: url("../icons/command-responsivemode.svg"); + } + /* Eyedropper */ + #appmenu-developer-tools-view .subviewbutton:nth-last-child(3), + #PanelUI-developer-tools-view .subviewbutton:nth-last-child(3) { + list-style-image: url("chrome://devtools/skin/images/command-eyedropper.svg"); + } + /* Page Source - Edge file-search.svg */ + #appmenu-developer-tools-view .subviewbutton:nth-last-child(2), + #PanelUI-developer-tools-view .subviewbutton:nth-last-child(2) { + list-style-image: url("../icons/document-search.svg"); + } + /* Extensions for Devel */ + #appmenu-developer-tools-view .subviewbutton:nth-last-child(1), + #PanelUI-developer-tools-view .subviewbutton:nth-last-child(1) { + list-style-image: url("chrome://devtools/skin/images/debugging-addons.svg"); + } + #appmenu-developer-tools-view .subviewbutton:last-child { + margin-bottom: 6px !important; + } + /*= Panel - Help =============================================================*/ + #appMenu_menu_openHelp { + list-style-image: url("chrome://global/skin/icons/help.svg"); + } + #appMenu_feedbackPage { + list-style-image: url("../icons/send.svg"); + } + #appMenu_helpSafeMode { + list-style-image: url("chrome://devtools/skin/images/debugging-workers.svg"); + } + #appMenu_troubleShooting { + list-style-image: url("chrome://global/skin/icons/more.svg"); + } + #appMenu_help_reportSiteIssue { + list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); + } + #appMenu_menu_HelpPopup_reportPhishingtoolmenu { + list-style-image: url("chrome://global/skin/icons/warning.svg"); + } + #appMenu_helpSwitchDevice { + list-style-image: url("../icons/add-device.svg"); + } + #appMenu_aboutName { + list-style-image: url("chrome://global/skin/icons/info.svg"); + } + /*= Panel - Library ==========================================================*/ + #appMenu-library-bookmarks-button { + list-style-image: url("chrome://browser/skin/bookmark.svg"); + } + #appMenu-library-history-button { + list-style-image: url("chrome://browser/skin/history.svg"); + } + #appMenu-library-downloads-button { + list-style-image: url("chrome://browser/skin/downloads/downloads.svg"); + } + /*= Panel - Downloads ========================================================*/ + #downloadsHistory { + list-style-image: url("chrome://browser/skin/downloads/downloads.svg"); + } + #downloadsHistory .box-inherit.button-box { + display: inline-flex !important; + display: -moz-inline-box !important; + } + /*= Toolbar - Overflow Menu ==================================================*/ + #overflowMenu-customize-button { + list-style-image: url("chrome://browser/skin/customize.svg"); + } + /*= Tabbar - All Tab Menu ====================================================*/ + #allTabsMenu-undoCloseTab { + list-style-image: url("../icons/undo.svg"); + } + #allTabsMenu-searchTabs { + list-style-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #allTabsMenu-containerTabsButton { + list-style-image: url("../icons/container-openin-16.svg"); + } + #allTabsMenu-hiddenTabsButton { + list-style-image: url("../icons/eye-hide.svg"); + } + #allTabsMenu-containerTabsView .subviewbutton:last-child { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= BMB_bookmarksPopup =======================================================*/ + #BMB_viewBookmarksSidebar { + --menuitem-image: var(--uc-sidebar-icon); + } + #BMB_viewBookmarksSidebar[data-l10n-args='{"isVisible":true}'] { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + #BMB_searchBookmarks { + --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #BMB_bookmarksShowAllTop, + #BMB_bookmarksShowAll { + --menuitem-image: url("chrome://browser/skin/bookmark-star-on-tray.svg"); + } + #BMB_bookmarksToolbar { + --menuitem-image: url("chrome://browser/skin/bookmarks-toolbar.svg"); + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #BMB_bookmarksShowAllTop { + list-style-image: url("chrome://browser/skin/bookmark-star-on-tray.svg") !important; + } + #BMB_bookmarksShowAllTop > .menu-iconic-left { + display: flex !important; + display: -moz-box !important; + } + } + /* BMB_bookmarksToolbarPopup */ + #BMB_viewBookmarksToolbar[data-l10n-args='{"isVisible":true}'] { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #BMB_viewBookmarksToolbar[data-l10n-args='{"isVisible":false}'] { + --menuitem-image: url("../icons/eye-show.svg"); + } + /*= protections-popup ========================================================*/ + #protections-popup-settings-button > .protections-popup-settings-icon, + #protections-popup-show-report-button > .protections-popup-show-report-icon { + -moz-context-properties: fill, fill-opacity, stroke; + fill: currentColor; + margin-inline-end: 1em; + } + #protections-popup-settings-button > .protections-popup-settings-icon, + #protections-popup-multiView .panel-subview-footer-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } + #protections-popup-show-report-button > .protections-popup-show-report-icon { + /* chrome://browser/skin/controlcenter/dashboard.svg */ + list-style-image: url("../icons/dashboard.svg"); + } + /*= identity-popup ===========================================================*/ + #identity-popup-clear-sitedata-button, + #identity-popup-more-info { + padding-inline: 5px !important; + } + #identity-popup-securityView-body { + margin-inline-start: 32px !important; /* Original: 10px */ + } + #identity-popup-clear-sitedata-button { + list-style-image: url("../icons/broom.svg"); + } + /*= sidebarMenu-popup ========================================================*/ + #identity-popup-more-info.subviewbutton { + list-style-image: url("chrome://global/skin/icons/info.svg"); + } + #identity-popup-more-info:is(menuitem) { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); + } + #sidebar-switcher-bookmarks.subviewbutton { + list-style-image: url("chrome://browser/skin/bookmark.svg"); + } + #sidebar-switcher-bookmarks:is(menuitem) { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #sidebar-switcher-history.subviewbutton { + list-style-image: url("chrome://browser/skin/history.svg"); + } + #sidebar-switcher-history:is(menuitem) { + --menuitem-image: url("chrome://browser/skin/history.svg"); + } + #sidebar-switcher-tabs.subviewbutton { + list-style-image: url("../icons/synced-tabs.svg"); + } + #sidebar-switcher-tabs:is(menuitem) { + --menuitem-image: url("../icons/synced-tabs.svg"); + } + #sidebar-reverse-position.subviewbutton { + list-style-image: var(--uc-sidebar-icon-reverse); + } + #sidebar-reverse-position:is(menuitem) { + --menuitem-image: var(--uc-sidebar-icon-reverse); + } + #sidebarMenu-popup > *.subviewbutton[data-l10n-id="sidebar-menu-close"] { + list-style-image: url("chrome://global/skin/icons/close.svg"); + } + #sidebarMenu-popup > *:is(menuitem)[data-l10n-id="sidebar-menu-close"] { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + /*= unified-extensions-view ===================================================*/ + #unified-extensions-manage-extensions { + list-style-image: url("chrome://mozapps/skin/extensions/extension.svg"); + } + /*= Compatibility ============================================================*/ + .sync-engine-tabs .checkbox-icon, + .sync-engine-tabs.sync-engine-image, + #sidebar-box[sidebarcommand="viewTabsSidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon, + #sync-button { + list-style-image: url("../icons/synced-tabs.svg") !important; + } + /*= Tab Mix Plus =============================================================*/ + #allTabsMenu_sortTabsButton { + list-style-image: url("../icons/text-sort-ascending.svg"); + } + } + /** Menu - Icons Layout *******************************************************/ + @supports -moz-bool-pref("userChrome.icon.menu") { + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + #main-menubar > menu { + -moz-appearance: none !important; /* Linux: menulist */ + } + /* Icon */ + #main-menubar > menu, + :not(menu, #ContentSelectDropdown) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + /* Color */ + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + stroke: currentColor; + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); + } + #tabContextMenu > .tabmix-newtab-menu-icon { + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + } + /* For native context menus */ + @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + :not(menu, #ContentSelectDropdown) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; + } + } + /* Padding */ + :root { + --uc-menu-background-position: left; + --context-menu-background-padding-default: 5px; + --context-menu-background-padding: var(--context-menu-background-padding-default); + } + :root:-moz-locale-dir(rtl) { + --uc-menu-background-position: right; + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic), + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup:not(.in-menulist) > menu:not(.menu-iconic), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + background-position: var(--uc-menu-background-position) var(--context-menu-background-padding) center !important; + padding-inline-start: var(--context-menu-background-padding) !important; + } + #sidebarMenu-popup:is(menupopup):not(panel) { + --context-menu-background-padding: var(--context-menu-background-padding-default); + padding-inline-start: 0 !important; + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > #sidebarMenu-popup:is(menupopup):not(panel) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]) { + padding-inline-start: 28px !important; + margin-inline-start: var(--arrowpanel-menuitem-margin-inline) !important; + } + /* Menubar */ + @supports -moz-bool-pref("userChrome.icon.global_menubar") { + #main-menubar > menu { + background-position: var(--uc-menu-background-position) var(--context-menu-background-padding-default) center !important; + padding-inline-start: calc(16px + var(--context-menu-background-padding-default)) !important; + padding-inline-end: 3px; + } + #main-menubar > menu:first-child { + background-position: var(--uc-menu-background-position) + calc(3px + var(--context-menu-background-padding-default)) center !important; + padding-inline-start: calc(19px + var(--context-menu-background-padding-default)) !important; + } + #main-menubar > menu > menupopup { + --menuitem-image: none; /* Prevent Image Inheritance */ + } + @supports not -moz-bool-pref("userChrome.padding.global_menubar") { + #main-menubar > menu { + padding-block: 2px !important; + } + } + } + /* Padding - Non Native */ + @media (-moz-os-version: windows-win7) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win8) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win10) and (-moz-windows-non-native-menus), + (-moz-platform: windows) and (-moz-windows-non-native-menus), + (-moz-gtk-csd-available) and (-moz-windows-non-native-menus) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows), + (-moz-gtk-csd-available) { + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win10) and (-moz-gtk-csd-available), + (-moz-platform: windows) and (-moz-gtk-csd-available), + (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + } + } + /* Padding - Windows */ + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root { + --bookmark-menu-icon-text-padding: calc( + var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) + ); + --bookmark-menu-icon-background-padding: calc( + var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) + ); + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + :root { + --context-menu-text-padding: calc(1.45em + 8px); + --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) { + :root { + --context-menu-background-padding-default: 2px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic) { + :root { + --context-menu-background-padding-default: -0.5px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { + :root { + --context-menu-background-padding-default: 3px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { + :root { + --context-menu-background-padding: 3px; + --menu-background-padding-default: 0px; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root { + --context-menu-background-padding: 5px; + } + #main-menubar { + --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); + } + menuitem:is([type="checkbox"], [type="radio"]) { + --menu-padding: 0px; + } + menuitem[checked="true"] { + --context-menu-background-padding: 0px; + } + menuitem[checked="true"] > .menu-iconic-left { + transform: translateX(2px); + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + box-sizing: content-box; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-text, + menupopup:not([placespopup="true"]) .menu-iconic-text { + padding-block: 0 !important; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is( + #context_sendTabToDevicePopupMenu, + #context-sendpagetodevice-popup, + #context-sendlinktodevice-popup, + #frame > menupopup + ) + > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage, + #BMB_viewBookmarksToolbar, + #sidebarMenu-popup:is(menupopup), + #context_openANewTab.tabmix-newtab-menu-icon { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } + } + /* Padding - Linux */ + @media (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding-default: 6px; + --context-menu-text-padding: 21px; + } + #main-menubar > menu > .menubar-text { + padding-inline-start: 3px; + } + } + /* Padding - Mac */ + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root { + --context-menu-background-padding-default: 10px; + --context-menu-mac-padding: 21px; + } + /* context menu width */ + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]), + #blockedPopupDontShowMessage { + padding-inline-end: var(--context-menu-background-padding) !important; + } + /* text position */ + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup:not(.in-menulist) > menuitem > .menu-text, + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup:not(.in-menulist) > menu > .menu-text { + padding-inline-start: var(--context-menu-mac-padding) !important; + } + /* Checkbox menuitem, None iconic menu */ + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup:not(.in-menulist) + > menuitem[type="checkbox"] { + padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; + } + /* Global Menu */ + @supports -moz-bool-pref("userChrome.icon.global_menu.mac") { + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menuitem:not(.menuitem-iconic, .bookmark-item), + menupopup:is( + #menu_FilePopup, + #menu_EditPopup, + #menu_viewPopup, + #goPopup, + #historyMenuPopup, + #bookmarksMenuPopup, + #menu_ToolsPopup, + #windowPopup, + #menu_HelpPopup + ) + menu:not(.menu-iconic) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; + } + } + } + /*= Bookmark Menu - Layout ===================================================*/ + /* #goPopup(Legacy of historyMenuPopup), #historyMenuPopup, #bookmarksMenuPopup: looks like global menu + * #BMB_bookmarksPopup: looks like arrow panel + */ + /* Empty Menu */ + menupopup menupopup[emptyplacesresult] .menu-text, + #PersonalToolbar menupopup[emptyplacesresult] .menu-text { + margin-inline-start: 0 !important; + } + /* Bookmark Popup - As Arrow Panel */ + #BMB_bookmarksPopup, + #PersonalToolbar { + --context-menu-background-padding: var(--arrowpanel-menuitem-padding-inline); + } + /* Windows */ + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; + padding-inline-start: var(--bookmark-menu-icon-text-padding) !important; + background-position: var(--uc-menu-background-position) var(--bookmark-menu-icon-background-padding) center !important; + } + } + /* Windows 7, 8 */ + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + /* Global Menu */ + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item { + padding-inline-start: 0 !important; + } + } + /* Linux */ + @media (-moz-gtk-csd-available) { + /* Global Menu */ + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item { + padding-inline-start: var(--context-menu-background-padding) !important; + } + /* Bookmark Popup - Iconic menu */ + #BMB_bookmarksPopup .menu-iconic-text, + #PersonalToolbar menupopup[placespopup="true"] .bookmark-item .menu-iconic-text { + margin-inline-start: -1px !important; + } + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + padding-inline-start: calc(var(--context-menu-background-padding) + 2px) !important; + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic), + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + margin-inline: var(--arrowpanel-menuitem-margin-inline) !important; + } + } + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]) + .menu-text, + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) .menu-text, + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) .menu-text, + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) .menu-text { + margin-inline-start: var(--context-menu-text-padding) !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + /* Bookmark Popup - As Arrow Panel */ + #PersonalToolbar menupopup menuitem, + #PersonalToolbar menupopup menu { + padding-inline: var(--arrowpanel-menuitem-padding-inline) !important; + } + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) { + padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 3px) !important; + } + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 1px) !important; + } + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] + menuitem:not(.menuitem-iconic, [disabled="true"]) + > .menu-text, + menupopup:is(#BMB_bookmarksPopup)[placespopup="true"] menu:not(.menu-iconic) > .menu-text, + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]) > .menu-text, + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) > .menu-text { + padding-inline-start: var(--context-menu-mac-padding) !important; + } + } + @supports -moz-bool-pref("userChrome.icon.context_menu") { + /** Context Menu - Icons ******************************************************/ /*= tabContextMenu ===========================================================*/ + #context_openANewTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_newTab, + #tabcenter-reborn_ariasuni-menuitem-_newTabContextMenuOpenAlternatePosition, + #sidebartabs_asamuzak_jp-menuitem-_newTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #tabcenter-reborn_ariasuni-menuitem-_newTabContextMenuOpenInWindow { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #tabcenter-reborn_ariasuni-menuitem-_newTabContextMenuOpenInPrivateWindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #context_reloadTab, + #context_reloadSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_reloadTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_noContextTab\:context_reloadTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_grouped\:reloadTree, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuReloadTab, + #sidebartabs_asamuzak_jp-menuitem-_reloadTab, + #sidebartabs_asamuzak_jp-menuitem-_reloadAllTabs { + --menuitem-image: url("../icons/reload.svg"); + } + #context_toggleMuteTab, + #context_toggleMuteSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-mute, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab, + #sidebartabs_asamuzak_jp-menuitem-_muteTab { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-muted-small.svg"); + stroke: transparent !important; + } + #context_toggleMuteTab[muted], + #context_toggleMuteSelectedTabs[muted], + #treestyletab_piro_sakura_ne_jp-menuitem-_context_toggleMuteTab-unmute, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuMuteTab[label="Unmute Tab"], + #sidebartabs_asamuzak_jp-menuitem-_muteTab[label="Unmute Tab"] { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); + } + #context_pinTab, + #context_pinSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_pinTab, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuPinTab, + #sidebartabs_asamuzak_jp-menuitem-_pinTab { + --menuitem-image: url("../icons/pin-tab.svg"); + } + #context_unpinTab, + #context_unpinSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_unpinTab, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuPinTab[label="Unpin Tab"], + #sidebartabs_asamuzak_jp-menuitem-_pinTab[label="Unpin Tab"] { + --menuitem-image: url("../icons/unpin-tab.svg"); + } + #context_duplicateTab, + #context_duplicateTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_duplicateTab, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuDuplicateTab, + #sidebartabs_asamuzak_jp-menuitem-_dupeTab { + --menuitem-image: url("../icons/tab-copy.svg"); + } + #tabcenter-reborn_ariasuni-menuitem-_contextMenuUnloadTab { + --menuitem-image: url("../icons/tab-unload.svg"); + } + #context_bookmarkTab, + #context_bookmarkSelectedTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_bookmarkTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_noContextTab\:context_bookmarkSelected, + #treestyletab_piro_sakura_ne_jp-menuitem-_grouped\:bookmarkTree, + #sidebartabs_asamuzak_jp-menuitem-_bookmarkTab, + #sidebartabs_asamuzak_jp-menuitem-_bookmarkAllTabs { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #context_moveTabOptions, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_moveTab, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuMoveTab, + #sidebartabs_asamuzak_jp-menuitem-_moveTab { + --menuitem-image: url("../icons/arrow-swap.svg"); + } + #context_sendTabToDevice, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_sendTabsToDevice { + --menuitem-image: url("../icons/send-to-device.svg"); + } + #context_sendTabToDevice:is([disabled="true"]) + #context_shareTabURL, + #context_sendTabToDevice:is([disabled="true"]) + menuitem.share-tab-url-item { + /* At windows */ + --menuitem-image: url("../icons/share.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #context_shareTabURL, + menuitem.share-tab-url-item { + --menuitem-image: url("../icons/share.svg"); + } + } + #context_reopenInContainer, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_reopenInContainer, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuOpenInContextualTab, + #sidebartabs_asamuzak_jp-menuitem-_openNewTabInContainer, + #sidebartabs_asamuzak_jp-menuitem-_reopenTabInContainer { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + #context_selectAllTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_selectAllTabs, + #treestyletab_piro_sakura_ne_jp-menuitem-_noContextTab\:context_selectAllTabs, + #sidebartabs_asamuzak_jp-menuitem-_selectAllTabs { + --menuitem-image: url("../icons/tab-multiple.svg"); + } + #context_closeTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_closeTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_grouped\:closeTree, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuCloseTab, + #sidebartabs_asamuzak_jp-menuitem-_closeTab { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #context_closeTabOptions, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_closeMultipleTabs, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuCloseTabs, + #sidebartabs_asamuzak_jp-menuitem-_closeMultipleTabs { + --menuitem-image: url("../icons/filter-dismiss.svg"); + } + } + #context_undoCloseTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_context_undoCloseTab, + #treestyletab_piro_sakura_ne_jp-menuitem-_noContextTab\:context_undoCloseTab, + #tabcenter-reborn_ariasuni-menuitem-_contextMenuUndoCloseTab, + #sidebartabs_asamuzak_jp-menuitem-_undoCloseTab { + --menuitem-image: url("../icons/undo.svg"); + } + /*= new-tab-button-popup =====================================================*/ + #new-tab-button-popup > menuitem[command="Browser:NewUserContextTab"], + .new-tab-popup > menuitem[command="Browser:NewUserContextTab"] { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + #new-tab-button-popup > menuitem[command="Browser:OpenAboutContainers"], + .new-tab-popup > menuitem[command="Browser:OpenAboutContainers"] { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= toolbar-context-menu =====================================================*/ + .customize-context-manageExtension { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + .customize-context-removeExtension { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .customize-context-reportExtension { + --menuitem-image: url("../icons/send.svg"); + } + .customize-context-moveToPanel { + --menuitem-image: url("chrome://browser/skin/pin-12.svg"); + } + #toolbar-context-autohide-downloads-button { + /* checkbox */ + --menuitem-image: url("../icons/eye-tracking-off.svg"); + } + .customize-context-removeFromToolbar { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #toolbar-context-always-open-downloads-panel { + /* checkbox */ + --menuitem-image: url("../icons/drawer-arrow-download.svg"); + } + #toolbar-context-openANewTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #toolbar-context-reloadSelectedTab, + #toolbar-context-reloadSelectedTabs { + --menuitem-image: url("../icons/reload.svg"); + } + #toolbar-context-bookmarkSelectedTab, + #toolbar-context-bookmarkSelectedTabs { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #toolbar-context-selectAllTabs { + --menuitem-image: url("../icons/tab-multiple.svg"); + } + #toolbar-context-undoCloseTab { + --menuitem-image: url("../icons/undo.svg"); + } + #toggle_toolbar-menubar { + /* checkbox */ + --menuitem-image: url("../icons/calendar-agenda.svg"); + } + #toggle_PersonalToolbar { + /* Also placeContext */ + --menuitem-image: url("chrome://browser/skin/bookmarks-toolbar.svg"); + } + menuitem.viewCustomizeToolbar { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + .fullscreen-context-autohide { + /* checkbox */ + --menuitem-image: url("../icons/eye-tracking-off.svg"); + } + #toolbar-context-menu > menuitem[data-l10n-id="full-screen-exit"] { + --menuitem-image: url("chrome://browser/skin/fullscreen-exit.svg"); + } + /*= Tab Mix Plus =============================================================*/ + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + #context_openANewTab.tabmix-newtab-menu-icon .menu-iconic-left { + display: none; + } + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #tm-duplicateinWin { + --menuitem-image: url("../icons/tab-desktop-multiple-bottom.svg"); + } + #tm-mergeWindowsTab { + --menuitem-image: url("../icons/merge.svg"); + } + } + #tm-renameTab { + --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + } + #tm-copyTabUrl { + --menuitem-image: url("../icons/link.svg"); + } + #tm-autoreloadTab_menu { + --menuitem-image: url("../icons/timer10.svg"); + } + #context_reloadTabOptions { + --menuitem-image: url("../icons/reload.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #context_reloadTabOptions { + --menuitem-image: url("../icons/filter-reload.svg"); + } + } + @supports not -moz-bool-pref("userChrome.icon.menu.full") { + #context_reloadTabOptions + #context_reloadTab { + --menuitem-image: url("../icons/blank.svg"); + } + } + #tm-docShell { + --menuitem-image: url("chrome://browser/skin/permissions.svg"); + } + #tm-freezeTab { + --menuitem-image: url("../icons/weather-snowflake.svg"); + } + #tm-protectTab { + --menuitem-image: url("../icons/shield-task.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #tm-lockTab { + --menuitem-image: url("../icons/lock-closed.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #context_bookmarkAllTabs { + --menuitem-image: url("../icons/bookmark-multiple.svg"); + } + } + /*= contentAreaContextMenu ===================================================*/ + #context-viewsource-goToLine { + --menuitem-image: url("../icons/text-number-format.svg"); + } + #context-viewsource-wrapLongLines { + /* checkbox */ + --menuitem-image: url("../icons/arrow-sort-down-lines.svg"); + } + #context-viewsource-highlightSyntax { + /* checkbox */ + --menuitem-image: url("../icons/highlight.svg"); + } + #spell-no-suggestions { + --menuitem-image: url("../icons/text-proofing-tools.svg"); + } + #spell-add-to-dictionary { + --menuitem-image: url("../icons/book-add.svg"); + } + #spell-undo-add-to-dictionary { + --menuitem-image: url("../icons/undo.svg"); + } + #context-openlinkincurrent { + --menuitem-image: url("../icons/link-square.svg"); + } + #context-openlinkincontainertab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #context-openlinkintab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #context-openlinkinusercontext-menu { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + #context-openlink { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #context-openlinkprivate { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #context-bookmarklink { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #context-savelink { + --menuitem-image: url("../icons/toolbarButton-download.svg"); + } + #context-savelinktopocket { + --menuitem-image: url("../icons/pocket-outline.svg"); + } + #context-copyemail { + --menuitem-image: url("chrome://browser/skin/mail.svg"); + } + #context-copylink { + --menuitem-image: url("../icons/link.svg"); + } + #context-sendlinktodevice { + --menuitem-image: url("../icons/send-to-device.svg"); + } + #context-media-play { + --menuitem-image: url("chrome://global/skin/media/play-fill.svg"); + } + #context-media-pause { + --menuitem-image: url("chrome://global/skin/media/pause-fill.svg"); + } + #context-media-mute { + --menuitem-image: url("chrome://global/skin/media/audio-muted.svg"); + } + #context-media-unmute { + --menuitem-image: url("chrome://global/skin/media/audio.svg"); + } + #context-media-playbackrate { + --menuitem-image: url("../icons/time-picker.svg"); + } + #context-media-loop { + /* checkbox */ + --menuitem-image: url("../icons/arrow-repeat-all.svg"); + } + #context-leave-dom-fullscreen { + --menuitem-image: url("chrome://global/skin/media/fullscreenExitButton.svg"); + } + #context-video-fullscreen { + --menuitem-image: url("chrome://global/skin/media/fullscreenEnterButton.svg"); + } + #context-media-hidecontrols { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #context-media-showcontrols { + --menuitem-image: url("../icons/eye-show.svg"); + } + #context-viewvideo { + --menuitem-image: url("../icons/video.svg"); + } + #context-video-pictureinpicture { + /* checkbox */ + --menuitem-image: url("chrome://global/skin/media/picture-in-picture-open.svg"); + } + #context-reloadimage { + --menuitem-image: url("../icons/image-arrow-counterclockwise.svg"); + } + #context-viewimage { + --menuitem-image: url("../icons/image-add.svg"); + } + #context-saveimage { + --menuitem-image: url("../icons/image.svg"); + } + #context-video-saveimage { + --menuitem-image: url("../icons/video-snapshot.svg"); + } + #context-savevideo { + --menuitem-image: url("../icons/video.svg"); + } + #context-saveaudio { + --menuitem-image: url("chrome://global/skin/media/audio.svg"); + } + #context-copyimage-contents { + --menuitem-image: url("../icons/image-copy.svg"); + } + #context-copyimage, + #context-copyvideourl, + #context-copyaudiourl { + --menuitem-image: url("../icons/link.svg"); + } + #context-sendimage, + #context-sendvideo, + #context-sendaudio { + --menuitem-image: url("chrome://browser/skin/mail.svg"); + } + #context-viewimageinfo { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); + } + #context-viewimagedesc { + --menuitem-image: url("../icons/image-alt-text.svg"); + } + #context-setDesktopBackground { + --menuitem-image: url("../icons/resize-image.svg"); + } + #context-ctp-play { + --menuitem-image: url("chrome://global/skin/icons/plugin.svg"); + } + #context-ctp-hide { + --menuitem-image: url("chrome://global/skin/icons/plugin-blocked.svg"); + } + #context-savepage { + --menuitem-image: url("../icons/toolbarButton-download.svg"); + } + #context-pocket { + --menuitem-image: url("../icons/pocket-outline.svg"); + } + #context-sendpagetodevice { + --menuitem-image: url("../icons/send-to-device.svg"); + } + #fill-login { + --menuitem-image: url("../icons/password.svg"); + } + #fill-login-generated-password { + --menuitem-image: url("chrome://browser/skin/login.svg"); + } + #manage-saved-logins { + --menuitem-image: url("../icons/key-multiple.svg"); + } + #context-undo { + --menuitem-image: url("../icons/undo.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #context-redo { + --menuitem-image: url("../icons/redo.svg"); + } + } + #context-cut { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #context-copy { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #context-paste { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #context-delete { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #context-selectall { + --menuitem-image: url("../icons/select-all-on.svg"); + } + #context-reveal-password { + --menuitem-image: url("../icons/eye-show.svg"); + } + #context-print-selection { + --menuitem-image: url("chrome://global/skin/icons/print.svg"); + } + #context-take-screenshot { + --menuitem-image: url("chrome://browser/skin/screenshot.svg"); + } + #context-keywordfield { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #context-searchselect, + #context-searchselect-private { + --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #frame { + --menuitem-image: url("../icons/command-frames.svg"); + } + #spell-check-enabled { + /* checkbox */ + --menuitem-image: url("../icons/text-proofing-tools.svg"); + } + #spell-add-dictionaries-main { + --menuitem-image: url("../icons/book-add.svg"); + } + #spell-dictionaries { + --menuitem-image: url("../icons/book.svg"); + } + #context-bidi-text-direction-toggle { + --menuitem-image: url("../icons/text-direction-horizontal-ltr.svg"); + } + #context-bidi-page-direction-toggle { + --menuitem-image: url("../icons/document-landscape-split-hint.svg"); + } + #context-viewpartialsource-selection, + #context-viewsource { + --menuitem-image: url("../icons/document-search.svg"); + } + #context-inspect-a11y { + --menuitem-image: url("chrome://devtools/skin/images/tool-accessibility.svg"); + } + #context-inspect { + --menuitem-image: url("../icons/command-pick.svg"); + } + #context-media-eme-learnmore { + /* iconic */ + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #context-back { + --menuitem-image: url("chrome://browser/skin/back.svg"); + } + #context-forward { + --menuitem-image: url("chrome://browser/skin/forward.svg"); + } + #context-reload { + --menuitem-image: url("../icons/reload.svg"); + } + #context-stop { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + #context-bookmarkpage { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + } + /*= main-context-menu-frame ==================================================*/ + #context-showonlythisframe { + --menuitem-image: url("../icons/eye-show.svg"); + } + #context-openframeintab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #context-openframe { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #context-reloadframe { + --menuitem-image: url("../icons/reload.svg"); + } + #context-bookmarkframe { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #context-saveframe { + --menuitem-image: url("../icons/toolbarButton-download.svg"); + } + #context-printframe { + --menuitem-image: url("chrome://global/skin/icons/print.svg"); + } + #context-take-frame-screenshot { + --menuitem-image: url("chrome://browser/skin/screenshot.svg"); + } + #context-viewframesource { + --menuitem-image: url("../icons/document-search.svg"); + } + #context-viewframeinfo { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); + } + /*= Tab Mix Plus =============================================================*/ + #tm-autoreload_menu { + --menuitem-image: url("../icons/timer10.svg"); + } + #tm-linkWithhistory { + --menuitem-image: url("../icons/new-tab-skip-forward.svg"); + } + #tm-openAllLinks { + --menuitem-image: url("../icons/new-tab-multiple.svg"); + } + #tm-openinverselink { + --menuitem-image: url("../icons/new-tab-forward.svg"); + } + #tm-content-closetab { + --menuitem-image: url("../icons/dismiss-filled.svg"); + } + #tm-duplicateTabContext { + --menuitem-image: url("../icons/tab-copy.svg"); + } + #tm-duplicateinWinContext { + --menuitem-image: url("../icons/tab-desktop-multiple-bottom.svg"); + } + #tm-detachTabContext { + --menuitem-image: url("../icons/convert-range.svg"); + } + #tm-mergeWindows { + --menuitem-image: url("../icons/merge.svg"); + } + #tm-content-freezeTab { + --menuitem-image: url("../icons/weather-snowflake.svg"); + } + #tm-content-protectTab { + --menuitem-image: url("../icons/shield-task.svg"); + } + #tm-content-lockTab { + --menuitem-image: url("../icons/lock-closed.svg"); + } + #tm-content-undoCloseTab { + --menuitem-image: url("../icons/undo.svg"); + } + /*= downloadsContextMenu =====================================================*/ + .downloadPauseMenuItem { + --menuitem-image: url("chrome://global/skin/media/pause-fill.svg"); + } + .downloadResumeMenuItem { + --menuitem-image: url("chrome://global/skin/media/play-fill.svg"); + } + .downloadUnblockMenuItem { + --menuitem-image: url("../icons/checkmark-circle.svg"); + } + .downloadUseSystemDefaultMenuItem { + --menuitem-image: url("../icons/toolbarButton-upload.svg"); + } + .downloadAlwaysUseSystemDefaultMenuItem { + /* checkbox */ + --menuitem-image: url("../icons/folder-globe.svg"); + } + .downloadAlwaysOpenSimilarFilesMenuItem { + /* checkbox */ + --menuitem-image: url("../icons/fluid.svg"); + } + .downloadShowMenuItem { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + .downloadShowMenuItem { + --menuitem-image: url("../icons/folder.svg"); + } + } + #downloadsContextMenu > menuitem.downloadOpenReferrerMenuItem, + #downloadsContextMenu > menuitem[command="downloadsCmd_openReferrer"] { + --menuitem-image: url("../icons/link-square.svg"); + } + #downloadsContextMenu > menuitem.downloadCopyLocationMenuItem, + #downloadsContextMenu > menuitem[command="downloadsCmd_copyLocation"] { + --menuitem-image: url("../icons/link.svg"); + } + .downloadDeleteFileMenuItem { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .downloadRemoveFromHistoryMenuItem { + --menuitem-image: url("../icons/eraser.svg"); + } + #downloadsContextMenu > menuitem[command="downloadsCmd_clearList"], + #downloadsContextMenu > menuitem[command="downloadsCmd_clearDownloads"] { + --menuitem-image: url("../icons/broom.svg"); + } + /*= placeContext =============================================================*/ + #placesContext_open { + --menuitem-image: url("../icons/link-square.svg"); + } + #placesContext_openBookmarkContainer\:tabs, + #placesContext_openBookmarkLinks\:tabs { + --menuitem-image: url("../icons/movetowindow-16.svg"); + } + #placesContext_open\:newtab, + #placesContext_openContainer\:tabs, + #placesContext_openLinks\:tabs { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #placesContext_open\:newcontainertab { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + #placesContext_open\:newwindow { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #placesContext_open\:newprivatewindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #placesContext_show_bookmark\:info, + #placesContext_show\:info, + #placesContext_show_folder\:info { + --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + } + #placesContext_deleteBookmark, + #placesContext_deleteFolder, + #placesContext_delete, + #placesContext_delete_history { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #placesContext_deleteHost { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #placesContext_sortBy\:name { + --menuitem-image: url("../icons/text-sort-ascending.svg"); + } + #placesContext_cut { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #placesContext_copy { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #placesContext_paste_group { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #placesContext_new\:bookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #placesContext_showInFolder, + #placesContext_new\:folder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + #placesContext_showInFolder, + #placesContext_new\:folder { + --menuitem-image: url("../icons/folder.svg"); + } + } + #placesContext_new\:separator { + --menuitem-image: url("../icons/vertical-line.svg"); + } + #placesContext_paste { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #placesContext_createBookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #show-other-bookmarks_PersonalToolbar { + /* checkbox */ + --menuitem-image: url("../icons/star-line-horizontal.svg"); + } + #placesContext_showAllBookmarks { + --menuitem-image: url("chrome://browser/skin/bookmark-star-on-tray.svg"); + } + .openintabs-menuitem { + --menuitem-image: url("../icons/movetowindow-16.svg"); + } + /*= Notification =============================================================*/ + #doNotDisturbMenuItem { + --menuitem-image: url(chrome://global/skin/media/pause-fill.svg); + } + #disableForOriginMenuItem { + --menuitem-image: url("chrome://global/skin/icons/blocked.svg"); + } + #openSettingsMenuItem { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= blockedPopupOptions ======================================================*/ + #blockedPopupAllowSite { + --menuitem-image: url("chrome://global/skin/icons/check.svg"); + } + #blockedPopupOptions > menuitem[oncommand="gPopupBlockerObserver.editPopupSettings();"] { + --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + } + #blockedPopupDontShowMessage { + /* checkbox */ + --menuitem-image: url("chrome://global/skin/icons/blocked.svg"); + } + /*= autohide-context =========================================================*/ + #autohide-context > menuitem[data-l10n-id="full-screen-autohide"] { + /* checkbox */ + --menuitem-image: url("../icons/eye-tracking-off.svg"); + } + #autohide-context > menuitem[data-l10n-id="full-screen-exit"] { + --menuitem-image: url("chrome://browser/skin/fullscreen-exit.svg"); + } + /*= pictureInPictureToggleContextMenu ========================================*/ + #pictureInPictureToggleContextMenu > menuitem[oncommand="PictureInPicture.hideToggle();"] { + --menuitem-image: url("../icons/eye-hide.svg"); + } + /*= pageActionContextMenu ====================================================*/ + .pageActionContextMenuItem.extensionPinned.extensionUnpinned.manageExtensionItem { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + .pageActionContextMenuItem.extensionPinned.extensionUnpinned.removeExtensionItem { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + /*= customizationPanelItemContextMenu ========================================*/ + #customizationPanelItemContextMenuUnpin { + --menuitem-image: url("../icons/unpin-tab.svg"); + } + .customize-context-removeFromPanel { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + /*= customizationPaletteItemContextMenu ======================================*/ + .customize-context-addToToolbar { + --menuitem-image: url("chrome://devtools/skin/images/dock-bottom.svg"); + } + .customize-context-addToPanel { + --menuitem-image: url("chrome://browser/skin/menu.svg"); + } + /*= customizationPanelContextMenu ============================================*/ + #customizationPanelContextMenu > menuitem[command="cmd_CustomizeToolbars"] { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + /*= downloads-button-autohide-panel ==========================================*/ + #downloads-button-autohide-checkbox { + /* checkbox */ + --menuitem-image: url("../icons/eye-tracking-off.svg"); + } + /*= SyncedTabsSidebarContext =================================================*/ + #syncedTabsOpenSelected { + --menuitem-image: url("../icons/link-square.svg"); + } + #syncedTabsOpenSelectedInTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #syncedTabsOpenSelectedInWindow { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #syncedTabsOpenSelectedInPrivateWindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #syncedTabsBookmarkSelected { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #syncedTabsCopySelected { + --menuitem-image: url("../icons/link.svg"); + } + #syncedTabsOpenAllInTabs { + --menuitem-image: url("../icons/movetowindow-16.svg"); + } + #syncedTabsManageDevices { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + #syncedTabsRefresh { + --menuitem-image: url("chrome://browser/skin/sync.svg"); + } + /*= SyncedTabsSidebarTabsFilterContext =======================================*/ + #SyncedTabsSidebarTabsFilterContext > menuitem[cmd="cmd_undo"] { + --menuitem-image: url("../icons/undo.svg"); + } + #SyncedTabsSidebarTabsFilterContext > menuitem[cmd="cmd_cut"] { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #SyncedTabsSidebarTabsFilterContext > menuitem[cmd="cmd_copy"] { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #SyncedTabsSidebarTabsFilterContext > menuitem[cmd="cmd_paste"] { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #SyncedTabsSidebarTabsFilterContext > menuitem[cmd="cmd_delete"] { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #SyncedTabsSidebarTabsFilterContext > menuitem[cmd="cmd_selectAll"] { + --menuitem-image: url("../icons/select-all-on.svg"); + } + #syncedTabsRefreshFilter { + --menuitem-image: url("chrome://browser/skin/sync.svg"); + } + /*= urlbar-input-container ===================================================*/ + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_undo"] { + --menuitem-image: url("../icons/undo.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_redo"] { + --menuitem-image: url("../icons/redo.svg"); + } + } + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_cut"] { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_copy"] { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_paste"] { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #paste-and-go { + --menuitem-image: url("../icons/edit-paste-go.svg"); + } + } + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_delete"] { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_selectAll"] { + --menuitem-image: url("../icons/select-all-on.svg"); + } + /*= textbox-contextmenu ======================================================*/ + /* Browser's Searchbar, Library's Searchbar, Page Info */ + .textbox-contextmenu > menuitem[data-l10n-id="text-action-undo"] { + --menuitem-image: url("../icons/undo.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + .textbox-contextmenu > menuitem[data-l10n-id="text-action-redo"] { + --menuitem-image: url("../icons/redo.svg"); + } + } + .textbox-contextmenu > menuitem[data-l10n-id="text-action-cut"] { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + .textbox-contextmenu > menuitem[data-l10n-id="text-action-copy"] { + --menuitem-image: url("../icons/edit-copy.svg"); + } + .textbox-contextmenu > menuitem[data-l10n-id="text-action-paste"] { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + .textbox-contextmenu > menuitem[data-l10n-id="text-action-delete"] { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .textbox-contextmenu > menuitem[data-l10n-id="text-action-select-all"] { + --menuitem-image: url("../icons/select-all-on.svg"); + } + /* Only searchbar */ + @supports -moz-bool-pref("userChrome.icon.menu.full") { + menuitem.searchbar-paste-and-search { + --menuitem-image: url("../icons/edit-paste-search.svg"); + } + } + menuitem.searchbar-clear-history { + --menuitem-image: url("chrome://browser/skin/forget.svg"); + } + /*= context_sendTabToDevicePopupMenu =========================================*/ + .sync-menuitem.sendtab-target[clientType="phone"] { + --menuitem-image: url("chrome://browser/skin/device-phone.svg"); + } + .sync-menuitem.sendtab-target[clientType="tablet"] { + --menuitem-image: url("chrome://browser/skin/device-tablet.svg"); + } + .sync-menuitem.sendtab-target[clientType="desktop"] { + --menuitem-image: url("chrome://browser/skin/device-desktop.svg"); + } + .sync-menuitem.sendtab-target[clientType="tv"] { + --menuitem-image: url("chrome://browser/skin/device-tv.svg"); + } + .sync-menuitem.sendtab-target[clientType="vr"] { + --menuitem-image: url("chrome://browser/skin/device-vr.svg"); + } + .sync-menuitem.sendtab-target[clientType=""] { + --menuitem-image: url("../icons/send-to-device.svg"); + } + .sync-menuitem.sendtab-target:not([clientType]) { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + #treestyletab_piro_sakura_ne_jp-menuitem-_context_sendTabsToDevice\:manage { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= unified-extensions-context-menu ==========================================*/ + .unified-extensions-context-menu-pin-to-toolbar { + --menuitem-image: url("../icons/pin-tab.svg"); + } + .unified-extensions-context-menu-manage-extension { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + .unified-extensions-context-menu-remove-extension { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .unified-extensions-context-menu-report-extension { + --menuitem-image: url("../icons/send.svg"); + } + /*= urlbarView-result-menu ===================================================*/ + .urlbarView-result-menuitem[data-command="dismiss"] { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .urlbarView-result-menuitem[data-command="help"] { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.global_menubar") { + /*= main-menubar =============================================================*/ + #file-menu { + --menuitem-image: url("../icons/mail-inbox-all.svg"); + } + #edit-menu { + --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + } + #view-menu { + --menuitem-image: url("../icons/content-view.svg"); + } + #history-menu { + --menuitem-image: url("chrome://browser/skin/history.svg"); + } + #bookmarksMenu { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #tools-menu { + --menuitem-image: url("../icons/toolbox.svg"); + } + #helpMenu { + --menuitem-image: url("chrome://global/skin/icons/help.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.global_menu") { + /** Global Menu ***************************************************************/ + /*= menu_FilePopup ===========================================================*/ + #menu_newNavigatorTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #menu_newUserContext { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + #menu_newNavigator { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #menu_newPrivateWindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #menu_openFile { + --menuitem-image: url("../icons/toolbarButton-upload.svg"); + } + #menu_savePage { + --menuitem-image: url("../icons/toolbarButton-download.svg"); + } + #menu_sendLink { + --menuitem-image: url("chrome://browser/skin/mail.svg"); + } + menu.share-tab-url-item { + --menuitem-image: url("chrome://browser/skin/share.svg"); + } + #menu_print { + --menuitem-image: url("chrome://global/skin/icons/print.svg"); + } + #menu_importFromAnotherBrowser { + --menuitem-image: url("chrome://browser/skin/import.svg"); + } + #goOfflineMenuitem { + /* checkbox */ + --menuitem-image: url("../icons/plug-disconnected.svg"); + } + #menu_FileQuitItem { + --menuitem-image: url("../icons/quit.svg"); + } + /* Mange Containers */ + #menu_newUserContext menupopup menuitem:last-child { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= menu_EditPopup ===========================================================*/ + #menu_undo { + --menuitem-image: url("../icons/undo.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #menu_redo { + --menuitem-image: url("../icons/redo.svg"); + } + } + #menu_cut { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #menu_copy { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #menu_paste { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #menu_delete { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #menu_selectAll { + --menuitem-image: url("../icons/select-all-on.svg"); + } + #menu_find { + --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #menu_preferences { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); + } + /*= menu_viewPopup ===========================================================*/ + #viewToolbarsMenu { + --menuitem-image: url("../icons/toolbar.svg"); + } + #viewSidebarMenuMenu { + --menuitem-image: var(--uc-sidebar-icon); + } + #viewFullZoomMenu { + --menuitem-image: url("../icons/screenshot.svg"); + } + #pageStyleMenu { + --menuitem-image: url("../icons/document-css.svg"); + } + #repair-text-encoding { + --menuitem-image: url("chrome://browser/skin/characterEncoding.svg"); + } + #enterFullScreenItem { + --menuitem-image: url("chrome://browser/skin/fullscreen.svg"); + } + #exitFullScreenItem { + --menuitem-image: url("chrome://browser/skin/fullscreen-exit.svg"); + } + #fullScreenItem { + /* checkbox */ + --menuitem-image: url("chrome://browser/skin/fullscreen.svg"); + } + #menu_readerModeItem { + --menuitem-image: url("chrome://browser/skin/reader-mode.svg"); + } + #menu_showAllTabs { + --menuitem-image: url("../icons/tab.svg"); + } + #documentDirection-swap { + --menuitem-image: url("../icons/text-direction-horizontal-ltr.svg"); + } + /* view-menu-popup sub menu */ + #menu_customizeToolbars { + --menuitem-image: url("chrome://browser/skin/customize.svg"); + } + /* viewSidebarMenu sub menu */ + #menu_bookmarksSidebar { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #menu_historySidebar { + --menuitem-image: url("chrome://browser/skin/history.svg"); + } + #menu_tabsSidebar { + --menuitem-image: url("../icons/synced-tabs.svg"); + } + /* viewFullZoomMenu sub menu */ + #menu_zoomEnlarge { + --menuitem-image: url("chrome://browser/skin/add-circle-fill.svg"); + stroke: transparent !important; + } + #menu_zoomReduce { + --menuitem-image: url("chrome://browser/skin/subtract-circle-fill.svg"); + stroke: transparent !important; + } + #menu_zoomReset { + --menuitem-image: url("../icons/resize.svg"); + } + #toggle_zoom { + --menuitem-image: url("../icons/screenshot.svg"); + } + /*= goPopup ==================================================================*/ + #menu_showAllHistory { + --menuitem-image: url("chrome://browser/skin/history.svg"); + } + #sanitizeItem { + --menuitem-image: url("chrome://browser/skin/forget.svg"); + } + #sync-tabs-menuitem { + --menuitem-image: url("chrome://browser/skin/sync.svg"); + } + #historyRestoreLastSession { + --menuitem-image: url("../icons/restore-session.svg"); + } + #hiddenTabsMenu { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #menu_searchHistory { + --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #historyUndoMenu { + --menuitem-image: url("chrome://browser/skin/tab.svg"); + } + #historyUndoWindowMenu { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + /* sub menu */ + #historyUndoPopup .restoreallitem { + --menuitem-image: url("../icons/movetowindow-16.svg"); + } + #historyUndoWindowPopup .restoreallitem { + --menuitem-image: url("../icons/restore-session.svg"); + } + /*= bookmarksMenuPopup =======================================================*/ + #bookmarksShowAll { + --menuitem-image: url("chrome://browser/skin/bookmark-star-on-tray.svg"); + } + #menu_bookmarkThisPage, + #menu_bookmarkAllTabs { + --menuitem-image: url("chrome://browser/skin/bookmark-hollow.svg"); + } + #menu_bookmarkThisPage[data-l10n-id="menu-bookmark-edit"] { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #menu_searchBookmarks { + --menuitem-image: url("chrome://global/skin/icons/search-glass.svg"); + } + /*= menu_ToolsPopup ==========================================================*/ + #menu_openDownloads { + --menuitem-image: url("chrome://browser/skin/downloads/downloads.svg"); + } + #menu_openAddons { + --menuitem-image: url("chrome://mozapps/skin/extensions/extension.svg"); + } + #sync-setup { + --menuitem-image: url("chrome://browser/skin/fxa/avatar-empty.svg"); + } + #sync-syncnowitem { + --menuitem-image: url("chrome://browser/skin/sync.svg"); + } + #menu_openFirefoxView { + --menuitem-image: url("chrome://branding/content/icon32.png"); + } + #webDeveloperMenu, + #browserToolsMenu { + --menuitem-image: url("../icons/developer.svg"); + } + #menu_pageInfo { + --menuitem-image: url("../icons/document-endnote.svg"); + } + /* menuWebDeveloperPopup sub menu */ + #menu_devToolbox { + /* checkbox */ + --menuitem-image: url("../icons/developer.svg"); + } + #menu_taskManager { + --menuitem-image: url("../icons/performance.svg"); + } + #menu_devtools_remotedebugging { + --menuitem-image: url("../icons/bug.svg"); + } + #menu_browserToolbox { + --menuitem-image: url("../icons/window-dev-tools.svg"); + } + #menu_browserContentToolbox { + --menuitem-image: url("../icons/command-frames.svg"); + } + #menu_browserConsole { + --menuitem-image: url("chrome://devtools/skin/images/command-console.svg"); + } + #menu_responsiveUI { + /* checkbox */ + --menuitem-image: url("../icons/command-responsivemode.svg"); + } + #menu_eyedropper { + /* checkbox */ + --menuitem-image: url("chrome://devtools/skin/images/command-eyedropper.svg"); + } + #menu_pageSource { + --menuitem-image: url("../icons/document-search.svg"); + } + #extensionsForDevelopers { + --menuitem-image: url("chrome://devtools/skin/images/debugging-addons.svg"); + } + /*= windowPopup ==============================================================*/ + #windowPopup > menuitem[command="minimizeWindow"] { + --menuitem-image: url("../icons/arrow-between-down.svg"); + } + #windowPopup > menuitem[command="zoomWindow"] { + --menuitem-image: url("../icons/auto-fit-width.svg"); + } + /*= menu_HelpPopup ===========================================================*/ + #menu_openHelp { + --menuitem-image: url("chrome://global/skin/icons/help.svg"); + } + #feedbackPage { + --menuitem-image: url("../icons/send.svg"); + } + #helpSafeMode { + --menuitem-image: url("chrome://devtools/skin/images/debugging-workers.svg"); + } + #troubleShooting { + --menuitem-image: url("chrome://global/skin/icons/more.svg"); + } + #help_reportSiteIssue { + --menuitem-image: url("chrome://global/skin/icons/lightbulb.svg"); + } + #menu_HelpPopup_reportPhishingtoolmenu { + --menuitem-image: url("chrome://global/skin/icons/warning.svg"); + } + #menu_HelpPopup_reportPhishingErrortoolmenu { + --menuitem-image: url("../icons/checkmark-circle.svg"); + } + #helpSwitchDevice { + --menuitem-image: url("../icons/add-device.svg"); + } + #aboutName { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.library") { + /*= organizeButtonPopup ======================================================*/ + #newbookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #newfolder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + #newfolder { + --menuitem-image: url("../icons/folder.svg"); + } + } + #newseparator { + --menuitem-image: url("../icons/vertical-line.svg"); + } + #orgUndo { + --menuitem-image: url("../icons/undo.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #orgRedo { + --menuitem-image: url("../icons/redo.svg"); + } + } + #orgCut { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #orgCopy { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #orgPaste { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #orgDelete { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #orgSelectAll { + --menuitem-image: url("../icons/select-all-on.svg"); + } + #orgClose { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + /*= viewMenuPopup ============================================================*/ + #viewColumns { + --menuitem-image: url("chrome://global/skin/icons/columnpicker.svg"); + } + #viewSort { + --menuitem-image: url("../icons/text-sort-ascending.svg"); + } + /*= maintenanceButtonPopup ===================================================*/ + #backupBookmarks { + --menuitem-image: url("../icons/datastore.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #fileRestoreMenu { + --menuitem-image: url("../icons/datarestore.svg"); + } + } + #fileImport { + --menuitem-image: url("../icons/toolbarButton-download.svg"); + } + #fileExport { + --menuitem-image: url("../icons/toolbarButton-upload.svg"); + } + #browserImport { + --menuitem-image: url("chrome://browser/skin/import.svg"); + } + } + } + /** Icons for fork browsers ***************************************************/ + /*= Waterfox =================================================================*/ + @supports -moz-bool-pref("userChrome.icon.panel") { + #appMenu-restart-button { + list-style-image: url("../icons/refresh-cw.svg") !important; + } + } + @supports -moz-bool-pref("userChrome.icon.menu") { + #menu_FileRestartItem { + --menuitem-image: url("../icons/refresh-cw.svg"); + } + #toggle_status-dummybar { + --menuitem-image: url("../icons/pulse-square.svg"); + } + menuitem.privatetab-icon { + --menuitem-image: url("../icons/private-favicon.svg"); + } + } + /*= Tor Browser ==============================================================*/ + @supports -moz-bool-pref("userChrome.icon.panel") { + #appMenuNewIdentity { + list-style-image: url("chrome://browser/skin/new_identity.svg"); + } + #appMenuNewCircuit { + list-style-image: url("chrome://browser/skin/new_circuit.svg"); + } + #appMenu_torBrowserUserManual { + list-style-image: url("chrome://browser/skin/onion.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.menu") { + #menu_newIdentity { + --menuitem-image: url("chrome://browser/skin/new_identity.svg"); + } + #menu_newCircuit { + --menuitem-image: url("chrome://browser/skin/new_circuit.svg"); + } + #torBrowserUserManual { + --menuitem-image: url("chrome://browser/skin/onion.svg"); + } + } + /*= Floorp Browser ===========================================================*/ + @supports -moz-bool-pref("userChrome.icon.panel") { + #rebootappmenu { + list-style-image: url("../icons/refresh-cw.svg"); + } + #openprofiledir { + list-style-image: url("../icons//folder.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.menu") { + #usercssloader-menu { + --menuitem-image: url("../icons/developer.svg"); + } + #toggle_statusBar { + --menuitem-image: url("../icons/pulse-square.svg"); + } + #muteMenu { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-muted-small.svg"); + stroke: transparent !important; + } + #unloadWebpanelMenu { + --menuitem-image: url("../icons/tab-unload.svg"); + } + #changeUAWebpanelMenu { + --menuitem-image: url("chrome://devtools/skin/images/command-responsivemode.svg"); + fill-opacity: 0; + } + #deleteWebpanelMenu { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + } +} diff --git a/css/leptonContent.css b/css/leptonContent.css index bf2824dd..8dd8bc1a 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -71,7 +71,7 @@ box-shadow: 0 5px 10px -3px var(--box-shadow1), 0 3px 16px 2px var(--box-shadow2), 0 8px 12px 1px var(--box-shadow3); /* Or: 0 2px 15px rgba(0,0,0,.1); */ } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { audio { --box-shadow1: rgba(249, 249, 250, 0.12); --box-shadow2: rgba(91, 91, 102, 0.12); @@ -413,7 +413,7 @@ --newtab-search-dropdown-color: var(--newtab-search-background-color) !important; --newtab-element-hover-color: color-mix(in srgb, currentColor 9%, transparent) !important; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { #root { /* Default Dark Mode */ --newtab-search-background-color: rgba(66, 65, 77, 1); /* Same as dark theme's --panel-background */ @@ -719,7 +719,7 @@ --card-shadow-hover: var(--card-shadow), 0 0 0 5px var(--card-outline-color); --uc-warning-icon-bgcolor: #ffa436; } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :host, :root { /* Keep these in sync with layout/base/PresShell.cpp, and plaintext.css */ @@ -764,7 +764,7 @@ } } /*= Menu color #477 ==========================================================*/ - @media (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) { :root { /* Override some menu color variables for light browser themes. */ --menuitem-hover-background-color: #e0e0e6; @@ -785,8 +785,7 @@ } /* Override the menu color variables for dark browser themes. */ } - @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { + @media (-moz-platform: windows) and (prefers-color-scheme: dark) { :root { --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); --menu-background-color: var(--dark-menu-background-color); @@ -819,8 +818,7 @@ } /* Override the menu color variables for dark browser themes. */ } - @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), - (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + @media (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { :root { --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); --menu-background-color: var(--dark-menu-background-color); @@ -833,7 +831,7 @@ } } @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :host, :root { /* Color Memo @@ -909,7 +907,7 @@ } } @supports -moz-bool-pref("userContent.page.dark_mode") { - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { /*= Addons.org =============================================================*/ @-moz-document url-prefix("https://addons.mozilla.org") { @@ -1610,8 +1608,7 @@ .mzp-c-menu-item:is(:focus, :hover, :active) .mzp-c-menu-item-link .mzp-c-menu-item-title { border-color: var(--in-content-page-color) !important; } - @media screen and (-moz-toolbar-prefers-color-scheme: dark) and (min-width: 768px), - screen and (prefers-color-scheme: dark) and (min-width: 768px) { + @media screen and (prefers-color-scheme: dark) and (min-width: 768px) { .mzp-c-menu-panel { box-shadow: 0 16px 16px -16px rgba(255, 255, 255, 0.3) !important; } @@ -2063,7 +2060,7 @@ --view-source-green: var(--green-80); --view-source-purple: #800080; /* Like alphenglow */ } - @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root { --view-source-green: var(--green-60); --view-source-purple: #c68aff; @@ -2412,7 +2409,7 @@ --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 (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @media (prefers-color-scheme: dark) { :root { --organizer-color: rgb(251, 251, 254); --organizer-deemphasized-color: rgb(191, 191, 201); @@ -3212,11 +3209,8 @@ padding-inline-start: var(--context-menu-background-padding) !important; } /* Padding - Non Native */ - @media (-moz-os-version: windows-win7) and (-moz-windows-non-native-menus), - (-moz-os-version: windows-win8) and (-moz-windows-non-native-menus), - (-moz-os-version: windows-win10) and (-moz-windows-non-native-menus), - (-moz-platform: windows) and (-moz-windows-non-native-menus), - (-moz-gtk-csd-available) and (-moz-windows-non-native-menus) { + @media (-moz-platform: windows) and (-moz-platform: windows), + (-moz-gtk-csd-available) and (-moz-platform: windows) { :root { --context-menu-background-padding: 1em; --context-menu-text-padding-default: 24px; @@ -3237,16 +3231,9 @@ margin-left: 0 !important; } } - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows), - (-moz-gtk-csd-available) { + @media (-moz-platform: windows), (-moz-gtk-csd-available) { @supports -moz-bool-pref("userChrome.theme.non_native_menu") { - @media (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), - (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), - (-moz-os-version: windows-win10) and (-moz-gtk-csd-available), - (-moz-platform: windows) and (-moz-gtk-csd-available), + @media (-moz-platform: windows) and (-moz-gtk-csd-available), (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { :root { --context-menu-background-padding: 1em; @@ -3272,10 +3259,7 @@ } } /* Padding - Windows */ - @media (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10), - (-moz-platform: windows) { + @media (-moz-platform: windows) { :root { --bookmark-menu-icon-text-padding: calc( var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) @@ -3285,130 +3269,6 @@ ); } } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { - :root { - --context-menu-text-padding: calc(1.45em + 8px); - --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) { - :root { - --context-menu-background-padding-default: 2px; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic) { - :root { - --context-menu-background-padding-default: -0.5px; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { - :root { - --context-menu-background-padding-default: 3px; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { - :root { - --context-menu-background-padding: 3px; - --menu-background-padding-default: 0px; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - :root { - --context-menu-background-padding: 5px; - } - #main-menubar { - --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); - } - menuitem:is([type="checkbox"], [type="radio"]) { - --menu-padding: 0px; - } - menuitem[checked="true"] { - --context-menu-background-padding: 0px; - } - menuitem[checked="true"] > .menu-iconic-left { - transform: translateX(2px); - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - appearance: none !important; - padding-block: 0 !important; - padding-inline-start: 5px !important; - margin-inline-end: 8px !important; - } - @supports -moz-bool-pref("userChrome.compatibility.os.win11") { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, - menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { - box-sizing: content-box; - } - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel { - box-sizing: content-box; - min-height: 16px; - } - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, - menupopup:not([placespopup="true"]) .menu-accel, - menupopup:not([placespopup="true"]) .menu-iconic-accel, - menupopup:not([placespopup="true"]) .menu-text, - menupopup:not([placespopup="true"]) .menu-iconic-text { - padding-block: 0 !important; - } - } - @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), - (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), - (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) - menu:not(.menu-iconic, .in-menulist, [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) - > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: 0 !important; - } - } /* Padding - Linux */ @media (-moz-gtk-csd-available) { :root { diff --git a/css/leptonContentESR.css b/css/leptonContentESR.css new file mode 100644 index 00000000..fb0fd2cb --- /dev/null +++ b/css/leptonContentESR.css @@ -0,0 +1,3721 @@ +@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +@namespace html url("http://www.w3.org/1999/xhtml"); +/** Compatibility *************************************************************/ +@-moz-document url-prefix("about:preferences") { + .content-blocking-warning.info-box-container > hbox > .content-blocking-warning-image { + margin-inline-start: -7px !important; + margin-inline-end: 8px !important; + width: 20px !important; + } + #pane-experimental-search-results-header, + #pane-experimental-subtitle { + min-height: 27px !important; + padding-inline-start: 35px !important; + } + #firefoxExperimentalCategory:not([hidden="true"]) { + display: inline-block; + } + #firefoxExperimentalCategory > label { + float: left; + } + #firefoxExperimentalCategory > hbox { + transform: translateY(5px); + } + #pane-experimental-featureGates > html|p[data-l10n-id="pane-experimental-description2"] { + border-bottom: 1px solid var(--in-content-border-color); + padding-bottom: 1.5em; + } +} +@-moz-document url-prefix("about:addons") { + #updates-message + .page-options-menu > .more-options-button { + box-sizing: content-box; + padding: 0 !important; + } +} +/** Video player **************************************************************/ +/* Control Bar Size */ +@supports -moz-bool-pref("userContent.player.size") { + #controlsContainer { + --controlBar-height: 40px; /* Original: 40px, Replace to this value */ + } + #controlsContainer .touch { + --button-size: 48px !important; /* Original: 40px */ + --controlBar-height: 52px; /* Original: 52px */ + } + #controlsContainer .controlBar { + height: var(--controlBar-height) !important; /* Original: 40px */ + } + .videocontrols[inDOMFullscreen] #controlsContainer { + --button-size: 64px !important; /* Original: 30px */ + --track-size: 6px !important; /* Original: 5px, Touch: 7px */ + --thumb-size: 15px !important; /* Original: 13px, Touch: 16px */ + --controlBar-height: 64px; /* Original: 40px */ + } + .videocontrols[inDOMFullscreen] #controlsContainer .touch { + --button-size: 72px !important; /* Original: 40px */ + --controlBar-height: 64px; /* Original: 52px */ + } + .videocontrols[inDOMFullscreen] #controlsContainer .controlBar { + padding-bottom: 8px !important; + } +} +/* Control Bar UI */ +@supports -moz-bool-pref("userContent.player.ui") { + audio { + --duration-color: #929292; /* Like Original */ + --media-background: rgba(26, 26, 26, 0.8); /* Like Original */ + border-radius: 8px; + --box-shadow1: rgba(14, 13, 26, 0.12); + --box-shadow2: rgba(7, 48, 114, 0.12); + --box-shadow3: rgba(34, 0, 51, 0.04); + box-shadow: 0 5px 10px -3px var(--box-shadow1), 0 3px 16px 2px var(--box-shadow2), 0 8px 12px 1px var(--box-shadow3); + /* Or: 0 2px 15px rgba(0,0,0,.1); */ + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + audio { + --box-shadow1: rgba(249, 249, 250, 0.12); + --box-shadow2: rgba(91, 91, 102, 0.12); + --box-shadow3: rgba(82, 82, 94, 0.04); + } + } + video { + --duration-color: #eee; + --media-background: linear-gradient(transparent, rgba(26, 26, 26, 0.85)); + } + @media (prefers-contrast) { + video { + --duration-color: #929292; /* Like Original */ + --media-background: rgba(26, 26, 26, 0.8); /* Like Original */ + } + } + #controlsContainer .controlBar { + background: var(--media-background) !important; + } + #controlsContainer .duration { + color: var(--duration-color) !important; /* Original: #929292 */ + } + @supports -moz-bool-pref("userContent.player.ui.twoline") { + audio { + /* #controlsContainer .controlBar */ + --controlBar-flex-wrap: unset; + --controlBar-justify-content: center; + --controlBar-align-content: unset; + --controlBar-twoline-more-height: 0px; + --controlBar-padding-inline: 9px; + /* #controlsContainer .scrubberStack */ + /* .scrubberStack - Vertical */ + --scrubberStack-order: unset; + --scrubberStack-height: 100%; + --scrubberStack-transform: none; + /* .scrubberStack - Horizontal */ + --scrubberStack-margin-inline: 9px; + /* #controlsContainer .positionDurationBox */ + --positionDurationBox-flex-grow: unset; + --positionDurationBox-margin-left: unset; + --positionDurationBox-text-align: center; + /* Others */ + --button-outside-margin: 0; + } + video { + /* #scrubber .scrubber::-moz-range-thumb */ + --scrubber-thumb-scale: 0; + --scrubber-thumb-color: #48a0f7; /* Color as hover, Prevent flashing */ + /* .progressBar::-moz-progress-bar */ + --progressBar-scale: 0.65; + /* #controlsContainer .controlBar */ + --controlBar-flex-wrap: wrap; + --controlBar-justify-content: space-between; + --controlBar-align-content: space-around; + --controlBar-padding-inline: 0 !important; /* Original: 9px */ + /* #controlsContainer .scrubberStack */ + /* .scrubberStack - Vertical */ + --scrubberStack-order: -1; + /* .scrubberStack - Horizontal */ + --scrubberStack-flex-basis: auto; + --scrubberStack-twoline-width: 100%; + --scrubberStack-margin-inline: 0; + /* #controlsContainer .positionDurationBox */ + --positionDurationBox-flex-grow: 2; + --positionDurationBox-margin-left: 15px; + --positionDurationBox-text-align: left; + /* Others */ + --duration-color: #dadada; + --button-outside-margin: 9px; + } + .scrubber:not(:hover)::-moz-range-thumb { + transform: scale(var(--scrubber-thumb-scale, 1)); + background-color: var(--scrubber-thumb-color, currentColor) !important; + } + .progressStack { + transform-origin: bottom; + transform: scaleY(var(--progressBar-scale, 1)); + } + .scrubber:hover::-moz-range-thumb, + .progressContainer:hover .progressStack { + transform: scale(1); + } + #controlsContainer .controlBar { + flex-wrap: var(--controlBar-flex-wrap); + justify-content: var(--controlBar-justify-content); + align-content: var(--controlBar-align-content); + height: calc(var(--controlBar-height) + var(--controlBar-twoline-more-height, var(--thumb-size))) !important; + padding-inline: var(--controlBar-padding-inline) !important; /* Original: 9px */ + } + #controlsContainer .scrubberStack { + /* Vertical */ + order: var(--scrubberStack-order); + height: var(--scrubberStack-height, var(--thumb-size)) !important; + transform: var(--scrubberStack-transform, translateY(calc(var(--thumb-size) / 2))); + /* Horizontal */ + flex-basis: var(--scrubberStack-flex-basis, calc(var(--scrubberStack-width) - 18px)) !important; + width: var(--scrubberStack-twoline-width, var(--scrubberStack-width)); + margin-inline: var(--scrubberStack-margin-inline) !important; + } + #controlsContainer .positionDurationBox { + flex-grow: var(--positionDurationBox-flex-grow); + margin-left: var(--positionDurationBox-margin-left); + text-align: var(--positionDurationBox-text-align) !important; + } + #playButton { + margin-left: var(--button-outside-margin) !important; + } + #fullscreenButton { + margin-right: var(--button-outside-margin) !important; + } + } +} +@supports -moz-bool-pref("userContent.player.icon") { + #controlsContainer .fullscreenButton { + background-image: url("../icons/enter-fullscreen.svg") !important; + } + #controlsContainer .fullscreenButton[fullscreened] { + background-image: url("../icons/exit-fullscreen.svg") !important; + } +} +@supports -moz-bool-pref("userContent.player.noaudio") { + #controlsContainer .muteButton[noAudio] { + /* Remove volume button at noAudio */ + display: none !important; + } +} +/* Click to play UI */ +@supports -moz-bool-pref("userContent.player.click_to_play") { + #controlsContainer .clickToPlay { + cursor: pointer; + opacity: 0.65 !important; + } + #controlsContainer .controlsSpacerStack:hover > .clickToPlay { + opacity: 0.85 !important; + } + #controlsContainer .controlsSpacerStack:hover > .clickToPlay:hover { + opacity: 1 !important; + fill: #48a0f7 !important; /* color as .scrubber */ + } +} +/* Animation */ +@supports -moz-bool-pref("userContent.player.animate") { + @media (prefers-reduced-motion: no-preference) { + /* Control Bar */ + #controlsContainer .controlBar { + transition: transform 350ms ease; + opacity: 1 !important; + } + #controlsContainer .controlBar[hidden] { + transform: translateY(100%); + transition: transform 350ms ease-in-out, opacity 1s ease 100ms !important; + opacity: 0 !important; + } + #controlsContainer .controlBar[hidden] .progressBar, + #controlsContainer .controlBar[hidden] .bufferBar { + display: unset !important; + opacity: 0.55; + transition: opacity 150ms ease 50ms; + } + /* Two line Control Bar */ + .scrubber::-moz-range-thumb, + .progressStack { + transition: transform 0.1s cubic-bezier(0, 0, 0.2, 1); + } + /* Click to play */ + #controlsContainer .clickToPlay { + transition: opacity 150ms ease-in-out, fill 150ms ease-in-out; + } + } +} +/** Activity Stream ***********************************************************/ +@-moz-document url("about:home"), url("about:newtab") { + /** Activity Stream - Search Focus Border: like URL *************************/ + @supports -moz-bool-pref("userContent.page.field_border") { + /* At DarkMode, Color */ + body[style*="--newtab-background-color:rgba(28, 27, 34, 1);"], + body[style*="--newtab-background-color:rgba(42, 42, 46, 1);"], + body[style*="--newtab-background-color: rgba(42, 42, 46, 1);"], + body[style*="--newtab-background-color: rgba(43, 42, 51, 1);"], + body[style*="--newtab-background-color: rgb(43, 42, 51);"] { + /* inner */ + --newtab-focus-border: rgba( + 0, + 221, + 255, + 0.5 + ) !important; /* Original: #B5D3FF, Better color-mix(in srgb, #B5D3FF 70%, transparent) */ + --newtab-focus-border-selected: var(--newtab-focus-border) !important; /* Original: #B5D3FF */ + /* For Nightly */ + --newtab-primary-action-background: var(--newtab-focus-border) !important; + } + @supports -moz-bool-pref("userContent.page.proton_color") { + @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { + body[style*="--newtab-background-color:rgba(28, 27, 34, 1);"], + body[style*="--newtab-background-color:rgba(42, 42, 46, 1);"], + body[style*="--newtab-background-color: rgba(42, 42, 46, 1);"], + body[style*="--newtab-background-color: rgba(43, 42, 51, 1);"], + body[style*="--newtab-background-color: rgb(43, 42, 51);"] { + --newtab-focus-border: var(--in-content-focus-outline-color) !important; + } + } + } + } + /** Activity Stream - Menu Icons ********************************************/ + @supports -moz-bool-pref("userChrome.icon.context_menu") { + .context-menu-list .context-menu-item button { + padding-inline-start: 0 !important; + } + .context-menu-list .context-menu-item button span { + /* Color */ + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + stroke: currentColor; + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); + padding-inline-start: 24px; /* 16p + (4px * 2) */ + background-position: var(--uc-menu-background-position, left) 4px center; + } + .context-menu-list .context-menu-item button span:dir(rtl) { + --uc-menu-background-position: right; + } + .context-menu-item span[data-l10n-id="newtab-menu-pin"] { + --menuitem-image: url("../icons/pin-tab.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-unpin"] { + --menuitem-image: url("../icons/unpin-tab.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-edit-topsites"] { + --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-bookmark"] { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-remove-bookmark"] { + --menuitem-image: url("chrome://browser/skin/bookmark-hollow.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-save-to-pocket"] { + --menuitem-image: url("../icons/pocket-outline.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-open-file"] { + --menuitem-image: url("../icons/fluid.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-show-file"] { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + .context-menu-item span[data-l10n-id="newtab-menu-show-file"] { + --menuitem-image: url("../icons/folder.svg"); + } + } + .context-menu-item span[data-l10n-id="newtab-menu-open-new-window"] { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-open-new-private-window"] { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-dismiss"] { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .context-menu-item span[data-l10n-id="newtab-menu-delete-history"] { + --menuitem-image: url("../icons/eraser.svg"); + } + } + /** Activity Stream - Web Site Icon: full size ******************************/ + @supports -moz-bool-pref("userContent.newTab.full_icon") { + .top-site-outer .tile { + overflow: hidden; + } + .top-site-outer .tile .icon-wrapper { + width: 100% !important; /* Original: 48px */ + height: 100% !important; /* Original: 48px */ + } + } + /** Activity Stream - Animate ***********************************************/ + @supports -moz-bool-pref("userContent.newTab.animate") { + @media (prefers-reduced-motion: no-preference) { + :root { + --animation-easing-function: cubic-bezier(0.07, 0.95, 0, 1); + } + /* Background */ + .top-site-outer, + #searchSubmit, + button.icon, + button.close-button { + transition: background 1.5s var(--animation-easing-function); + } + .top-site-outer:hover, + #searchSubmit:hover, + button.icon:hover, + button.close-button:hover { + transition: background 0.5s var(--animation-easing-function); + } + /* Search Bar */ + .search-wrapper .search-inner-wrapper > input, + .search-wrapper .search-inner-wrapper > .search-handoff-button { + transition: 1s var(--animation-easing-function); + transition-property: border-color, box-shadow; + } + .search-wrapper .search-inner-wrapper:active > input, + .search-wrapper .search-inner-wrapper:active > .search-handoff-button, + .search-wrapper .search-inner-wrapper > input:focus, + .search-wrapper .search-inner-wrapper > .search-handoff-button:focus { + transition: border-color 0.5s var(--animation-easing-function), box-shadow 1s var(--animation-easing-function); + } + @supports -moz-bool-pref("userContent.page.field_border") { + .search-wrapper .search-inner-wrapper:hover > input, + .search-wrapper .search-inner-wrapper:hover > .search-handoff-button { + border-color: var(--newtab-primary-action-background) !important; + transition: border-color 0.5s var(--animation-easing-function); + } + } + } + } + /** Activity Stream - Pocket order to last **********************************/ + @supports -moz-bool-pref("userContent.newTab.pocket_to_last") { + .body-wrapper.on { + display: flex; + flex-wrap: wrap; + } + .body-wrapper.on > .discovery-stream.ds-layout { + flex-basis: 100%; + } + .body-wrapper.on > .collapsible-section[data-section-id="topstories"], + .home-section > #pocket-section, + .home-section > .divider, + .home-section > div:not(.section) { + order: 2; + } + } + /** Activity Stream - Home Search Bar looks like proton *********************/ + @supports -moz-bool-pref("userContent.newTab.searchbar") { + /* Dropdown Colors */ + #root { + --newtab-search-background-color: rgba(255, 255, 255, 1); /* Same as light theme's --panel-background */ + /* Set search dropdown background */ + --newtab-search-dropdown-header-color: var(--newtab-search-background-color) !important; + --newtab-search-dropdown-color: var(--newtab-search-background-color) !important; + --newtab-element-hover-color: color-mix(in srgb, currentColor 9%, transparent) !important; + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + #root { + /* Default Dark Mode */ + --newtab-search-background-color: rgba(66, 65, 77, 1); /* Same as dark theme's --panel-background */ + } + } + .activity-stream[lwt-sidebar]:not([style*="--newtab-background-color: rgba(43, 42, 51, 1);"]) #root { + /* Light weight theme */ + --newtab-search-background-color: var(--lwt-sidebar-background-color); + } + /* Padding */ + #searchSuggestionTable { + border-radius: 4px !important; + -moz-window-shadow: cliprounded; + } + .contentSearchSuggestionTable .contentSearchOneOffItem { + width: 32px !important; + height: 32px !important; + /* Margin */ + margin-block: 5px !important; + margin-inline-start: 5px !important; + margin-inline-end: 8px !important; + /* Border */ + border-radius: 4px !important; + border-image: none !important; /* Original: linear-gradient(transparent 18%, var(--newtab-border-secondary-color) 18%, var(--newtab-border-secondary-color) 82%, transparent 82%) 1; */ + border-inline-end: none !important; /* Original: 1px solid; */ + } + #contentSearchSettingsButton::before { + content: url("chrome://global/skin/icons/settings.svg") !important; + display: inline-flex; + display: -moz-inline-box; + /* Color */ + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + /* Align */ + margin-inline-end: 5px; + vertical-align: -25%; + } + /* Pointer */ + .contentSearchSuggestionTable .contentSearchOneOffItem, + #contentSearchSettingsButton { + cursor: pointer; + } + /*- Fix Color For Nightly ------------------------------------------------*/ + .contentSearchSuggestionTable, + .contentSearchHeaderRow, + .contentSearchHeader, + .contentSearchSuggestionsContainer { + color: var(--newtab-text-primary-color) !important; + background: var(--newtab-search-background-color) !important; + } + .contentSearchSuggestionTable .contentSearchSuggestionRow.selected, + .contentSearchSuggestionTable .contentSearchSettingsButton:hover { + color: var(--newtab-text-primary-color) !important; + } + .contentSearchSuggestionTable .contentSearchSuggestionRow.selected, + .contentSearchSuggestionTable .contentSearchSettingsButton:hover, + .contentSearchSuggestionTable .contentSearchOneOffItem.selected { + background: var(--newtab-element-hover-color) !important; + } + .contentSearchSuggestionTable .contentSearchSuggestionRow.selected:active, + .contentSearchSuggestionTable .contentSearchOneOffItem:active { + background: var(--newtab-element-active-color) !important; + } + .contentSearchSuggestionTable .contentSearchSuggestionRow.selected .historyIcon { + fill: var(--newtab-icon-secondary-color) !important; + } + } + /** Activity Stream - Hide Firefox's logo ***********************************/ + @supports -moz-bool-pref("userContent.newTab.hidden_logo") { + .logo-and-wordmark { + display: none !important; + } + .outer-wrapper:not(.fixed-search) .search-wrapper { + padding-top: 0 !important; + } + } + /** Activity Stream - Hide Firefox's logo ***********************************/ + @supports -moz-bool-pref("userContent.newTab.background_image") { + body { + background-image: var(--uc-newTab-wallpaper, url("../icons/Forest-trees-sunset-art-picture_3840x2160.jpg")); + background-size: cover; /* or auto auto */ + background-repeat: no-repeat; + background-position: right top; + background-attachment: fixed; + } + } +} +/** Error Page - Restore illustrations ****************************************/ +@supports -moz-bool-pref("userContent.page.illustration") { + @-moz-document url-prefix("about:neterror"), url-prefix("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml"), url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") + { + /* Illustrations Position */ + #errorPageContainer, + .neterror > .container, + .description-wrapper { + min-height: 300px; + background-position: left center; + background-repeat: no-repeat; + background-size: 38%; + background-image: var(--uc-error-llustration); + } + #errorPageContainer { + display: flex; + flex-direction: column; + } + .description-wrapper { + padding-inline-start: 38%; + } + /* Container */ + .container { + min-width: var(--in-content-container-min-width); /* 13em */ + max-width: var(--in-content-container-max-width); /* 52em */ + } + /* Text Position */ + #text-container { + margin: auto; + padding-inline-start: 38%; + } + } + @-moz-document url-prefix("about:neterror?e=connectionFailure"), url-prefix("about:neterror?e=netInterrupt"), url-prefix("about:neterror?e=netReset"), url-prefix("about:neterror?e=netTimeout"), url-prefix("about:neterror?e=netOffline"), url-prefix("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml") + { + :root { + --uc-error-llustration: url(../icons/error-connection-failure.svg); + } + } + @-moz-document url-prefix("about:neterror?e=dnsNotFound") { + :root { + --uc-error-llustration: url(../icons/error-server-not-found.svg); + } + } + @-moz-document url-prefix("about:neterror?e=blockedByPolicy"), url-prefix("about:neterror?e=deniedPortAccess"), url-prefix("about:neterror?e=malformedURI") { + :root { + --uc-error-llustration: url(chrome://browser/skin/illustrations/error-malformed-url.svg); + } + } + @-moz-document url-prefix("about:neterror?e=clockSkewError"), url-prefix("about:neterror?e=nssFailure") { + :root { + --uc-error-llustration: url(../icons/blue-berror.svg); + } + #errorPageContainer, + .neterror > .container { + background-size: 18.5em; + } + } + @-moz-document url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") + { + :root { + --uc-error-llustration: url(../icons/error-session-restore.svg); + } + } + @-moz-document url-prefix("about:neterror?e=fileNotFound") { + @media (min-width: 970px) { + .title { + background-image: url("chrome://global/skin/icons/info.svg") !important; + } + } + #text-container { + padding-inline-start: 0; + } + } + @-moz-document url-prefix("about:tabcrashed") { + @media (min-width: 970px) { + .title { + background-image: url("chrome://browser/skin/tab-crashed.svg") !important; + } + } + } + @-moz-document url("about:robots"), url("chrome://browser/content/aboutRobots.xhtml") + { + @media (min-width: 970px) { + .title { + background-image: url("chrome://browser/content/aboutRobots-icon.png") !important; + } + } + } + @-moz-document url("about:welcomeBack"), url("chrome://browser/content/aboutWelcomeBack.xhtml") + { + @media (min-width: 970px) { + .title { + background-image: url("../icons/welcome-back.svg") !important; + } + } + } + @-moz-document url-prefix("about:preferences") { + #no-results-message::after { + content: url("../icons/no-search-results.svg"); + width: 380px; + height: 293px; + margin-top: 64px; + margin-inline: auto; + } + } +} +/** Fully Dark Mode ***********************************************************/ +/*= Fully Dark Mode - Dark Mode Colors =======================================*/ +@supports -moz-bool-pref("userContent.page.proton_color") { + @-moz-document url-prefix("about:"), url-prefix("chrome://"), url-prefix("https://addons.mozilla.org"), url-prefix("https://support.mozilla.org"), url-prefix("https://accounts.firefox.com"), url-prefix("view-source"), regexp("^((jar:)?file:///).*/$") + { + /*= Default Colors - Hard Coded ==============================================*/ + /* Based on chrome://global/skin/in-content/common.css */ + :host, + :root { + --in-content-page-color: rgb(21, 20, 26); + --in-content-page-background: #fff; + --in-content-text-color: var(--in-content-page-color); + --in-content-deemphasized-text: rgb(91, 91, 102); + --in-content-box-background: #fff; + --in-content-box-background-odd: rgba(12, 12, 13, 0.05); /* grey 90 a05 */ + --in-content-box-border-color: color-mix(in srgb, currentColor 41%, transparent); + --in-content-box-info-background: #f0f0f4; + --in-content-item-hover: color-mix(in srgb, var(--in-content-primary-button-background) 20%, transparent); + --in-content-item-hover-text: var(--in-content-page-color); + --in-content-item-selected: var(--in-content-primary-button-background); + --in-content-item-selected-text: var(--in-content-primary-button-text-color); + --in-content-icon-color: rgb(91, 91, 102); + --in-content-accent-color: #0a84ff; + --in-content-accent-color-active: #0060df; + --in-content-border-hover: var(--grey-90-a50); + --in-content-border-invalid: var(--red-50); + --in-content-border-color: #d7d7db; + --in-content-error-text-color: #c50042; + --in-content-link-color: var(--blue-60); + --in-content-link-color-hover: var(--blue-70); + --in-content-link-color-active: var(--blue-80); + --in-content-link-color-visited: var(--blue-60); + /* button background states are also used for checkboxes and radio buttons */ + --in-content-button-text-color: var(--in-content-text-color); + --in-content-button-text-color-hover: var(--in-content-text-color); + --in-content-button-background: rgba(207, 207, 216, 0.33); + --in-content-button-background-hover: rgba(207, 207, 216, 0.66); + --in-content-button-background-active: rgb(207, 207, 216); + --in-content-primary-button-text-color: rgb(251, 251, 254); + --in-content-primary-button-text-color-hover: var(--in-content-primary-button-text-color); + --in-content-primary-button-background: #0061e0; + --in-content-primary-button-background-hover: #0250bb; + --in-content-primary-button-background-active: #053e94; + --in-content-danger-button-background: #e22850; + --in-content-danger-button-background-hover: #c50042; + --in-content-danger-button-background-active: #810220; + --in-content-focus-outline-color: var(--in-content-primary-button-background); + /* Note: 1px smaller than we want because we have a 1px transparent border. */ + /* Once proton ships, these can probably stop being variables. */ + --in-content-button-border-radius: 4px; + --in-content-button-horizontal-padding: 15px; + --in-content-button-vertical-padding: 7px; + --in-content-table-background: #f8f8fa; + --in-content-table-border-color: var( + --in-content-box-border-color + ); /* Legacy: #d1d1d1; rgba(249, 249, 250, 0.2) */ + --in-content-table-border-dark-color: var(--in-content-table-border-color); + --in-content-table-header-background: var( + --in-content-primary-button-background + ); /* Legacy: #0a84ff; rgb(5, 64, 150); */ + --in-content-table-header-color: var( + --in-content-primary-button-text-color + ); /* Legacy: #ffffff; var(--in-content-page-color); */ + --in-content-sidebar-width: 240px; + --dialog-warning-text-color: var(--red-60); + --checkbox-border-color: var(--in-content-box-border-color); + --checkbox-unchecked-bgcolor: var(--in-content-button-background); + --checkbox-unchecked-hover-bgcolor: var(--in-content-button-background-hover); + --checkbox-unchecked-active-bgcolor: var(--in-content-button-background-active); + --checkbox-checked-bgcolor: var(--in-content-primary-button-background); + --checkbox-checked-color: var(--in-content-primary-button-text-color); + --checkbox-checked-border-color: transparent; + --checkbox-checked-hover-bgcolor: var(--in-content-primary-button-background-hover); + --checkbox-checked-active-bgcolor: var(--in-content-primary-button-background-active); + --blue-40: #45a1ff; + --blue-50: #0a84ff; + --blue-60: #0060df; + --blue-70: #003eaa; + --blue-80: #002275; + --grey-30: #d7d7db; + --grey-60: #4a4a4f; + --grey-90-a10: rgba(12, 12, 13, 0.1); + --grey-90-a20: rgba(12, 12, 13, 0.2); + --grey-90-a30: rgba(12, 12, 13, 0.3); + --grey-90-a50: rgba(12, 12, 13, 0.5); + --grey-90-a60: rgba(12, 12, 13, 0.6); + --green-50: #30e60b; + --green-60: #12bc00; + --green-70: #058b00; + --green-80: #006504; + --green-90: #003706; + --orange-50: #ff9400; + --red-40: #ff4f5e; + --red-50: #ff0039; + --red-60: #d70022; + --red-70: #a4000f; + --red-80: #5a0002; + --red-90: #3e0200; + --yellow-50: #ffe900; + --yellow-60: #d7b600; + --yellow-60-a30: rgba(215, 182, 0, 0.3); + --yellow-70: #a47f00; + --yellow-80: #715100; + --yellow-90: #3e2800; + --shadow-10: 0 1px 4px var(--grey-90-a10); + --shadow-30: 0 4px 16px var(--grey-90-a10); + --card-padding: 16px; + --card-shadow: var(--shadow-10); + --card-outline-color: var(--grey-30); + --card-shadow-hover: var(--card-shadow), 0 0 0 5px var(--card-outline-color); + --uc-warning-icon-bgcolor: #ffa436; + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :host, + :root { + /* Keep these in sync with layout/base/PresShell.cpp, and plaintext.css */ + --in-content-page-background: rgb(28, 27, 34); + --in-content-page-color: rgb(251, 251, 254); + --in-content-deemphasized-text: rgb(191, 191, 201); + --in-content-box-background: rgb(35, 34, 43); + --in-content-box-background-odd: rgba(249, 249, 250, 0.05); + --in-content-box-info-background: rgba(249, 249, 250, 0.15); + --in-content-border-color: rgba(249, 249, 250, 0.2); + --in-content-border-hover: rgba(249, 249, 250, 0.3); + --in-content-border-invalid: rgb(255, 132, 139); + --in-content-error-text-color: #ff9aa2; + --in-content-button-background: rgb(43, 42, 51); + --in-content-button-background-hover: rgb(82, 82, 94); + --in-content-button-background-active: rgb(91, 91, 102); + --in-content-icon-color: rgb(251, 251, 254); + --in-content-primary-button-text-color: rgb(43, 42, 51); + --in-content-primary-button-background: rgb(0, 221, 255); + --in-content-primary-button-background-hover: rgb(128, 235, 255); + --in-content-primary-button-background-active: rgb(170, 242, 255); + --in-content-danger-button-background: #ff848b; + --in-content-danger-button-background-hover: #ffbdc5; + --in-content-danger-button-background-active: #ffdfe7; + --in-content-table-background: rgb(35, 34, 43); + --in-content-table-border-dark-color: var(--in-content-box-border-color); + --in-content-accent-color: var(--in-content-primary-button-background); + --in-content-accent-color-active: var(--in-content-primary-button-background-hover); + --in-content-link-color: var(--in-content-primary-button-background); + --in-content-link-color-hover: var(--in-content-primary-button-background-hover); + --in-content-link-color-active: var(--in-content-primary-button-background-active); + --in-content-link-color-visited: var(--in-content-link-color); + --card-outline-color: var(--grey-60); + --dialog-warning-text-color: var(--red-40); + --uc-warning-icon-bgcolor: #ffbd4f; + } + } + @media (prefers-contrast) { + :host, + :root { + --uc-warning-icon-bgcolor: var(--in-content-page-color); + } + } + /*= Menu color #477 ==========================================================*/ + @media (-moz-windows-non-native-menus) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + } + @media (-moz-windows-non-native-menus) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-windows-non-native-menus) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-gtk-csd-available) { + :root { + /* Override some menu color variables for light browser themes. */ + --menuitem-hover-background-color: #e0e0e6; + --menu-background-color: #f9f9fb; + --menu-color: #15141a; + --menuitem-disabled-hover-background-color: rgba(224, 224, 230, 0.4); + --menu-disabled-color: rgba(21, 20, 26, 0.4); + --menu-border-color: #cfcfd8; + --menu-icon-opacity: 0.7; + /* Declare menu colors for dark themes, but don't override anything yet. */ + --dark-menuitem-hover-background-color: #52525e; + --dark-menu-background-color: #2b2a33; + --dark-menu-color: #fbfbfe; + --dark-menuitem-disabled-hover-background-color: rgba(82, 82, 94, 0.4); + --dark-menu-disabled-color: rgba(251, 251, 254, 0.4); + --dark-menu-border-color: #5b5b66; + --dark-menu-icon-opacity: 1; + } + /* Override the menu color variables for dark browser themes. */ + } + @media (-moz-gtk-csd-available) and (-moz-toolbar-prefers-color-scheme: dark), + (-moz-gtk-csd-available) and (prefers-color-scheme: dark) { + :root { + --menuitem-hover-background-color: var(--dark-menuitem-hover-background-color); + --menu-background-color: var(--dark-menu-background-color); + --menu-color: var(--dark-menu-color); + --menuitem-disabled-hover-background-color: var(--dark-menuitem-disabled-hover-background-color); + --menu-disabled-color: var(--dark-menu-disabled-color); + --menu-border-color: var(--dark-menu-border-color); + --menu-icon-opacity: var(--dark-menu-icon-opacity); + } + } + } + @supports -moz-bool-pref("userContent.page.proton_color.dark_blue_accent") { + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :host, + :root { + /* Color Memo + Just refer - Photon's dark color + --button-primary-bgcolor: #0060DF; + --button-primary-hover-bgcolor: #003EAA; + --button-primary-active-bgcolor: #002275; + --lwt-brighttext-url-color: #74c0ff; + --lwt-toolbarbutton-icon-fill-attention: #45a1ff; + + Just refer - Proton's light color + --in-content-accent-color: #0a84ff; + --in-content-accent-color-active: #0060df; + --in-content-primary-button-background: #0061e0; + --in-content-primary-button-background-hover: #0250bb; + --in-content-primary-button-background-active: #053e94; + + --blue-40: #45a1ff; rgb(69, 161, 255) + --blue-50: #0a84ff; rgb(10, 132, 255) + --blue-60: #0060df; rgb(0, 96, 223) + --blue-70: #003eaa; rgb(0, 62, 170) + --blue-80: #002275; rgb(0, 34, 117) + + Relation + lighten(#0060df, 29%): #74b0ff; + lighten(#0060df, 19.8%): #4595ff + lighten(#0060df, 8.3%): #0a74ff + #0060df + darken(#0060df, 15.5%): #003e90; + darken(#0060df, 28.1%): #002250; + */ + --blue-20: #b6d6ff; /* lighten(#0060df, 42%) - rgb(182, 214, 255), Add for link active color*/ + --blue-30: #74c0ff; /* rgb(116, 192, 255), Add for active color */ + } + :host, + :root { + --in-content-primary-button-text-color: var(--in-content-page-color) !important; + --in-content-primary-button-background: var(--blue-60) !important; + --in-content-primary-button-background-hover: var(--blue-50) !important; + --in-content-primary-button-background-active: var(--blue-40) !important; + --in-content-focus-outline-color: var(--blue-40) !important; + --in-content-accent-color: var(--blue-40) !important; + --in-content-accent-color-active: var(--blue-30) !important; + --in-content-table-background: rgb(35, 34, 43) !important; + --in-content-table-border-color: rgba(249, 249, 250, 0.2) !important; + --in-content-table-header-background: rgb(5, 64, 150) !important; + --in-content-table-header-color: var(--in-content-page-color) !important; + --in-content-link-color: var(--blue-40) !important; + --in-content-link-color-hover: var(--blue-30) !important; + --in-content-link-color-active: var(--blue-20) !important; + --in-content-link-color-visited: var(--blue-40) !important; + } + } + } + @supports -moz-bool-pref("userContent.page.proton_color.system_accent") { + :host, + :root { + --in-content-primary-button-text-color: AccentColorText !important; + --in-content-primary-button-background: AccentColor !important; + --in-content-primary-button-background-hover: color-mix(in srgb, black 10%, AccentColor) !important; + --in-content-primary-button-background-active: color-mix(in srgb, black 20%, AccentColor) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + :host, + :root { + --in-content-primary-button-text-color: HighlightText !important; + --in-content-primary-button-background: Highlight !important; + --in-content-primary-button-background-hover: color-mix(in srgb, black 10%, Highlight) !important; + --in-content-primary-button-background-active: color-mix(in srgb, black 20%, Highlight) !important; + } + } + } + } +} +@supports -moz-bool-pref("userContent.page.dark_mode") { + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + /*= Addons.org =============================================================*/ + @-moz-document url-prefix("https://addons.mozilla.org") + { + /* Basic */ + .Page-content, + .SecondaryHero, + body, + main[aria-label="Content"] { + color: var(--in-content-page-color) !important; + background: var(--in-content-page-background) !important; + } + /* Text */ + input, + textarea, + select, + .AutoSearchInput-query, + .AutoSearchInput-suggestions-list, + .Page-content h1, + .Page-content h2, + .SearchResult-link, + .Home-SubjectShelf-link:link, + .Home-SubjectShelf-link:visited, + .DropdownMenuItem-link a, + .DropdownMenuItem-link button, + .Select, + .Badge, + .Notice-generic, + .Notice-genericWarning, + .Notice-button, + .Paginate .Button.Paginate-item:first-child, + .Paginate .Button.Paginate-item:last-child, + .Paginate .Button.Paginate-item--current-page, + .Button--neutral, + .blog-entry-title, + .blogpost-nav * { + color: var(--in-content-text-color) !important; + } + .AutoSearchInput-suggestions-item:is(:active, :focus, :hover), + .AutoSearchInput-suggestions-item--highlighted, + .SecondaryHero-message-link, + .SecondaryHero-module-link, + .Card-contents a:not(.Button), + .Card-footer-link a, + .Card-shelf-footer-in-header a, + .SearchResult-link:is(:active, :focus, :hover), + .SearchResult:hover .SearchResult-link, + .Home-SubjectShelf-link:is(:active, :focus, :hover), + .DropdownMenuItem-link a:is(:active, :focus, :hover), + .DropdownMenuItem-link button:is(:active, :focus, :hover), + .AddonMeta .MetadataCard-title a:is(:active, :hover), + .AddonMeta .MetadataCard-title a.AddonMeta-reviews-content-link:is(:active, :hover), + .AddonMeta .MetadataCard-content a:is(:active, :hover), + .AddonMeta .MetadataCard-content a.AddonMeta-reviews-content-link:is(:active, :hover), + .Addon-summary a, + .RatingsByStar-count a:hover, + .RatingsByStar-star a:hover, + .Paginate .Button.Paginate-item:not(:first-child, :last-child, .Paginate-item--current-page), + .AddonTitle-author a, + .PermissionsCard-learn-more, + .DefinitionList a, + .ShowMoreCard-contents a, + .AddonDescription-contents a, + .AddonTitle a, + .TooltipMenu-opener, + .LanguageTools .Card-contents a, + .Button--primary, + .blog-entry-read-more-link, + .blogpost-nav-next.blogpost-nav-no-prev:hover p, + .blogpost-content-wrapper p a, + .blogpost-nav-prev:hover p, + .blogpost-nav-next:hover p { + color: var(--in-content-link-color) !important; + } + .SearchResult--meta-section, + .MetadataCard-title, + .MetadataCard-title a, + .MetadataCard-content a, + .CollectionSort-label, + .SearchResult-summary, + .AddonMeta .MetadataCard-content a.AddonMeta-reviews-content-link, + .AddonMeta .MetadataCard-title a.AddonMeta-reviews-content-link, + .PermissionsCard-subhead--optional, + .PermissionsCard-subhead--required, + .Definition-dt, + .RatingsByStar-count a, + .RatingsByStar-star a, + .Paginate-page-number, + .AddonSummaryCard-addonAverage, + .AddonReviewCard-authorByLine, + .UserReview-byLine, + .UserReview-reply-header, + .Home-heroHeader-subtitle, + .blog-entry-date, + .blogpost-breadcrumb *, + .AddonTitle-author, + .ExpandableCard-ToggleLink, + .SearchFilters-label, + .PromotedBadge-label--line { + color: var(--in-content-deemphasized-text) !important; + } + .PromotedBadge-label--recommended { + color: color-mix(in srgb, #712b00 15%, #ff9400) !important; + } + /* Background */ + .Button--action, + .DevHub-Navigation ul li.DevHub-Navigation-Register .Button, + .DevHub-MyAddons-item-buttons-submit .Button { + color: var(--in-content-primary-button-text-color) !important; + background: var(--in-content-primary-button-background) !important; + } + select, + .Select, + .Button--primary, + .Button--neutral, + .Button--neutral:link, + .Notice-button, + .AMInstallButton .AMInstallButton-loading-button { + background-color: var(--in-content-button-background) !important; + } + .Button--primary:hover, + .Button--neutral.Button--micro:not(.Button--disabled):hover, + .Button--neutral:not(.Button--disabled):hover, + .Notice-button:hover { + background: var(--in-content-button-background-hover) !important; + } + .Button--action.Button--micro:not(.Button--disabled):hover, + .Button--action:not(.Button--disabled):hover, + .DevHub-Navigation ul li.DevHub-Navigation-Register .Button:hover, + .DevHub-MyAddons-item-buttons-submit .Button:hover { + background: var(--in-content-primary-button-background-hover) !important; + } + .ShowMoreCard-contents::after { + background: linear-gradient(hsla(0deg, 0%, 100%, 0), var(--in-content-table-background)) !important; + } + input, + textarea, + .AutoSearchInput-query, + .AutoSearchInput-suggestions-list, + .SecondaryHero-module, + .Card-header, + .Card-contents, + .CardList ul > li, + .AddonsCard--horizontal ul.AddonsCard-list .SearchResult-wrapper:is(:focus, :hover), + .Paginate, + .LandingPage-header, + .DropdownMenu-items, + .DropdownMenu-items::after, + .MetadataCard, + .AddonsCard-list, + .Card-footer, + .StaticAddonCard, + .blogpost-nav, + .blogpost-nav * { + background: var(--in-content-table-background) !important; + } + .Paginate .Button.Paginate-item:is(:active, :hover) { + background: var(--in-content-button-background-hover) !important; + } + .Notice-generic, + .Notice-genericWarning { + background: color-mix( + in srgb, + var(--in-content-page-background) 40%, + var(--in-content-table-background) + ) !important; + } + .LanguageTools-header-row { + color: var(--in-content-table-header-color) !important; + background: var(--in-content-table-header-background) !important; + } + .LanguageTools-table.responsiveTable tbody tr:nth-child(2n) { + background-color: var(--in-content-box-background-odd) !important; + } + /* Fill */ + .Icon-arrow-blue.SearchSuggestion-icon-arrow { + filter: hue-rotate(330deg) brightness(1.3) !important; + } + .SecondaryHero-module-icon { + filter: invert(85%) !important; + } + .Icon-magnifying-glass, + .Notice-icon { + filter: invert(65%) !important; + } + .PermissionsCard-learn-more .Icon, + .Permission .Icon { + filter: invert(100%) !important; + } + .Icon-heart { + filter: brightness(0) !important; + } + /* Others */ + .DropdownMenu-items { + box-shadow: 0 0 2px var(--in-content-border-color) !important; + } + input, + textarea, + select { + border-color: var(--in-content-box-border-color) !important; + } + .UserProfileEdit input:disabled, + .UserProfileEdit textarea:disabled { + background-color: var(--in-content-box-background-odd) !important; + } + .AutoSearchInput-query { + border: 1px solid var(--in-content-table-background) !important; + } + .AutoSearchInput-query:is(:hover, :focus), + .UserProfileEditNotifications .UserProfileEditNotification-input:checked ~ .UserProfileEditNotification-checkbox { + border-color: var(--in-content-primary-button-background) !important; + } + .UserProfileEdit input:focus, + .UserProfileEdit textarea:focus, + .AutoSearchInput-query:focus, + .UserProfileEditNotifications .UserProfileEditNotification-input:focus ~ .UserProfileEditNotification-checkbox { + box-shadow: inset 0 0 0 1px var(--in-content-primary-button-background), + 0 0 0 1px var(--in-content-primary-button-background), 0 0 0 4px rgba(0, 211, 255, 0.3) !important; + } + .PromotedBadge-link--line { + border-color: var(--in-content-deemphasized-text) !important; + } + .PromotedBadge-link--line:hover { + border-color: var(--in-content-button-background-hover) !important; + } + .blog-entry-read-more-link { + border-color: var(--in-content-link-color) !important; + } + .blogpost-nav-arrow-left .cls-1, + .blogpost-nav-arrow-right .cls-1 { + stroke: var(--in-content-text-color) !important; + } + /* /developers/ */ + .DevHub-Navigation-Logo > .Logo::before { + -moz-context-properties: fill !important; + fill: var(--in-content-primary-button-background) !important; + background-image: url("../icons/addons-logo.svg") !important; + } + .DevHub-Navigation, + .DevHub-submit-addon, + .DevHub-get-involved, + .DevHub-MyAddons > * { + background: var(--in-content-page-background) !important; + color: var(--in-content-page-color) !important; + } + .DevHub-Footer { + background: var(--in-content-box-background) !important; + color: var(--in-content-page-color) !important; + } + .DevHub-callout-box { + background: var(--in-content-box-background-odd) !important; + color: var(--in-content-page-color) !important; + } + .DevHub-Navigation.scheme-light ul li a, + .DevHub-Footer-sections-header, + .DevHub-Footer-section h4, + .DevHub-Footer-section p, + .DevHub-content-copy h2 { + color: var(--in-content-page-color) !important; + } + .DevHub-content-copy p, + .DevHub-callout-box p { + color: var(--in-content-deemphasized-text) !important; + } + .DevHub-Banner a, + .DevHub-Footer a, + .DevHub-MyAddons-list a, + .DevHub-MyAddons-item-buttons-all, + .DevHub-content-copy a, + .DevHub-callout-box a { + color: var(--in-content-link-color) !important; + } + body:is(.developer-hub, .statistics) { + /* Elements */ + /* .developer-hub */ + /* Text */ + /* .developer-hub */ + /* Background */ + /* Border */ + /* Others */ + } + body:is(.developer-hub, .statistics) #main-wrapper, + body:is(.developer-hub, .statistics) .menu-nav > ul > li > ul::after, + body:is(.developer-hub, .statistics) .menu-nav > ul > li:hover::after, + body:is(.developer-hub, .statistics) .menu-nav > ul > li > ul, + body:is(.developer-hub, .statistics) .menu-nav > ul > li > ul a, + body:is(.developer-hub, .statistics) .menu-nav em, + body:is(.developer-hub, .statistics) .primary, + body:is(.developer-hub, .statistics) .secondary, + body:is(.developer-hub, .statistics) .dashboard .listing .item { + background: var(--in-content-page-background) !important; + color: var(--in-content-page-color) !important; + } + body:is(.developer-hub, .statistics) .menu-nav > ul > li > ul a:hover, + body:is(.developer-hub, .statistics) .install-note, + body:is(.developer-hub, .statistics) .modal, + body:is(.developer-hub, .statistics) .popup { + background: var(--in-content-box-background-odd) !important; + } + body:is(.developer-hub, .statistics) .menu-nav > ul > li > ul::after, + body:is(.developer-hub, .statistics) .menu-nav > ul > li > ul { + box-shadow: 0 0 3px var(--in-content-border-color) !important; + } + body:is(.developer-hub, .statistics) #footer { + background: linear-gradient( + to bottom, + var(--in-content-page-background) 0, + var(--in-content-page-background) 123px, + #0c99d5 123px, + #0c99d5 200px, + var(--in-content-page-background) 200px, + rgba(12, 153, 213, 0) 400px + ) !important; + } + body:is(.developer-hub, .statistics) #homepage h2, + body:is(.developer-hub, .statistics) header h2, + body:is(.developer-hub, .statistics) .primary h2, + body:is(.developer-hub, .statistics) h1, + body:is(.developer-hub, .statistics) hgroup h2.addon, + body:is(.developer-hub, .statistics) hgroup h2.collection, + body:is(.developer-hub, .statistics) h3, + body:is(.developer-hub, .statistics) .results h4, + body:is(.developer-hub, .statistics) .dashboard .listing .item, + body:is(.developer-hub, .statistics) .dashboard .listing .item:hover h5, + body:is(.developer-hub, .statistics) .secondary .addon-status, + body:is(.developer-hub, .statistics) .secondary .addon-status .addon-details li.addon-listed-status, + body:is(.developer-hub, .statistics) #refine-results h5, + body:is(.developer-hub, .statistics) .island.criteria li, + body:is(.developer-hub, .statistics) .two-up div { + color: var(--in-content-page-color) !important; + } + body:is(.developer-hub, .statistics) .item-actions h5, + body:is(.developer-hub, .statistics) .item-actions > ul, + body:is(.developer-hub, .statistics) .item-actions > ul > li, + body:is(.developer-hub, .statistics) .dashboard .listing .item .item-actions a, + body:is(.developer-hub, .statistics) .edit-media-details, + body:is(.developer-hub, .statistics) .devhub-form table th, + body:is(.developer-hub, .statistics) #recent-activity .listing .item .timestamp, + body:is(.developer-hub, .statistics) #upload-file .upload-status #uploadstatus, + body:is(.developer-hub, .statistics) #addon-validator-suite, + body:is(.developer-hub, .statistics) #addon-validator-suite .msg > *, + body:is(.developer-hub, .statistics) .island.criteria li a.inactive { + color: var(--in-content-deemphasized-text) !important; + } + body:is(.developer-hub, .statistics) section[role="main"] a, + body:is(.developer-hub, .statistics) header a, + body:is(.developer-hub, .statistics) .more-info, + body:is(.developer-hub, .statistics) .primary a, + body:is(.developer-hub, .statistics) .secondary a, + body:is(.developer-hub, .statistics) .submission-type-tabs a, + body:is(.developer-hub, .statistics) .popup a, + body:is(.developer-hub, .statistics) .dashboard .listing .item:hover a, + body:is(.developer-hub, .statistics) .dashboard .listing .item:hover .item-actions a, + body:is(.developer-hub, .statistics) #upload-status-results.status-pass strong, + body:is(.developer-hub, .statistics) #addon-validator-suite a, + body:is(.developer-hub, .statistics) #create-addon a, + body:is(.developer-hub, .statistics) .html-support { + color: var(--in-content-link-color) !important; + } + body:is(.developer-hub, .statistics) .dashboard .listing .item:hover a { + color: var(--in-content-link-color-hover) !important; + } + body:is(.developer-hub, .statistics) .dashboard .listing .item .item-info .downloads, + body:is(.developer-hub, .statistics) .dashboard .listing .item .item-info .price, + body:is(.developer-hub, .statistics) .dashboard .listing .item .item-info .users { + color: var(--green-60) !important; + } + body:is(.developer-hub, .statistics) .status-admin-disabled b, + body:is(.developer-hub, .statistics) .status-disabled b, + body:is(.developer-hub, .statistics) .status-incomplete b, + body:is(.developer-hub, .statistics) .status-purgatory b { + color: var(--red-60) !important; + } + body:is(.developer-hub, .statistics) .submission-type-tabs a.active, + body:is(.developer-hub, .statistics) .island.criteria li.selected a { + color: var(--orange-50) !important; + } + body:is(.developer-hub, .statistics) .secondary .addon-status, + body:is(.developer-hub, .statistics) .devhub-form .item, + body:is(.developer-hub, .statistics) #icons_default, + body:is(.developer-hub, .statistics) .listing .item, + body:is(.developer-hub, .statistics) .object-lead, + body:is(.developer-hub, .statistics) #addon-validator-suite .results .tier-results, + body:is(.developer-hub, .statistics) #addon-validator-suite .suite, + body:is(.developer-hub, .statistics) #addon-validator-suite .suite-container { + border-color: var(--in-content-border-color) !important; + background: var(--in-content-box-background) !important; + } + body:is(.developer-hub, .statistics) .highlight, + body:is(.developer-hub, .statistics) .listing-footer, + body:is(.developer-hub, .statistics) .tab-wrapper .fm-control { + color: var(--in-content-page-color) !important; + background: var(--in-content-box-info-background) !important; + } + body:is(.developer-hub, .statistics) .submission-type-tabs a, + body:is(.developer-hub, .statistics) #head-chart { + background: var(--in-content-page-background) !important; + } + body:is(.developer-hub, .statistics) #head-chart rect { + fill: var(--in-content-page-background) !important; + } + body:is(.developer-hub, .statistics) #head-chart text { + fill: var(--in-content-deemphasized-text) !important; + } + body:is(.developer-hub, .statistics) #head-chart .highcharts-legend .highcharts-legend-item:hover text { + fill: var(--in-content-page-color) !important; + paint-order: stroke !important; + stroke: var(--in-content-page-color) !important; + stroke-width: 0.4px !important; + stroke-linecap: butt !important; + stroke-linejoin: miter !important; + } + body:is(.developer-hub, .statistics) + #head-chart + .highcharts-legend + .highcharts-legend-item + path[stroke="#CCC"] + ~ text { + fill: #ccc !important; + } + body:is(.developer-hub, .statistics) #icons_default li a:hover, + body:is(.developer-hub, .statistics) #side-nav .active a, + body:is(.developer-hub, .statistics) span.tip, + body:is(.developer-hub, .statistics) .addon-submission-process .tip, + body:is(.developer-hub, .statistics) .devhub-form .tip, + body:is(.developer-hub, .statistics) a.remove, + body:is(.developer-hub, .statistics) span.remove, + body:is(.developer-hub, .statistics) ul.errorlist li span.tip { + background-color: var(--in-content-box-info-background) !important; + } + body:is(.developer-hub, .statistics) a.remove:hover, + body:is(.developer-hub, .statistics) span.tip:hover { + background-color: var(--in-content-primary-button-background-hover) !important; + } + body:is(.developer-hub, .statistics) .submission-type-tabs a, + body:is(.developer-hub, .statistics) .devhub-sidebar, + body:is(.developer-hub, .statistics) .devhub-sidebar div.item, + body:is(.developer-hub, .statistics) .devhub-form .listing-footer { + border-color: var(--in-content-border-color) !important; + } + body:is(.developer-hub, .statistics) #background-wrapper, + body:is(.developer-hub, .statistics) #main-wrapper { + border-color: var(--in-content-page-background) !important; + } + body:is(.developer-hub, .statistics) .item-actions a.more-actions:hover:after, + body:is(.developer-hub, .statistics) .item-actions button.link.more-actions:hover:after, + body:is(.developer-hub, .statistics) #change-locale::after { + border-top-color: var(--in-content-link-color) !important; + } + body:is(.developer-hub, .statistics) install-note::after, + body:is(.developer-hub, .statistics) .popup::after { + border-bottom-color: var(--in-content-box-background) !important; + } + body:is(.developer-hub, .statistics) .install-note::before, + body:is(.developer-hub, .statistics) .popup::before { + border-bottom-color: grey !important; + } + body:is(.developer-hub, .statistics) #refine-results, + body:is(.developer-hub, .statistics) .other-categories, + body:is(.developer-hub, .statistics) .versions .primary > .warning { + border-color: transparent !important; + } + body:is(.developer-hub, .statistics) .results { + border-color: var(--in-content-box-background-odd) !important; + background: transparent !important; + } + body:is(.developer-hub, .statistics) .results-inner { + border-color: var(--in-content-border-color) !important; + background: var(--in-content-border-color) !important; + } + body:is(.developer-hub, .statistics) #promos .view-button a, + body:is(.developer-hub, .statistics) #upload-file-finish.button, + body:is(.developer-hub, .statistics) #upload-file-widget .button.prominent, + body:is(.developer-hub, .statistics) .button, + body:is(.developer-hub, .statistics) .cta a.button:link, + body:is(.developer-hub, .statistics) .cta a.button:visited, + body:is(.developer-hub, .statistics) .linux .button.linux, + body:is(.developer-hub, .statistics) .mac .button.mac, + body:is(.developer-hub, .statistics) .other .button.bsd, + body:is(.developer-hub, .statistics) .other .button.solaris, + body:is(.developer-hub, .statistics) .sidebar a.button, + body:is(.developer-hub, .statistics) .sidebar button, + body:is(.developer-hub, .statistics) .theme .choices button, + body:is(.developer-hub, .statistics) .theme-queue a.button, + body:is(.developer-hub, .statistics) .theme-queue button, + body:is(.developer-hub, .statistics) .windows .button.windows, + body:is(.developer-hub, .statistics) a.button:link, + body:is(.developer-hub, .statistics) a.button:visited, + body:is(.developer-hub, .statistics) a.delete-button.delete-addon, + body:is(.developer-hub, .statistics) button, + body:is(.developer-hub, .statistics) button.button, + body:is(.developer-hub, .statistics) input:not(.upvotes):not(.downvotes)[type="submit"] { + color: var(--in-content-primary-button-text-color) !important; + background: var(--in-content-primary-button-background) !important; + } + body:is(.developer-hub, .statistics) #promos .view-button a:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) #upload-file-finish.button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) #upload-file-widget .button.prominent:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .cta a.button:link:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .cta a.button:visited:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .linux .button.linux:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .mac .button.mac:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .other .button.bsd:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .other .button.solaris:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .sidebar a.button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .sidebar button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .theme .choices button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .theme-queue a.button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .theme-queue button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) .windows .button.windows:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) a.button:link:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) a.button:visited:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) a.delete-button.delete-addon:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) button.button:is(.selected, :focus, :hover), + body:is(.developer-hub, .statistics) + input:not(.upvotes):not(.downvotes)[type="submit"]:is(.selected, :focus, :hover) { + background: var(--in-content-primary-button-background-hover) !important; + } + body:is(.developer-hub, .statistics) .edit_with_prefix span, + body:is(.developer-hub, .statistics) .edit_with_suffix span { + border-color: var(--in-content-box-border-color) !important; + background-color: var(--in-content-box-background-odd) !important; + color: var(--in-content-deemphasized-text) !important; + padding-block: 3px !important; + cursor: not-allowed; + } + body:is(.developer-hub, .statistics) .devhub-form .item_wrapper input[type="email"] { + appearance: none !important; + padding: 2px 5px; + border: 1px solid; + } + body:is(.developer-hub, .statistics) #addon-validator-suite .suite-summary { + color: var(--in-content-deemphasized-text) !important; + background: var(--in-content-button-background) !important; + border-top-color: var(--in-content-border-color) !important; + } + body:is(.developer-hub, .statistics) #addon-validator-suite .context { + border-color: var(--in-content-box-border-color) !important; + background-color: var(--in-content-button-background) !important; + background: var(--in-content-table-background) !important; + } + } + /*= Support.org ============================================================*/ + @-moz-document url-prefix("https://support.mozilla.org") + { + /* Basic */ + :root { + --color-blue-06: var(--in-content-link-color) !important; + --color-blue-07: var(--in-content-link-color-hover) !important; + --color-blue-09: var(--in-content-link-color-active) !important; + --page-bg: var(--in-content-page-background) !important; + --color-white: var(--in-content-page-background) !important; + --color-shade-bg: var(--in-content-page-background) !important; + --color-marketing-gray-02: var(--card-outline-color) !important; + --color-inverse-bg: var(--in-content-page-color) !important; + --color-inverse: var(--in-content-page-background) !important; + --color-text: var(--in-content-page-color) !important; + --color-moz-text: var(--in-content-page-color) !important; + --color-moz-heading: var(--in-content-page-color) !important; + --color-text-light: var(--in-content-deemphasized-text) !important; + --color-link: var(--in-content-link-color) !important; + --color-success: var(--green-70) !important; + --color-warning: var(--yellow-80) !important; + --color-error: var(--red-60) !important; + --color-error-hover: var(--red-50) !important; + --color-moz-heading: #fff; + --color-moz-inverse-bg: var(red) !important; + --focus-shadow: 0 0 0 4px color-mix(in srgb, var(--in-content-primary-button-background) 30%, transparent), + 0 0 0 2px var(--in-content-primary-button-background-active); + } + .warning { + --color-link: rgb(55, 255, 255) !important; + } + body, + #main-content, + #instant-search-content, + #mzp-c-menu-panel-help, + .mzp-c-navigation, + .kbox-container { + color: var(--in-content-page-color) !important; + background: var(--in-content-page-background) !important; + } + #editor { + border: 2px solid var(--in-content-border-color) !important; + } + .CodeMirror-linenumbers { + background: var(--in-content-table-background); + } + .CodeMirror-lines { + color: var(--in-content-deemphasized-text) !important; + background: var(--in-content-page-background) !important; + } + .CodeMirror-scroll { + background: var(--in-content-page-background) !important; + } + /* Text */ + .mzp-c-menu-category .mzp-c-menu-title, + .mzp-c-menu-item .mzp-c-menu-item-link, + .mzp-c-menu-item .mzp-c-menu-item-link > *, + .mzp-c-menu-item .mzp-c-menu-item-list a, + #doc-content .menu, + .document--content .menu, + .forum--entry-content .menu, + .tag-name a { + color: var(--in-content-page-color) !important; + } + .ts-select-trigger, + input[type="date"], + input[type="email"], + input[type="number"], + input[type="password"], + input[type="search"], + input[type="tel"], + input[type="text"], + input[type="time"], + input[type="url"], + select, + textarea, + #doc-content .button, + #doc-content .key, + .document--content .button, + .document--content .key, + .forum--entry-content .button, + .forum--entry-content .key { + color: var(--in-content-deemphasized-text) !important; + } + .tag-list a { + color: var(--color-marketing-gray-10) !important; + } + .tag-list a:hover, + .sidebar-nav a:hover { + color: var(--color-link) !important; + } + .tag-list li { + background: var(--in-content-page-color) !important; + } + .tag-list li:hover { + background: var(--in-content-deemphasized-text) !important; + } + #remaining-characters { + color: var(--in-content-page-color) !important; + } + /* Background */ + .sidebar-nav.topics, + .sidebar-nav.topics > li { + background: var(--in-content-page-background) !important; + } + .mzp-c-menu-panel { + color: var(--in-content-page-color) !important; + background: var(--in-content-page-background) !important; + } + .mzp-c-menu-list-list, + .mzp-c-menu-list-list:hover { + color: var(--in-content-page-color) !important; + background: var(--in-content-box-background) !important; + } + .mzp-c-menu-list-item:focus, + .mzp-c-menu-list-item:hover { + background: var(--in-content-button-background-hover) !important; + } + .cm-bold { + color: var(--in-content-page-color) !important; + } + /* Fill */ + .sumo-nav--logo, + .sumo-nav--search-button, + .sumo-nav--toggle-button, + .card:not(.is-inverse) .card--icon-sm, + .mzp-c-menu-item-icon, + .mzp-c-menu-button-close, + .topic-article--icon, + .card--topic > .card--icon, + .mzp-c-details .is-summary button::before, + details .is-summary button::before, + summary::before, + .icon-button > button, + .search-button { + filter: invert(95%) !important; + } + button.markup-toolbar-button { + /*using 0.5 because in middle*/ + filter: invert(0.5) !important; + } + /* Others */ + .support-callouts > .card.is-inverse { + background: #20133a !important; + } + .support-callouts > .card.is-inverse :is(h1, h2, h3, h4, h5, h6, li, p) { + color: var(--in-content-page-color) !important; + } + .sumo-button.secondary-button { + border-color: transparent !important; + } + .mzp-c-menu-panel { + border-color: var(--in-content-button-background-hover) !important; + } + .mzp-c-menu-item:is(:focus, :hover, :active) .mzp-c-menu-item-link .mzp-c-menu-item-title { + border-color: var(--in-content-page-color) !important; + } + @media screen and (-moz-toolbar-prefers-color-scheme: dark) and (min-width: 768px), + screen and (prefers-color-scheme: dark) and (min-width: 768px) { + .mzp-c-menu-panel { + box-shadow: 0 16px 16px -16px rgba(255, 255, 255, 0.3) !important; + } + } + .card--product, + .card--topic, + .card--article { + box-shadow: 0 5px 10px -3px rgba(249, 249, 250, 0.12), 0 3px 16px 2px rgba(91, 91, 102, 0.12), + 0 8px 12px 1px rgba(82, 82, 94, 0.04) !important; + } + } + /*= Accounts.com ===========================================================*/ + @-moz-document url-prefix("https://accounts.firefox.com") + { + /* Basic */ + body { + color: var(--in-content-page-color) !important; + background: var(--in-content-page-background) !important; + } + .button.primary-button, + .button[type="submit"]:not(.secondary-button), + .settings-button.primary-button, + .settings-button[type="submit"]:not(.secondary-button), + button.primary-button, + button[type="submit"]:not(.secondary-button) { + color: var(--in-content-primary-button-text-color) !important; + background: var(--in-content-primary-button-background) !important; + } + /* Text */ + header h1, + .info, + .info a, + .prefillEmail, + .faint a:hover, + .cta-neutral:hover { + color: var(--in-content-page-color) !important; + } + #main-content.panel a, + .links a, + .link-blue, + .text-blue-500 { + color: var(--in-content-link-color) !important; + } + .link-blue:hover { + color: var(--in-content-link-color-hover) !important; + } + .signed-in-email-message, + .verification-email-message, + .verification-message, + .verification-recovery-code-message, + .verification-totp-message, + .input-row input[type="email"], + .input-row input[type="number"], + .input-row input[type="password"], + .input-row input[type="tel"], + .input-row input[type="text"], + .input-row input::placeholder, + .input-text, + .firefox-family-services > ul > .firefox-service, + .faint, + .faint a, + .text-grey-400 { + color: var(--in-content-deemphasized-text) !important; + } + /* Background */ + .flex .flex-wrap { + background: var(--in-content-page-background); + } + .password-row .show-password-label { + background-color: unset !important; + } + #main-content, + .modal, + .firefox-family-services, + .input-row input[type="email"], + .input-row input[type="number"], + .input-row input[type="password"], + .input-row input[type="tel"], + .input-row input[type="text"], + .input-text, + header, + .card, + .bg-white:not(nav) { + background: var(--in-content-box-background) !important; + } + #suggest-sync, + .cta-neutral { + background: var(--in-content-button-background) !important; + } + .cta-neutral:hover, + .bg-grey-50:hover, + .hover\:bg-grey-100:hover { + background: var(--in-content-button-background-hover) !important; + } + .text-blue-500 .cta-neutral, + .text-blue-500 .bg-grey-50, + .text-blue-500 .hover\:bg-grey-100 { + background: var(--in-content-button-background) !important; + } + .hover\:bg-grey-200:hover { + background: var(--in-content-button-background-active) !important; + } + .button.primary-button:hover:enabled, + .button[type="submit"]:not(.secondary-button):hover:enabled, + .settings-button.primary-button:hover:enabled, + .settings-button[type="submit"]:not(.secondary-button):hover:enabled, + button.primary-button:hover:enabled, + button[type="submit"]:not(.secondary-button):hover:enabled { + background: var(--in-content-primary-button-background-hover) !important; + } + .tooltip, + .tooltip::before { + background: var(--in-content-danger-button-background) !important; + } + /* Fill */ + .dismiss, + #about-mozilla, + .show-password-label, + footer a[data-testid="link-mozilla"] { + filter: invert(95%) !important; + } + header button svg, + header .rounded svg, + #service svg { + filter: brightness(15) !important; + } + button.relative, + #fxa-settings nav svg { + filter: brightness(2) !important; + } + /* Others */ + .input-row input[type="email"], + .input-row input[type="number"], + .input-row input[type="password"], + .input-row input[type="tel"], + .input-row input[type="text"], + .unit-row-hr .border-grey-100 { + border-color: var(--in-content-border-color) !important; + } + .input-row input[type="email"]:hover, + .input-row input[type="number"]:hover, + .input-row input[type="password"]:hover, + .input-row input[type="tel"]:hover, + .input-row input[type="text"]:hover { + border-color: var(--in-content-border-hover) !important; + } + #main-content { + box-shadow: 0 12px 18px 2px rgba(249, 249, 250, 0.12), 0 6px 22px 4px rgba(91, 91, 102, 0.12), + 0 6px 10px -4px rgba(82, 82, 94, 0.04) !important; + } + .input-row input[type="email"]:focus, + .input-row input[type="number"]:focus, + .input-row input[type="password"]:focus, + .input-row input[type="tel"]:focus, + .input-row input[type="text"]:focus { + box-shadow: 0 0 0 3px color-mix(in srgb, var(--in-content-primary-button-background-hover) 80%, transparent) !important; + } + } + @supports -moz-bool-pref("userContent.page.dark_mode.pdf") { + @-moz-document unobservable-document() { + @-moz-document regexp("^(?!.*\\.pdf\\?n).*") { + #outerContainer { + --sidebaritem-bg-color: #38383d; + --uc-pdf-dark-filter: grayscale(10%) invert(90%); + } + #sidebarContainer > #sidebarContent > #thumbnailView .thumbnailImage { + filter: var(--uc-pdf-dark-filter); + box-shadow: 0 0 0 1px hsla(0deg, 0%, 100%, 0.5), 0 2px 8px hsla(0deg, 0%, 100%, 0.3) !important; + } + #viewerContainer > #viewer > .page > .canvasWrapper > canvas { + filter: var(--uc-pdf-dark-filter); + } + } + } + } + } +} +/** Fully Proton Mode *********************************************************/ +@supports -moz-bool-pref("userContent.page.proton") { + /*= Common contents ==========================================================*/ /*= abouts' common ===========================================================*/ + @-moz-document url-prefix("about:"), url-prefix("chrome://pippki/content/"), url-prefix("chrome://browser/content/") + { + xul|treecols { + border-bottom-color: var(--in-content-box-border-color) !important; + } + } + @-moz-document url-prefix("about:plugins"), url-prefix("about:cache"), url-prefix("about:checkerboard"), url-prefix("about:sync-log"), url-prefix("about:memory"), regexp("^(((jar:)?file:///)|(chrome://)).*/$") + { + /* Base */ + html, + body { + font: message-box !important; + appearance: none !important; + background-color: var(--in-content-page-background) !important; + color: var(--in-content-page-color) !important; + } + body { + font-size: 15px !important; + font-weight: normal !important; + margin: 0 !important; + } + h1 { + line-height: 1.2 !important; + } + h2 { + line-height: 1.4em !important; + } + /* Link */ + a { + color: var(--in-content-link-color) !important; + } + a:hover, + .text-link:hover { + color: var(--in-content-link-color-hover) !important; + text-decoration: underline !important; + } + a:visited { + color: var(--in-content-link-color-visited) !important; + } + a:hover:active, + .text-link:hover:active { + color: var(--in-content-link-color-active) !important; + } + a:-moz-focusring, + .text-link:-moz-focusring { + outline: 2px solid var(--in-content-focus-outline-color) !important; + outline-offset: 1px !important; + border-radius: 4px !important; + } + /* Button */ + button { + font: inherit; + } + button, + select, + input[type="color"] { + appearance: none !important; + min-height: 32px !important; + color: var(--in-content-button-text-color, inherit) !important; + border: 1px solid transparent !important; /* shows up in high-contrast mode */ + border-radius: var(--in-content-button-border-radius) !important; + background-color: var(--in-content-button-background) !important; + font-weight: 400 !important; + padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; + text-decoration: none !important; + margin: 4px 8px !important; + /* Ensure font-size isn't overridden by widget styling (e.g. in forms.css) */ + font-size: 1em !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + button, + select, + input[type="color"] { + border-radius: 0 !important; + } + } + button { + font-weight: 600 !important; + /* Use the same margin of other elements for the alignment */ + margin-inline: 4px !important; + min-width: 6.3em !important; + } + /* Medium and small buttons get sized to 7/14 and 6/12px padding (when adding + * the 1px border): */ + button.medium { + --in-content-button-vertical-padding: 6px; + --in-content-button-horizontal-padding: 13px; + min-height: 28px !important; + font-size: 0.95em !important; + } + button.small { + --in-content-button-vertical-padding: 5px; + --in-content-button-horizontal-padding: 11px; + min-height: 24px !important; + font-size: 0.9em !important; + } + ::-moz-focus-inner { + border: none !important; + } + button:-moz-focusring { + box-shadow: none !important; + outline: 2px solid var(--in-content-focus-outline-color) !important; + outline-offset: 2px !important; + } + button:enabled:hover, + input[type="color"]:hover { + background-color: var(--in-content-button-background-hover) !important; + color: var(--in-content-button-text-color-hover) !important; + border-color: transparent !important; + } + button:enabled:hover:active, + input[type="color"]:enabled:hover:active { + background-color: var(--in-content-button-background-active) !important; + } + button:disabled, + input[type="color"]:disabled { + opacity: 0.4 !important; + } + button[autofocus], + button[type="submit"], + button.primary { + background-color: var(--in-content-primary-button-background) !important; + color: var(--in-content-primary-button-text-color) !important; + } + button[autofocus]:enabled:hover, + button[type="submit"]:enabled:hover, + button.primary:enabled:hover { + background-color: var(--in-content-primary-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + } + button[autofocus]:enabled:hover:active, + button[type="submit"]:enabled:hover:active, + button.primary:enabled:hover:active { + background-color: var(--in-content-primary-button-background-active) !important; + } + /* Checkbox */ + input[type="checkbox"] { + margin-block: 2px !important; + } + input[type="checkbox"] { + appearance: none !important; + height: 16px !important; + width: 16px !important; + border: 1px solid var(--checkbox-border-color) !important; + background-color: var(--checkbox-unchecked-bgcolor) !important; + border-radius: 2px !important; + margin-inline: 0 6px !important; + flex-shrink: 0 !important; /* avoid shrinking inside flex container */ + } + @supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + input[type="checkbox"] { + border-radius: 0 !important; + } + } + input[type="checkbox"]:enabled:hover { + background-color: var(--checkbox-unchecked-hover-bgcolor) !important; + } + input[type="checkbox"]:enabled:hover:active { + background-color: var(--checkbox-unchecked-active-bgcolor) !important; + } + input[type="checkbox"]:checked { + border-color: var(--checkbox-checked-border-color) !important; + background-color: var(--checkbox-checked-bgcolor) !important; + background-image: url("chrome://global/skin/icons/check.svg") !important; + background-position: center !important; + background-repeat: no-repeat !important; + -moz-context-properties: fill !important; + fill: currentColor !important; + color: var(--checkbox-checked-color) !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + } + input[type="checkbox"]:enabled:checked:hover { + background-color: var(--checkbox-checked-hover-bgcolor) !important; + } + input[type="checkbox"]:enabled:checked:hover:active { + background-color: var(--checkbox-checked-active-bgcolor) !important; + } + /* Textarea */ + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]), + textarea { + appearance: none !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 4px !important; + color: inherit !important; + background-color: var(--in-content-box-background) !important; + } + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]), + textarea { + font-family: inherit !important; + font-size: inherit !important; + padding: 8px !important; + margin: 2px 4px !important; + } + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):focus, + textarea:focus, + search-textbox[focused], + tree:focus-visible, + richlistbox:focus-visible { + border-color: transparent !important; + outline: 2px solid var(--in-content-focus-outline-color) !important; + outline-offset: -1px !important; /* Prevents antialiasing around the corners */ + } + input:is( + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ):-moz-ui-invalid, + textarea:-moz-ui-invalid { + border-color: transparent !important; + outline: 2px solid var(--in-content-border-invalid) !important; + outline-offset: -1px !important; /* Prevents antialiasing around the corners */ + } + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):disabled, + textarea:disabled, + search-textbox[disabled="true"] { + opacity: 0.4 !important; + } + /* Table */ + table { + width: 100% !important; + } + } + @-moz-document url-prefix("about:plugins"), url-prefix("about:cache"), url-prefix("about:checkerboard") { + table { + border: 1px solid var(--in-content-table-border-color) !important; + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:cache"), url-prefix("about:checkerboard") { + th, + td { + border: 1px solid var(--in-content-table-border-color) !important; + } + th { + background-color: var(--in-content-table-header-background) !important; + color: var(--in-content-table-header-color) !important; + } + } + /*= Field Border =============================================================*/ + @supports -moz-bool-pref("userContent.page.field_border") { + @media (prefers-reduced-motion: no-preference) { + @-moz-document url-prefix("about:") { + html|input:is( + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ):not(#newtab-search-text):hover, + html|textarea:hover, + xul|search-textbox:hover { + border-color: var(--in-content-focus-outline-color) !important; + transition: border-color 0.5s var(--animation-easing-function); + } + } + } + } + /*= View Source ==============================================================*/ + @-moz-document url-prefix("view-source") { + :root { + background-color: var(--in-content-page-background) !important; /* Original: white */ + color: var(--in-content-page-color) !important; /* Original: black */ + /* Colors */ + --view-source-green: var(--green-80); + --view-source-purple: #800080; /* Like alphenglow */ + } + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + :root { + --view-source-green: var(--green-60); + --view-source-purple: #c68aff; + } + } + pre[id]::before, + span[id]::before { + color: color-mix( + in srgb, + var(--in-content-page-color) 70%, + var(--in-content-page-background) + ) !important; /* Original: #ccc */ + } + .highlight .start-tag, + .highlight .end-tag { + color: var(--view-source-purple) !important; /* Original: purple */ + } + .highlight .comment { + color: var(--view-source-green) !important; /* Original: green */ + } + .highlight .cdata { + color: var(--in-content-border-invalid) !important; /* Original: #CC0066 */ + } + .highlight .doctype { + color: #4682b4 !important; /* Original: steelblue */ + } + .highlight .pi { + color: orchid !important; /* Original: orchid */ + } + .highlight .entity { + color: #ff4500 !important; /* Original: #FF4500 */ + } + .highlight .attribute-name { + color: var(--view-source-green) !important; /* Original: black */ + } + .highlight .attribute-value { + color: var(--in-content-link-color) !important; /* Original: blue */ + } + .highlight .markupdeclaration { + color: #4682b4 !important; /* Original: steelblue */ + } + .highlight .error, + .highlight + .error + > :-moz-any(.start-tag, .end-tag, .comment, .cdata, .doctype, .pi, .entity, .attribute-name, .attribute-value) { + color: var(--in-content-error-text-color) !important; /* Original: red */ + } + } + /*= Directory View ===========================================================*/ + @-moz-document url-prefix("about:sync-log"), regexp("^(((jar:)?file:///)|(chrome://)).*/$") + { + body { + background-color: var(--in-content-box-background) !important; + margin: 4em auto !important; /* Override to default */ + } + thead a { + color: var(--in-content-page-color) !important; + } + td ::before { + vertical-align: top !important; + } + } + /*= about:plugins ============================================================*/ + @-moz-document url-prefix("about:plugins") { + .notice { + background: var(--in-content-box-background) !important; + border: 1px solid var(--in-content-border-color) !important; + } + } + /*= about:cache ==============================================================*/ + @-moz-document url-prefix("about:cache") { + table { + padding: 0 !important; + } + th, + td { + padding: 4px !important; + text-align: match-parent !important; + } + } + /*= about:checkerboard =======================================================*/ + @-moz-document url-prefix("about:checkerboard") { + #canvas { + border: 1px solid var(--in-content-border-color) !important; + } + #excludePageFromZoom { + vertical-align: bottom !important; + } + } + /*= about:memory =============================================================*/ + @-moz-document url-prefix("about:memory") { + .opsRow, + .section { + background-color: var(--in-content-box-background) !important; + color: var(--in-content-page-color) !important; + } + .opsRowLabel input { + vertical-align: bottom !important; + } + } + /*= about:preferences ========================================================*/ + @-moz-document url-prefix("chrome://browser/content") + { + #sanitizeEverythingWarningIcon { + list-style-image: url("chrome://global/skin/icons/warning.svg") !important; + -moz-context-properties: fill; + fill: var(--uc-warning-icon-bgcolor); + width: 48px; + height: 48px; + } + } + @-moz-document url-prefix("about:preferences") { + #handlersView > richlistitem:hover, + #translations-manage-install-list > .translations-manage-language:hover { + background-color: var(--in-content-item-hover); + color: var(--in-content-item-hover-text); + } + #handlersView > richlistitem[selected="true"], + #translations-manage-install-list > .translations-manage-language[selected="true"] { + background-color: var(--in-content-item-selected); + color: var(--in-content-item-selected-text); + } + #handlersView > richlistitem:nth-child(even):not([selected="true"], :hover), + #translations-manage-install-list > .translations-manage-language:nth-child(even):not([selected="true"], :hover) { + background-color: var(--in-content-box-background-odd); + } + } + /*= chrome://browser/content/places/places.xhtml =============================*/ + @-moz-document url("chrome://browser/content/places/places.xhtml") + { + /** Library - Icons Replace *************************************************/ + @supports -moz-bool-pref("userChrome.icon.library") { + /*= Standard Folder - More Visible ===========================================*/ + /* on Toolbar and Menus */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer]), + :-moz-any(#bookmarks-view, #historyTree, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(title, container), + #editBMPanel_folderMenuList:not([selectedGuid="toolbar_____"], [selectedGuid="menu________"]), + #editBMPanel_folderMenuList .folder-icon:not([id]), + .downloadIconShow > .button-box > .button-icon { + list-style-image: url("../icons/folder.svg") !important; + } + /* Standard Folder - Open */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer])[open="true"], + :-moz-any(#bookmarks-view, #historyTree, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(title, container, open) { + list-style-image: url("../icons/folder-open.svg") !important; + } + /*= Other Folder - Inbox Icon ================================================*/ + /* on Menus */ + #PlacesToolbar #OtherBookmarks, + #BMB_bookmarksPopup #BMB_unsortedBookmarks, + #bookmarksMenuPopup #menu_unsortedBookmarks, + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, OrganizerQuery_UnfiledBookmarks), + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, queryFolder_unfiled_____), + #editBMPanel_unfiledRootItem, + #editBMPanel_folderMenuList[selectedGuid="unfiled_____"] { + list-style-image: url("../icons/mail-inbox-all.svg") !important; + } + /* Other Folder - Open */ + #PlacesToolbar #OtherBookmarks[open="true"], + #BMB_bookmarksPopup #BMB_unsortedBookmarks[open="true"], + #bookmarksMenuPopup #menu_unsortedBookmarks[open="true"], + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, OrganizerQuery_UnfiledBookmarks), + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, queryFolder_unfiled_____) { + list-style-image: url("../icons/mail-inbox.svg") !important; + } + /*= Default Icon - Override ===================================================*/ + /* https://github.com/mozilla/gecko-dev/blob/master/browser/themes/shared/places/tree-icons.css */ + /* Query */ + :-moz-any(#historyTree, #placesList, #placeContent) treechildren::-moz-tree-image(title, query) { + list-style-image: url("chrome://browser/skin/places/folder-smart.svg") !important; + } + /* History */ + :-moz-any(#historyTree, #placesList, #placeContent) treechildren::-moz-tree-image(title, query, dayContainer), + :-moz-any(#historyTree, #placesList, #placeContent) + treechildren::-moz-tree-image(query, OrganizerQuery_history____v) { + list-style-image: url("chrome://browser/skin/history.svg") !important; + } + /* Downloads */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, OrganizerQuery_downloads__v) { + list-style-image: url("chrome://browser/skin/downloads/downloads.svg") !important; + } + /* Tag */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(title, query, tagContainer), + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, OrganizerQuery_tags_______v) { + list-style-image: url("chrome://browser/skin/places/tag.svg") !important; + } + /* Bookmark */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, OrganizerQuery_allbms_____v) { + list-style-image: url("chrome://browser/skin/bookmark.svg") !important; + } + /* Bookmark Toolbar */ + #BMB_bookmarksPopup #BMB_bookmarksToolbar, + #bookmarksMenuPopup #bookmarksToolbarFolderMenu, + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, queryFolder_toolbar_____) { + list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.svg") !important; + } + /* Bookmark Menu */ + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, queryFolder_menu________) { + list-style-image: url("chrome://browser/skin/places/bookmarksMenu.svg") !important; + } + /*= Default Icon - Open ======================================================*/ + /* Query */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"][query="true"]:not([tagContainer])[open="true"] + > .menu-iconic-left + > .menu-iconic-icon { + transform: rotate(15deg) !important; + } + /* History */ + :-moz-any(#historyTree, #placesList, #placeContent) + treechildren::-moz-tree-image(title, query, open, dayContainer), + :-moz-any(#historyTree, #placesList, #placeContent) + treechildren::-moz-tree-image(query, open, OrganizerQuery_history____v) { + list-style-image: url("../icons/history-reverse.svg") !important; + } + /* Tag */ + :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) + .bookmark-item[container="true"][tagContainer="true"][open="true"], + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(title, query, open, tagContainer), + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, open, OrganizerQuery_tags_______v) { + list-style-image: url("../icons/tag-open.svg") !important; + } + /* Bookmark */ + :-moz-any(#placesList, #placeContent) treechildren::-moz-tree-image(query, open, OrganizerQuery_allbms_____v) { + list-style-image: url("chrome://browser/skin/bookmark-hollow.svg") !important; + } + /* Bookmark Toolbar */ + #BMB_bookmarksPopup #BMB_bookmarksToolbar[open="true"], + #bookmarksMenuPopup #bookmarksToolbarFolderMenu[open="true"], + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, queryFolder_toolbar_____) { + list-style-image: url("../icons/bookmarksToolbar-open.svg") !important; + } + /* Bookmark Menu */ + :-moz-any(#bookmarks-view, #editBMPanel_folderTree, #placesList, #placeContent) + treechildren::-moz-tree-image(container, open, queryFolder_menu________) { + list-style-image: url("../icons/bookmarksMenu-open.svg") !important; /* or bookmarksMenu-open2.svg" */ + } + /*= Menubar - Icons ==========================================================*/ + #organizeButton, + #viewMenu, + #maintenanceButton, + #back-button, + #forward-button, + #clearDownloadsButton { + fill: currentColor !important; + -moz-context-properties: fill, fill-opacity, stroke !important; + } + /* Add */ + #organizeButton { + list-style-image: url("chrome://global/skin/icons/settings.svg") !important; + } + #viewMenu { + list-style-image: url("../icons/sort.svg") !important; + } + #maintenanceButton { + list-style-image: url("../icons/import-export.svg") !important; + } + #clearDownloadsButton { + list-style-image: url("chrome://global/skin/icons/delete.svg") !important; + } + #clearDownloadsButton > .toolbarbutton-icon { + display: inline-flex !important; + display: -moz-inline-box !important; + margin-top: 0; + margin-bottom: 0; + margin-inline-start: 0; + margin-inline-end: 2px; + } + /* Replace */ + #back-button { + list-style-image: url("chrome://browser/skin/back.svg") !important; + } + #forward-button { + list-style-image: url("chrome://browser/skin/forward.svg") !important; + } + #back-button:-moz-locale-dir(rtl) > .toolbarbutton-icon, + #forward-button:-moz-locale-dir(rtl) > .toolbarbutton-icon { + transform: scaleX(-1) !important; + } + } + @media (-moz-gtk-csd-available) { + /*= Layout Fixes =========================================================*/ + menupopup menu { + padding-block: 4px; + } + .menu-right { + width: 16px !important; /* Original: 1ex */ + background-image: url("chrome://global/skin/icons/arrow-right.svg"); + background-position: right center; + } + /*= Proton ===============================================================*/ + @supports -moz-bool-pref("userContent.page.proton") { + :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: SelectedItem; + --organizer-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 all and (prefers-contrast) { + :root { + --organizer-color: var(--in-content-page-color); + --organizer-deemphasized-color: var(--in-content-deemphasized-text); + --organizer-toolbar-background: rgb(249, 249, 251); /* --toolbar-bgcolor */ + --organizer-pane-background: rgb(229, 229, 235); /* --lwt-accent-color */ + --organizer-content-background: var(--in-content-page-background); + --organizer-hover-background: var(--in-content-button-background-hover); + --organizer-hover-color: var(--organizer-color); + --organizer-selected-background: var(--in-content-button-background-active); + --organizer-selected-color: var(--organizer-color); + --organizer-outline-color: var(--in-content-focus-outline-color); + --organizer-separator-color: var(--organizer-pane-field-border-color); + --organizer-border-color: var(--in-content-border-color); + --organizer-toolbar-field-background: rgb(240, 240, 244); /* --lwt-accent-color */ + --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 (-moz-toolbar-prefers-color-scheme: dark), (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-toolbar-field-background: var(--in-content-page-background); + --organizer-toolbar-field-background-focused: rgb(66, 65, 77); + scrollbar-color: rgba(249, 249, 250, 0.4) rgba(20, 20, 25, 0.3); + } + } + } + /*- Toolbar & Menus ------------------------------------------------------*/ + #placesToolbar { + appearance: none !important; + background-color: var(--organizer-toolbar-background) !important; + color: var(--organizer-color) !important; + border-bottom: 1px solid var(--organizer-border-color) !important; + padding: 4px !important; + padding-inline-end: 6px !important; + } + #placesToolbar > toolbarbutton { + appearance: none !important; + padding: 5px !important; + border-radius: 4px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton { + border-radius: 0 !important; + } + } + #placesToolbar > toolbarbutton[disabled] { + opacity: 0.6 !important; + } + #placesToolbar > toolbarbutton:not([disabled]):hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #placesToolbar > toolbarbutton:not([disabled]):hover:active { + background-color: var(--organizer-selected-background) !important; + } + #placesToolbar > toolbarbutton > .toolbarbutton-icon, + #placesMenu > menu > image, + #placesMenu > menu > .menubar-text { + -moz-context-properties: fill !important; + fill: currentColor !important; + } + #placesMenu { + margin-inline-start: 6px !important; + } + #placesMenu > menu { + appearance: none !important; + color: var(--organizer-color) !important; + padding-block: 5px !important; + padding-inline-start: 5px !important; + border-radius: 4px !important; + margin-inline-end: 2px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesMenu > menu { + border-radius: 0 !important; + } + } + #placesMenu > menu[_moz-menuactive="true"], + #placesMenu > menu:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #placesMenu > menu:hover:active, + #placesMenu > menu[open] { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + } + #placesMenu > menu > .menubar-text { + margin-block: 0 !important; /* override menu.css */ + padding-inline-end: 4px !important; + } + /*- Search Bar & Input ---------------------------------------------------*/ + #searchFilter, + #detailsPane html|input { + appearance: none !important; + background-color: var(--organizer-toolbar-field-background) !important; + color: var(--organizer-color) !important; + border: 1px solid var(--organizer-toolbar-field-border-color) !important; + border-radius: 4px !important; + margin: 0 !important; + padding-block: 2px !important; + min-height: 24px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input { + border-radius: 0 !important; + } + } + #searchFilter[focused] { + box-shadow: var(--organizer-toolbar-field-focus-box-shadow) !important; + background-color: var(--organizer-toolbar-field-background-focused) !important; + border-color: transparent !important; + outline: 2px solid var(--organizer-toolbar-field-focus-border-color) !important; + outline-offset: -2px !important; + } + /*- Sidebar & Splitter ---------------------------------------------------*/ + #placesList { + background-color: var(--organizer-pane-background) !important; + } + #placesView > splitter { + border: 0 !important; + border-inline-end: 1px solid var(--organizer-border-color) !important; + min-width: 0 !important; + width: 3px !important; + background-color: transparent !important; + margin-inline-start: -3px !important; + position: relative !important; + } + /*- Downloads Pane -------------------------------------------------------*/ + #downloadsRichListBox, + #downloadsListBox { + color: var(--organizer-color) !important; + background-color: var(--organizer-content-background) !important; + } + #clearDownloadsButton:focus-visible { + outline: 2px solid var(--organizer-outline-color) !important; + } + richlistitem[selected="true"], + richlistitem:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-color) !important; + } + richlistbox:where(:focus) > richlistitem[selected="true"] { + background-color: var(--organizer-selected-background) !important; + } + /*- 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) !important; + } + tree { + background-color: var(--organizer-content-background) !important; + color: var(--organizer-color) !important; + } + treecol:not([hideheader="true"]), + treecolpicker { + appearance: none !important; + border: none !important; + background-color: var(--in-content-button-background) !important; + color: var(--organizer-color, inherit) !important; + padding: 5px 10px !important; + } + treecol:not([hideheader="true"], [sortable="false"]):hover, + treecolpicker:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-color) !important; + } + treecol:not([hideheader="true"], [sortable="false"]):hover:active, + treecolpicker:hover:active { + background-color: var(--organizer-selected-background) !important; + } + treecol:not([hideheader="true"], :first-child), + treecolpicker { + padding-left: 10px !important; + border-inline-start-width: 1px !important; + border-inline-start-style: solid !important; + border-image: linear-gradient( + transparent 0%, + transparent 20%, + var(--organizer-border-color) 20%, + var(--organizer-border-color) 80%, + transparent 80%, + transparent 100% + ) + 1 1 !important; + } + treecol[sortDirection]:not([hideheader="true"]) > xul|*.treecol-sortdirection { + fill: currentColor !important; + width: 18px !important; + height: 18px !important; + } + treechildren::-moz-tree-row { + background-color: transparent !important; + } + treechildren::-moz-tree-row(hover) { + background-color: var(--organizer-hover-background) !important; + } + treechildren::-moz-tree-row(selected) { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + border: 1px solid transparent !important; + } + treechildren::-moz-tree-image(hover), + treechildren::-moz-tree-twisty(hover), + treechildren::-moz-tree-cell-text(hover) { + color: var(--organizer-hover-color) !important; + } + treechildren::-moz-tree-image(selected), + treechildren::-moz-tree-twisty(selected), + treechildren::-moz-tree-cell-text(selected) { + color: var(--organizer-selected-color) !important; + } + treechildren::-moz-tree-separator { + height: 1px !important; + border-color: var(--organizer-separator-color) !important; + } + treechildren::-moz-tree-separator(hover) { + border-color: var(--organizer-hover-color) !important; + } + treechildren::-moz-tree-separator(selected) { + border-color: var(--organizer-selected-color) !important; + } + treechildren::-moz-tree-cell-text(primary, dropOn), + treechildren::-moz-tree-drop-feedback { + background-color: var(--organizer-outline-color) !important; + } + /*- Info Box -------------------------------------------------------------*/ + #detailsPane { + background-color: var(--organizer-pane-background) !important; + color: var(--organizer-color) !important; + padding: 5px !important; + border-top: 1px solid var(--organizer-border-color) !important; + } + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + appearance: none !important; + min-width: 0 !important; + padding: 5px !important; + margin: 0 !important; + margin-inline-end: 4px !important; + border: 1px solid var(--organizer-pane-field-border-color) !important; + border-radius: 4px !important; + color: var(--organizer-color) !important; + background-color: var(--organizer-content-background) !important; + -moz-context-properties: fill !important; + fill: currentColor !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } + } + #editBookmarkPanelRows .expander-up:hover, + #editBookmarkPanelRows .expander-down:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #editBookmarkPanelRows .expander-up:hover:active, + #editBookmarkPanelRows .expander-down:hover:active { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + } + #editBookmarkPanelRows .expander-up:focus-visible, + #editBookmarkPanelRows .expander-down:focus-visible { + outline: 2px solid var(--organizer-outline-color) !important; + outline-offset: -1px !important; + } + #editBookmarkPanelRows .expander-up > .button-box, + #editBookmarkPanelRows .expander-down > .button-box { + padding: 0 !important; + } + #editBookmarkPanelRows .expander-up { + list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); + } + #editBookmarkPanelRows .expander-down { + list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); + } + #places input { + border: 1px solid var(--organizer-pane-field-border-color) !important; + border-radius: 4px !important; + background-color: var(--organizer-content-background) !important; + color: var(--organizer-color) !important; + min-height: 20px !important; + padding-inline: 4px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #places input { + border-radius: 0 !important; + } + } + #places input:focus { + outline: 2px solid var(--organizer-outline-color) !important; + outline-offset: -1px !important; + } + #places input:not(:read-write):focus { + outline: none !important; + } + .caption-label { + margin-inline-start: 8px !important; + color: var(--organizer-deemphasized-color) !important; + } + #editBMPanel_tagsSelectorRow > richlistbox { + appearance: none !important; + color: var(--organizer-color) !important; + background-color: var(--organizer-content-background) !important; + border: 1px solid var(--organizer-border-color) !important; + border-radius: 4px !important; + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } + } + #editBMPanel_tagsSelectorRow > richlistbox > richlistitem { + border: 1px solid transparent !important; + } + #editBMPanel_tagsSelectorRow > richlistbox > richlistitem:hover { + background-color: var(--organizer-hover-background) !important; + color: var(--organizer-hover-color) !important; + } + #editBMPanel_tagsSelectorRow > richlistbox > richlistitem[selected] { + background-color: var(--organizer-selected-background) !important; + color: var(--organizer-selected-color) !important; + } + /*- Radio Button -------------------------------------------------------------*/ + menuitem[type="radio"] { + /* margin-inline-start: 0 !important; */ + appearance: none !important; + } + menuitem[type="radio"] > .menu-iconic-left > .menu-iconic-icon { + appearance: none !important; + width: 16px !important; + height: 16px !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 100% !important; + padding: 0 !important; + margin-inline: 0 6px !important; + margin-block: 2px !important; /* extend the vertical clicktarget */ + background-color: var(--in-content-button-background) !important; + background-position: center !important; + flex-shrink: 0 !important; /* avoid shrinking inside flex container */ + } + menuitem[type="radio"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { + -moz-context-properties: fill !important; + fill: currentColor !important; + color: var(--in-content-primary-button-text-color) !important; + background-color: var(--in-content-primary-button-background) !important; + background-image: url("chrome://global/skin/icons/radio.svg") !important; + border-color: transparent !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + } + menuitem[type="radio"]:not([disabled="true"]):hover > .menu-iconic-left > .menu-iconic-icon { + background-color: var(--in-content-button-background-hover) !important; + color: var(--in-content-button-text-color-hover) !important; + } + menuitem[type="radio"]:not([disabled="true"]):hover:active > .menu-iconic-left > .menu-iconic-icon { + background-color: var(--in-content-button-background-active) !important; + } + menuitem[type="radio"]:not([disabled="true"])[checked="true"]:hover > .menu-iconic-left > .menu-iconic-icon { + background-color: var(--in-content-primary-button-background-hover) !important; + color: var(--in-content-primary-button-text-color-hover) !important; + } + menuitem[type="radio"]:not([disabled="true"])[checked="true"]:hover:active + > .menu-iconic-left + > .menu-iconic-icon { + background-color: var(--in-content-primary-button-background-active) !important; + } + menuitem[type="radio"] > .menu-iconic-text { + margin-inline: 0 8px !important; + padding-inline-start: 0 !important; + } + /* Disabled checkboxes, radios and labels */ + menuitem[type="radio"][disabled="true"], + menuitem[type="checkbox"][disabled="true"] { + color: inherit !important; + opacity: 0.5 !important; + } + /*- Check Box ----------------------------------------------------------------*/ + /* From checkbox.css */ + menuitem[type="checkbox"] { + appearance: none !important; + align-items: center !important; + -moz-box-align: center !important; + margin: 0px 2px !important; + } + menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + appearance: none !important; + width: 16px !important; + height: 16px !important; + border: 1px solid currentColor !important; + border-radius: 2px !important; + color: var(--checkbox-border-color, ThreeDDarkShadow) !important; + background-color: var(--checkbox-unchecked-bgcolor, Field) !important; + margin-inline-end: 6px !important; /* or 2px */ + margin-block: 2px !important; /* From common.css */ + } + menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { + -moz-context-properties: fill !important; + fill: currentColor !important; + border-color: var(--checkbox-checked-border-color, transparent) !important; + background-image: url("chrome://global/skin/icons/check.svg") !important; + background-position: center !important; + background-repeat: no-repeat !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + color: var(--checkbox-checked-color, AccentColorText) !important; + background-color: var(--checkbox-checked-bgcolor, AccentColor) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { + color: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; + background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !important; + } + } + menuitem[type="checkbox"]:not([disabled="true"]):hover > .menu-iconic-left > .menu-iconic-icon { + background-color: var( + --checkbox-unchecked-hover-bgcolor, + color-mix(in srgb, AccentColor 4%, Field) + ) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:not([disabled="true"]):hover > .menu-iconic-left > .menu-iconic-icon { + background-color: var( + --checkbox-unchecked-hover-bgcolor, + color-mix(in srgb, -moz-accent-color 4%, Field) + ) !important; + } + } + menuitem[type="checkbox"]:not([disabled="true"]):hover:active > .menu-iconic-left > .menu-iconic-icon { + background-color: var( + --checkbox-unchecked-active-bgcolor, + color-mix(in srgb, AccentColor 8%, Field) + ) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:not([disabled="true"]):hover:active > .menu-iconic-left > .menu-iconic-icon { + background-color: var( + --checkbox-unchecked-active-bgcolor, + color-mix(in srgb, -moz-accent-color 8%, Field) + ) !important; + } + } + menuitem[type="checkbox"]:not([disabled="true"]):hover > .menu-iconic-left[checked="true"] > .menu-iconic-icon { + background-color: var( + --checkbox-checked-hover-bgcolor, + color-mix(in srgb, currentColor 12.5%, AccentColor) + ) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:not([disabled="true"]):hover + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon { + background-color: var( + --checkbox-checked-hover-bgcolor, + color-mix(in srgb, currentColor 12.5%, -moz-accent-color) + ) !important; + } + } + menuitem[type="checkbox"]:not([disabled="true"]):hover:active + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon { + background-color: var( + --checkbox-checked-active-bgcolor, + color-mix(in srgb, currentColor 25%, AccentColor) + ) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:not([disabled="true"]):hover:active + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon { + background-color: var( + --checkbox-checked-active-bgcolor, + color-mix(in srgb, currentColor 25%, -moz-accent-color) + ) !important; + } + } + menuitem[type="checkbox"]:focus > .menu-iconic-left > .menu-iconic-icon { + outline: 2px solid var(--focus-outline-color, AccentColor) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:focus > .menu-iconic-left > .menu-iconic-icon { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + } + } + @media (-moz-gtk-csd-available) and (prefers-contrast) { + menuitem[type="checkbox"]:not([disabled="true"]) > .menu-iconic-left > .menu-iconic-icon { + /* color will set the border-color on the check due to how HCM works for in-content pages. */ + color: var(--checkbox-checked-border-color, color-mix(in srgb, AccentColor 4%, Field)) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:not([disabled="true"]) > .menu-iconic-left > .menu-iconic-icon { + /* color will set the border-color on the check due to how HCM works for in-content pages. */ + color: var(--checkbox-checked-border-color, color-mix(in srgb, -moz-accent-color 4%, Field)) !important; + } + } + menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] { + color: var(--checkbox-checked-border-color, currentColor) !important; + fill: var(--checkbox-checked-color, AccentColorText) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] { + fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; + } + } + menuitem[type="checkbox"]:not([disabled="true"]):hover:active + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon, + menuitem[type="checkbox"]:not([disabled="true"]):hover + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon { + color: var(--checkbox-checked-border-color-hover, AccentColorText) !important; + fill: var(--checkbox-checked-border-color-hover, AccentColorText) !important; + } + @supports -moz-bool-pref("userChrome.compatibility.accent_color") { + menuitem[type="checkbox"]:not([disabled="true"]):hover:active + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon, + menuitem[type="checkbox"]:not([disabled="true"]):hover + > .menu-iconic-left[checked="true"] + > .menu-iconic-icon { + color: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; + fill: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; + } + } + } + menuitem[type="checkbox"] > .menu-iconic-text { + margin: 1px 0 !important; + } + menuitem[type="checkbox"][disabled="true"] { + opacity: 0.4 !important; + } + /*- Menu Separator -----------------------------------------------------------*/ + menuseparator { + appearance: none !important; + min-width: 2px; + min-height: 0; + border-top: 1px solid var(--in-content-box-border-color, ThreeDDarkShadow); + border-bottom: none; + padding: 0; + margin: var(--panel-separator-margin, 6px); + } + } + } + } +} +/** Rounding ******************************************************************/ +@supports -moz-bool-pref("userChrome.rounding.square_button") { + @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") + { + button:not(.toggle-button), + .close-icon, + .action-icon::before, + .page-section-header > .twisty, + .closed-tab-li-main, + #categories > .category, + .sidebar-footer-link { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:debugging") { + .sidebar-item { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("chrome://browser/content/places/places.xhtml"), url-prefix("about:downloads") + { + .downloadButton > .button-box { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:protections") { + #manage-protections, + #sign-up-for-monitor-link, + #get-proxy-extension-link, + #get-vpn-link, + #vpn-banner-link, + .monitor-partial-breaches-link-wrapper, + .monitor-breaches-link-wrapper { + border-radius: 0 !important; + } + } + @-moz-document regexp(".*.pdf$") { + .toolbarButton, + .dropdownToolbarButton, + .secondaryToolbarButton, + .dialogButton { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_dialog") { + @-moz-document url("about:home"), url("about:newtab") { + .modal { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") + { + input[type="checkbox"]:not(.toggle-button), + .checkbox-check { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_field") { + @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") + { + input:is( + [type="color"], + [type="email"], + [type="tel"], + [type="text"], + [type="password"], + [type="url"], + [type="number"] + ), + textarea, + select, + menulist, + tree, + treecols, + listheader, + richlistbox, + search-textbox, + .web-appearance-choice, + .content-blocking-category, + #translations-manage-install-list { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:debugging") { + .default-input { + border-radius: 0 !important; + } + } + @-moz-document url("about:home"), url("about:newtab") { + .search-wrapper .search-handoff-button, + .search-wrapper input { + border-radius: 0 !important; + } + } + @-moz-document regexp(".*.pdf$") { + .toolbarField, + .thumbnailSelectionRing { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_menupopup") { + @-moz-document url-prefix("about:"), url-prefix("chrome://") + { + panel, + menupopup { + --panel-border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:addons") { + panel-list { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:logins") { + .menu { + border-radius: 0 !important; + } + } + @-moz-document url("about:home"), url("about:newtab") { + .context-menu { + border-radius: 0 !important; + } + } + @-moz-document regexp(".*.pdf$") { + .doorHanger, + .doorHangerRight { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_infobox") { + @-moz-document url-prefix("about:"), regexp("^chrome://\\w+/content/.*.xhtml$") + { + /* + * .container is inside shadow DOM, + * and it does not have any other classes, + * but there may be other elements with the same class, + * hence the weird selector. + */ + link[href="chrome://global/content/elements/message-bar.css"] + .container, + .info-box-container:not(.content-blocking-category), + .options-container, + #sanitizeEverythingWarningBox { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:debugging") { + .message { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:firefoxview") { + .card, + .card::before, + .empty-container, + .synced-tab-a, + .synced-tab-li-placeholder { + border-radius: 0 !important; + } + } +} +@-moz-document url-prefix("about:"), regexp(".*.pdf$") { + @supports -moz-bool-pref("userChrome.rounding.square_dialog") { + dialog, + .dialogBox { + border-radius: 0 !important; + } + } +} +@-moz-document url("chrome://browser/content/places/places.xhtml") +{ + /*= Library ==============================================================*/ + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton, + #placesMenu > menu, + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input, + #places input #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } + } +} +/** Monospace *****************************************************************/ +@supports -moz-bool-pref("userContent.page.monospace") { + @-moz-document url-prefix("about:"), url-prefix("chrome://"), regexp("^((jar:)?file:///).*/$") + { + * { + font-family: -moz-fixed; + } + } +} +/** Menu - Icons Layout *******************************************************/ +@supports not -moz-bool-pref("userChrome.icon.disabled") { + @supports -moz-bool-pref("userChrome.icon.menu") { + @-moz-document url("chrome://browser/content/places/places.xhtml"), url("about:downloads") + { + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]), + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]), + menupopup menuitem:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon, + menupopup menu:not([type="checkbox"][checked="true"], [type="radio"]) > .menu-iconic-left > .menu-iconic-icon { + -moz-appearance: none !important; /* Linux: menulist */ + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + /* Color */ + -moz-context-properties: fill, fill-opacity, stroke !important; + fill: currentColor !important; + stroke: currentColor; + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); + } + /* For native context menus */ + @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { + :not(menu, #ContentSelectDropdown) + > menupopup:not(.in-menulist) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + :not(menu, #ContentSelectDropdown) + > menupopup:not(.in-menulist) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; + } + } + /* Padding */ + :root { + --uc-menu-background-position: left; + --context-menu-background-padding-default: 5px; + --context-menu-background-padding: var(--context-menu-background-padding-default); + } + :root:-moz-locale-dir(rtl) { + --uc-menu-background-position: right; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + background-position: var(--uc-menu-background-position) var(--context-menu-background-padding) center !important; + padding-inline-start: var(--context-menu-background-padding) !important; + } + /* Padding - Non Native */ + @media (-moz-os-version: windows-win7) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win8) and (-moz-windows-non-native-menus), + (-moz-os-version: windows-win10) and (-moz-windows-non-native-menus), + (-moz-platform: windows) and (-moz-windows-non-native-menus), + (-moz-gtk-csd-available) and (-moz-windows-non-native-menus) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows), + (-moz-gtk-csd-available) { + @supports -moz-bool-pref("userChrome.theme.non_native_menu") { + @media (-moz-os-version: windows-win7) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win8) and (-moz-gtk-csd-available), + (-moz-os-version: windows-win10) and (-moz-gtk-csd-available), + (-moz-platform: windows) and (-moz-gtk-csd-available), + (-moz-gtk-csd-available) and (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding-default: 24px; + --context-menu-text-padding: var(--context-menu-text-padding-default); + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + --bookmark-menu-icon-align-padding: 0px; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) + > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + } + } + /* Padding - Windows */ + @media (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows) { + :root { + --bookmark-menu-icon-text-padding: calc( + var(--context-menu-text-padding) + var(--arrowpanel-menuitem-padding-inline) + ); + --bookmark-menu-icon-background-padding: calc( + var(--arrowpanel-menuitem-padding-inline) + var(--bookmark-menu-icon-align-padding) + ); + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + :root { + --context-menu-text-padding: calc(1.45em + 8px); + --bookmark-menu-icon-align-padding: calc((1.45em - 16px) / 2 + 1px); + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) { + :root { + --context-menu-background-padding-default: 2px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win7) and (-moz-windows-classic), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win7) and (-moz-windows-classic) { + :root { + --context-menu-background-padding-default: -0.5px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win8), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win8) { + :root { + --context-menu-background-padding-default: 3px; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-os-version: windows-win10), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) and (-moz-platform: windows-win10) { + :root { + --context-menu-background-padding: 3px; + --menu-background-padding-default: 0px; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root { + --context-menu-background-padding: 5px; + } + #main-menubar { + --context-menu-background-padding: calc(5px + ((1.45em - 16px) / 2)); + } + menuitem:is([type="checkbox"], [type="radio"]) { + --menu-padding: 0px; + } + menuitem[checked="true"] { + --context-menu-background-padding: 0px; + } + menuitem[checked="true"] > .menu-iconic-left { + transform: translateX(2px); + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + box-sizing: content-box; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-text, + menupopup:not([placespopup="true"]) .menu-iconic-text { + padding-block: 0 !important; + } + } + @media (-moz-os-version: windows-win7) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win8) and (not (-moz-windows-non-native-menus)), + (-moz-os-version: windows-win10) and (not (-moz-windows-non-native-menus)), + (-moz-platform: windows) and (not (-moz-windows-non-native-menus)) { + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) + > menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } + } /* Padding - Linux */ + @media (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding-default: 6px; + --context-menu-text-padding: 21px; + } + /* Contextmenu Checkbox Unset */ + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[type="checkbox"] { + margin-inline: 0 !important; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"] + > .menu-iconic-left + > .menu-iconic-icon { + margin-inline-end: 0 !important; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem[type="checkbox"]:not([checked="true"]) + > .menu-iconic-left + > .menu-iconic-icon { + border: none !important; + background-color: unset !important; + } + } + /* Padding - Mac */ + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root { + --context-menu-background-padding-default: 10px; + --context-menu-mac-padding: 21px; + } + /* context menu width */ + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]) { + padding-inline-end: var(--context-menu-background-padding) !important; + } + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]) + > .menu-text, + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) + menu:not(.menu-iconic, .in-menulist, [checked="true"]) + > .menu-text { + /* text position */ + padding-inline-start: var(--context-menu-mac-padding) !important; + } + /* Checkbox menuitem, None iconic menu */ + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem[checked="true"], + menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menu:not(.menu-iconic) { + padding-inline-start: calc( + var(--context-menu-background-padding) + var(--context-menu-mac-padding) + ) !important; + } + } + /*= Context Menu ===========================================================*/ + @supports -moz-bool-pref("userChrome.icon.context_menu") { + /* Icon lists */ + /*= downloadsContextMenu =====================================================*/ + .downloadPauseMenuItem { + --menuitem-image: url("chrome://global/skin/media/pause-fill.svg"); + } + .downloadResumeMenuItem { + --menuitem-image: url("chrome://global/skin/media/play-fill.svg"); + } + .downloadUnblockMenuItem { + --menuitem-image: url("../icons/checkmark-circle.svg"); + } + .downloadUseSystemDefaultMenuItem { + --menuitem-image: url("../icons/toolbarButton-upload.svg"); + } + .downloadAlwaysUseSystemDefaultMenuItem { + /* checkbox */ + --menuitem-image: url("../icons/folder-globe.svg"); + } + .downloadAlwaysOpenSimilarFilesMenuItem { + /* checkbox */ + --menuitem-image: url("../icons/fluid.svg"); + } + .downloadShowMenuItem { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + .downloadShowMenuItem { + --menuitem-image: url("../icons/folder.svg"); + } + } + #downloadsContextMenu > menuitem.downloadOpenReferrerMenuItem, + #downloadsContextMenu > menuitem[command="downloadsCmd_openReferrer"] { + --menuitem-image: url("../icons/link-square.svg"); + } + #downloadsContextMenu > menuitem.downloadCopyLocationMenuItem, + #downloadsContextMenu > menuitem[command="downloadsCmd_copyLocation"] { + --menuitem-image: url("../icons/link.svg"); + } + .downloadDeleteFileMenuItem { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + .downloadRemoveFromHistoryMenuItem { + --menuitem-image: url("../icons/eraser.svg"); + } + #downloadsContextMenu > menuitem[command="downloadsCmd_clearList"], + #downloadsContextMenu > menuitem[command="downloadsCmd_clearDownloads"] { + --menuitem-image: url("../icons/broom.svg"); + } + /*= placeContext =============================================================*/ + #placesContext_open { + --menuitem-image: url("../icons/link-square.svg"); + } + #placesContext_openBookmarkContainer\:tabs, + #placesContext_openBookmarkLinks\:tabs { + --menuitem-image: url("../icons/movetowindow-16.svg"); + } + #placesContext_open\:newtab, + #placesContext_openContainer\:tabs, + #placesContext_openLinks\:tabs { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + #placesContext_open\:newcontainertab { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + #placesContext_open\:newwindow { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + #placesContext_open\:newprivatewindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + #placesContext_show_bookmark\:info, + #placesContext_show\:info, + #placesContext_show_folder\:info { + --menuitem-image: url("chrome://global/skin/icons/edit.svg"); + } + #placesContext_deleteBookmark, + #placesContext_deleteFolder, + #placesContext_delete, + #placesContext_delete_history { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #placesContext_deleteHost { + --menuitem-image: url("../icons/eye-hide.svg"); + } + #placesContext_sortBy\:name { + --menuitem-image: url("../icons/text-sort-ascending.svg"); + } + #placesContext_cut { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #placesContext_copy { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #placesContext_paste_group { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #placesContext_new\:bookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #placesContext_showInFolder, + #placesContext_new\:folder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + #placesContext_showInFolder, + #placesContext_new\:folder { + --menuitem-image: url("../icons/folder.svg"); + } + } + #placesContext_new\:separator { + --menuitem-image: url("../icons/vertical-line.svg"); + } + #placesContext_paste { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #placesContext_createBookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #show-other-bookmarks_PersonalToolbar { + /* checkbox */ + --menuitem-image: url("../icons/star-line-horizontal.svg"); + } + #placesContext_showAllBookmarks { + --menuitem-image: url("chrome://browser/skin/bookmark-star-on-tray.svg"); + } + .openintabs-menuitem { + --menuitem-image: url("../icons/movetowindow-16.svg"); + } + } + @supports -moz-bool-pref("userChrome.icon.global_menu") { + /*= organizeButtonPopup ======================================================*/ + #newbookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + #newfolder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + #newfolder { + --menuitem-image: url("../icons/folder.svg"); + } + } + #newseparator { + --menuitem-image: url("../icons/vertical-line.svg"); + } + #orgUndo { + --menuitem-image: url("../icons/undo.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #orgRedo { + --menuitem-image: url("../icons/redo.svg"); + } + } + #orgCut { + --menuitem-image: url("chrome://browser/skin/edit-cut.svg"); + } + #orgCopy { + --menuitem-image: url("../icons/edit-copy.svg"); + } + #orgPaste { + --menuitem-image: url("chrome://browser/skin/edit-paste.svg"); + } + #orgDelete { + --menuitem-image: url("chrome://global/skin/icons/delete.svg"); + } + #orgSelectAll { + --menuitem-image: url("../icons/select-all-on.svg"); + } + #orgClose { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + /*= viewMenuPopup ============================================================*/ + #viewColumns { + --menuitem-image: url("chrome://global/skin/icons/columnpicker.svg"); + } + #viewSort { + --menuitem-image: url("../icons/text-sort-ascending.svg"); + } + /*= maintenanceButtonPopup ===================================================*/ + #backupBookmarks { + --menuitem-image: url("../icons/datastore.svg"); + } + @supports -moz-bool-pref("userChrome.icon.menu.full") { + #fileRestoreMenu { + --menuitem-image: url("../icons/datarestore.svg"); + } + } + #fileImport { + --menuitem-image: url("../icons/toolbarButton-download.svg"); + } + #fileExport { + --menuitem-image: url("../icons/toolbarButton-upload.svg"); + } + #browserImport { + --menuitem-image: url("chrome://browser/skin/import.svg"); + } + } + } + @-moz-document url-prefix("about:addons") { + @supports -moz-bool-pref("userChrome.icon.context_menu") { + button[role="menuitem"] { + background-image: var(--icon, url("../icons/blank.svg")); /* Don't use !important. because of [checked] */ + } + panel-item[action="check-for-updates"] { + --icon: url("../icons/refresh-cw.svg"); + } + panel-item[action="view-recent-updates"] { + --icon: url("chrome://global/skin/icons/info.svg"); + } + panel-item[action="install-from-file"] { + --icon: url("chrome://devtools/skin/images/import.svg"); + } + panel-item[action="debug-addons"] { + --icon: url("../icons/bug.svg"); + } + panel-item[action="set-update-automatically"] { + --icon: url("chrome://devtools/skin/images/profiler-stopwatch.svg"); + } + panel-item[action="reset-update-states"] { + --icon: url("chrome://devtools/skin/images/debugging-workers.svg"); + } + panel-item[action="manage-shortcuts"], + panel-item[data-l10n-id="preferences-addon-button"], + panel-item[data-l10n-id="manage-addon-button"] { + --icon: url("chrome://global/skin/icons/settings.svg"); + } + } + } + } +} +/** Download Panel ************************************************************/ +@-moz-document url-prefix("about:downloads") { + @media (prefers-reduced-motion: no-preference) { + @supports -moz-bool-pref("userChrome.decoration.download_panel") { + /* Accent Color for downloaded item */ + #downloadsListBox .download-state[exists] .downloadDetails { + color: var(--button-primary-bgcolor); + } + #downloadsListBox .download-state[exists] .downloadDetails.downloadDetailsHover { + color: var(--button-primary-hover-bgcolor); + } + /* File moved or missing */ + #downloadsListBox .download-state:not([exists], [state="0"]) .downloadTarget { + text-decoration: line-through; + text-decoration-color: color-mix(in srgb, currentColor 65%, transparent); + } + #downloadsListBox .download-state:not([exists], [state="0"]) .downloadTarget:hover { + text-decoration: none; + } + #downloadsListBox .download-state:not([exists], [state="0"]) .downloadTypeIcon { + filter: grayscale(100%) !important; + } + } + } +} diff --git a/package.json b/package.json index a662c123..8a02c683 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,10 @@ }, "homepage": "https://github.com/black7375/Firefox-UI-Fix#readme", "scripts": { - "build": "sass --no-source-map src/leptonChrome.scss css/leptonChrome.css && sass --no-source-map src/leptonContent.scss css/leptonContent.css && prettier --write css/leptonChrome.css css/leptonContent.css", + "build": "yarn build:scss && yarn format:build", + "build:scss": "sass --no-source-map src/leptonChrome.scss:css/leptonChrome.css src/leptonContent.scss:css/leptonContent.css src/leptonChromeESR.scss:css/leptonChromeESR.css src/leptonContentESR.scss:css/leptonContentESR.css", "format": "prettier --write .", + "format:build": "prettier --write css/leptonChrome.css css/leptonContent.css css/leptonChromeESR.css css/leptonContentESR.css", "test": "jest", "validate": "csstree-validator css/leptonChrome.css; csstree-validator css/leptonContent.css" }, diff --git a/src/leptonChrome.scss b/src/leptonChrome.scss index 41e99383..ea1aca09 100644 --- a/src/leptonChrome.scss +++ b/src/leptonChrome.scss @@ -16,7 +16,6 @@ @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; @namespace html "http://www.w3.org/1999/xhtml"; -@include ESR-MODE; /** Default Theme - Contrast **************************************************/ @include Option("userChrome.theme.built_in_contrast") { @import "theme/built_in"; diff --git a/src/leptonChromeESR.scss b/src/leptonChromeESR.scss new file mode 100644 index 00000000..8d923cbe --- /dev/null +++ b/src/leptonChromeESR.scss @@ -0,0 +1,4 @@ +@use "utils/mode"; + +@include mode.ESR; +@import "leptonChrome" diff --git a/src/leptonContent.scss b/src/leptonContent.scss index 7eaa1a78..0ef3035c 100644 --- a/src/leptonContent.scss +++ b/src/leptonContent.scss @@ -11,7 +11,6 @@ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); -@include ESR-MODE; /** Compatibility *************************************************************/ @import "contents/compatibility"; diff --git a/src/leptonContentESR.scss b/src/leptonContentESR.scss new file mode 100644 index 00000000..3124310d --- /dev/null +++ b/src/leptonContentESR.scss @@ -0,0 +1,4 @@ +@use "utils/mode"; + +@include mode.ESR; +@import "leptonContent" From 0b9164e69d51184f1518c8b1064819414d35450e Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 14 Aug 2023 00:15:04 +0900 Subject: [PATCH 35/37] Add: CI - Release for ESR #744 --- .github/workflows/release.yml | 25 ++++++++++++++++++++++++- package.json | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2cba45c5..38a3039c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,6 +32,7 @@ jobs: needs: sync-branches strategy: matrix: + mode: ["STANDARD", "ESR"] include: - name: "Lepton" branch: "master" @@ -55,6 +56,20 @@ jobs: echo -e "[Info]\nVer=${TAGVER}\nBranch=${BRANCH}" > LEPTON + - name: Processing for STANDARD + if: matrix.mode == 'STANDARD' + run: | + rm css/leptonChromeESR.css + rm css/leptonContentESR.css + + - name: Processing for ESR + if: matrix.mode == 'ESR' + run: | + sed -i "s/\.css/ESR\.css/g" userChrome.css + sed -i "s/\.css/ESR\.css/g" userContent.css + rm css/leptonChrome.css + rm css/leptonContent.css + - name: Release Structure run: | # Remove unnecessary files @@ -73,9 +88,17 @@ jobs: zip -rv ${{ matrix.name }}.zip chrome CREDITS LICENSE user.js install.sh install.ps1 - uses: softprops/action-gh-release@v1 # actions/create-release, actions/upload-release-asset is deprecated - if: startsWith(github.ref, 'refs/tags/') + if: matrix.mode == 'STANDARD' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: files: | ${{ matrix.name }}.zip + + - uses: softprops/action-gh-release@v1 + if: matrix.mode == 'ESR' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: | + ${{ matrix.name }}-ESR.zip diff --git a/package.json b/package.json index 8a02c683..78f48910 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Lepton", - "version": "7.0.0", + "version": "8.0.0", "description": "I respect proton UI and aim to improve it. ", "author": "alstjr7375 ", "license": "MPL 2.0", From 660882ab5de98249e13b842bba04edd55463279c Mon Sep 17 00:00:00 2001 From: alstjr7375 Date: Mon, 14 Aug 2023 01:05:14 +0900 Subject: [PATCH 36/37] Fix: Tab - change option name #463 --- css/leptonChrome.css | 6 +++--- css/leptonChromeESR.css | 6 +++--- src/tab/sound_tab/_show_with_favicons.scss | 4 ++-- user.js | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/css/leptonChrome.css b/css/leptonChrome.css index bedac50f..2aa872dd 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -7930,7 +7930,7 @@ .tabbrowser-tab:-moz-locale-dir(rtl) { --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned]) { --uc-sound-tab-icon-position-x-default: 7px; --uc-sound-tab-icon-position-y: -1px; @@ -7963,7 +7963,7 @@ .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 8px; @@ -7993,7 +7993,7 @@ .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 8px; diff --git a/css/leptonChromeESR.css b/css/leptonChromeESR.css index 081dceb9..a1d69ed8 100644 --- a/css/leptonChromeESR.css +++ b/css/leptonChromeESR.css @@ -8342,7 +8342,7 @@ .tabbrowser-tab:-moz-locale-dir(rtl) { --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned]) { --uc-sound-tab-icon-position-x-default: 7px; --uc-sound-tab-icon-position-y: -1px; @@ -8375,7 +8375,7 @@ .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 8px; @@ -8405,7 +8405,7 @@ .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; } - @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.with_text") { + @supports -moz-bool-pref("userChrome.tab.sound_with_favicons.on_center") { .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label-container { --uc-sound-tab-label-position-x-default: 8px; diff --git a/src/tab/sound_tab/_show_with_favicons.scss b/src/tab/sound_tab/_show_with_favicons.scss index f8331431..4d1a5db1 100644 --- a/src/tab/sound_tab/_show_with_favicons.scss +++ b/src/tab/sound_tab/_show_with_favicons.scss @@ -39,7 +39,7 @@ --uc-sound-tab-icon-position-x: calc(-1 * var(--uc-sound-tab-icon-position-x-default)); } - @include Option("userChrome.tab.sound_with_favicons.with_text") { + @include Option("userChrome.tab.sound_with_favicons.on_center") { &:not([pinned]) { --uc-sound-tab-icon-position-x-default: 7px; --uc-sound-tab-icon-position-y: -1px; @@ -74,7 +74,7 @@ .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { .tab-label-container { --uc-sound-tab-label-position-x-default: 4px; - @include Option("userChrome.tab.sound_with_favicons.with_text") { + @include Option("userChrome.tab.sound_with_favicons.on_center") { --uc-sound-tab-label-position-x-default: 8px; } diff --git a/user.js b/user.js index 3a533c7a..8fff01b6 100644 --- a/user.js +++ b/user.js @@ -186,7 +186,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.tab.close_button_at_hover.with_selected", true); // Need close_button_at_hover // user_pref("userChrome.tab.sound_show_label", true); // Need remove sound_hide_label // user_pref("userChrome.tab.container.on_top", true); -// user_pref("userChrome.tab.sound_with_favicons.with_text", true); +// user_pref("userChrome.tab.sound_with_favicons.on_center", true); // user_pref("userChrome.tab.selected_bold", true); // user_pref("userChrome.navbar.as_sidebar", true); From 5756c716cd037a37e22486c56ffc7d955aa92814 Mon Sep 17 00:00:00 2001 From: MS_Y Date: Mon, 14 Aug 2023 23:59:16 +0900 Subject: [PATCH 37/37] Docs: Restrictions #744 --- docs/Restrictions.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/Restrictions.md b/docs/Restrictions.md index 90518f06..c911c2f9 100644 --- a/docs/Restrictions.md +++ b/docs/Restrictions.md @@ -64,7 +64,9 @@ This project is using SCSS to make a [reusable compatible mixins](../src/utils). - `:root[lwtheme-mozlightdark]` is removed [#288](https://github.com/black7375/Firefox-UI-Fix/issues/288) - `-moz-os-version` -> `-moz-platform` [#331](https://github.com/black7375/Firefox-UI-Fix/issues/331) - Breaking change with `-moz-accent-color`/`-moz-accent-color-foreground` -> `AccentColor`/`AccentColorText` [#433](https://github.com/black7375/Firefox-UI-Fix/issues/433) -- `-moz-box` to `flex` layout [670](https://github.com/black7375/Firefox-UI-Fix/issues/670) +- `-moz-box` to `flex` layout [#670](https://github.com/black7375/Firefox-UI-Fix/issues/670) +- Drop `windows7` and `windows8`[#744](https://github.com/black7375/Firefox-UI-Fix/issues/744) + - `-moz-platform: windows-win7`, `-moz-platform: windows-win8`, `-moz-platform: windows-win10`, `-moz-windows-non-native-menus` ### Side Effect Only CSS modifications can cause bugs that are hard to think of in the general web, such as the [context menu not appearing](https://github.com/black7375/Firefox-UI-Fix/issues/114).