diff --git a/arch-config/.mozilla/firefox/default-release/chrome/CONTRIBUTING.md b/arch-config/.mozilla/firefox/default-release/chrome/CONTRIBUTING.md index 3ed32077..282649a1 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/CONTRIBUTING.md +++ b/arch-config/.mozilla/firefox/default-release/chrome/CONTRIBUTING.md @@ -4,24 +4,11 @@ **Table of Contents** - [Introduce](#introduce) - - [Code of Conduct](#code-of-conduct) - - [We Develop with Github](#we-develop-with-github) - - [Environment](#environment) - - [Your First Contribution](#your-first-contribution) - - [Contribution Targets](#contribution-targets) - - [Project Structure](#project-structure) - - [Icon files](#icon-files) - - [Meta Info files](#meta-info-files) - - [Restrictions](#restrictions) -- [Rules](#rules) - - [Version](#version) - - [Branch](#branch) - - [Issue](#issue) - - [Coding style](#coding-style) - - [Commit](#commit) - - [Commit Message](#commit-message) - - [Pull request](#pull-request) - - [License](#license) + * [Code of Conduct](#code-of-conduct) + * [We Develop with Github](#we-develop-with-github) + * [Your First Contribution](#your-first-contribution) + * [Contribution Targets](#contribution-targets) +- [License](#license) - [References](#references) @@ -30,11 +17,15 @@ I'm really glad you're reading this, because we need volunteer developers to help this project come to fruition. +This document is intended to help, not burden you. + +You can use it as a reference for various guidelines and information, and PR comfortably. + Please note we have a code of conduct, please follow it in all your interactions with the project. ### Code of Conduct -Refer to [CODE\_OF\_CONDUCT.md](https://github.com/black7375/Firefox-UI-Fix/blob/master/CODE_OF_CONDUCT.md). +Refer to [CODE\_OF\_CONDUCT.md](./CODE_OF_CONDUCT.md). ### We Develop with Github @@ -42,45 +33,40 @@ We use [github](https://github.com/black7375/Firefox-UI-Fix) to host code, to tr After feedback has been given we expect responses within two weeks. After two weeks we may close the issue and pull request if it isn't showing any activity. -### Environment - -You can configure it as follows: -```shell -## clone repository -git clone https://github.com/black7375/Firefox-UI-Fix.git -cd ./Firefox-UI-Fix - -## checkout branch -git checkout -``` - ### Your First Contribution -**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) +**Working on your first Pull Request?** -The following documents may be helpful: -- [Roadmap](https://github.com/black7375/Firefox-UI-Fix/issues/2) -- [Each Versions Plan](https://github.com/black7375/Firefox-UI-Fix/milestones) -- [Wiki:Compatibility Issues Solution](https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution) -- [Wiki:Tips](https://github.com/black7375/Firefox-UI-Fix/wiki/Tips) +You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) -Live Debugging: -- [Tutorial: How to create and live-debug userChrome.css](https://www.reddit.com/r/FirefoxCSS/comments/73dvty/tutorial_how_to_create_and_livedebug_userchromecss/) -- [Browser Toolbox](https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox) -- [Style Editor](https://developer.mozilla.org/en-US/docs/Tools/Style_Editor) - -Firefox Source Code: -- [Github](https://github.com/mozilla/gecko-dev) -- [Searchfox](https://searchfox.org/) -- [Firefox Source Docs](https://firefox-source-docs.mozilla.org/) - -Test for None mac users: -- [Docker-OSX](https://github.com/sickcodes/Docker-OSX) +And, Please refer to the [development documentation](./docs/). ### Contribution Targets We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's: +**Codes** +- New Features. +- Bug fixes. +- Improved compatibility or accessibility. +- Refactoring. + +**Graphic Resources** +- Icons ([#213](https://github.com/black7375/Firefox-UI-Fix/issues/213), We need the help of a designer!!) +- Social preview image ([sample](https://github.com/topics/firefox-theme)) + +**Issues** +- Report a bug. +- Discussing the current state of the code. +- Tell us about related or relevant projects and documents. +- Help other users issue. +- Proposing others.. + +**Docs** +- Fix typos, alignments. +- Correct awkward sentences. +- Improve document readability. + **Promotions** - Introduce project - Video (Recommend!!, We need it) @@ -91,160 +77,7 @@ We love your input! We want to make contributing to this project as easy and tra - [Producthunt](https://www.producthunt.com/posts/firefox-ui-fix-proton)([#43](https://github.com/black7375/Firefox-UI-Fix/issues/43)) - [Youtube](https://www.youtube.com/watch?v=ECta0icNMgY) -**Docs** -- Fix typos, alignments. -- Correct awkward sentences. -- Improve document readability. - -**Issues** -- Report a bug. -- Discussing the current state of the code. -- Tell us about related or relevant projects and documents. -- Help other users issue. -- Proposing others.. - -**Codes** -- New Features. -- Bug fixes. -- Improved compatibility or accessibility. -- Refactoring. - -### Project Structure - -``` -root -|- .gitattributes: Exclude at `Download Zip` -|- .github: Issue/PR Template, Github Actions -|- .prettierignore: Exclude coding style -|- .prettierrc.json: Coding style -|- icons/: Icons, illustrations -|- install.ps1: Install script write in powersehll -|- install.sh: Install script write in bash -|- LEPTON: Meta infos (branch, version) -|- user.js: about:config settings -|- userChrome.css: CSS for Browser UI -|- userContent.css: CSS for Web pages -``` - -#### Icon files - -Most of them are made in SVG. - -Except for illustrations, there must be an `fill="context-fill" fill-opacity="context-fill-opacity"` property to dynamically determine color and transparency. - -Icons are mainly [FirefoxUX/photon-icons](https://github.com/FirefoxUX/photon-icons) -or [microsoft/fluentui-system-icons](https://github.com/microsoft/fluentui-system-icons). - -#### Meta Info files - -It comes from [install.sh](https://github.com/black7375/Firefox-UI-Fix/blob/01ae88bf2c4710e1f364d9eb2901ca2b722cefe7/install.sh#L442). - -**`LEPTON` file format** - -If this file exist in same directory as the `userChrome.css` file, -it is recognized as the "Lepton" installation directory. - -```ini -[Info] -Branch=master | photon-style | proton-style -Ver= | | [NULL] -``` - -**`lepton.ini` file Format** - -In `lepton.ini`, various information is stored during the installation process.\ -This file is recreated every time the installer is created. - -```ini -[Profile Name] -Type=Local | Release | Git -Branch=master | photon-style | proton-style -Ver= | | [NULL] -Path= -``` - -**Update Policy according to `Type`** -- Local(unknown): force latest commit update -- Release(): force latest tag update -- Git: latest commit update - -### Restrictions - -- Cross Platform - - Different compatibility issues occur in Win7, Win8, Win10, KDE, Gnome, Mac, etc. - - Consider compatibility as much as possible, but use [dedicated media queries](https://github.com/mozilla/gecko-dev/blob/d6188c9ce02efeea309e7177fc14c9eb2f09db37/servo/components/style/gecko/media_features.rs#L906-L930) in special cases -- CSS Loading Order - - User CSS(`userChrome.css`, `userContent.css`) is usually loaded first. - - In many cases, overriding should be prevented with [`important!`](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity#the_!important_exception)(Anti-pattern in general web), and side effects should also be considered. -- DOM structure cannot be modified - - It is possible with JS, but there are security and configuration issues, so we should make the most of CSS. - - [`::before`](https://developer.mozilla.org/en-US/docs/Web/CSS/::before) and [`::after`](https://developer.mozilla.org/en-US/docs/Web/CSS/::after) can indirectly add CSS elements. -- [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) - - Firefox actively uses shadow dom internally - - To modify, it is often a roundabout approach or impossible to inherit -- [XUL](https://en.wikipedia.org/wiki/XUL) - - Sometimes written and bound in C++ for performance, like a treeview of bookmarks. - - The proper document does not exist, so we have to read the source code and work - - Available CSS features are also restricted. -- Side Effects - - 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). - -## Rules - -### Version - -Milestone, The versioning scheme we use is [SemVer](https://semver.org/). (Maintainer decides, do not pull request.) - -We will release the feature as soon as it is complete, but the cycle should be 2-4 weeks. -Rapid releases. - -It comes from [#109](https://github.com/black7375/Firefox-UI-Fix/issues/109#issuecomment-873313945). - -### Branch - -Stable: Only bugfix, Documentation. -- `master`: Common bugfix, documentation. -- `photon-style`: Bugfix, documentation specified in `photon-style`. -- `proton-sryle`: Bugfix, documentation specified in `proton-style`. - -Development: New Features. -- `dev`: Common new features. -- `photon-style-dev`: New features specified in `photon-style`. -- `proton-style-dev`: New features specified in `proton-style`. - -### Issue - -- **Versions:** -- Make sure you’re on the latest version. -- Try older versions. -- Try switching up dependency versions. -- **Search:** Search the project’s [issues](https://github.com/black7375/Firefox-UI-Fix/issues) to make sure it's not a known issue. - -### Coding style - -- **Indent:** 2 spaces for indentation rather than tabs. -- **Columns:** Fit `80`~`100` columns as much as possible. (Auto formatting is using 120 to avoid the worst case) - -### Commit - -- **Meaningfully:**: It doesn't make meaningless commits. -- **One per task:** It's difficult to distinguish when various tasks are mixed. -- **Often:** Codes may corrupt during large changes. - -### Commit Message - -For intuitive recognition, I [put a **prefix**](https://github.com/black7375/Firefox-UI-Fix/commits/master). -- `Add:` Add feature or enhanced. -- `Fix:` Bug fix or change default values. -- `Clean:` Refactoring. -- `Doc:` Update docs. - -### Pull request - -- **Branch:** Check the [Branch](#branch) section and PR to the correct branch. -- **Issue:** We recommend that you open the issue first to discuss the changes with the owner of this repository. - -### License +## License **Any contributions you make will be under the MPL 2.0 Software License** diff --git a/arch-config/.mozilla/firefox/default-release/chrome/CREDITS b/arch-config/.mozilla/firefox/default-release/chrome/CREDITS index 4e66f257..a2cc6366 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/CREDITS +++ b/arch-config/.mozilla/firefox/default-release/chrome/CREDITS @@ -4,6 +4,104 @@ Thanks, black7375 +---------- + Major Contributors + +N: AveYo +E: aveyo@yahoo.com +W: https://github.com/AveYo + +N: Jan Janssen +E: medhefgo@web.de +W: https://github.com/medhefgo + +N: Yunsup Sim +E: pedogunu@gmail.com +W: https://ethansup.net + +---------- + Contributors + +N: 7k5x +E: 7k5xlp0onfire@gmail.com +W: https://github.com/7k5x + +N: Ajith-stark +E: ajith.kum.12342@gmail.com +W: https://github.com/Ajith-stark + +N: Andmagdo +W: https://github.com/andmagdo + +N: anzz1 +W: https://github.com/anzz1 + +N: Backseat-Driver +W: https://www.reddit.com/user/Backseat-Driver/ + +N: badprogramshere +W: https://github.com/badprogramshere + +N: BPower0036 +W: https://github.com/BPower0036 + +N: Burak Yigit Kaya +E: ben@byk.im +W: https://byk.im/ + +N: dr460nf1r3 +E: njcrypted@protonmail.com +W: https://dr460nf1r3.me/ + +N: Filip Š +E: filip.stamcar@hotmail.com +W: https://www.filips.si/ + +N: hellojaccc +E: kim@taekyeong.me +W: https://github.com/hellojaccc + +N: James Upjohn +E: jammehcow@jammehcow.co.nz +W: https://github.com/jammehcow + +N: Jonta +W: https://github.com/Jonta + +N: mamen +W: https://www.mamen.at + +N: MarNicGit +W: https://github.com/MarNicGit + +N: ph3b3 +E: phoebeleong8@gmail.com +W: https://phoebe-leong.github.io/ + +N: Rahul Ramkumar +E: rahulram226@gmail.com +W: https://rahulramkumar.dev + +N: Roel +E: Nyubis@gmail.com +W: https://github.com/Nyubis + +N: SanderTheDragon +E: sanderthedragon@zoho.com +W: https://gitlab.com/SanderTheDragon + +N: sean z +E: ean@vsxd.com +W: https://vsxd.com/ + +N: Sylvain +E: B00ze64@hotmail.com +W: https://github.com/B00ze64 + +N: Tatsuyuki Ishi +E: ishitatsuyuki@gmail.com +W: https://github.com/ishitatsuyuki + ---------- Reference Projects & Resources @@ -107,91 +205,3 @@ N: Waterfox W: https://github.com/WaterfoxCo/Waterfox C: Copyright (c) 2012 Waterfox Limited L: MPL 2.0 - ----------- - Major Contributors - -N: AveYo -E: aveyo@yahoo.com -W: https://github.com/AveYo - -N: Jan Janssen -E: medhefgo@web.de -W: https://github.com/medhefgo - -N: Yunsup Sim -E: pedogunu@gmail.com -W: https://ethansup.net - ----------- - Contributors - -N: 7k5x -E: 7k5xlp0onfire@gmail.com -W: https://github.com/7k5x - -N: Ajith-stark -E: ajith.kum.12342@gmail.com -W: https://github.com/Ajith-stark - -N: Andmagdo -W: https://github.com/andmagdo - -N: Backseat-Driver -W: https://www.reddit.com/user/Backseat-Driver/ - -N: badprogramshere -W: https://github.com/badprogramshere - -N: Burak Yigit Kaya -E: ben@byk.im -W: https://byk.im/ - -N: dr460nf1r3 -E: njcrypted@protonmail.com -W: https://dr460nf1r3.me/ - -N: hellojaccc -E: kim@taekyeong.me -W: https://github.com/hellojaccc - -N: James Upjohn -E: jammehcow@jammehcow.co.nz -W: https://github.com/jammehcow - -N: Jonta -W: https://github.com/Jonta - -N: mamen -W: https://www.mamen.at - -N: MarNicGit -W: https://github.com/MarNicGit - -N: ph3b3 -E: phoebeleong8@gmail.com -W: https://phoebe-leong.github.io/ - -N: Rahul Ramkumar -E: rahulram226@gmail.com -W: https://rahulramkumar.dev - -N: Roel -E: Nyubis@gmail.com -W: https://github.com/Nyubis - -N: SanderTheDragon -E: sanderthedragon@zoho.com -W: https://gitlab.com/SanderTheDragon - -N: sean z -E: ean@vsxd.com -W: https://vsxd.com/ - -N: Sylvain -E: B00ze64@hotmail.com -W: https://github.com/B00ze64 - -N: Tatsuyuki Ishi -E: ishitatsuyuki@gmail.com -W: https://github.com/ishitatsuyuki diff --git a/arch-config/.mozilla/firefox/default-release/chrome/LEPTON b/arch-config/.mozilla/firefox/default-release/chrome/LEPTON index 28f1c6f1..c1f9e71b 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/LEPTON +++ b/arch-config/.mozilla/firefox/default-release/chrome/LEPTON @@ -1,3 +1,3 @@ [Info] -Ver=v4.6.3 +Ver=v5.1.0 Branch=photon-style diff --git a/arch-config/.mozilla/firefox/default-release/chrome/README.org b/arch-config/.mozilla/firefox/default-release/chrome/README.org index 1298463a..bcc64233 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/README.org +++ b/arch-config/.mozilla/firefox/default-release/chrome/README.org @@ -18,10 +18,14 @@ ----- -🔔🔔 A project redesign is in progress. #351 +🔔🔔 Did you set a custom, but not work? -It's built with SCSS and all configured as options. \\ -It's in beta testing, and I'am looking forward to hearing from you. +You should copy [[./user.js][ ~user.js~ ]] file before the theme works. + +The option system depends on user configuration, and nothing applies without settings. \\ +Also, real-time changes are difficult for [[./docs/Restrictions.md#supports][technical limitations]] and require restarts. + +Some settings [[https://github.com/black7375/Firefox-UI-Fix/wiki/Options#using-userjs][can be conflict]] and should be explicitly =false=. ----- @@ -35,8 +39,8 @@ It's in beta testing, and I'am looking forward to hearing from you. Lepton's photon styled is preserve Photon's feeling while keep [[https://github.com/black7375/Firefox-UI-Fix][Original Lepton]].'s strengths. /Disclaimer:/ It works on *Firefox 89* and above!! - | *Wiki* | | | | - | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Installation-Guide][Installation Guide]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Screenshots][Screenshots]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution][Compatibility Issues Solution]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Tips][Tips]] | + | *Wiki* | | | | | + | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Installation-Guide][Installation Guide]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Screenshots][Screenshots]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Options][Options]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution][Compatibility Issues Solution]] | [[https://github.com/black7375/Firefox-UI-Fix/wiki/Tips][Tips]] | [[https://user-images.githubusercontent.com/25581533/120091976-41ea4e00-c0ff-11eb-88ca-a204cfcebe72.png]] @@ -116,7 +120,7 @@ It's in beta testing, and I'am looking forward to hearing from you. bash -c "$(curl -fsSL https://raw.githubusercontent.com/black7375/Firefox-UI-Fix/master/install.sh)" #+END_SRC - Windows users: Run with powershell +Windows users: Run with powershell ([[https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution#windows-7-powershell-script-not-works][Does not work at Win7?]]) #+BEGIN_SRC powershell Powershell -c "Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iwr https://raw.githubusercontent.com/black7375/Firefox-UI-Fix/master/install.ps1 -useb | iex" #+END_SRC diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/color_scheme.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/color_scheme.test.scss new file mode 100644 index 00000000..1a898591 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/color_scheme.test.scss @@ -0,0 +1,126 @@ +@use 'true' as *; +@use "example" as *; +@use "../src/utils/color_scheme"; + +@include test-module("Color scheme is dark [mix]") { + @include test("simple") { + @include assert { + @include output { + @include color_scheme.Dark { + @include example; + } + } + @include expect { + @media (-moz-toolbar-prefers-color-scheme: dark), (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 (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @include example_tag { + @include example_property; + } + } + } + } + } +} + +@include test-module("Color scheme is light [mix]") { + @include test("simple") { + @include assert { + @include output { + @include color_scheme.Light { + @include example; + } + } + @include expect { + @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { + @include example; + } + } + } + } + + @include test("simple reversed") { + @include assert { + @include output { + @include example_tag { + @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { + @include example_property; + } + } + } + @include expect { + @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { + @include example_tag { + @include example_property; + } + } + } + } + } +} + +@include test-module("Color contrast [mix]") { + @include test("simple") { + @include assert { + @include output { + @include color_scheme.Contrast { + @include example; + } + } + @include expect { + @media (prefers-contrast) { + @include example; + } + } + } + } +} + +@include test-module("Color not contrast [mix]") { + @include test("simple") { + @include assert { + @include output { + @include color_scheme.NotContrast { + @include example; + } + } + @include expect { + @media not all and (prefers-contrast) { + @include example; + } + } + } + } +} + +@include test-module("Animate, not reduced motion [mix]") { + @include test("simple") { + @include assert { + @include output { + @include color_scheme.Animate { + @include example; + } + } + @include expect { + @media (prefers-reduced-motion: no-preference) { + @include example; + } + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/each.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/each.test.scss new file mode 100644 index 00000000..353d93d2 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/each.test.scss @@ -0,0 +1,98 @@ +@use 'true' as *; +@use "example" as *; +@use "../src/utils/each"; + +@include test-module("Create each at rules [mix]") { + @include test("prefix single") { + @include assert { + @include output { + @include each.AtEach("-moz-document", "about:home", "url") { + @include example; + } + } + @include expect { + @-moz-document url(about:home) { + @include example; + } + } + } + } + + @include test("prefix multiple") { + @include assert { + @include output { + $input: "about:home" "about:newtab"; + @include each.AtEach("-moz-document", $input, "url") { + @include example; + } + } + @include expect { + @-moz-document url(about:home), url(about:newtab) { + @include example; + } + } + } + } + + @include test("null prefix single") { + @include assert { + @include output { + @include each.AtEach("media", "max-width: 1024px") { + @include example; + } + } + @include expect { + @media (max-width: 1024px) { + @include example; + } + } + } + } + + @include test("null prefix multiple") { + @include assert { + @include output { + $input: "hover: hover" "max-width: 1024px"; + @include each.AtEach("media", $input) { + @include example; + } + } + @include expect { + @media (hover: hover), (max-width: 1024px) { + @include example; + } + } + } + } + + @include test("prefix custom option") { + @include assert { + @include output { + @include each.AtEach("supports", "userChrome.tab.photon", "-moz-bool-pref", ("seperator": " or ", "quoted": true)) { + @include example; + } + } + @include expect { + @supports -moz-bool-pref("userChrome.tab.photon") { + @include example; + } + } + } + } + + @include test("prefix custom option multiple") { + @include assert { + @include output { + $input: "userChrome.tab.photon" "userChrome.padding.photon"; + @include each.AtEach("supports", $input, "-moz-bool-pref", ("seperator": " or ", "quoted": true)) { + @include example; + } + } + @include expect { + @supports -moz-bool-pref("userChrome.tab.photon") or -moz-bool-pref("userChrome.padding.photon") { + @include example; + } + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/example.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/example.scss new file mode 100644 index 00000000..4393f97f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/example.scss @@ -0,0 +1,14 @@ +@mixin example_tag() { + body { + @content; + } +} +@mixin example_property() { + font-size: 16px; +} + +@mixin example() { + @include example_tag { + @include example_property; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/list.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/list.test.scss new file mode 100644 index 00000000..751ac07e --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/list.test.scss @@ -0,0 +1,31 @@ +@use 'true' as *; +@use "../src/utils/list"; + +// TODO: Need more tests.. +$simpleList: (ab cd efgh ijk); +$dupList: (ab cd efgh efgh efgh ijk); + +@include test-module("Remove at list [fn]") { + @include test("simple") { + @include assert-equal( + list.remove($simpleList, "cd"), + (ab efgh ijk) + ); + } + + @include test("duplicate") { + @include assert-equal( + list.remove($dupList, "efgh"), + (ab cd ijk) + ); + } +} + +@include test-module("Convert to str [fn]") { + @include test("simple") { + @include assert-equal( + list.to-string($simpleList), + (((null ab) cd) efgh) ijk + ); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/media.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/media.test.scss new file mode 100644 index 00000000..e65a57b4 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/media.test.scss @@ -0,0 +1,72 @@ +@use 'true' as *; +@use "example" as *; +@use "../src/utils/media"; + +// TODO: Need more tests.. +@include test-module("Create each media at once [mix]") { + @include test("simple") { + @include assert { + @include output { + $input: "hover: hover" "max-width: 1024px"; + @include media.each($input...) { + @include example; + } + } + @include expect { + @media (hover: hover), (max-width: 1024px) { + @include example; + } + } + } + } + + @include test("beyond") { + @include assert { + @include output { + $input: "hover: hover" "max-width: 1024px"; + @include example_tag { + @include media.each($input...) { + font-size: 16px; + } + } + } + @include expect { + @media (hover: hover), (max-width: 1024px) { + @include example_tag { + @include example_property; + } + } + } + } + } + + @include test("null") { + @include assert { + @include output { + $input: (); + @include example_tag { + @include media.each($input) { + @include example_property; + } + } + } + @include expect { + } + } + } + + @include test("null element") { + @include assert { + @include output { + $input: (null); + @include example_tag { + @include media.each($input) { + @include example_property; + } + } + } + @include expect { + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/option.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/option.test.scss new file mode 100644 index 00000000..d9ff0299 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/option.test.scss @@ -0,0 +1,54 @@ +@use 'true' as *; +@use "example" as *; +@use "../src/utils/option"; + +@include test-module("If exist pref [mix]") { + @include test("simple") { + @include assert { + @include output { + @include option.Option("userChrome.tab.photon") { + @include example; + } + } + @include expect { + @supports -moz-bool-pref("userChrome.tab.photon") { + @include example; + } + } + } + } + + @include test("multiple") { + @include assert { + @include output { + @include option.Option("userChrome.tab.photon", "userChrome.padding.photon") { + @include example; + } + } + @include expect { + @supports -moz-bool-pref("userChrome.tab.photon") or -moz-bool-pref("userChrome.padding.photon") { + @include example; + } + } + } + } +} + +@include test-module("If not exist pref [mx]") { + @include test("simple") { + @include assert { + @include output { + @include option.NotOption("userChrome.tab.photon") { + @include example; + } + } + @include expect { + @supports not -moz-bool-pref("userChrome.tab.photon") { + @include example; + } + } + } + } + + // Need multiple test +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/os.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/os.test.scss new file mode 100644 index 00000000..6b90fab6 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/os.test.scss @@ -0,0 +1,147 @@ +@use 'true' as *; +@use "example" as *; +@use "../src/utils/os" as *; + +// TODO: Need more tests.. +@include test-module("Create OS related media [mix]") { + @include test("win7") { + @include assert { + @include output { + @include OS($win7) { + @include example; + } + } + @include expect { + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + @include example; + } + } + } + } + + @include test("win8") { + @include assert { + @include output { + @include OS($win8) { + @include example; + } + } + @include expect { + @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { + @include example; + } + } + } + } + + @include test("win10") { + @include assert { + @include output { + @include OS($win10) { + @include example; + } + } + @include expect { + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + @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-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("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-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-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-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) { + @include example; + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @include example; + } + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/scss.spec.js b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/scss.spec.js new file mode 100644 index 00000000..0cf09714 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/scss.spec.js @@ -0,0 +1,14 @@ +const path = require("path"); +const sassTrue = require("sass-true"); +const glob = require("fast-glob"); + +// https://www.educative.io/blog/sass-tutorial-unit-testing-with-sass-true +// Find all of the Sass files that end in `*.test.scss` in any directory of this project. +// I use path.resolve because True requires absolute paths to compile test files. +const pattern = path.resolve(process.cwd(), "__tests__/**/*.test.scss"); +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 })); +}); diff --git a/arch-config/.mozilla/firefox/default-release/chrome/__tests__/theme.test.scss b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/theme.test.scss new file mode 100644 index 00000000..579e5367 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/__tests__/theme.test.scss @@ -0,0 +1,192 @@ +@use 'true' as *; +@use "example" as *; +@use "sass:selector"; +@use "../src/utils/theme"; + +@include test-module("System Default Theme Selector [fn]") { + @include test("simple") { + @include assert { + @include output { + #{theme.system-default-theme()} { + @include example_property; + } + } + @include expect { + :root:not(:-moz-lwtheme), :root[lwt-default-theme-in-dark-mode] { + @include example_property; + } + } + } + } + + @include test("append selector") { + @include assert { + @include output { + #{selector.append(theme.system-default-theme(), "[inFullscreen=true]")} { + @include example_property; + } + } + @include expect { + :root:not(:-moz-lwtheme)[inFullscreen=true], :root[lwt-default-theme-in-dark-mode][inFullscreen=true] { + @include example_property; + } + } + } + } + + @include test("nested selector") { + @include assert { + @include output { + #{selector.nest(theme.system-default-theme(), "#navigator-toolbox")} { + @include example_property; + } + } + @include expect { + :root:not(:-moz-lwtheme) #navigator-toolbox, :root[lwt-default-theme-in-dark-mode] #navigator-toolbox { + @include example_property; + } + } + } + } +} + +@include test-module("Built-In Default Theme Selector [fn]") { + @include test("simple") { + @include assert { + @include output { + #{theme.built-in-default-theme()} { + @include example_property; + } + } + @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);"]) { + @include example_property; + } + } + } + } + + @include test("append selector") { + @include assert { + @include output { + #{selector.append(theme.built-in-default-theme(), "[inFullscreen=true]")} { + @include example_property; + } + } + @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] { + @include example_property; + } + } + } + } + + @include test("nested selector") { + @include assert { + @include output { + #{selector.nest(theme.built-in-default-theme(), "#navigator-toolbox")} { + @include example_property; + } + } + @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 { + @include example_property; + } + } + } + } +} + +@include test-module("Built-In Light Theme Selector [fn]") { + @include test("simple") { + @include assert { + @include output { + #{theme.built-in-light-theme()} { + @include example_property; + } + } + @include expect { + :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; + } + } + } + } + + @include test("append selector") { + @include assert { + @include output { + #{selector.append(theme.built-in-light-theme(), "[inFullscreen=true]")} { + @include example_property; + } + } + @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] { + @include example_property; + } + } + } + } + + @include test("nested selector") { + @include assert { + @include output { + #{selector.nest(theme.built-in-light-theme(), "#navigator-toolbox")} { + @include example_property; + } + } + @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 { + @include example_property; + } + } + } + } +} + +@include test-module("Built-In Dark Theme Selector [fn]") { + @include test("simple") { + @include assert { + @include output { + #{theme.built-in-dark-theme()} { + @include example_property; + } + } + @include expect { + :root[lwtheme-mozlightdark][lwthemetextcolor=bright], :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { + @include example_property; + } + } + } + } + + @include test("append selector") { + @include assert { + @include output { + #{selector.append(theme.built-in-dark-theme(), "[inFullscreen=true]")} { + @include example_property; + } + } + @include expect { + :root[lwtheme-mozlightdark][lwthemetextcolor=bright][inFullscreen=true], :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"][inFullscreen=true] { + @include example_property; + } + } + } + } + + @include test("nested selector") { + @include assert { + @include output { + #{selector.nest(theme.built-in-dark-theme(), "#navigator-toolbox")} { + @include example_property; + } + } + @include expect { + :root[lwtheme-mozlightdark][lwthemetextcolor=bright] #navigator-toolbox, :root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] #navigator-toolbox { + @include example_property; + } + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/css/leptonChrome.css b/arch-config/.mozilla/firefox/default-release/chrome/css/leptonChrome.css new file mode 100644 index 00000000..6b1082d5 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/css/leptonChrome.css @@ -0,0 +1,7625 @@ +@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; +@namespace html "http://www.w3.org/1999/xhtml"; +/** Default Thme - 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; + } + + /*= 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 { + /* Nigtly 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; + } + } + /*= 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.3); + /* Legacy: v96 */ + --lwt-tabs-border-color: rgba(0, 0, 0, 0.3); + } +} +/*= 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 #2f2f2f !important; + } + :root[sizemode="normal"][tabsintitlebar]:-moz-window-inactive #navigator-toolbox { + border-top-color: #393939 !important; + } + @media (-moz-windows-accent-color-in-titlebar) { + :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) { + /* Header Color */ + :root:not([lwtheme-image]):-moz-lwtheme { + background-color: 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 Active Color =========================================*/ + @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 */ + } + + 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) { + 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="disabled"], + 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 (-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="disabled"], + 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 (-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.compatiblity.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) { + @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; + } + } + } +} +/*= 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; + } +} +/** 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: -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-seperator-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-shorcut-text-color: #757575; + --win-error-color: #b31616; + --win-red-border-color: #ff4343; + --win-accent-forground-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; + } + + @media (-moz-toolbar-prefers-color-scheme: dark), (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-seperator-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-shorcut-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%, -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; + } + } + :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-shorcut-text-color) !important; + --panel-description-color: var(--win-shorcut-text-color) !important; + /* Title Background, Border Color */ + --menu-border-color: var(--win-bgcolor) !important; + --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; + /* Seperator */ + --toolbarseparator-color: var(--win-tab-seperator-color) !important; + /* Field Backround 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 Forground Color */ + --button-primary-color: var(--win-accent-forground-color) !important; + --checkbox-checked-color: var(--win-accent-forground-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; + } + + #navigator-toolbox:not(:-moz-lwtheme) { + background: var(--lwt-accent-color) !important; + } + + /*- Separator --------------------------------------------------------------*/ + :root:not(:-moz-lwtheme) { + --arrowpanel-border-color: var(--win-bgcolor) !important; + --panel-separator-color: var(--win-bgcolor) !important; + } + + :root[lwt-default-theme-in-dark-mode] { + --arrowpanel-border-color: var(--win-border-color) !important; + --panel-separator-color: var(--win-border-color) !important; + } + + @supports -moz-bool-pref("userChrome.theme.system_default") { + @media (-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 */ + } + } + } + /*- Proton Tab Selected ----------------------------------------------------*/ + @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; + } + } + /*- Menu -------------------------------------------------------------------*/ + 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; + } + + /*- Toolbar ----------------------------------------------------------------*/ + :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); + } + + /*- 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(--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: transparent !important; + --lwt-sidebar-text-color: var(--win-text-color) !important; + } + } + /*- Panel ------------------------------------------------------------------*/ + :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; + } + + :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; + } + + :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; + } + + /*- Others -----------------------------------------------------------------*/ + /* For overwrite */ + :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) */ + } + } + #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: -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, -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: -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: -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 */ + /* 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 Backround 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 Backround 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 Forground */ + --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; + } + + @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, white 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, white 15%, -moz-dialog) !important; + } + } +} +/** Fully Theme Mode **********************************************************/ +/* Default Themes + https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/extensions/default-theme/manifest.json + https://github.com/mozilla/gecko-dev/blob/master/browser/themes/addons/light/manifest.json + https://github.com/mozilla/gecko-dev/blob/master/browser/themes/addons/dark/manifest.json + */ +@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 radiobuttons */ + --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); + } + + @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); + } + } + @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.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( + --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 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. + */ + } + + /* Fallback background */ + 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) !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; + border-radius: 4px; + 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: -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 { + 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, rgba(204, 204, 204, 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, rgba(204, 204, 204, 0.5)) !important; + /* Original: hsla(0,0%,80%,.5), match arrowpanel-dimmed-further */ + } +} +/* 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: #05d1f1 !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; + } + } +} +/* 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; + } + + /* Medium and small buttons get sized to 7/14 and 6/12px padding (when adding + * the 1px border): */ + button.medium { + 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:-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; + } + + 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; + } + } + /*- Radio Button -----------------------------------------------------------*/ + xul|radio { + /* margin-inline-start: 0 !important; */ + appearance: none !important; + } + + xul|*.radio-check { + appearance: none !important; + width: 16px !important; + height: 16px !important; + padding: 0 !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 100% !important; + margin-block: 2px !important; + /* extend the vertical clicktarget */ + margin-inline: 0 6px !important; + background-color: var(--in-content-button-background) !important; + background-position: center !important; + flex-shrink: 0 !important; + /* avoid shrinking inside flex container */ + } + + 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-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"])[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; + } + + xul|checkbox[disabled="true"], + xul|radio[disabled="true"], + xul|label[disabled="true"] { + opacity: 0.5 !important; + } + + /*- Check Box --------------------------------------------------------------*/ + /* From checkbox.css */ + checkbox { + appearance: none !important; + -moz-box-align: center !important; + margin: 4px 2px !important; + } + + .checkbox-icon[src] { + margin-inline-end: 2px !important; + } + + .checkbox-label { + margin: 1px 0 !important; + } + + checkbox[disabled="true"] { + opacity: 0.4 !important; + } + + .checkbox-check { + appearance: none !important; + color: var(--checkbox-border-color, ThreeDDarkShadow) !important; + background-color: var(--checkbox-unchecked-bgcolor, Field) !important; + border: 1px solid currentColor !important; + border-radius: 2px !important; + margin-inline-end: 6px !important; + } + + .checkbox-check { + height: 16px !important; + width: 16px !important; + } + + 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, -moz-accent-color 8%, Field) + ) !important; + } + + .checkbox-check[checked] { + border-color: var(--checkbox-checked-border-color, transparent) !important; + background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !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, -moz-accent-color-foreground) !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + } + + 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%, -moz-accent-color) + ) !important; + } + + checkbox:-moz-focusring > .checkbox-check { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + outline-offset: var(--focus-outline-offset, 2px) !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, -moz-accent-color 4%, Field)) !important; + } + + .checkbox-check[checked] { + color: var(--checkbox-checked-border-color, currentColor) !important; + fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; + } + + checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked], + checkbox:not([disabled="true"]):hover > .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; + } + } + /* From common.css */ + xul|*.checkbox-check { + margin-block: 2px !important; + } + + 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, -moz-accent-color) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + + #label-box { + -moz-box-align: center !important; + -moz-box-pack: center !important; + font-weight: 600 !important; + } + + dropmarker { + display: -moz-box !important; + appearance: none !important; + width: 12px !important; + height: 12px !important; + } + + /* dropmarker::part(icon) + * ::part is not apply chrome + */ + dropmarker[exportparts="icon: dropmarker-icon"] { + 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-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8), + (-moz-os-version: windows-win10), + (-moz-platform: windows-win10) { + 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: -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: -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 Exeption 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 antialising 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 antialising 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 { + border-radius: 8px !important; + padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; + margin: 4px !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; */ + } + + #viewGroup > radio { + color: var(--in-content-deemphasized-text) !important; + /* FieldText */ + } + + #viewGroup > radio { + 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; + } + + #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; + } + + #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; + border-radius: 4px !important; + padding-block: 5px !important; + padding-inline-start: 5px !important; + margin-inline-end: 2px !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; + } + + #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; + } + + /*- 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; + list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); + -moz-context-properties: fill !important; + fill: currentColor !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 { + list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); + } + + #editBookmarkPanelRows .expander-up > .button-box, + #editBookmarkPanelRows .expander-down > .button-box { + padding: 0 !important; + } + + #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; + } + + #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; + } + + #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; + } + } + } +} +/** 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 { + cursor: pointer !important; + } + + /* TODO: For now, fxa-menu doesn't show any status. + (JS required, observe .syncNowBtn status) + #PanelUI-fxa-menu-syncnow-button[syncstatus="active"] { + cursor: progress !important; + } + */ +} +@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); + } + + /*- 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: -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, -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"]) .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 (-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), + 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: -moz-box-flex 0.2s var(--animation-easing-function), + margin-inline-start 0.2s var(--animation-easing-function) !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; + } + + /*- 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; + } + #sidebar-box[hidden="true"] { + 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; + } + /* Dont' 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 { + --toolbarbutton-border-radius: 0 !important; + /* Original: 4px */ + } + + button { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_tab") or -moz-bool-pref("userChrome.round.square_button") { + /* Fix Tab bar button radious */ + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button) > .toolbarbutton-icon, + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button) > .toolbarbutton-text, + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button) > .toolbarbutton-badge-stack, + .tab-close-button { + --tab-border-radius: var(--toolbarbutton-border-radius) !important; + } +} +@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") { + xul|menupopup { + 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 { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_field") { + html|select[size][multiple], + xul|listheader, + xul|richlistbox, + html|input { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + .checkbox-check, + xul|*.radio-check { + 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 { + --space-left-tabbar: 8px; + /* If the option is not specified, it is equivalent to 0px. */ + } + + :root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), + :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { + padding-inline-start: var(--space-left-tabbar) !important; + } +} +@supports -moz-bool-pref("userChrome.padding.tabbar_width") { + /* Titlebar Space */ + .titlebar-spacer[type="pre-tabs"] { + width: 30px !important; + /* Original: 40px */ + } + + .titlebar-spacer[type="post-tabs"] { + width: 25px !important; + /* Original: 40px */ + } + + /* Tabbar Buttons */ + :root { + --newtab-button-minus-width-padding: 2px; + --newtab-button-width-padding: calc(var(--toolbarbutton-inner-padding) - var(--newtab-button-minus-width-padding)); + } + + #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[first-visible-unpinned-tab] { + margin-inline-start: 1px !important; + } + } + @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab[first-visible-unpinned-tab] { + 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; + } + } + .tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + max-width: var(--tab-max-width) !important; + /* Original: 225px */ + } + + /* neighbouring tabs should "pinch" together */ + @supports not -moz-bool-pref("userChrome.tab.photon_like_padding") { + @supports -moz-bool-pref("userChrome.tab.lepton_like_padding") { + .tabbrowser-tab { + padding-inline: 1px !important; + } + } + .tabbrowser-tab:not([last-visible-tab]) { + margin-inline-end: -0.5px !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 { + --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(--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(--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(--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(--space-above-tabbar)); + } + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + #TabsToolbar > .toolbar-items { + padding-top: var(--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(--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(--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(--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(--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]) #TabsToolbar { + --tab-min-height: 36px; + } + + :root[uidensity="compact"] #TabsToolbar { + --tab-min-height: 32px; + } + + :root[uidensity="touch"] #TabsToolbar { + --tab-min-height: 41px; + } + } + @supports -moz-bool-pref("userChrome.tab.photon_like_padding") { + :root:not([uidensity]) #TabsToolbar { + --tab-min-height: 32px; + } + + :root[uidensity="compact"] #TabsToolbar { + --tab-min-height: 29px; + } + + :root[uidensity="touch"] #TabsToolbar { + --tab-min-height: 41px; + } + + /* 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]) #TabsToolbar { + --tab-min-height: 36px; + /* 38px -> 36px */ + } + + :root[uidensity="compact"] #TabsToolbar { + --tab-min-height: 29px; + /* 36px -> 29px */ + } + } + } + @supports -moz-bool-pref("userChrome.tab.connect_to_window") { + #TabsToolbar { + --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 18px) / 2) !important; + /* Prevent overflow pinned tab bottom margin */ + } + + :root:not([uidensity="compact"]) #tabbrowser-arrowscrollbox, + #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-stack, + #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-content { + max-height: var(--tab-min-height) !important; + /* Force apply height */ + } + + :root[uidensity="compact"] #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") { + :root[uidensity="compact"] { + --toolbarbutton-outer-padding: 2px !important; + /* Original: 3px, General is 2px */ + } +} +/*= 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 -moz-bool-pref("userChrome.padding.urlbar") { + :root:not([uidensity="touch"]) #urlbar-container, + :root:not([uidensity="touch"]) #search-container { + padding-block: 3px !important; + /* Original: 4px */ + margin-inline: 5px !important; + /* Original: 5px */ + } + + :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") { + #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: 0 !important; + } + + #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; + /* Original: 2px */ + } +} +/*= Info Bar - Reduce Padding ================================================*/ +@supports -moz-bool-pref("userChrome.padding.infobar") { + :root:not([uidensity]) #tab-notification-deck { + --infobar-message-margin: 0 4px 3px; + } + + :root[uidensity="compact"] #tab-notification-deck { + --infobar-message-margin: 0 4px 2px; + } + + #tab-notification-deck notification-message[message-bar-type="infobar"]:not([style*="margin-top"]) { + margin: var(--infobar-message-margin, 0 4px 4px) !important; + } + + :root:not([uidensity]) notification-message[message-bar-type="infobar"] { + --infobar-vertical-margin: 7px; + --infobar-button-vertical-margin: 3px; + } + + :root[uidensity="compact"] notification-message[message-bar-type="infobar"] { + --infobar-vertical-margin: 6px; + --infobar-button-vertical-margin: 2px; + } + + .infobar > .icon { + margin-block: var(--infobar-vertical-margin, 8px) !important; + /* Original: 8px */ + } + + .notification-message { + padding-block: var(--infobar-vertical-margin, 8px) !important; + /* Original: 8px */ + } + + .notification-button-container > .notification-button { + margin-block: var(--infobar-button-vertical-margin, 4px) !important; + /* Original: 4px */ + } + + .notification-close { + margin: var(--infobar-button-vertical-margin, 4px) 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(0, #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:not(.in-menulist) > menuitem, + menupopup > menu { + /* Original: 0.5em */ + padding-block: var(--menu-padding) !important; + } + + #ContentSelectDropdown > menupopup > menucaption, + #ContentSelectDropdown > menupopup > menuitem { + padding-block: 0 !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 { + -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; + } +} +/*= Panel - Reduce padding ===================================================*/ +@supports -moz-bool-pref("userChrome.padding.panel") { + :root { + --arrowpanel-menuitem-margin: 0 var(--arrowpanel-menuicon-padding) !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-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 */ + } +} +@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 */ + /* Footer Button Height */ + :root[uidensity="compact"] .panel-footer.panel-footer-menulike > button { + padding: 3px 8px !important; + } + + /* Footer Button Height */ + :root[uidensity="compact"] #protections-popup-trackersView-settings-button { + margin: 4px 8px 0 !important; + } + + /* not cut off for Protection popup Footer on windows */ + :root[uidensity="compact"] #protections-popup-multiView #protections-popup-footer { + padding: 3px 0 10px !important; + } + + /* Button and disabled category in Protection popup */ + :root[uidensity="compact"] #protections-popup-multiView .protections-popup-footer-button, + :root[uidensity="compact"] #protections-popup-multiView .protections-popup-category { + height: 20px !important; + min-height: 20px !important; + } + + /* Footer Button in Tracking Content Panel */ + :root[uidensity="compact"] #protections-popup-multiView .panel-footer.panel-footer-menulike { + margin: 0 0 3px !important; + } + + /* Identity popup header padding */ + :root[uidensity="compact"] #identity-popup-multiView #identity-popup-mainView-panel-header { + padding: 2px 5px !important; + } + + /* Text When There is no trackers */ + :root[uidensity="compact"] #protections-popup-no-trackers-found-description { + margin: 2em 4em !important; + } + + /* Download Item margin */ + :root[uidensity="compact"] #downloadsListBox { + margin: 0 !important; + } +} +/** Tab Bar UI ****************************************************************/ +/*= Tabs on Bottom ===========================================================*/ +@supports -moz-bool-pref("userChrome.tab.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 */ + flex-wrap: wrap; + } + + :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.tab.on_bottom") { + /* 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; + /* When userChrome.fullscreen.overlap */ + -moz-box-ordinal-group: 2; + --tabs-navbar-shadow-size: 0px; + } + + #tab-notification-deck { + order: 2; + /* When userChrome.fullscreen.overlap */ + -moz-box-ordinal-group: 2; + } + + #TabsToolbar .titlebar-spacer { + display: none; + } + + @supports -moz-bool-pref("userChrome.tab.on_bottom.above_bookmark") { + #PersonalToolbar { + order: 2; + /* When userChrome.fullscreen.overlap */ + -moz-box-ordinal-group: 2; + } + } + @supports not -moz-bool-pref("userChrome.tab.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); */ + } + } + } + } + /*= Windows Control - Move to toolbar ========================================*/ + :root { + --uc-titlebar-padding: 0px; + } + + @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[sizemode="maximized"][tabsintitlebar] { + --uc-titlebar-padding: 8px; + } + } + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + position: fixed; + display: block; + top: var(--uc-titlebar-padding); + right: 0; + height: 40px; + } + + /* where window controls are on left */ + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root { + --uc-titlebar-padding: 0px !important; + } + + .titlebar-buttonbox-container { + left: 0; + right: unset !important; + } + } + #navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; + } + + :root[uidensity="compact"] #TabsToolbar > .titlebar-buttonbox-container { + height: 32px; + } + + #toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; + } + + .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; + } + } + + /* At Full Screen */ + :root[sizemode="fullscreen"] #window-controls { + position: fixed; + display: flex; + top: 0; + right: 0; + height: 40px; + } + + :root[uidensity="compact"][sizemode="fullscreen"] #window-controls { + height: 32px; + } + + @supports -moz-bool-pref("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } + } + /* At Activated Menubar */ + :root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) + #toolbar-menubar:not([autohide="true"]) + + #TabsToolbar + > .titlebar-buttonbox-container { + display: block !important; + } + + :root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { + visibility: hidden; + } + + /*= Navbar - Padding for window controls =====================================*/ + /* Customized https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/window_control_placeholder_support.css */ + :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"] */ + } + + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 84px; + /* 84px is default value of linux */ + --uc-window-drag-space-pre: 30px; + --uc-window-drag-space-post: 25px; + } + + :root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; + /* Remove pre space */ + } + + #nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); + border-inline-style: solid !important; + border-inline-color: var(--toolbar-bgcolor); + } + + /* Windows */ + @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; + } + } + /* Use this pref to check Mac OS where window controls are on left */ + /* This pref defaults to true on Mac and doesn't actually do anything on other platforms. So if your system has window controls on LEFT side you can set the pref to true */ + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 72px; + } + + :root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar { + border-inline-start-width: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + + :root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container:last-child, + :root[sizemode="fullscreen"] #window-controls { + right: unset; + } + } + /*= Menubar - Always on top ==================================================*/ + @supports -moz-bool-pref("userChrome.tab.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. */ + :root { + /* height if native titlebar is enabled, assumes empty menubar */ + --uc-menubar-height: 20px; + --uc-menubar-padding: 1px; + /* FF's menubar padding */ + --uc-menubar-container-height: calc(var(--uc-menubar-height) - (2 * var(--uc-menubar-padding))); + } + + :root[tabsintitlebar] { + /* height when native titlebar is disabled, more roomy so can fit buttons etc. */ + --uc-menubar-height: 30px; + } + + /* 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; + padding-top: calc(var(--uc-menubar-height) + var(--uc-titlebar-padding)) !important; + } + + :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; + } + + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + height: var(--uc-menubar-container-height); + } + + :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 - Connect to window ==============================================*/ +@supports -moz-bool-pref("userChrome.tab.connect_to_window") { + .tab-background { + border-radius: var(--tab-border-radius) var(--tab-border-radius) 0px 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; + } + + #TabsToolbar { + overflow: hidden; + /* Prevent toolbar area over */ + } + + /* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ + #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { + z-index: 0 !important; + } +} +/*= Selected Tab =============================================================*/ +/*= 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; + } +} +/*= Multi Selected Color - More Contrast =====================================*/ +@supports -moz-bool-pref("userChrome.tab.multi_selected") { + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]):-moz-lwtheme { + background-image: linear-gradient(var(--toolbar-bgcolor, transparent), var(--toolbar-bgcolor, transparent)), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; + } + + .tab-background[multiselected="true"]:not([selected="true"]) > .tab-loading-burst:not([bursting]) { + background: color-mix(in srgb, currentColor 65%, transparent); + opacity: 0.3; + } + + #TabsToolbar[brighttext] + .tab-background[multiselected="true"]:not([selected="true"]) + > .tab-loading-burst:not([bursting]) { + opacity: 0.15; + } + + @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[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[visuallyselected="true"]:not(:focus) + > .tab-stack + > .tab-background:-moz-lwtheme { + /* Origina: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) + Bright: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ + box-shadow: 0 0 1px var(--toolbar-color) !important; + } + + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[multiselected]:not([visuallyselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + box-shadow: 0 0 1px color-mix(in srgb, var(--toolbar-color) 80%, transparent) !important; + } + + /* Consider 0 0 4px rgba(128,128,142,0.9) -> 0 0 4px rgba(0,0,0,.4) new default */ + #TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tab-line-color, var(--lwt-tab-line-color, rgba(128, 128, 142, 0.9))), + 0 0 4px rgba(128, 128, 142, 0.5) !important; + } + + #TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + box-shadow: 0 0 1px var(--tab-line-color, var(--lwt-tab-line-color, rgba(128, 128, 142, 0.9))) !important; + } + + /* 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 { + box-shadow: 0 0 0 1px + var(--tab-line-color, var(--lwt-tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9)))), + 0 0 4px rgba(128, 128, 142, 0.5) !important; + } + + :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 { + box-shadow: 0 0 0 1px + var(--tab-line-color, var(--lwt-tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9)))) !important; + } +} +/*= Selected Tab - Bottom Rounded Corner =====================================*/ +@supports -moz-bool-pref("userChrome.tab.bottom_rounded_corner") { + #tabbrowser-tabs { + --tab-corner-rounding: 3px; + /* 10px looks about like chromium - 17px looks close to Australis tabs */ + --tab-corner-padding: 0px; + --tab-corner-position: calc(var(--tab-corner-padding) - var(--tab-corner-rounding)); + } + + :root:not([customizing="true"]) tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) tab[visuallyselected] > stack::after { + content: "" !important; + /* Box */ + display: block !important; + position: absolute !important; + z-index: 1 !important; + /* Shape */ + width: var(--tab-corner-rounding) !important; + height: 100% !important; + /* Color */ + fill: var(--toolbar-bgcolor) !important; + stroke: var(--tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9))) !important; + -moz-context-properties: fill, stroke !important; + /* Image */ + background-size: var(--tab-corner-rounding); + background-repeat: no-repeat; + background-position-y: bottom; + } + + :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]) + tab[visuallyselected] + > stack:-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]) + tab[visuallyselected] + > stack:-moz-lwtheme::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; + } + + tab[visuallyselected] > stack::before { + left: var(--tab-corner-position) !important; + background-image: url("../icons/tab-bottom-corner-left.svg"); + } + + tab[visuallyselected] > stack::after { + left: auto; + right: var(--tab-corner-position); + background-image: url("../icons/tab-bottom-corner-right.svg"); + } + + @media (-moz-gtk-csd-available) { + /* Fill color for GTK */ + :root:not([customizing="true"]):not([lwtheme="true"]) tab[visuallyselected] > stack::before, + :root:not([customizing="true"]):not([lwtheme="true"]) tab[visuallyselected] > stack::after { + /* As GTK Toolbar's background-color + backround-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, white 15%, -moz-dialog) !important; + stroke: transparent !important; + } + + :root:not([customizing="true"]):not([lwtheme="true"]) + #TabsToolbar[brighttext] + tab[visuallyselected] + > stack::before, + :root:not([customizing="true"]):not([lwtheme="true"]) + #TabsToolbar[brighttext] + tab[visuallyselected] + > stack::after { + stroke: transparent !important; + } + } + @supports not -moz-bool-pref("userChrome.tab.color_like_toolbar") { + :root:not([customizing="true"]) tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) tab[visuallyselected] > stack::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; + } + } +} +/*= Selected Tab - Photon like contextline ===================================*/ +@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") { + :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 */ + } + } + .tab-context-line { + 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, #0a84ff)) !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 identitiy 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_separtor") { + @supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-arrowscrollbox { + position: absolute; + } + + .tab-background::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(-2.5px) translateY(calc(-50% + 1px)); + } + @supports -moz-bool-pref("userChrome.compatibility.dynamic_separator") { + .tab-background::before, + #tabs-newtab-button::before { + background-color: var(--tabs-border-color); + } + } + } + @supports not -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + .tab-background::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover)[last-visible-tab] + .tab-background::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-background::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover)[last-visible-tab] + .tab-background::after { + background-color: var(--tabs-border-color); + } + } + + .tab-background::before { + transform: translateX(-2.5px) translateY(calc(-50% + 1px)) !important; + } + + .tabbrowser-tab[last-visible-tab] .tab-background::after { + right: 0; + transform: translateX(1.5px) translateY(calc(-50% + 1px)) !important; + } + } + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-child) .tab-background::before { + opacity: var(--tab-separator-opacity); + } + + @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[first-visible-unpinned-tab] .tab-background::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover)[last-visible-tab] + .tab-background::after { + opacity: var(--tab-separator-opacity); + } + } + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab[first-visible-unpinned-tab]:is([visuallyselected], [multiselected], :hover) + .tab-background::before, + #navigator-toolbox:not([movingtab]) + #tabbrowser-arrowscrollbox[overflowing] + tab.tabbrowser-tab[first-visible-unpinned-tab] + .tab-background::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-background::before, + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + ~ .tabbrowser-tab[afterhovered] + .tab-background::before, + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab[last-visible-tab]:is([visuallyselected], [multiselected], :hover) + ~ #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-background::before { + opacity: 0 !important; + } + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + .tab-background::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-visible-tab] + .tab-background::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-visible-tab] { + margin-inline-end: 1px !important; + } +} +/*= Unselected Tab - Static Separator ========================================*/ +@supports -moz-bool-pref("userChrome.tab.static_separator") { + .tabbrowser-tab[first-visible-tab="true"] .tab-background::before, + .tab-background::after { + content: ""; + } + + .tab-background::before, + .tab-background::after { + /* Box Model */ + display: block; + position: absolute; + /* Position */ + top: 50%; + transform: translateY(calc(-50% + 1px)) !important; + /* Bar shape */ + width: 0px; + height: 100%; + /* Bar Color */ + opacity: 0.3; + border-right: 1px solid var(--lwt-background-tab-separator-color, currentColor) !important; + } + + .tab-background::after { + right: 0; + } + + @supports -moz-bool-pref("userChrome.tab.static_separator.selected_accent") { + .tabbrowser-tab[visuallyselected] .tab-background::before, + .tabbrowser-tab[visuallyselected] .tab-background::after, + .tabbrowser-tab[beforeselected-visible] .tab-background::after { + --lwt-background-tab-separator-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-background::before, + .tabbrowser-tab[visuallyselected] .tab-background::after, + .tabbrowser-tab[beforeselected-visible] .tab-background::after { + opacity: 0; + } + } + + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + .tab-background::before, + .tab-background::after { + transition: opacity 0.2s var(--animation-easing-function); + /* cubic-bezier(.07, .95, 0, 1) */ + } + } +} +/*= New tab button ============================================================*/ +/*= New tab button - Looks like tab ==========================================*/ +@supports -moz-bool-pref("userChrome.tab.newtab_button_like_tab") { + #tabs-newtab-button { + /* Original: + margin: 0 0 var(--tabs-navbar-shadow-size) !important + => Can't ovrride style. Therefore, we should approach it by bypass. + */ + --tabs-navbar-shadow-size: -1px; + /* Original: 1px */ + --tabs-navbar-original-shadow-size: 1px; + --tab-corner-rounding: 4px; + /* Hardcorded */ + /* Size */ + -moz-box-align: stretch !important; + padding-top: var(--tab-block-margin) !important; + /* Corner Rounding Image */ + --newtab-position: calc((var(--tab-corner-rounding) / 2) * -1); + background-image: url("../icons/tab-bottom-corner-left.svg"), url("../icons/tab-bottom-corner-right.svg"); + background-repeat: no-repeat; + background-position: left var(--newtab-position) bottom var(--tabs-navbar-original-shadow-size), + right var(--newtab-position) bottom var(--tabs-navbar-original-shadow-size); + background-size: var(--tab-corner-rounding); + /* Corner Rounding Color */ + fill: transparent !important; + -moz-context-properties: fill !important; + } + + /* Corner Rounding Color */ + #tabs-newtab-button:hover { + fill: var(--toolbarbutton-hover-background) !important; + } + + #tabs-newtab-button:hover:active { + fill: var(--toolbarbutton-active-background) !important; + } + + @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, -moz-accent-color-foreground 10%, transparent) !important; + /* Hardcorded 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; + /* Hardcorded for compatibility */ + } + } + /* '+'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(--tabs-navbar-original-shadow-size)) !important; + -moz-context-properties: fill, fill-opacity; + fill: var(--toolbarbutton-icon-fill); + fill-opacity: var(--toolbarbutton-icon-fill-opacity); + } +} +/*= New tab button - Smaller button ==========================================*/ +@supports -moz-bool-pref("userChrome.tab.newtab_button_smaller") { + #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 1px; + /* Origianl: calc((var(--tab-min-height) - 16px) / 2) = 10px */ + --toolbarbutton-inner-padding: 6px; + } + + :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + --toolbarbutton-inner-padding: 4px; + /* Photon: 6px */ + } + + :root[uidensity="touch"] #tabs-newtab-button > .toolbarbutton-icon { + --toolbarbutton-inner-padding: 9px; + /* Photon: 9px */ + } +} +/*= 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); + } + + :root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 2px; + } + + :root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 1px; + } +} +/*= Unloaded Tab - Contents Opacity ===========================================*/ +@supports -moz-bool-pref("userChrome.tab.unloaded") { + #tabbrowser-tabs .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-tabs[closebuttons="activetab"] .tab-label-container[textoverflow][labeldirection="ltr"]:not([pinned]), + #tabbrowser-tabs[closebuttons="activetab"] + .tab-label-container[textoverflow]:not([labeldirection]):-moz-locale-dir(ltr):not([pinned]) { + mask-image: linear-gradient(to right, black 70%, transparent) !important; + } + + #tabbrowser-tabs[closebuttons="activetab"] .tab-label-container[textoverflow][labeldirection="rtl"]:not([pinned]), + #tabbrowser-tabs[closebuttons="activetab"] + .tab-label-container[textoverflow]:not([labeldirection]):-moz-locale-dir(rtl):not([pinned]) { + mask-image: linear-gradient(to left, black 70%, transparent) !important; + } +} +/** 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: -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.always") { + .tabbrowser-tab:not([visuallyselected]) .tab-close-button { + visibility: collapse !important; + opacity: 0; + } + + .tabbrowser-tab:hover .tab-close-button { + visibility: visible !important; + opacity: 1; + } + } + /* Animate */ + @media (prefers-reduced-motion: no-preference) { + /* Fade out */ + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([visuallyselected]) .tab-close-button { + transition: opacity 0.1s var(--animation-easing-function) !important; + } + + /* Fade in */ + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:hover .tab-close-button { + transition: opacity 0.25s var(--animation-easing-function) !important; + } + + @supports -moz-bool-pref("userChrome.tab.close_button_at_hover.always") { + /* Fade out */ + .tabbrowser-tab:not([visuallyselected]) .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") { + #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: -moz-box !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: -moz-box !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: -moz-box !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: -moz-inline-box !important; + } +} +/*= Sound Tab ================================================================*/ +/*= Sound Tab - Hide Label ===================================================*/ +@supports -moz-bool-pref("userChrome.tab.sound_hide_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: -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) */ + .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(-0.5px) translateY(-6px); + /* 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; + } + + .tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label { + transform: translateX(4px); + } + + /* 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 > .tab-label { + 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:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) { + transform: translateX(-0.5px) 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([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label { + transform: translateX(3px); + } + } + /* 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(-0.5px) 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: -moz-inline-box !important; + width: 14px; + height: 14px; + background-size: 14px; + -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 { + -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.tab.photon_like_contextline") { + .tab-context-line { + display: none; + } + } + .tabbrowser-tab { + --container-position-y: 11px; + } + + :root[uidensity="compact"] .tabbrowser-tab { + --container-position-y: 10px; + } + + :root[uidensity="touch"] .tabbrowser-tab { + --container-position-y: 12px; + } + + .tab-content:not([titlechanged])::before { + /* Box Model */ + content: ""; + display: block; + position: absolute !important; + transform: translate(9px, var(--container-position-y)) !important; + /* 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) !important; + transition-property: width, opacity; + } + } + /* Pinned Tab */ + .tabbrowser-tab[pinned] .tab-content::before { + transform: translateY(var(--container-position-y)) !important; + width: 16px; + } + + @supports -moz-bool-pref("userChrome.tab.close_button_at_pinned") { + .tabbrowser-tab[pinned][visuallyselected]:not([busy]):hover .tab-content::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: 32%, 50%, 70% !important; + } + + :root[uidensity="compact"] + .tabbrowser-tab:is([image], [pinned])[usercontextid] + > .tab-stack + > .tab-content[attention]:not([selected="true"]), + :root[uidensity="compact"] + .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); */ + background-position-x: 30%, 50%, 70% !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 calc(0.5px + 50% + var(--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"]) { + background-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px) !important; + } + + :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"]) { + background-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px) !important; + } +} +/*= Crashed Tab - Don't show Favicons ========================================*/ +@supports -moz-bool-pref("userChrome.tab.crashed") { + .tab-icon-image[crashed] { + display: none !important; + } +} +/*= Tab Label - Make to Center ===============================================*/ +@supports -moz-bool-pref("userChrome.tab.centered_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: hidden; + } + + .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:not([textoverflow]) { + margin-inline-end: 19px; + } + } +} +/** Url View UI ***************************************************************/ +/*= 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-bottom: 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 - Always show page actions ======================================*/ +@supports -moz-bool-pref("userChrome.urlView.always_show_page_actions") { + #pageActionButton { + display: block !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-padding-inline: calc(var(--arrowpanel-menuitem-padding-block) + 8px) !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 backgorund */ + :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 */ + } +} +/** 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; + } + + /* Boomark */ + :-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; + } + + /* Boomark */ + :-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 !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: -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 *************************************************************/ +@supports -moz-bool-pref("userChrome.icon.panel") { + /*= Padding ==================================================================*/ + :root { + --arrowpanel-menuicon-padding: 8px; + --arrowpanel-menublank-padding: calc( + var(--arrowpanel-menuicon-padding) * 2 + var(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 -moz-bool-pref("userChrome.icon.panel_photon") or -moz-bool-pref("userChrome.icon.panel_sparse") { + :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 > .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; + } + + #appMenu-multiView .subviewbutton::before, + #appMenu-proton-update-banner::before { + display: -moz-inline-box; + margin-inline-end: var(--arrowpanel-menuicon-padding); + width: 16px; + height: 16px; + } + + #appMenu-proton-update-banner { + margin-bottom: 2px !important; + } + + #appMenu-proton-update-banner::before { + margin-inline-start: var(--arrowpanel-menuitem-padding-inline) !important; + } + + #appMenu-fxa-status2, + #appMenu-zoom-controls2 { + align-items: center; + padding-top: var(--arrowpanel-menuimageblank-padding-block) !important; + padding-bottom: var(--arrowpanel-menuimageblank-padding-block) !important; + } + + #appMenu-zoom-controls2::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"]) > .toolbarbutton-text { + margin-left: 16px !important; + } + + /* Icons Color */ + #appMenu-multiView .subviewbutton::before, + #appMenu-proton-update-banner::before, + #downloadsHistory .button-icon, + .subviewbutton > image { + fill: currentColor !important; + fill-opacity: var(--toolbarbutton-icon-fill-opacity) !important; + -moz-context-properties: fill !important; + } + + #appMenu-zoomReduce-button2 > .toolbarbutton-icon, + #appMenu-zoomEnlarge-button2 > .toolbarbutton-icon { + stroke: var(--zoom-controls-bgcolor, var(--button-bgcolor, ButtonFace)) !important; + -moz-context-properties: fill, stroke !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: -moz-inline-box !important; + margin-inline-start: var(--arrowpanel-menuicon-padding); + -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 { + padding-inline-start: var(--arrowpanel-menuimageblank-padding-horizontal) !important; + } + } + @supports -moz-bool-pref("userChrome.icon.panel_sparse") { + #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 { + 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("chrome://browser/skin/save.svg"); + } + + #appMenu-find-button2 { + list-style-image: url("chrome://global/skin/icons/search-glass.svg"); + } + + #appMenu-zoom-controls2::before { + content: url("../icons/screenshot.svg"); + } + } + #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: -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 { + -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; + -moz-box-ordinal-group: 1 !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("chrome://browser/skin/fxa/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; + 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: -moz-box; + border-bottom: 1px solid var(--panel-separator-color); + margin: var(--panel-separator-margin); + padding: 0; + } + + #PanelUI-fxa-menu > :first-child { + -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"); + } + + #appMenuRestoreSession { + 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 Toolbaox - */ + #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_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: -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/password-hide.svg"); + } + + #allTabsMenu-containerTabsView .subviewbutton:last-child { + list-style-image: url("chrome://global/skin/icons/settings.svg"); + } + + /*= BMB_bookmarksPopup =======================================================*/ + #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: -moz-box !important; + } + } + /*= 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: 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 { + list-style-image: url("chrome://global/skin/icons/info.svg"); + } + + #sidebar-switcher-bookmarks { + list-style-image: url("chrome://browser/skin/bookmark.svg"); + } + + #sidebar-switcher-history { + list-style-image: url("chrome://browser/skin/history.svg"); + } + + #sidebar-switcher-tabs { + list-style-image: url("chrome://browser/skin/tab.svg"); + } + + #sidebar-reverse-position { + list-style-image: url("chrome://browser/skin/sidebars-right.svg"); + } + + #sidebar-box[positionend="true"] #sidebar-reverse-position { + /* Can't apply this. shadow dom */ + list-style-image: url("chrome://browser/skin/sidebars.svg"); + } + + #sidebarMenu-popup > .subviewbutton[data-l10n-id="sidebar-menu-close"] { + list-style-image: url("chrome://global/skin/icons/close.svg"); + } +} +/** Menu - Icons Layout *******************************************************/ +@supports -moz-bool-pref("userChrome.icon.menu") { + menupopup menuitem:not([type="checkbox"], [type="radio"]), + menupopup menu:not([type="checkbox"], [type="radio"]), + #main-menubar > menu { + -moz-appearance: none !important; + /* Linux: menulist */ + } + + /* Icon */ + :not(menu, #ContentSelectDropdown) + > menupopup + > menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + :not(menu, #ContentSelectDropdown) + > menupopup + > menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #main-menubar > menu, + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage { + /* Color */ + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); + } + + /* For native context menus on macOS */ + @supports -moz-bool-pref("widget.macos.native-context-menus") { + :not(menu, #ContentSelectDropdown) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; + } + } + /* Padding */ + :root { + --context-menu-background-padding-default: 5px; + --context-menu-background-padding: var(--context-menu-background-padding-default); + } + + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem:not(.menuitem-iconic), + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: var(--context-menu-background-padding) !important; + } + + /* Menubar */ + @supports -moz-bool-pref("userChrome.icon.global_menubar") { + #main-menubar > menu { + background-position: left 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: left 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 - 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) { + /* Checkbox */ + :root { + --context-menu-text-padding: calc(var(--menu-padding) + var(--context-menu-background-padding-default) + 16px); + } + + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem[type="checkbox"]:not([checked="true"]) + > .menu-iconic-left { + padding-inline-start: var(--context-menu-text-padding); + } + } + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + :root { + --context-menu-background-padding-default: 2px; + } + } + @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { + :root { + --context-menu-background-padding-default: 3px; + } + } + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: 24px; + /* 16px + 8px */ + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + } + + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + /* Padding - Linux */ + @media (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding-default: 6px; + } + + #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 + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), + #blockedPopupDontShowMessage { + padding-inline-end: var(--context-menu-background-padding) !important; + } + + /* text position */ + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem > .menu-text, + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu > menu-text { + padding-inline-start: var(--context-menu-mac-padding) !important; + } + + /* Checkbox menuitem, None iconic menu */ + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem[type="checkbox"], + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic) { + padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; + } + + /* Global Menu */ + /* Disabled. some icons not appear + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")); + } + */ + } + /*= Bookmark Menu - Layout ===================================================*/ + /* #goPopup(Legacy of historyMenuPoup), #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 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; + } + + /* Bookmark Popup - None icon menu */ + #BMB_bookmarksPopup, + #PersonalToolbar { + --arrowpanel-menuicon-padding: 9px; + } + + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) 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-padding-inline) !important; + background-position: left calc(var(--arrowpanel-menuicon-padding)) center !important; + } + + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic) { + padding-inline-start: calc( + var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding) + 2px + ) !important; + } + + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + padding-inline-start: var(--arrowpanel-menuicon-padding) !important; + } + } + /* Windows */ + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) 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-padding-inline) !important; + padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding)) !important; + background-position: left calc(var(--arrowpanel-menuicon-padding)) center !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 { + padding-inline-start: 1px !important; + } + + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) 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(--arrowpanel-menuitem-padding-inline) + 1px) !important; + } + } + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + /* Bookmark Popup - As Arrow Panel */ + #PersonalToolbar menupopup menuitem, + #PersonalToolbar menupopup menu { + padding-inline: calc(var(--arrowpanel-menuicon-padding) + var(--arrowpanel-menuitem-padding-inline)) !important; + } + + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic) { + padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 3px) !important; + } + } + @supports -moz-bool-pref("userChrome.icon.context_menu") { + /** Context Menu - Icons ******************************************************/ + /*= tabContextMenu ===========================================================*/ + #context_openANewTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); + } + + #context_reloadTab, + #context_reloadSelectedTabs { + --menuitem-image: url("../icons/reload.svg"); + } + + #context_toggleMuteTab, + #context_toggleMuteSelectedTabs { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-muted-small.svg"); + } + + #context_toggleMuteTab[muted], + #context_toggleMuteSelectedTabs[muted] { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); + } + + #context_pinTab, + #context_pinSelectedTabs { + --menuitem-image: url("../icons/pin-tab.svg"); + } + + #context_unpinTab, + #context_unpinSelectedTabs { + --menuitem-image: url("../icons/unpin-tab.svg"); + } + + #context_duplicateTab, + #context_duplicateTabs { + --menuitem-image: url("../icons/notebook-subsection.svg"); + } + + #context_bookmarkTab, + #context_bookmarkSelectedTabs { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); + } + + #context_moveTabOptions { + --menuitem-image: url("../icons/arrow-swap.svg"); + } + + #context_sendTabToDevice { + --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"); + } + + #context_reopenInContainer { + --menuitem-image: url("../icons/container-openin-16.svg"); + } + + #context_selectAllTabs { + --menuitem-image: url("../icons/tab-multiple.svg"); + } + + #context_closeTab { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } + + #context_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 { + --menuitem-image: url("../icons/password-hide.svg"); + } + + .customize-context-removeFromToolbar { + --menuitem-image: url("chrome://global/skin/icons/delete.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"); + } + + /*= 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/code.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("chrome://browser/skin/save.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("chrome://browser/skin/save.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"); + } + + #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-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 */ + } + + #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"); + } + } + /*= 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\: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_new\:folder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + #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"); + } + + /*= 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 */ + } + + #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 */ + } + + /*= 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("chrome://browser/skin/open.svg"); + } + + .downloadAlwaysUseSystemDefaultMenuItem { + /* checkbox */ + } + + .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[command="downloadsCmd_openReferrer"] { + --menuitem-image: url("../icons/link-square.svg"); + } + + #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"); + } + + /*= 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"); + } + + #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"); + } + + #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, Libray's Searchbar, Page Info */ + .textbox-contextmenu > menuitem[data-l10n-id="text-action-undo"] { + --menuitem-image: url("../icons/undo.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 */ + menuitem.searchbar-clear-history { + --menuitem-image: url("chrome://browser/skin/forget.svg"); + } + + /*= context_sendTabToDevicePopupMenu =========================================*/ + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="phone"] { + --menuitem-image: url("chrome://browser/skin/device-phone.svg"); + } + + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="tablet"] { + --menuitem-image: url("chrome://browser/skin/device-tablet.svg"); + } + + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="desktop"] { + --menuitem-image: url("chrome://browser/skin/device-desktop.svg"); + } + + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="tv"] { + --menuitem-image: url("chrome://browser/skin/device-tv.svg"); + } + + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="vr"] { + --menuitem-image: url("chrome://browser/skin/device-vr.svg"); + } + + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType=""] { + --menuitem-image: url("../icons/send-to-device.svg"); + } + + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target:not([clientType]) { + --menuitem-image: url("chrome://global/skin/icons/settings.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_newNavigator { + --menuitem-image: url("chrome://browser/skin/window.svg"); + } + + #menu_newPrivateWindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); + } + + #menu_openFile { + --menuitem-image: url("chrome://browser/skin/open.svg"); + } + + #menu_savePage { + --menuitem-image: url("chrome://browser/skin/save.svg"); + } + + #menu_sendLink { + --menuitem-image: url("chrome://browser/skin/mail.svg"); + } + + #menu_print { + --menuitem-image: url("chrome://global/skin/icons/print.svg"); + } + + #menu_importFromAnotherBrowser { + --menuitem-image: url("chrome://browser/skin/import.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"); + } + + #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: url("chrome://browser/skin/sidebars.svg"); + } + + #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"); + } + + #fullScreenItem { + --menuitem-image: url("chrome://browser/skin/fullscreen.svg"); + } + + #menu_readerModeItem { + --menuitem-image: url("chrome://browser/skin/reader-mode.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"); + } + + /* viewFullZoomMenu sub menu */ + #menu_zoomEnlarge { + --menuitem-image: url("chrome://browser/skin/add-circle-fill.svg"); + } + + #menu_zoomReduce { + --menuitem-image: url("chrome://browser/skin/subtract-circle-fill.svg"); + } + + #menu_zoomReset { + --menuitem-image: url("../icons/resize.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"); + } + + #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_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"); + } + + #webDeveloperMenu, + #browserToolsMenu { + --menuitem-image: url("../icons/developer.svg"); + } + + #menu_pageInfo { + --menuitem-image: url("../icons/document-endnote.svg"); + } + + /* menuWebDeveloperPopup sub menu */ + #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_pageSource { + --menuitem-image: url("../icons/document-search.svg"); + } + + #extensionsForDevelopers { + --menuitem-image: url("chrome://devtools/skin/images/debugging-addons.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"); + } + + #aboutName { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); + } + } +} +/** Libray Menu ***************************************************************/ +@supports -moz-bool-pref("userChrome.icon.library") { + @supports -moz-bool-pref("userChrome.icon.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"); + } + + #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("chrome://devtools/skin/images/datastore.svg"); + } + + #fileImport { + --menuitem-image: url("chrome://browser/skin/save.svg"); + } + + #fileExport { + --menuitem-image: url("chrome://browser/skin/open.svg"); + } + + #browserImport { + --menuitem-image: url("chrome://browser/skin/import.svg"); + } + } +} +/*= 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"); + } + + menuitem.privatetab-icon { + --menuitem-image: url("../icons/private-favicon.svg"); + } +} +@supports -moz-bool-pref("userChrome.theme.fully_color") { + /* 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); + } +} +/*= 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"); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/css/leptonContent.css b/arch-config/.mozilla/firefox/default-release/chrome/css/leptonContent.css new file mode 100644 index 00000000..371e4458 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/css/leptonContent.css @@ -0,0 +1,2912 @@ +@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +@namespace html url("http://www.w3.org/1999/xhtml"); +/** Video player **************************************************************/ +/* Control Bar Size */ +@supports -moz-bool-pref("userContent.player.size") { + #controlsContainer { + --button-size: 32px !important; + /* Original: 30px */ + --controlBar-height: 40px; + /* Original: 40px, Replace to this value */ + } + + #controlsContainer .touch { + --button-size: 48px !important; + /* Original: 40px */ + --controlBar-height: 52px; + /* Original: 52px */ + } + + .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 */ + } + + #controlsContainer .controlBar { + height: var(--controlBar-height) !important; + /* Original: 40px */ + } + + .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); */ + } + + video { + --duration-color: #eee; + --media-background: linear-gradient(transparent, rgba(26, 26, 26, 0.85)); + } + + @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); + } + } + @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 - 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-inner-wrapper input { + transition: 1s var(--animation-easing-function); + transition-property: border-color, box-shadow; + } + + .search-wrapper .search-inner-wrapper:active input, + .search-wrapper input: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 { + 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.animate") { + /* 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: -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; + } + } +} +/** Error Page - Restore illustrations ****************************************/ +@supports -moz-bool-pref("userContent.page.illustration") { + @-moz-document url-prefix("about:neterror"), + url("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml"), + url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") + { + /* Illustrations Position */ + #errorPageContainer, + .description-wrapper { + min-height: 300px; + background-position: left center; + background-repeat: no-repeat; + background-size: 38%; + } + + #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=netTimeout"), + url-prefix("about:neterror?e=netReset"), + url-prefix("about:neterror?e=netOffline"), + url("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml") + { + #errorPageContainer { + background-image: url("../icons/error-connection-failure.svg"); + } + } + @-moz-document url-prefix("about:neterror?e=dnsNotFound") { + #errorPageContainer { + background-image: url("../icons/error-server-not-found.svg"); + } + } + @-moz-document url-prefix("about:neterror?e=malformedURI") { + #errorPageContainer { + background-image: url("chrome://browser/skin/illustrations/error-malformed-url.svg"); + } + } + @-moz-document url-prefix("about:neterror?e=clockSkewError"), + url-prefix("about:neterror?e=nssFailure") { + #errorPageContainer { + background-image: url("../icons/blue-berror.svg"); + background-size: 18.5em; + } + } + @-moz-document url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") + { + .description-wrapper { + background-image: 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; + } + } + } +} +/** Fully Dark Mode ***********************************************************/ +/*= Fully Dark Mode - Dark Mode Colors =======================================*/ +@supports -moz-bool-pref("userContent.page.proton_color") { + @-moz-document url-prefix("about:"), + 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:///)|(chrome://)).*/$") + { + /*= 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 radiobuttons */ + --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); + } + + @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); + } + } + @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: -moz-accent-color-foreground !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:not(.developer-hub):not(.statistics), + main[aria-label="Content"] { + color: var(--in-content-page-color) !important; + background: var(--in-content-page-background) !important; + } + + /* Text */ + .AutoSearchInput-query, + .AutoSearchInput-suggestions-list, + .Page-content h1, + .Page-content h2, + .SearchResult-link, + .Home-SubjectShelf-link:link, + .Home-SubjectShelf-link:visited, + .DropdownMenuItem-link a, + .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), + .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, + .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 { + color: var(--in-content-primary-button-text-color) !important; + background: var(--in-content-primary-button-background) !important; + } + + .Select, + .Button--neutral, + .Button--neutral:link, + .Notice-button, + .AMInstallButton .AMInstallButton-loading-button { + background-color: var(--in-content-button-background) !important; + } + + .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 { + background: var(--in-content-primary-button-background-hover) !important; + } + + .ShowMoreCard-contents::after { + background: linear-gradient(rgba(255, 255, 255, 0), var(--in-content-table-background)) !important; + } + + .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; + } + + .AutoSearchInput-query { + border: 1px solid var(--in-content-table-background) !important; + } + + .AutoSearchInput-query:is(:hover, :focus) { + border-color: var(--in-content-primary-button-background) !important; + } + + .AutoSearchInput-query:focus { + 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, + .DevHub-submit-addon, + .DevHub-get-involved, + .DevHub-MyAddons > * { + background: var(--in-content-page-background) !important; + color: var(--in-content-page-color) !important; + } + + .DevHub-Footer, + .DevHub-callout-box { + background: var(--in-content-box-background) !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-Banner a, + .DevHub-Footer a, + .DevHub-MyAddons-list a, + .DevHub-MyAddons-item-buttons-all { + color: var(--in-content-link-color) !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, + .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"], + header, + .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; + } + } + } +} +/** Fully Proton Mode *********************************************************/ +@supports -moz-bool-pref("userContent.page.proton") { + /*= Common contents ==========================================================*/ + /*= abouts' common ===========================================================*/ + @-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; + } + + 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 */ + } + + 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 antialising 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 antialising 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:") { + xul|search-textbox:hover { + border-color: var(--in-content-focus-outline-color) !important; + transition: border-color 0.5s var(--animation-easing-function); + } + } + @-moz-document url-prefix("about:config") { + #about-config-search: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; + } + } + /*= 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; + } + + /* Boomark */ + :-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; + } + + /* Boomark */ + :-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 !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: -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; + } + } + /*= Context Menu ===========================================================*/ + @supports -moz-bool-pref("userChrome.icon.context_menu") { + menupopup menuitem:not([type="checkbox"], [type="radio"]), + menupopup menu:not([type="checkbox"], [type="radio"]), + #main-menubar > menu { + -moz-appearance: none !important; + /* Linux: menulist */ + } + + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + /* Color */ + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); + } + + /* For native context menus on macOS */ + @supports -moz-bool-pref("widget.macos.native-context-menus") { + :not(menu, #ContentSelectDropdown) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist) { + list-style-image: var(--menuitem-image) !important; + } + } + /* Padding */ + :root { + --context-menu-background-padding-default: 5px; + --context-menu-background-padding: var(--context-menu-background-padding-default); + } + + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: var(--context-menu-background-padding) !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) { + /* Checkbox */ + :root { + --context-menu-text-padding: calc( + var(--menu-padding) + var(--context-menu-background-padding-default) + 16px + ); + } + + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem[type="checkbox"][checked="false"] + > .menu-iconic-left { + padding-inline-start: var(--context-menu-text-padding); + } + } + @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { + :root { + --context-menu-background-padding-default: 2px; + } + } + @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { + :root { + --context-menu-background-padding-default: 3px; + } + } + @media (-moz-os-version: windows-win7), + (-moz-platform: windows-win7), + (-moz-os-version: windows-win8), + (-moz-platform: windows-win8) { + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } + } + @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: 24px; + /* 16px + 8px */ + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + } + + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } + } + /* Padding - Linux */ + @media (-moz-gtk-csd-available) { + :root { + --context-menu-background-padding-default: 6px; + } + } + /* 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 */ + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) { + padding-inline-end: var(--context-menu-background-padding) !important; + } + + /* text position */ + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]) > .menu-text, + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) > .menu-text { + padding-inline-start: var(--context-menu-mac-padding) !important; + } + + /* Checkbox menuitem, None iconic menu */ + #placesContext menuitem[type="checkbox"], + #placesContext menu:not(.menu-iconic) { + padding-inline-start: calc( + var(--context-menu-background-padding) + var(--context-menu-mac-padding) + ) !important; + } + } + /* Icon lists */ + /*= 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\: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_new\:folder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + } + @supports -moz-bool-pref("userChrome.icon.library") { + #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"); + } + + /*= 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"); + } + + #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("chrome://devtools/skin/images/datastore.svg"); + } + + #fileImport { + --menuitem-image: url("chrome://browser/skin/save.svg"); + } + + #fileExport { + --menuitem-image: url("chrome://browser/skin/open.svg"); + } + + #browserImport { + --menuitem-image: url("chrome://browser/skin/import.svg"); + } + } + @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; + } + + #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; + border-radius: 4px !important; + padding-block: 5px !important; + padding-inline-start: 5px !important; + margin-inline-end: 2px !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; + } + + #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; + } + + /*- 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; + list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); + -moz-context-properties: fill !important; + fill: currentColor !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 { + list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); + } + + #editBookmarkPanelRows .expander-up > .button-box, + #editBookmarkPanelRows .expander-down > .button-box { + padding: 0 !important; + } + + #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; + } + + #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; + } + + #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; + padding: 0 !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 100% !important; + margin-block: 2px !important; + /* extend the vertical clicktarget */ + margin-inline: 0 6px !important; + background-color: var(--in-content-button-background) !important; + background-position: center !important; + flex-shrink: 0 !important; + /* avoid shrinking inside flex container */ + } + + 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"] > .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"])[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; + } + + menuitem[type="radio"][disabled="true"], + menuitem[type="checkbox"][disabled="true"] { + opacity: 0.5 !important; + } + + /*- Check Box ------------------------------------------------------------*/ + /* From checkbox.css */ + menuitem[type="checkbox"] { + appearance: none !important; + -moz-box-align: center !important; + margin: 0px 2px !important; + } + + menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + margin-inline-end: 2px !important; + } + + menuitem[type="checkbox"] > .menu-iconic-text { + margin: 1px 0 !important; + } + + menuitem[type="checkbox"][disabled="true"] { + opacity: 0.4 !important; + } + + menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + appearance: none !important; + color: var(--checkbox-border-color, ThreeDDarkShadow) !important; + background-color: var(--checkbox-unchecked-bgcolor, Field) !important; + border: 1px solid currentColor !important; + border-radius: 2px !important; + margin-inline-end: 6px !important; + } + + menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + height: 16px !important; + width: 16px !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, -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, -moz-accent-color 8%, Field) + ) !important; + } + + menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { + border-color: var(--checkbox-checked-border-color, transparent) !important; + background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !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, -moz-accent-color-foreground) !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !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%, -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%, -moz-accent-color) + ) !important; + } + + menuitem[type="checkbox"]:focus > .menu-iconic-left > .menu-iconic-icon { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + + @media (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, -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, -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, -moz-accent-color-foreground) !important; + fill: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; + } + } + /* From common.css */ + menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + margin-block: 2px !important; + } + + /*- Menu Separtor --------------------------------------------------------*/ + menuseparator { + appearance: none !important; + min-width: 2px; + min-height: 0; + border-top: 1px solid var(--in-content-box-border-color, ThreeDDarkShadow); + border-bottom: none; + margin: var(--panel-separator-margin, 6px); + padding: 0; + } + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/Omni_ja.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/Omni_ja.md new file mode 100644 index 00000000..e71753ec --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/Omni_ja.md @@ -0,0 +1,40 @@ +# Omni.ja + + +**Table of Contents** + +- [Basics](#basics) +- [Related Project](#related-project) +- [Related Source file](#related-source-file) + + + + +## Basics +**Related Docs** +- [UDN: omni.ja (formerly omni.jar)](https://udn.realityripple.com/docs/Mozilla/About_omni.ja_(formerly_omni.jar)) +- [Firefox 4: jar jar jar](https://web.archive.org/web/20161003115800/https://blog.mozilla.org/tglek/2010/09/14/firefox-4-jar-jar-jar/) +- [Firefox's Optimized Zip Format: Reading Zip Files Really Quickly](https://taras.glek.net/post/optimized-zip-format/) +- [How to Optimize or Deoptimize Firefox OMNI.JA File](https://www.raymond.cc/blog/edit-files-inside-firefox-4-omni-jar-to-auto-save-password/) + +**Explanation** + +Firefox achieve performance improvements by moving many of their internal parts from being standalone files or sets of JAR files into just one JAR file called `omni.ja`. +This reduces the amount of I/O needed to load the application. + +Chrome content, modules, non-binary components, and many other elements are packaged in an omni.jar file for each base directory. + +- `actors/`: [JSActors](https://firefox-source-docs.mozilla.org/dom/ipc/jsactors.html) related files. +- `chrome.manifest`: The [chrome manifest](https://udn.realityripple.com/docs/Mozilla/Chrome_Registration) file. +- `chrome/`: User interface files for the application +- `components/`: XPCOM components the application relies upon. +- `defaults/`: Default preference files. +- `modules/`: [JavaScript code modules](https://udn.realityripple.com/docs/Mozilla/JavaScript_code_modules). +- `res/`: Miscellaneous resource files. + +## Related Project +- https://github.com/SebastianSimon/firefox-omni-tweaks + +## Related Source file +- https://github.com/mozilla/gecko-dev/blob/de91f5ee41251779ff2973d24d195d116cb6ebd7/python/mozbuild/mozpack/packager/formats.py#L258-L359 +- https://github.com/humphd/mozilla-central-old/blob/9d4d9f265e24e6358c067ae1e300c1ce3227a91d/config/optimizejars.py diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/Preference.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/Preference.md new file mode 100644 index 00000000..acb63512 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/Preference.md @@ -0,0 +1,246 @@ +# Preference + + +**Table of Contents** + +- [Basics](#basics) +- [Default Config](#default-config) +- [User Config](#user-config) + * [about:config](#aboutconfig) + * [prefs.js](#prefsjs) + * [user.js](#userjs) +- [Auto Config](#auto-config) +- [Using with User Custom CSS](#using-with-user-custom-css) +- [Sync](#sync) +- [Related Source file](#related-source-file) + + + +## Basics +**Related Docs** +- [Firefox Source Docs: libpref](https://firefox-source-docs.mozilla.org/modules/libpref/index.html) + +**Key/Value** +- Key: + - Pref name + - Type: 8-bit string + - Convention is to use a dotted segmented form (Ex. `browser.cache.disk.enable`) +- Value: + - Type: bool, 32-bit ints, 8-bit C string + - When you need an float, use a string. (Ex. `general.smoothScroll.currentVelocityWeighting`: `"0.25"`) + +**Main Purpose** +- Feature enable/disable flags (Ex. `xpinstall.signatures.required`). +- User preferences (Ex. things set from `about:preferences`) +- Internal application parameters (Ex. `javascript.options.mem.nursery.max_kb`). +- Application data (Ex. `browser.onboarding.tour.onboarding-tour-addons.completed`, `services.sync.clients.lastSync`). +- Things that might need locking in an enterprise installation. + +**Preference file RFC** + +Key information on the sets that can be used in the configuration file. + +- `pref()`: Set default pref + - `sticky` attr: same as `sticky_pref()` + - `locked` attr: cannot change from default. +- `sticky_pref()`: Always logged even if the defaults match +- `user_pref()`: Set user pref + +The following is a method of operating the configuration file parser. +See [EBNF(Extended Backus-Naur form)](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) if you want to know about syntax. + +```ebnf + = * + = "(" "," ")" ";" + = "user_pref" | "pref" | "sticky_pref" // in default pref files + = "user_pref" // in user pref files + = + = | "true" | "false" | + = ? + = "+" | "-" + = [0-9]+ (and cannot be followed by [A-Za-z_]) + = + A single or double-quoted string, with the following escape sequences + allowed: \", \', \\, \n, \r, \xNN, \uNNNN, where \xNN gives a raw byte + value that is copied directly into an 8-bit string value, and \uNNNN + gives a UTF-16 code unit that is converted to UTF-8 before being copied + into an 8-bit string value. \x00 and \u0000 are disallowed because they + would cause C++ code handling such strings to misbehave. + = ("," )* // in default pref files + = // in user pref files + = "sticky" | "locked" // default pref files only +``` + +## Default Config +- [`modules/libpref/init/all.js`](https://github.com/mozilla/gecko-dev/blob/master/modules/libpref/init/all.js): all products +- [`browser/app/profile/firefox.js`](https://github.com/mozilla/gecko-dev/blob/master/browser/app/profile/firefox.js): only firefox deskstop + +In release builds these are all put into [`omni.ja`](./Omni_ja.md). + +## User Config +**Related Docs** +- [mozillaZine: Editing configuration](https://kb.mozillazine.org/Editing_configuration) +- [Support Mozilla: How to fix preferences that won't save](https://support.mozilla.org/en-US/kb/how-to-fix-preferences-wont-save) +- [Support Mozilla: Reset Firefox preferences to troubleshoot and fix problems](https://support.mozilla.org/en-US/kb/reset-preferences-fix-problems) +- [UDN: A brief guide to Mozilla preferences](https://udn.realityripple.com/docs/Mozilla/Preferences/A_brief_guide_to_Mozilla_preferences) + +**Restrictions** + +It can be defined using only `user_pref()`. + +> User pref file syntax is slightly more restrictive than default pref file syntax. In user pref files `user_pref` definitions are allowed but `pref` and `sticky_pref` definitions are not, and attributes (such as `locked`) are not allowed. + +**File Path** + +`prefs.js`, `user.js` is located in the profile directory. + +### about:config + +It is written to `prefs.js` in a way that can be set by the GUI. + +- [Support Mozilla: Configuration Editor for Firefox](https://support.mozilla.org/en-US/kb/about-config-editor-firefox) + +### prefs.js +**Related Docs** +- [mozillaZine: Prefs.js file](https://kb.mozillazine.org/Prefs.js_file) + +**Basics** +It exists in the profile directory, and is used to store settings that are changed from *defaults* or when users added *new settings*. + +In general, Do NOT edit `prefs.js` directly. + +### user.js +**Related Docs** +- [mozillaZine: User.js file](https://kb.mozillazine.org/User.js_file) + +**Restrictions** + +A `user.js` file can make certain preference settings more or less "permanent" in a specific profile. + +Once an entry for a preference setting exists in the `user.js` file, any change you make to that setting in the options and preference dialogs or via `about:config` will be lost when you restart your firefox because the `user.js` entry will override it. + +You'll have to first delete or edit the `user.js` file to remove the entries before the preferences can be changed in the application. + +**Example** + +```javascript +// user.js +user_pref("browser.cache.disk.enable", false); // Bool +user_pref("layout.css.prefers-color-scheme.content-override", 3); // Int +user_pref("general.smoothScroll.currentVelocityWeighting", "0.12"); // String +``` + +## Auto Config +**Related Docs** +- [Support Mozilla: Customizing Firefox Using AutoConfig](https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig) +- [What is Autoconfig Startup Scripting (AKA userChrome.js)?](https://www.userchrome.org/what-is-userchrome-js.html) +- [UDN: Gecko Chrome](https://udn.realityripple.com/docs/Mozilla/Gecko/Chrome) +- [UDN: JavaScript code modules](https://udn.realityripple.com/docs/Mozilla/JavaScript_code_modules) +- [UDN: Limitations of chrome scripts](https://udn.realityripple.com/docs/Mozilla/Firefox/Multiprocess_Leftovers/Limitations_of_chrome_scripts) + +**Basics** +Customizations that cannot be done with add-on and [`User Custom CSS`](./README.md#user-custom-css), such as adding browser UI elements directly or changing default behavior, must use `Auto Config`. + +**How to** +```javascript +pref("general.config.filename", "config.js"); // alternative to "firefox.cfg", for using highlight +pref("general.config.obscure_value", 0); +``` + +**Example** +```javascript +pref("general.config.filename", "config.js"); // alternative to "firefox.cfg", for using highlight +pref("general.config.obscure_value", 0); +``` + +## Using with User Custom CSS +**Related Docs** +- [MDN: @supports](https://developer.mozilla.org/en-US/docs/Web/CSS/@supports) +- [UDN: `CSS -moz-bool-pref() @supports function`](https://udn.realityripple.com/docs/Mozilla/Gecko/Chrome/CSS/-moz-bool-pref) + +**Restrictions** + +Please refer to [Doc: Restrictions.md](./Restrictions.md#supports)'s `@support`. + +**Example** + +Test each case by turning on/off the following settings. +- `userChrome.navBar.red` +- `userChrome.navBar.margin` + +```css +/* userChrome.css */ + +/* 1. If config is true */ +@supports -moz-bool-pref("userChrome.navBar.red") { + #nav-bar { + background-color: red !important; + } +} + +/* 2. When any one of the config is true */ +@supports -moz-bool-pref("userChrome.navBar.red") or -moz-bool-pref("userChrome.navBar.margin") { + #nav-bar { + background-color: red !important; + margin-block: 20px; + } +} + +/* 3. Multiple configs must all be satisfied */ +@supports -moz-bool-pref("userChrome.navBar.red") and -moz-bool-pref("userChrome.navBar.margin") { + #nav-bar { + background-color: red !important; + margin-block: 20px; + } +} + +/* 4. 3's Other version */ +@supports -moz-bool-pref("userChrome.navBar.red") { + @supports -moz-bool-pref("userChrome.navBar.margin") { + #nav-bar { + background-color: red !important; + margin-block: 20px; + } + } +} + +/* 5. If not exist or false */ +@supports not -moz-bool-pref("userChrome.navBar.red") { + #nav-bar { + background-color: blue !important; + } +} +``` + +## Sync + +**Related Docs** +- [Support Mozilla: Sync custom preferences](https://support.mozilla.org/en-US/kb/sync-custom-preferences) + +**How to** + +Firefox Sync allows you to [choose the types of data](https://support.mozilla.org/en-US/kb/how-do-i-choose-what-information-sync-firefox) to sync across all devices. + +![Choose sync data](https://user-images.githubusercontent.com/25581533/162106009-85f8efe6-c310-488b-9940-763b6e7dd271.png) + +The following options are required to sync custom configs. +- `services.sync.prefs.dangerously_allow_arbitrary` to `true` + +Then, subsequently any pref can be pushed there by creating a remote with prefix. +- `services.sync.prefs.sync.` + +**Example** + +```javascript +// user.js +user_pref("services.sync.prefs.dangerously_allow_arbitrary", true); // Must need + +// Sync UI +user_pref("services.sync.prefs.sync.browser.uiCustomization.state", true); +user_pref("services.sync.prefs.sync.browser.uidensity", true); +``` + +## Related Source file + +- https://github.com/mozilla/gecko-dev/blob/master/modules/libpref/parser/src/lib.rs +- https://github.com/mozilla/gecko-dev/blob/master/extensions/pref/autoconfig/src/prefcalls.js diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/Project_Structure.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/Project_Structure.md new file mode 100644 index 00000000..0be4940a --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/Project_Structure.md @@ -0,0 +1,98 @@ +# Project Structure + + +**Table of Contents** + +- [Basics](#basics) +- [Icon files](#icon-files) +- [Install Scripts](#install-scripts) + * [Meta Info files](#meta-info-files) + * [Overriding](#overriding) + + + +## Basics +The overall structure of this project. + +``` +root +|- __tests__/: Mixin spec test +|- icons/: Icons, illustrations +|- css/: Build result of SCSS Files +|- docs/: Development Documents +|- src/: Source files +|- src/leptonChrome.scss: Entry of SCSS for Browser UI +|- src/leptonContent.scss: Entry of SCSS for Web pages +|- .gitattributes: Exclude at `Download Zip` +|- .github: Issue/PR Template, Github Actions +|- .prettierignore: Exclude coding style +|- .prettierrc.json: Coding style +|- install.ps1: Install script write in powersehll +|- install.sh: Install script write in bash +|- package.json: Build setup, package dependency +|- LEPTON: Meta infos (branch, version) +|- user.js: about:config settings +|- userChrome.css: Entry of css for Browser UI (Don't modify directly!!) +|- userContent.css: Entry of css for Web pages (Don't modify directly!!) +|- yarn.lock: Auto generated dependency (Don't modify directly!!) +``` + +## Icon files + +Most of them are made in SVG. + +Except for illustrations, there must be an `fill="context-fill" fill-opacity="context-fill-opacity"` property to dynamically determine color and transparency. + +Icons are mainly [FirefoxUX/photon-icons](https://github.com/FirefoxUX/photon-icons) +or [microsoft/fluentui-system-icons](https://github.com/microsoft/fluentui-system-icons). +Although not yet used, [tabler/tabler-icons](https://github.com/tabler/tabler-icons) and [feathericons/feather](https://github.com/feathericons/feather) can also be referred to. + +You can see more in the issue, [Unify icon design langauge #213](https://github.com/black7375/Firefox-UI-Fix/issues/213). + +## Install Scripts +### Meta Info files + +It comes from [install.sh](https://github.com/black7375/Firefox-UI-Fix/blob/01ae88bf2c4710e1f364d9eb2901ca2b722cefe7/install.sh#L442). + +**`LEPTON` file format** + +If this file exist in same directory as the `userChrome.css` file, +it is recognized as the "Lepton" installation directory. + +```ini +[Info] +Branch=master | photon-style | proton-style +Ver= | | [NULL] +``` + +**`lepton.ini` file Format** + +In `lepton.ini`, various information is stored during the installation process.\ +This file is recreated every time the installer is created. + +```ini +[Profile Name] +Type=Local | Release | Git +Branch=master | photon-style | proton-style +Ver= | | [NULL] +Path= +``` + +**Update Policy according to `Type`** +- Local(unknown): force latest commit update +- Release(): force latest tag update +- Git: latest commit update + +## Overriding + +Inspired by [arkenfox](https://github.com/arkenfox/user.js/wiki/3.1-Overrides). +These files need to use a shell script and has some priorities. + +CSS override settings(`userChrome-overrides.css`, `userContent-overrides.css`) are relatively simple. +- `./` (Will be copied `/chrome/`) +- `/chrome/` + +`user-overrides.js` needs to use a shell script and has some priorities. +- `/user-overrides.js` +- `./user-overrides.js` (Will be copied `/chrome/`) +- `/chrome/user-overrides.js` diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/README.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/README.md new file mode 100644 index 00000000..3b335b20 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/README.md @@ -0,0 +1,119 @@ +# Develper Documents for Firefox Custom + + +**Table of Contents** + +- [Basics](#basics) +- [Project-Specific](#project-specific) + * [Environment](#environment) + * [Project Structure](#project-structure) + * [Rules](#rules) +- [Advanced Customizing](#advanced-customizing) + * [Smart Bookmarks](#smart-bookmarks) + * [Policies](#policies) + * [Preference](#preference) +- [User Custom CSS](#user-custom-css) + * [Basics](#basics-1) + * [Restrictions](#restrictions) + + + +## Basics +The following documents may be helpful: +- [Roadmap](https://github.com/black7375/Firefox-UI-Fix/issues/2) +- [Each Versions Plan](https://github.com/black7375/Firefox-UI-Fix/milestones) +- [Wiki:Compatibility Issues Solution](https://github.com/black7375/Firefox-UI-Fix/wiki/Compatibility-Issues-Solution) +- [Wiki:Tips](https://github.com/black7375/Firefox-UI-Fix/wiki/Tips) + +Firefox Source Code: +- [Github](https://github.com/mozilla/gecko-dev) +- [Searchfox](https://searchfox.org/) +- [Firefox Source Docs](https://firefox-source-docs.mozilla.org/) + +Firefox Documents: +- [Support Mozilla: Firefox advanced customization and configuration options](https://support.mozilla.org/en-US/kb/firefox-advanced-customization-and-configuration) +- [Support Mozilla: Profiles - Where Firefox stores your bookmarks, passwords and other user data](https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data) + +Test for None mac users: +- [Docker-OSX](https://github.com/sickcodes/Docker-OSX) + +## Project-Specific +### Environment +[`git`](https://git-scm.com/) and [`yarn`](https://yarnpkg.com/) should be installed. + +You can configure it as follows: +```shell +## clone repository +git clone https://github.com/black7375/Firefox-UI-Fix.git +cd ./Firefox-UI-Fix + +## checkout branch +git checkout + +## env setup +yarn install +``` + +You can build with this command: +```shell +yarn build +``` + +You can check test and css validate: +```shell +## test - When you make mixin or function +# __tests__ direcory, You can also find out how to use internal utils. +yarn test + +## validate - Will be failed, this project uses non-standard features. +# Just use only for checking. +yarn validate +``` + +### Project Structure +- [Doc: Project\_Structure.md](./Project_Structure.md). + +### Rules +This is a rough guideline. (Not forced) + +- [Doc: Rules.md](./Rules.md). + +## Advanced Customizing +### Smart Bookmarks +- [Doc: Smart_Bookmarks.md](./Smart_Bookmarks.md). + +### Policies +- [Support Mozilla: Policies overview](https://support.mozilla.org/en-US/products/firefox-enterprise/policies-customization-enterprise/policies-overview-enterprise) +- [Policy Templates](https://github.com/mozilla/policy-templates) + +### Preference +- [Doc: Preference.md](./Preference.md). + +## User Custom CSS +### Basics +`userChrome.css` file is for browser UI, `userContent.css` file is for web contents. + +Unlike [User config](./Preference.md#user-config), they are located in `/chrome/`. + +Start Guide: +- [What is userChrome.css? What can it do?](https://www.userchrome.org/what-is-userchrome-css.html) +- [How to Create a userChrome.css File](https://www.userchrome.org/how-create-userchrome-css.html) +- [Where to Find Style Recipes](https://www.userchrome.org/find-user-style-recipes.html) + +CSS, SASS Documents: +- [MDN: CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) +- [MDN: Introducing the CSS Cascade](https://developer.mozilla.org/en-US/docs/Web/CSS/Cascade) +- [SASS(SCSS)](https://sass-lang.com/documentation) +- [SASS Live Compile](https://www.sassmeister.com/) + +Live Debugging: +- [Tutorial: How to create and live-debug userChrome.css](https://www.reddit.com/r/FirefoxCSS/comments/73dvty/tutorial_how_to_create_and_livedebug_userchromecss/) +- [Browser Toolbox](https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox) +- [Style Editor](https://developer.mozilla.org/en-US/docs/Tools/Style_Editor) + +Advanced CSS keywords: +- [UDN: Chrome-only CSS reference](https://udn.realityripple.com/docs/Mozilla/Gecko/Chrome/CSS) +- [UDN: Mozilla CSS extensions](https://udn.realityripple.com/docs/Web/CSS/Mozilla_Extensions) + +### Restrictions +- [Doc: Restrictions.md](./Restrictions.md). diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/Restrictions.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/Restrictions.md new file mode 100644 index 00000000..a74021fe --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/Restrictions.md @@ -0,0 +1,216 @@ +# Restrictions + +**Table of Contents** + +- [Compatibility](#compatibility) + * [Cross Platform](#cross-platform) + * [Firefox Version](#firefox-version) + * [Side Effect](#side-effect) +- [Internals](#internals) + * [CSS Loading Order](#css-loading-order) + * [DOM structure cannot be modified](#dom-structure-cannot-be-modified) + * [Shadow DOM](#shadow-dom) + * [XUL](#xul) + * [Supports](#supports) + * [Namespace](#namespace) + * [Import](#import) + + + +## Compatibility +### Cross Platform +Different compatibility issues occur in Win7, Win8, Win10, KDE, Gnome, Mac, etc. + +For example, The appearance of the context menu varies from platform to platform. + +![context menu](https://user-images.githubusercontent.com/25581533/124066951-0eb21c00-da29-11eb-9ac4-c6b82a268c6f.png) + +Consider compatibility as much as possible, but use [dedicated media queries](https://github.com/mozilla/gecko-dev/blob/d6188c9ce02efeea309e7177fc14c9eb2f09db37/servo/components/style/gecko/media_features.rs#L906-L930) in special cases. + +Even the implementation is also different like [Context menu's image](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L4558-L4595). +If you need to implement it in a variety of forms, make a sort of API using [`css var()`](https://developer.mozilla.org/en-US/docs/Web/CSS/var). + +Problems that are not [`appearance: auto`](https://developer.mozilla.org/en-US/docs/Web/CSS/appearance#values) may require emulation like [Win7, 8's menu active color](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L146-L223). +Complex UI emulation is quite tricky. [[Linux's Proton UI Library Chrome](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L2113-L2504), [Linux's Proton UI Library Content](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userContent.css#L1458)] + +[Bookmark menu](https://github.com/black7375/Firefox-UI-Fix/issues/136) is also similar example([code](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L4745-L4840)). + +### Firefox Version +There may be changes that change by version of Firefox. + +It's [more frequent than your thought](https://github.com/black7375/Firefox-UI-Fix/issues?q=is%3Aissue+label%3Aupstream+), and we need to respond to compatibility between [Nightly](https://www.mozilla.org/en-US/firefox/nightly/notes/) and [ESR](https://www.mozilla.org/en-US/firefox/organizations/notes/) versions. + +This project is using SCSS to make a [reusable compatible mixins](../src/utils). +```scss +@include OS($linux) { + // Your CSS +} + +@include Dark { + // Your CSS +} +``` + +### 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). + +Especially be careful when customizing XUL elements. +The following code will cause extension panels fail to open and trying to open them might even crash Firefox. ([@MrOtherGuy](https://www.reddit.com/r/FirefoxCSS/comments/u1mdld/comment/i4eg29n/?utm_source=share&utm_medium=web2x&context=3) reports) +```css +#nav-bar { + display: flex; +} +``` +Info: `#nav-bar` is [`toolbar`](https://udn.realityripple.com/docs/Archive/Mozilla/XUL/toolbar). + +Another `display: flex`'s side effect examples. [#368](https://github.com/black7375/Firefox-UI-Fix/issues/368) [#372](https://github.com/black7375/Firefox-UI-Fix/issues/372) + +## Internals +### CSS Loading Order +User CSS(`userChrome.css`, `userContent.css`) is usually loaded first. + +In many cases, overriding should be prevented with [`important!`](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity#the_!important_exception)(Anti-pattern in general web), and side effects should also be considered. [#11](https://github.com/black7375/Firefox-UI-Fix/issues/11) + +### DOM structure cannot be modified +It is possible with [JS(Autoconfig)](./Preference.md#auto-config), but there are security and configuration issues, so we should make the most of CSS. + +[`::before`](https://developer.mozilla.org/en-US/docs/Web/CSS/::before) and [`::after`](https://developer.mozilla.org/en-US/docs/Web/CSS/::after) can indirectly add CSS elements. + +Many implementations using `::before`, `::after`. +- [Bottom Rounded Corner](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L3319-L3393) +- [Dynamic Tab Separator](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L3394-L3457) +- [Static Tab Separator](https://github.com/black7375/Firefox-UI-Fix/blob/0f78a73b856e1335954ecded93d377b85134bd61/userChrome.css#L3387-L3428) +- [Picture In Picture Indicator](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L3716-L3753) +- [Contaner Indicator](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L3754-L3852) + +For icons, [`list-style-image`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-image) and [`background-image`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-image) are available. + +It is recommended to use `list-style-image` when a layout is provided for the image. +`background-image` may require many calculations to fit the layout. +- [Replace Library Icon](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L3923-L3965) +- [Panel Icon](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L4136-L4214) +- [Menu Item Icon](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L4551-L4744) +- [Error Illustration](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userContent.css#L275-L380) + +You can use [`-moz-box-ordinal-group`](https://udn.realityripple.com/docs/Web/CSS/box-ordinal-group)([`-moz-box`](https://udn.realityripple.com/docs/Web/CSS/Mozilla_Extensions#display)) and [`order`](https://developer.mozilla.org/en-US/docs/Web/CSS/order)(at [flex](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox)) to change the order of the layout. +In experience, the detailed actions of `-moz-box` and `flex` are different, so tests are required. +- [Separator Order](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L4286-L4288) +- [Sync Menu Item's Image Order](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L4234-L4238) +- [Tabs On Bottom](https://github.com/black7375/Firefox-UI-Fix/blob/c453ef43a699759f55800a5d266a89ac11321b2b/src/tabbar/_tabs_on_bottom.scss#L4-L32) + +Finally, it's time to respond to various states. + +By default, [attribute selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors) is used, and sometimes [hard coding](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L873-L893) according to [selector specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity) may be required. +If there is no state attributes, you can bypass by using [both transitions and keyframes](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L2704-L2730) for animation. + +### Shadow DOM +Firefox actively uses [shadow dom](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) internally. + +To modify, it is often a roundabout approach or impossible to inherit. + +Onething bypass method is to declare [`var()`](https://developer.mozilla.org/en-US/docs/Web/CSS/var) to shadow root. +- [Scrollbutton Padding](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userChrome.css#L2906-L2924) +- [Audio, Video Player UI](https://github.com/black7375/Firefox-UI-Fix/blob/36e9c94844fee2417662251cbd50c2b874d5b576/userContent.css#L5-L47) +- [Video Player Twoline UI](https://github.com/black7375/Firefox-UI-Fix/blob/cbf14cd55a9edada7ab2f5f1b626608fb9fe38a2/src/contents/_video_player.scss#L68-L171): It is pretty difficult when the condition becomes complicated. + +Another limitation of shadow dom in user style is that you cannot use shadow dom related selectors like [`:host`](https://developer.mozilla.org/en-US/docs/Web/CSS/:host_function) and [`::part`](https://developer.mozilla.org/en-US/docs/Web/CSS/::part). + +- [Using ::part() selector in userchrome.css?](https://www.reddit.com/r/FirefoxCSS/comments/d2sukj/using_part_selector_in_userchromecss/) +- [Can't change some shadow-dom properties](https://www.reddit.com/r/FirefoxCSS/comments/rebn3s/cant_change_some_shadowdom_properties/) +- [Bug 1575507 - Shadow parts should work in user-origin stylesheets.](https://bugzilla.mozilla.org/show_bug.cgi?id=1575507) + +### XUL +Sometimes firefox can use [XUL](https://en.wikipedia.org/wiki/XUL) that have been written and binded with C++ for performance like a treeview of bookmarks. +XUL's [box model](https://udn.realityripple.com/docs/Archive/Mozilla/XUL/Tutorial/The_Box_Model) and [DOM](https://udn.realityripple.com/docs/Archive/Mozilla/XUL/Tutorial/Document_Object_Model) are different from HTML. + +There ar few appropriate documents, so we have to read the source code and work. (Ex. [1](https://github.com/mozilla/gecko-dev/blob/master/layout/style/nsCSSAnonBoxList.h), [2](https://github.com/mozilla/gecko-dev/blob/master/layout/xul/tree/nsITreeView.idl)) + +Available CSS features are also restricted. + +Example of legacy documents that will help. +- [UDN: ::-moz-tree-cell](https://udn.realityripple.com/docs/Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell) +- [UDN: ::-moz-tree-cell-text](https://udn.realityripple.com/docs/Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell-text) + +Another case. +Like [``](https://udn.realityripple.com/docs/Archive/Mozilla/XUL/Attribute/align), [`attributes`](https://udn.realityripple.com/docs/Archive/Mozilla/XUL/Attribute) is set and CSS of same property may not be appplied. (Ex. [`box-align: start`](https://udn.realityripple.com/docs/Web/CSS/box-align)) + +### Supports +[`@supports`](https://developer.mozilla.org/en-US/docs/Web/CSS/@supports) change in CSS is not detected in real time. (Caching after checking only once) + +So a restart is required, and if the mozilla need real time changes, are using `@media` to handle it. + +If project only use pure CSS, we cannot add `@media rules`. + +- [Bug 1267890 - Support detecting bool preferences in chrome stylesheets](https://bugzilla.mozilla.org/show_bug.cgi?id=1267890) +- [Bug 1698132 - Improve caching behaviour of -moz-bool-pref](https://bugzilla.mozilla.org/show_bug.cgi?id=1698132) + +This restriction is also related to the [Doc: Preference.md](./Preference.md#using-with-user-custom-css). + +### Namespace +In older codes, the following [namespace](https://developer.mozilla.org/en-US/docs/Web/CSS/@namespace) is commonly seen: + +```css +@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); +``` + +However, it is [only applicable to XUL](https://www.userchrome.org/adding-style-recipes-userchrome-css.html#namespaces), so it is recommended to use with `prefix`. +```css +@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +@namespace html url("http://www.w3.org/1999/xhtml"); + +/* Use */ +xul|search-textbox { + border: 2px solid red !important; +} +html|input { + border: 2px solid green !important; +} +``` + +If you want to limit the coverage to some pages, you can use [`@-moz-document`](https://developer.mozilla.org/en-US/docs/Web/CSS/@document): +```css +/* Main browser UI */ +@-moz-document url("chrome://browser/content/browser.xhtml") { + /* Your CSS */ +} + +/* Library UI */ +@-moz-document url("chrome://browser/content/places/places.xhtml") { + /* Your CSS */ +} + +/* PageInfo UI */ +@-moz-document url("chrome://browser/content/pageinfo/pageInfo.xhtml") { + /* Your CSS */ +} +``` + +### Import +There are a few caveats when you [`@import`](https://developer.mozilla.org/en-US/docs/Web/CSS/@import) the CSS. +It's because of specification definition, not Firefox design, but to prevent some mistakes. + +`@import` rule is not a [nested statement](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#nested_statements). Therefore, it cannot be used inside [conditional group at-rules](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule#conditional_group_rules). + +```css +/* Precede */ +@import url("YourFile.css"); /* Works */ + +/* Nested */ +@supports -moz-bool-pref("userChrome.test.pref") { + @import url("AnotherFile.css"); /* Not Works */ +} +``` + +Any [`@namespace`](https://developer.mozilla.org/en-US/docs/Web/CSS/@namespace) rules must follow all `@charset` and @import rules, and precede all other at-rules and style declarations in a style sheet. + +```css +/* Before - Namespace */ +@import url("YourFile.css"); /* Works */ + +/* Declare - Namespace */ +@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +@namespace html url("http://www.w3.org/1999/xhtml"); + +/* After - Namespace */ +@import url("YourFile.css"); /* Not Works */ +``` diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/Rules.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/Rules.md new file mode 100644 index 00000000..a1cc771b --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/Rules.md @@ -0,0 +1,86 @@ +# Rules + + +**Table of Contents** + +- [Basics](#basics) + * [Issue](#issue) + * [Version](#version) + * [Branch](#branch) +- [Edit](#edit) + * [Modify only source file](#modify-only-source-file) + * [Coding style](#coding-style) +- [Commits](#commits) + * [Commit](#commit) + * [Commit Message](#commit-message) + * [Pull request](#pull-request) + + + +## Basics +This is a rough guideline. (Not forced) + +Feel free to make PR. + +### Issue + +**Search:** +- Search the project’s [issues](https://github.com/black7375/Firefox-UI-Fix/issues) to make sure it's not a known issue. + +**Versions:** +- Make sure you’re on the latest version. +- Try older versions. +- Try switching up dependency versions. + +### Version + +Milestone, The versioning scheme we use is [SemVer](https://semver.org/). (Maintainer decides, do not pull request.) + +We will release the feature as soon as it is complete, but the cycle should be 2-4 weeks. +Rapid releases. + +It comes from [#109](https://github.com/black7375/Firefox-UI-Fix/issues/109#issuecomment-873313945). + +### Branch + +Stable: Only bugfix, Documentation. +- `master`: Common bugfix, documentation. +- `photon-style`: Bugfix, documentation specified in `photon-style`. +- `proton-sryle`: Bugfix, documentation specified in `proton-style`. + +Development: New Features. +- `dev`: Common new features. +- `photon-style-dev`: New features specified in `photon-style`. +- `proton-style-dev`: New features specified in `proton-style`. + +## Edit +### Modify only source file + +Do not modify files that are built directly or automatically generated. + +### Coding style + +- **Indent:** 2 spaces for indentation rather than tabs. +- **Columns:** Fit `80`~`100` columns as much as possible. (Auto formatting is using 120 to avoid the worst case) + +## Commits +### Commit + +- **Meaningfully:**: It doesn't make meaningless commits. +- **One per task:** It's difficult to distinguish when various tasks are mixed. +- **Often:** Codes may corrupt during large changes. + +### Commit Message + +For intuitive recognition, I [put a **prefix**](https://github.com/black7375/Firefox-UI-Fix/commits/master). +- `Add:` Add feature or enhanced. +- `Bump:` Update dependency packages. +- `Fix:` Bug fix or change default values. +- `Clean:` Refactoring. +- `Doc:` Update docs. + +### Pull request + +- **Branch:** Check the [Branch](#branch) section and PR to the correct branch. +- **Issue:** We recommend that you open the issue first to discuss the changes with the owner of this repository. +- **Build:** Please check if it was built before PR. diff --git a/arch-config/.mozilla/firefox/default-release/chrome/docs/Smart_Bookmarks.md b/arch-config/.mozilla/firefox/default-release/chrome/docs/Smart_Bookmarks.md new file mode 100644 index 00000000..32dce1d7 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/docs/Smart_Bookmarks.md @@ -0,0 +1,150 @@ +# Smart Bookmarks(Query Bookmarks) + + +**Table of Contents** + +- [Basics](#basics) +- [Places query URIs](#places-query-uris) +- [Query parameters](#query-parameters) +- [Query operators](#query-operators) + + + +## Basics +**Related Docs** +- [Support Mozilla: Restore the default Smart Bookmarks Folders](https://support.mozilla.org/en-US/kb/restore-default-smart-bookmarks-folders) (Not works) +- [Smart Bookmarks. A quick guide.](https://www.reddit.com/r/firefox/comments/2i4qcy/smart_bookmarks_a_quick_guide/) +- [Smart Bookmarks. A quick guide. (extended)](https://www.reddit.com/r/firefox/comments/fvcw96/query_bookmarks_smart_bookmarks_a_quick_guide/) +- [How to Create Custom Smart Bookmarks Folders in Firefox](https://www.howtogeek.com/111820/how-to-create-custom-smart-bookmarks-folders-in-firefox/) +- [MDN: Places query URIs(Archived)](https://web.archive.org/web/20210531033430/https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places/Places_query_URIs) +- [UDN: Querying Places](https://udn.realityripple.com/docs/Mozilla/Tech/Places/Querying) +- [mozillaZine: Places query syntax](https://forums.mozillazine.org/viewtopic.php?p=3260477) + +**Explanation** + +Firefox 3 switched to "places" sqlite database as a main bookmarks and history container. (Previously used [MDN: Mork file format(Achieved)](https://web.archive.org/web/20120509214427/https://developer.mozilla.org/en/Mork_Structure)) + +You can get a glimpse of SQL query power by using serialized `places:` query strings. + +Simple strings that can be added to your bookmarks that will perform queries over database. + +**Current State** + +`browser.places.smartBookmarksVersion` does not work. + +There is [no search in the source code](https://searchfox.org/mozilla-central/search?q=browser.places.smartBookmarksVersion&path=&case=false®exp=false), and you can see that [the code in ESR 60](https://searchfox.org/mozilla-esr60/search?q=browser.places.smartBookmarksVersion&path=&case=false®exp=false) has been removed. + +Place query URIS related information was also removed from MDN, but fortunately it is still operable. + +## Places query URIs + +This article describes the parameters you can use when constructing `place` URIs. These URIs perform [Places](https://udn.realityripple.com/docs/Mozilla/Tech/Places) queries. + +You can use a `place` URI as a bookmark. For example, if you right-click on the toolbar and choose "New Bookmark," you can enter a `place` URI there to create a new query on your toolbar that, when clicked, will reveal a popup containing the results of the query. + +The following `place` URI is used to implement the "Most Visited" smart bookmark in the default set of smart bookmarks created when you first start using Firefox 3: + +``` +place:queryType=0&sort=8&maxResults=10 +``` + +The parameters used in this query are: + +- `queryType=0`: This indicates that the query should look only at the user's history and not at bookmarks. +- `sort=8`: The `sort` parameter indicates that the query results should be listed in reverse numeric order, based on visit count. In other words, the most visited result will be first, and the least visited result last. +- `maxResults=10`: This parameter specifies that a maximum of 10 results should be returned by the query. + +If you wanted to change this query to only consider visits that took place today, you could change it to: + +``` +place:queryType=0&sort=8&maxResults=10&beginTimeRef=1&beginTime=0 +``` + +The new parameters added here are: + +- `beginTimeRef=1`: Indicates that the `beginTime` parameter that follows is specified as relative to midnight this morning. +- `beginTime`: Specifies the amount of time, in microseconds, from midnight at which to begin looking for visits. By specifying zero for this value, we indicate that we wish to consider all visits that occurred today. + +## Query parameters +Here's a list of the parameters available that you can look for. + +| **Parameter** | **Type** | **Description** | +|------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `beginTime` | `unsigned long` | The time, in microseconds of the earliest result to return. | +| `beginTimeRef` | `unsigned long` | Indicates the type of reference specified in `beginTime`: | +| | | `0`: The time is relative to January 1, 1970 GMT. This is the default. | +| | | `1`: The time is relative to this morning at midnight. This is useful for queries relative to "today." | +| | | `2`: The time is relative to right now. | +| `endTime` | `unsigned long` | The time, in microseconds, of the latest result to return. | +| `endTimeRef` | `unsigned long` | Indicates the type of reference specified in `endTime`. The values are the same as for beginTime. | +| `terms` | `string` | The term to query. | +| `minVisits` | `long` | Filters results based on the minimum number of visits. Specify -1 (the default) to return all results, or any other number to only include results with a visit count higher than the given value. | +| `maxVisits` | `long` | Filters results based on the maximum number of visits. Only items that have been visited fewer than this number of times are included in the results. Specify -1 (which is the default) to not filter based on a maximum number of visits. | +| `onlyBookmarked` | `boolean` | If `true`, only bookmarked items are included in the results. | +| `domainIsHost` | `boolean` | If `true`, `domain` must be an exact match. Otherwise, anything that ends in `domain` is considered a match. | +| `domain` | `string` | Query for items matching this host or domain name. See `domainIsHost` for more information. | +| `folder` | `string` | The folder to query. This may be one of the following: | +| | | `PLACES_ROOT`: The Places root folder. | +| | | `BOOKMARKS_MENU`: The Bookmarks menu. | +| | | `TOOLBAR`: The bookmarks toolbar. | +| | | `TAGS`: Tags | +| | | `UNFILED_BOOKMARKS`: Unfiled bookmarks | +| `!annotation` | `boolean` | Indicates whether to include or reject items matching the annotation specified by `annotation`. If `true`, items that don't have the specified annotation are rejected. | +| `annotation` | `string` | The annotation to match when querying. | +| `uri` | `string` | The URI to match. | +| `uriIsPrefix` | `boolean` | If `false`, the uri must be an exact match; this is the default. If `true`, any entry that begins with the specified URI is considered a match. | +| `tag` | `string` | - | +| `!tas` | - | - | + +## Query operators +The following attributes allow you to control the results more precisely. + +| **Operator** | **Type** | **Description** | +|----------------------------------------------------------------|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `OR` | | This is the OR logical operator. | +| `applyOptionsToContainers` | | | +| `excludeItemIfParentHasAnnotation` - Obsolete since Gecko 13.0 | `string` | Items whose parent has this value as an annotation are excluded from the query results. This parameter is ignored for queries over history. For example, you can exclude livemark entries by specifying "livemark/feedURI" here. | +| `excludeItems` | `boolean` | If `true`, all URIs and separators are excluded from the bookmark query results, so that only folders and queries are returned. If `false`, all items are returned; this is the default. | +| `excludeQueries` | `boolean` | If `true`, queries are excluded from the results; however, simple folder queries like bookmark folder symlinks will still be included. `false`, the default, indicates that queries should be included in the results. | +| `excludeReadOnlyFolders` | `boolean` | If `true`, read-only folders are excluded from the results. This only affects cases in which the actual folder result node would appear in its parent folder. The default is `false`. | +| `expandQueries` | `boolean` | If `true`, `place` URIs appear as containers in the results, with the contents filled in from the stored query. This doesn't do anything if `excludeQueries` is `true`. The default is `false`, which causes `place` URIs to appear as normal items. | +| `group` | | | +| `includeHidden` | `boolean` | If `true`, items that would normally be hidden in a history query (such as the content of iframes as well as images) are included in the results. This is `false` by default. | +| `maxResults` | `unsigned long` | The maximum number of results to return. This doesn't work when sorting by title. The result is `0`, which means that all results are returned. | +| `originalTitle` | `string` | Retrieves the original page title. | +| `queryType` | `unsigned short` | The type of search to use when querying the database. This attribute is only honored by query nodes. It's ignored for simple folder queries. | +| | | `0`: History | +| | | `1`: Bookmarks | +| | | `2`: Both history and bookmarks (**Not yet implemented** -- see [bug 378798](https://bugzilla.mozilla.org/show_bug.cgi?id=378798)) | +| `resolveNullBookmarkTitles` | `boolean` | If `true`, bookmarks with null titles get their page titles fetched from history if possible. This doesn't apply to bookmarks with empty titles. The default is `false`. | +| `showSessions` | `boolean` | If `true`, session information is used to group history items. This only makes a difference when sorting by date. The default is `false`. | +| `sort` | `unsigned short` | The sort order to use for the results. | +| | | `0`: Natural bookmark order | +| | | `1`: Sort by title, A-Z | +| | | `2`: Sort by title, Z-A | +| | | `3`: Sort by visit date, most recent last | +| | | `4`: Sort by visit date, most recent first | +| | | `5`: Sort by uri, A-Z | +| | | `6`: Sort by uri, Z-A | +| | | `7`: Sort by visit count, ascending | +| | | `8`: Sort by visit count, descending | +| | | `9`: Sort by keyword, A-Z | +| | | `10`: Sort by keyword, Z-A | +| | | `11`: Sort by date added, most recent last | +| | | `12`: Sort by date added, most recent first | +| | | `13`: Sort by last modified date, most recent last | +| | | `14`: Sort by last modified date, most recent first | +| | | `17`: Sort by tags, ascending | +| | | `18`: Sort by tags, descending | +| | | `19`: Sort by annotation, ascending | +| | | `20`: Sort by annotation, descending | +| `sortingAnnotation` | `string` | The annotation to use when sorting by annotation. | +| `type` | `unsigned short` | The type of results to return. | +| | | `0`: Results as URI ("URI" results, one for each URI visited in the range). | +| | | `1`: Results as visit ("visit" results, with one for each time a page was visited this will often give you multiple results for one URI). | +| | | `2`: Results as full visits (like "visit", but returns all attributes for each result) | +| | | `3`: Results as date query (returns results for given date range) | +| | | `4`: Results as site query (returns last visit for each url in the given host) | +| | | `5`: Results as date+site query (returns list of hosts visited in the given period) | +| | | `6`: Results as tag query (returns list of bookmarks with the given tag) | +| | | `7`: Results as tag container (returns bookmarks with given tag; for same uri uses last modified. `folder=tag_folder_id` must be present in the query | diff --git a/arch-config/.mozilla/firefox/default-release/chrome/install.ps1 b/arch-config/.mozilla/firefox/default-release/chrome/install.ps1 index 515ebda0..49e10283 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/install.ps1 +++ b/arch-config/.mozilla/firefox/default-release/chrome/install.ps1 @@ -49,13 +49,13 @@ https://github.com/black7375/Firefox-UI-Fix#readme param( [Alias("u")] - [Switch]$updateMode, + [switch]$updateMode, [Alias("f")] [string]$profileDir, [Alias("p")] [string]$profileName, [Alias("h")] - [Switch]$help = $false + [switch]$help = $false ) #** Helper Utils *************************************************************** @@ -92,25 +92,33 @@ function Verify-PowerShellVersion { #== Required Tools ============================================================= function Install-Choco() { # https://chocolatey.org/install + # https://docs.chocolatey.org/en-us/choco/setup#non-administrative-install + $InstallDir='C:\ProgramData\chocoportable' + $env:ChocolateyInstall="$InstallDir" + Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - $env:Path += ";C:\ProgramData\chocolatey" + $env:Path += ";C:\ProgramData\chocoportable" # Adimin: ";C:\ProgramData\chocolatey" + refreshenv } function Check-Git() { - if( -Not (Get-Command git) ) { - if ( -Not (Get-Command choco)) { + if ( -Not (Get-Command git -errorAction SilentlyContinue) ) { + if ( -Not (Get-Command choco -errorAction SilentlyContinue) ) { Install-Choco } - choco install git -y - $env:Path += ";C:\Program Files\Git\bin" + choco install git.commandline -y + $env:Path += ";C:\tools\git\bin" # Adimin: ";C:\Program Files\Git\bin" + refreshenv } Lepton-OKMessage "Required - git" } #== PATH / File ================================================================ +$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8' + $currentDir = (Get-Location).path function Filter-Path() { @@ -634,6 +642,147 @@ function Check-InstallTypes() { } } +#== Custom Install ============================================================= +$customFiles = @( + "user-overrides.js", + "userChrome-overrides.css", + "userContent-overrides.css" +) +$localCustomFiles = $customFiles.Clone() + +$customFileExist = $false +function Check-CustomFiles() { + $global:localCustomFiles = Filter-Path $localCustomFiles + + if ( $global:localCustomFiles.Length -gt 0 ) { + $global:customFileExist = $true + Lepton-OKMessage "Check custom file detected" + + foreach ( $customFile in $global:localCustomFiles ) { + Write-Host "- ${customFile}" + } + } +} + +function Copy-CustomFiles() { + if ( "${customFileExist}" -eq $true ) { + # If Release or Network mode, Local is passed (Already copied) + if ( "${leptonInstallType}" -ne "Local" ) { + foreach ( $profilePath in $global:firefoxProfilePaths ) { + foreach ( $customFile in $global:localCustomFiles ) { + if ( "${customFile}" -eq "user-overrides.js" ) { + Copy-Auto "${customFile}" "${profilePath}\${customFile}" + } + else { + Copy-Auto "${customFile}" "${profilePath}\chrome\${customFile}" + } + } + } + } + + Lepton-OKMessage "End custom file copy" + } +} + +$customMethod = "" +$customReset = $false +$customAppend = $false +function Set-CustomMethod() { + $local:menuAppend="Append - Maintain changes in existing files and apply custom" + $local:menuOverwrite="Overwrite - After initializing the change, apply only custom" + $local:menuNone="None - Maintain changes in existing files" + $local:menuReset="Reset- Reset to pure lepton theme without custom" + + Write-Host "Select custom method" + while ( "${customMethod}" -eq "" ) { + $local:applyMethod = Menu @("${menuAppend}", "${menuOverwrite}", "${menuNone}", "${menuReset}") + switch ( $applyMethod ) { + "${menuAppend}" { + $global:customMethod = "Append" + $global:customAppend = $true + } + "${menuOverwrite}" { + $global:customMethod = "Overwrite" + $global:customReset = $true + $global:customAppend = $true + } + "${menuNone}" { + $global:customMethod = "None" + } + "${menuReset}" { + $global:customMethod = "Reset" + $global:customReset = $true + } + default { Write-Host "Invalid option, reselect please." } + } + } + + Lepton-OKMessage "Selected ${customMethod}" +} + +$customFileApplied = $false +function Apply-CustomFile() { + Param ( + [Parameter(Mandatory=$true, Position=0)] + [string] $profilePath, + [Parameter(Mandatory=$true, Position=1)] + [string] $targetPath, + [Parameter(Mandatory=$true, Position=2)] + [string] $customPath, + [Parameter(Position=3)] + [string] $otherCustomPath = "" + ) + + $local:leptonDir = "${profilePath}\chrome" + $local:gitDir = "${leptonDir}\.git" + if ( Test-Path -Path "${customPath}" -PathType leaf ) { + $global:customFileApplied = $true + + if ( "${customMethod}" -eq "" ) { + Set-CustomMethod + } + + if ( "${customReset}" -eq $true ) { + if ( "${targetPath}" -like "*user.js" ) { + Copy-Item -Path "${leptonDir}\user.js" -Destination "${targetPath}" -Force + } + else { + git --git-dir "${gitDir}" --work-tree "${leptonDir}" checkout HEAD -- "${targetPath}" + } + } + if ( "${customAppend}" -eq $true ) { + # Apply without duplication + if ( -not (Write-Output "$(Write-Output $(Get-Content -Path "${targetPath}"))" | Select-String -Pattern "$(Write-Output $(Get-Content -Path "${customPath}"))" -SimpleMatch -Quiet) ) { + Get-Content -Path "${customPath}" | Out-File -FilePath "${targetPath}" -Append + } + } + } + elseif ( "${otherCustomPath}" -ne "" ) { + Apply-CustomFile "${profilePath}" "${targetPath}" "${otherCustomPath}" + } +} + +function Apply-CustomFiles() { + foreach ( $profilePath in $global:firefoxProfilePaths ) { + foreach ( $customFile in $global:customFiles ) { + $local:targetFile = $customFile.Replace("-overrides", "") + if ( "${customFile}" -eq "user-overrides.js" ) { + $local:targetPath = "${profilePath}\${targetFile}" + $local:customPath = "${profilePath}\user-overrides.js" + $local:otherCustomPath = "${profilePath}\chrome\user-overrides.js" + Apply-CustomFile "${profilePath}" "${targetPath}" "${customPath}" "${otherCustomPath}" + } + else { + Apply-CustomFile "${profilePath}" "${profilePath}\chrome\${targetFile}" "${profilePath}\chrome\${customFile}" + } + } + } + + if ( "${customFileApplied}" -eq $true ) { + Lepton-OKMessage "End custom file applied" + } +} + #== Install Helpers ============================================================ $chromeDuplicate = $false function Check-ChromeExist() { @@ -692,10 +841,16 @@ function Copy-Lepton() { #== Each Install =============================================================== function Install-Local() { Copy-Lepton "${currentDir}" "user.js" + Copy-CustomFiles + + Apply-CustomFiles } function Install-Release() { Copy-Lepton "chrome" "user.js" + Copy-CustomFiles + + Apply-CustomFiles } function Install-Network() { @@ -704,9 +859,12 @@ function Install-Network() { Clone-Lepton Copy-Lepton + Copy-CustomFiles Clean-Lepton Check-ChromeRestore + + Apply-CustomFiles } function Install-Profile() { @@ -722,6 +880,35 @@ function Install-Profile() { } #** Update ********************************************************************* +function Stash-File() { + Param ( + [Parameter(Mandatory=$true, Position=0)] + [string] $leptonDir, + [Parameter(Mandatory=$true, Position=1)] + [string] $gitDir + ) + + if ( "$(git --git-dir "${gitDir}" --work-tree "${leptonDir}" diff --stat)" -ne '' ) { + git --git-dir "${gitDir}" --work-tree "${leptonDir}" stash --quiet + return $true + } + return $false +} +function Restore-File() { + Param ( + [Parameter(Mandatory=$true, Position=0)] + [string] $leptonDir, + [Parameter(Mandatory=$true, Position=1)] + [string] $gitDir, + [Parameter(Position=2)] + [string] $gitDirty = "$false" + ) + + if ( "${gitDirty}" -eq $true ) { + git --git-dir "${gitDir}" --work-tree "${leptonDir}" stash pop --quiet + } +} + function Update-Profile() { Check-Git foreach ( $profileDir in $global:firefoxProfileDirPaths ) { @@ -734,10 +921,15 @@ function Update-Profile() { $local:Branch = $LEPTONINFO["${section}"]["Branch"] $local:Path = $LEPTONINFO["${section}"]["Path"] - $local:LEPTONGITPATH="${Path}\chrome\.git" - if ( "${Type}" -eq "Git" ){ - git --git-dir "${LEPTONGITPATH}" checkout "${Branch}" - git --git-dir "${LEPTONGITPATH}" pull --no-edit + $local:leptonDir = "${Path}\chrome" + $local:gitDir = "${leptonDir}\.git" + if ( "${Type}" -eq "Git" ) { + $local:gitDirty = $(Stash-File "${leptonDir}" "${gitDir}") + + git --git-dir "${gitDir}" --work-tree "${leptonDir}" checkout "${Branch}" + git --git-dir "${gitDir}" --work-tree "${leptonDir}" pull --no-edit + + Restore-File "${leptonDir}" "${gitDir}" "$gitDirty" } elseif ( "${Type}" -eq "Local" -or "${Type}" -eq "Release" ) { Check-ChromeExist @@ -749,12 +941,15 @@ function Update-Profile() { if ( "${Branch}" -eq $null ) { $Branch = "${leptonBranch}" } - git --git-dir "${LEPTONGITPATH}" checkout "${Branch}" + git --git-dir "${gitDir}" --work-tree "${leptonDir}" checkout "${Branch}" if ( "${Type}" -eq "Release" ) { - $local:Ver=$(git --git-dir "${LEPTONINFOFILE}" describe --tags --abbrev=0) - git --git-dir "${LEPTONGITPATH}" checkout "tags/${Ver}" + $local:Ver=$(git --git-dir "${gitDir}" describe --tags --abbrev=0) + git --git-dir "${gitDir}" --work-tree "${leptonDir}" checkout "tags/${Ver}" } + + Clean-Lepton + Check-ChromeRestore } else { Lepton-ErrorMessage "Unable to find update type, ${Type} at ${section}" @@ -762,8 +957,8 @@ function Update-Profile() { } } } - Clean-Lepton - Check-ChromeRestore + + Apply-CustomFiles } #** Main *********************************************************************** @@ -784,6 +979,8 @@ function Install-Lepton { Update-ProfilePaths Write-LeptonInfo + Check-CustomFiles + if ( $updateMode ) { Update-Profile } diff --git a/arch-config/.mozilla/firefox/default-release/chrome/package.json b/arch-config/.mozilla/firefox/default-release/chrome/package.json new file mode 100644 index 00000000..1b53499f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/package.json @@ -0,0 +1,30 @@ +{ + "name": "Lepton", + "version": "5.0.0", + "description": "I respect proton UI and aim to improve it. ", + "author": "alstjr7375 ", + "license": "MPL 2.0", + "private": true, + "repository": { + "type": "git", + "url": "git+https://github.com/black7375/Firefox-UI-Fix.git" + }, + "bugs": { + "url": "https://github.com/black7375/Firefox-UI-Fix/issues" + }, + "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", + "format": "prettier --write .", + "test": "jest", + "validate": "csstree-validator css/leptonChrome.css; csstree-validator css/leptonContent.css" + }, + "devDependencies": { + "csstree-validator": "^3.0.0", + "fast-glob": "^3.2.11", + "jest": "^27.5.1", + "prettier": "^2.6.1", + "sass": "^1.49.0", + "sass-true": "^6.1.0" + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_index.scss new file mode 100644 index 00000000..bd8ee6c5 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_index.scss @@ -0,0 +1,12 @@ +/*= Theme - Compatibility ====================================================*/ +@include Option("userChrome.compatibility.theme") { + @import "theme"; +} + +/*= OS - Compatibility =======================================================*/ +@include Option("userChrome.compatibility.os") { + @import "os"; +} + +/*= Others - Compatibility ===================================================*/ +@import "others"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_os.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_os.scss new file mode 100644 index 00000000..cfe2c385 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_os.scss @@ -0,0 +1,169 @@ +/*= Windows 10 - Top border of accent color at ESR #358 ======================*/ +@include OS($win10) { + :root[sizemode=normal][tabsintitlebar] { + #navigator-toolbox { + border-top: .5px solid rgb(47, 47, 47) !important; + } + &:-moz-window-inactive #navigator-toolbox { + border-top-color: rgb(57, 57, 57) !important; + } + + @media (-moz-windows-accent-color-in-titlebar) { + #navigator-toolbox { + border-top-color: -moz-accent-color !important; + } + } + } +} + +/*= 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; + } +} + +@mixin _os_winTabBarTextColor { + /* background textcolor */ + color: var(--lwt-text-color) !important; +} +@include OS($win7) { + #TabsToolbar { + &:-moz-lwtheme { + @include _os_winTabBarTextColor; + } + + /* 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; + } +} +@include OS($win8) { + #navigator-toolbox:-moz-lwtheme { + @include _os_winTabBarTextColor; + } +} + +/*= Windows 7, 8 - Menu Active Color =========================================*/ +@include OS($win7, $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 */ + } + + 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 */ + + &:not([disabled], :active)[_moz-menuactive="true"] { + background-color: var(--button-hover-bgcolor) !important; + } + } +} + +@mixin _os_menuEmulate($bgRate, $bdRate) { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { + background-color: color-mix(in srgb, -moz-menuhover $bgRate, transparent) !important; + border-color: color-mix(in srgb, -moz-menuhover $bdRate, transparent) !important; + } + menu[_moz-menuactive="true"][disabled="disabled"], + menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor $bgRate, transparent) !important; + border-color: color-mix(in srgb, currentColor $bdRate, transparent) !important; + } +} +@include OS($win7) { + @include _os_menuEmulate(5%, 60%); + + /* 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 */ + } +} +@include OS($win8) { + @include _os_menuEmulate(17%, 80%); +} + +@include OS($linux) { + /*= 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 =====================================*/ + @include NotOption("userChrome.compatiblity.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 ========================*/ +$_os_linuxDefaultShadow: 0 0 4px rgba(128, 128, 142, 0.5); +@mixin _os_linuxDefaultThemeSelectedTab { + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:not(:-moz-lwtheme) { + @content; + } +} +@include OS($linux) { + @include 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); + } + */ + @include _os_linuxDefaultThemeSelectedTab { + box-shadow: $_os_linuxDefaultShadow !important; + } + #TabsToolbar:not([brighttext]) { + @include _os_linuxDefaultThemeSelectedTab { + box-shadow: 0 0 1px var(--tab-line-color, rgba(128, 128, 142, 0.9)), $_os_linuxDefaultShadow !important; + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_others.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_others.scss new file mode 100644 index 00000000..b0ed7723 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_others.scss @@ -0,0 +1,11 @@ +@include Option("userChrome.compatibility.panel_cutoff") { + #appMenu-popup panelview { + width: 24.5em !important; /* can modify panel width, Original: 22.5em */ + } +} + +@include Option("userChrome.compatibility.navbar_top_border") { + #nav-bar { + box-shadow: none !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_theme.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_theme.scss new file mode 100644 index 00000000..e30c33f2 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/compatibility/_theme.scss @@ -0,0 +1,114 @@ +/*= 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, +#customization-panel-container, +#widget-overflow-mainView { + #zoom-in-button > .toolbarbutton-icon { + padding-inline-start: 0px !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, +menu { + &[disabled="true"] { + background-color: transparent !important; + } +} + +/*= Remove Tab Border ========================================================*/ +@mixin _theme_removeTabBorder($options...) { + %noneBorder { + /* Nigtly 96: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); */ + border: unset !important; + } + @each $prefix, $postfix in $options { + #TabsToolbar#{$prefix} + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background#{$postfix} { + @extend %noneBorder; + } + } +} + +@include Option("userChrome.tab.connect_to_window") { + /* TARGET: original, photon */ + @include _theme_removeTabBorder( + // Light Theme + ":not([brighttext])", + // Dark Theme + "[brighttext]" ":-moz-lwtheme" + ); + + #TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon:-moz-lwtheme, + .tab-background[selected]:-moz-lwtheme { + // Nightly 102: outline: 1px solid var(--lwt-tab-line-color, var(--lwt-tabs-border-color, currentColor)); + 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; + } +} + +/*= 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; + + // For high-resolution screen's image ratio + @media (min-width: 2500px) { + background-size: contain; + + @include Option("userChrome.compatibility.covered_header_image") { + background-size: cover; + } + } + + // lwtheme compatibility + #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.3); /* Legacy: v96 */ + --lwt-tabs-border-color: rgba(0, 0, 0, 0.3); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_activity_stream.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_activity_stream.scss new file mode 100644 index 00000000..6593ce1d --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_activity_stream.scss @@ -0,0 +1,192 @@ +@-moz-document url("about:home"), url("about:newtab") { + /** Activity Stream - Search Focus Border: like URL *************************/ + @include Option("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; + + @include Option("userContent.page.proton_color") { + @include Option("userContent.page.proton_color.dark_blue_accent") { + --newtab-focus-border: var(--in-content-focus-outline-color) !important; + } + } + } + } + + /** Activity Stream - Web Site Icon: full size ******************************/ + @include Option("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 ***********************************************/ + @include Option("userContent.newTab.animate") { + @include Animate { + :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-inner-wrapper input { + transition: 1s var(--animation-easing-function); + transition-property: border-color, box-shadow; + } + .search-wrapper .search-inner-wrapper:active input, + .search-wrapper input:focus { + transition: border-color 0.5s var(--animation-easing-function), box-shadow 1s var(--animation-easing-function); + } + @include Option("userContent.page.field_border") { + .search-wrapper .search-inner-wrapper:hover input { + border-color: var(--newtab-primary-action-background) !important; + transition: border-color 0.5s var(--animation-easing-function); + } + } + } + } + + /** Activity Stream - Pocket order to last **********************************/ + @include Option("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 *********************/ + @include Option("userContent.newTab.animate") { + /* 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; + } + + @include 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: -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; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_dark_mode.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_dark_mode.scss new file mode 100644 index 00000000..4d32bb6a --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_dark_mode.scss @@ -0,0 +1,5 @@ +@include Dark { + @import "dark_mode/addons_org"; + @import "dark_mode/support_org"; + @import "dark_mode/accounts_com"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_error_page.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_error_page.scss new file mode 100644 index 00000000..b17bc957 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_error_page.scss @@ -0,0 +1,104 @@ +@-moz-document url-prefix("about:neterror"), + url("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml"), + url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") +{ + /* Illustrations Position */ + #errorPageContainer, + .description-wrapper { + min-height: 300px; + background-position: left center; + background-repeat: no-repeat; + background-size: 38%; + } + + #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=netTimeout"), + url-prefix("about:neterror?e=netReset"), + url-prefix("about:neterror?e=netOffline"), + url("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml") +{ + #errorPageContainer { + background-image: url("../icons/error-connection-failure.svg"); + } +} +@-moz-document url-prefix("about:neterror?e=dnsNotFound") { + #errorPageContainer { + background-image: url("../icons/error-server-not-found.svg"); + } +} +@-moz-document url-prefix("about:neterror?e=malformedURI") { + #errorPageContainer { + background-image: url("chrome://browser/skin/illustrations/error-malformed-url.svg"); + } +} +@-moz-document url-prefix("about:neterror?e=clockSkewError"), + url-prefix("about:neterror?e=nssFailure") { + #errorPageContainer { + background-image: url("../icons/blue-berror.svg"); + background-size: 18.5em; + } +} + +@-moz-document url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") +{ + .description-wrapper { + background-image: 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; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_proton_color.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_proton_color.scss new file mode 100644 index 00000000..c7dfaa89 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_proton_color.scss @@ -0,0 +1,27 @@ +@-moz-document url-prefix("about:"), + 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:\/\/\/)|(chrome:\/\/)).*\/$") { + @import "../theme/proton_color"; + + @include Option("userContent.page.proton_color.dark_blue_accent") { + @include Dark { + @import "../theme/dark_blue_color"; + + :host, :root { + @include DarkBlueContent; + } + } + } + + @include Option("userContent.page.proton_color.system_accent") { + :host, :root { + --in-content-primary-button-text-color: -moz-accent-color-foreground !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; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_proton_contents.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_proton_contents.scss new file mode 100644 index 00000000..95df40b2 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_proton_contents.scss @@ -0,0 +1,30 @@ +/*= Common contents ==========================================================*/ +@import "proton_contents/proton_commons"; + +/*= Field Border =============================================================*/ +@include Option("userContent.page.field_border") { + @include Animate { + @import "proton_contents/field_border"; + } +} + +/*= View Source ==============================================================*/ +@import "proton_contents/view_source"; + +/*= Directory View ===========================================================*/ +@import "proton_contents/directory_view"; + +/*= about:plugins ============================================================*/ +@import "proton_contents/about_plugins"; + +/*= about:cache ==============================================================*/ +@import "proton_contents/about_cache"; + +/*= about:checkerboard =======================================================*/ +@import "proton_contents/about_checkerboard"; + +/*= about:memory =============================================================*/ +@import "proton_contents/about_memory"; + +/*= chrome://browser/content/places/places.xhtml =============================*/ +@import "../library/contents"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_video_player.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_video_player.scss new file mode 100644 index 00000000..c6c60cd4 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/_video_player.scss @@ -0,0 +1,236 @@ +/* Control Bar Size */ +@include Option("userContent.player.size") { + #controlsContainer { + --button-size: 32px !important; /* Original: 30px */ + --controlBar-height: 40px; /* Original: 40px, Replace to this value */ + } + #controlsContainer .touch { + --button-size: 48px !important; /* Original: 40px */ + --controlBar-height: 52px; /* Original: 52px */ + } + .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 */ + } + #controlsContainer .controlBar { + height: var(--controlBar-height) !important; /* Original: 40px */ + } + .videocontrols[inDOMFullscreen] #controlsContainer .controlBar { + padding-bottom: 8px !important; + } +} + +/* Control Bar UI */ +@include Option("userContent.player.ui") { + audio { + --duration-color: #929292; /* Like Original */ + --media-background: rgba(26,26,26,.8); /* Like Original */ + + border-radius: 8px; + --box-shadow1: rgba(14,13,26,.12); + --box-shadow2: rgba(7,48,114,.12); + --box-shadow3: rgba(34,0,51,.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); */ + } + video { + --duration-color: #eee; + --media-background: linear-gradient(transparent, rgba(26,26,26,.85)); + } + + @include 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); + } + } + @include Contrast { + video { + --duration-color: #929292; /* Like Original */ + --media-background: rgba(26,26,26,.8); /* Like Original */ + } + } + #controlsContainer .controlBar { + background: var(--media-background) !important; + } + #controlsContainer .duration { + color: var(--duration-color) !important; /* Original: #929292 */ + } + + @include Option("userContent.player.ui.twoline") { + audio { + // All thing like original + /* #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; + } + } +} + +@include Option("userContent.player.icon") { + #controlsContainer .fullscreenButton { + background-image: url("../icons/enter-fullscreen.svg") !important; + } + #controlsContainer .fullscreenButton[fullscreened] { + background-image: url("../icons/exit-fullscreen.svg") !important; + } +} + +@include Option("userContent.player.noaudio") { + #controlsContainer .muteButton[noAudio] { + /* Remove volume button at noAudio */ + display: none !important; + } +} + +/* Click to play UI */ +@include Option("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 */ +@include Option("userContent.player.animate") { + @include Animate { + /* 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 .1s cubic-bezier(0, 0, 0.2, 1); + } + + /* Click to play */ + #controlsContainer .clickToPlay { + transition: opacity 150ms ease-in-out, fill 150ms ease-in-out; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_accounts_com.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_accounts_com.scss new file mode 100644 index 00000000..7fef1fda --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_accounts_com.scss @@ -0,0 +1,149 @@ +/*= 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, + .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"], + header, + .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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_addons_org.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_addons_org.scss new file mode 100644 index 00000000..6f48de55 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_addons_org.scss @@ -0,0 +1,242 @@ +/*= Addons.org =============================================================*/ +@-moz-document url-prefix("https://addons.mozilla.org") +{ + /* Basic */ + .Page-content, + .SecondaryHero, + body:not(.developer-hub):not(.statistics), + main[aria-label="Content"] { + color: var(--in-content-page-color) !important; + background: var(--in-content-page-background) !important; + } + + /* Text */ + .AutoSearchInput-query, + .AutoSearchInput-suggestions-list, + .Page-content h1, + .Page-content h2, + .SearchResult-link, + .Home-SubjectShelf-link:link, + .Home-SubjectShelf-link:visited, + .DropdownMenuItem-link a, + .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), + .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, + .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 { + color: var(--in-content-primary-button-text-color) !important; + background: var(--in-content-primary-button-background) !important; + } + .Select, + .Button--neutral, + .Button--neutral:link, + .Notice-button, + .AMInstallButton .AMInstallButton-loading-button { + background-color: var(--in-content-button-background) !important; + } + .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 { + background: var(--in-content-primary-button-background-hover) !important; + } + .ShowMoreCard-contents::after { + background: linear-gradient(hsla(0, 0%, 100%, 0), var(--in-content-table-background)) !important; + } + .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; + } + + .AutoSearchInput-query { + border: 1px solid var(--in-content-table-background) !important; + } + .AutoSearchInput-query:is(:hover, :focus) { + border-color: var(--in-content-primary-button-background) !important; + } + .AutoSearchInput-query:focus { + 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, + .DevHub-submit-addon, + .DevHub-get-involved, + .DevHub-MyAddons > * { + background: var(--in-content-page-background) !important; + color: var(--in-content-page-color) !important; + } + .DevHub-Footer, + .DevHub-callout-box { + background: var(--in-content-box-background) !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-Banner a, + .DevHub-Footer a, + .DevHub-MyAddons-list a, + .DevHub-MyAddons-item-buttons-all { + color: var(--in-content-link-color) !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_support_org.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_support_org.scss new file mode 100644 index 00000000..41c9cd49 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/dark_mode/_support_org.scss @@ -0,0 +1,181 @@ +/*= 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 (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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_cache.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_cache.scss new file mode 100644 index 00000000..8e31b350 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_cache.scss @@ -0,0 +1,11 @@ +@-moz-document url-prefix("about:cache") { + table { + padding: 0 !important; + } + + th, + td { + padding: 4px !important; + text-align: match-parent !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_checkerboard.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_checkerboard.scss new file mode 100644 index 00000000..8d7fd20b --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_checkerboard.scss @@ -0,0 +1,8 @@ +@-moz-document url-prefix("about:checkerboard") { + #canvas { + border: 1px solid var(--in-content-border-color) !important; + } + #excludePageFromZoom { + vertical-align: bottom !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_memory.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_memory.scss new file mode 100644 index 00000000..a741846a --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_memory.scss @@ -0,0 +1,10 @@ +@-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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_plugins.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_plugins.scss new file mode 100644 index 00000000..a499ab86 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_about_plugins.scss @@ -0,0 +1,6 @@ +@-moz-document url-prefix("about:plugins") { + .notice { + background: var(--in-content-box-background) !important; + border: 1px solid var(--in-content-border-color) !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_directory_view.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_directory_view.scss new file mode 100644 index 00000000..bbe5ba3a --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_directory_view.scss @@ -0,0 +1,13 @@ +@-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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_field_border.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_field_border.scss new file mode 100644 index 00000000..65877e0b --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_field_border.scss @@ -0,0 +1,12 @@ +@-moz-document url-prefix("about:") { + xul|search-textbox:hover { + border-color: var(--in-content-focus-outline-color) !important; + transition: border-color 0.5s var(--animation-easing-function); + } +} +@-moz-document url-prefix("about:config") { + #about-config-search:hover { + border-color: var(--in-content-focus-outline-color) !important; + transition: border-color 0.5s var(--animation-easing-function); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_proton_commons.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_proton_commons.scss new file mode 100644 index 00000000..6ce5de06 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_proton_commons.scss @@ -0,0 +1,232 @@ +/*= abouts' common ===========================================================*/ +@-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; + } + 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 */ + } + 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 antialising 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 antialising 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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_view_source.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_view_source.scss new file mode 100644 index 00000000..3b6845ef --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/contents/proton_contents/_view_source.scss @@ -0,0 +1,59 @@ +@-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 */ + } + @include 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 */ + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_animate.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_animate.scss new file mode 100644 index 00000000..8c7035a9 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_animate.scss @@ -0,0 +1,197 @@ +/*- Background Color -------------------------------------------------------*/ +@mixin _animate_bgColor($duration, $presudo: "") { + button#{$presudo}, + toolbarbutton#{$presudo}, + stack#{$presudo}, + vbox#{$presudo}, + .toolbarbutton-icon#{$presudo}, + #tabs-newtab-button#{$presudo} > .toolbarbutton-icon { + transition: background-color $duration var(--animation-easing-function) !important; + } +} +@include _animate_bgColor(1s); +@include _animate_bgColor(0.25s, ":hover"); +@include OS($linux) { + .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; + &: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), + margin-inline-start 0.2s var(--animation-easing-function), min-width 0.1s ease-out, max-width 0.1s ease-out !important; + } + &[pinned] { + transition: -moz-box-flex 0.2s var(--animation-easing-function), + margin-inline-start 0.2s var(--animation-easing-function) !important; + + } + } + + .tab-content { + &::before, + &::after { + transition: width 0.2s var(--animation-easing-function), transform 0.2s var(--animation-easing-function) !important; + } + .tab-label-container { + transition: width 0.3s var(--animation-easing-function) !important; + } + .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; + &: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; + &: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; + &:hover { + transition: border-color 0.5s var(--animation-easing-function) !important; + } +} + +/*- Sidebar ----------------------------------------------------------------*/ +@include NotOption("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; + + &[hidden="true"] { + 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; + + &[inFullscreen="true"] { + /* Full screen enter */ + animation-duration: 1s; + animation-name: fullscreen; + animation-timing-function: ease; + + /* Full screen navbar not hover */ + // transition: margin-top 0.3s var(--animation-easing-function) 50ms; + transition: margin-top 1.3s var(--animation-easing-function) 50ms; + &:hover { + // Full screen navbar hover + // transition-duration: 1.5s; // Not works, because !important + // transition-delay: 0.5s; + margin-top: 0 !important; + } + } +} + +@keyframes fullscreen { + from { + margin-top: 0; + } + /* Dont' 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; + } + + &.closed .item-twisty-container { + transform: rotate(-90deg); + background-image: url("chrome://global/skin/icons/arrow-down-12.svg") !important; + + &: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; + .button-icon { + transform: rotate(180deg); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_cursor.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_cursor.scss new file mode 100644 index 00000000..7166ca93 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_cursor.scss @@ -0,0 +1,33 @@ +#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 { + cursor: pointer !important; +} + +/* TODO: For now, fxa-menu doesn't show any status. + (JS required, observe .syncNowBtn status) + #PanelUI-fxa-menu-syncnow-button[syncstatus="active"] { + cursor: progress !important; + } + */ diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_download_panel.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_download_panel.scss new file mode 100644 index 00000000..1139ee9c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_download_panel.scss @@ -0,0 +1,18 @@ +/* Accent Color for downloaded item */ +#downloadsListBox .download-state[exists] .downloadDetails { + color: var(--button-primary-bgcolor); + &.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); + } + .downloadTypeIcon { + filter: grayscale(100%) !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_field_border.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_field_border.scss new file mode 100644 index 00000000..4d7983d8 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_field_border.scss @@ -0,0 +1,23 @@ +/*- 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); +} + +/*- 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: -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, -moz-accent-color) 50%, transparent); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_index.scss new file mode 100644 index 00000000..711e9b27 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/decoration/_index.scss @@ -0,0 +1,26 @@ +/*= Cursor Types =============================================================*/ +@include Option("userChrome.decoration.cursor") { + @import "cursor"; +} + +@include Animate { + /*= Field Border ===========================================================*/ + @include Option("userChrome.decoration.field_border") { + @import "field_border"; + } + + /*= Downloads Panel ========================================================*/ + @include Option("userChrome.decoration.download_panel") { + @import "download_panel"; + } + + /*= Animate ================================================================*/ + @include Option("userChrome.decoration.animate") { + @import "animate"; + } + @include Option("userChrome.decoration.disable_panel_animate") { + :root { + --panelui-subview-transition-duration: 1ms !important; /* Disable top right corner menu sliding animation (0ms will not work!) */ + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/fullscreen/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/fullscreen/_index.scss new file mode 100644 index 00000000..104d3248 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/fullscreen/_index.scss @@ -0,0 +1,9 @@ +@include Option("userChrome.fullscreen.overlap") { + @include Option("browser.fullscreen.autohide") { + @import "overlap"; + } +} + +@include Option("userChrome.fullscreen.show_bookmarkbar") { + @import "show_bookmarkbar"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_context_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_context_menu.scss new file mode 100644 index 00000000..4fb60ca2 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_context_menu.scss @@ -0,0 +1,5 @@ +/** Context Menu - Icons ******************************************************/ +@import "context_menu/tab_toolbar.scss"; +@import "context_menu/content_area.scss"; +@import "context_menu/place"; +@import "context_menu/others"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_global_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_global_menu.scss new file mode 100644 index 00000000..99b12c1e --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_global_menu.scss @@ -0,0 +1,277 @@ +/** Global Menu ***************************************************************/ +/*= menu_FilePopup ===========================================================*/ +#menu_newNavigatorTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); +} +#menu_newUserContext { +} +#menu_newNavigator { + --menuitem-image: url("chrome://browser/skin/window.svg"); +} +#menu_newPrivateWindow { + --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); +} +#menu_newFissionWindow { +} +#menu_newNonFissionWindow { +} +#menu_openLocation { +} +#menu_openFile { + --menuitem-image: url("chrome://browser/skin/open.svg"); +} +#menu_close { +} +#menu_closeWindow { +} + +#menu_savePage { + --menuitem-image: url("chrome://browser/skin/save.svg"); +} +#menu_sendLink { + --menuitem-image: url("chrome://browser/skin/mail.svg"); +} + +#menu_printPreview { +} +#menu_print { + --menuitem-image: url("chrome://global/skin/icons/print.svg"); +} + +#menu_importFromAnotherBrowser { + --menuitem-image: url("chrome://browser/skin/import.svg"); +} + +#goOfflineMenuitem { +} +#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"); +} +#menu_redo { +} + +#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_findAgain { +} + +#textfieldDirection-swap { +} + +#menu_preferences { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); +} + +/*= menu_viewPopup ===========================================================*/ +#viewToolbarsMenu { + --menuitem-image: url("../icons/toolbar.svg"); +} +#viewSidebarMenuMenu { + --menuitem-image: url("chrome://browser/skin/sidebars.svg"); +} + +#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"); +} + +#fullScreenItem { + --menuitem-image: url("chrome://browser/skin/fullscreen.svg"); +} +#menu_readerModeItem { + --menuitem-image: url("chrome://browser/skin/reader-mode.svg"); +} +#menu_showAllTabs { +} + +#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"); +} + +/* viewFullZoomMenu sub menu */ +#menu_zoomEnlarge { + --menuitem-image: url("chrome://browser/skin/add-circle-fill.svg"); +} +#menu_zoomReduce { + --menuitem-image: url("chrome://browser/skin/subtract-circle-fill.svg"); +} +#menu_zoomReset { + --menuitem-image: url("../icons/resize.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 { +} +#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"); +} + +#bookmarksToolbarFolderMenu { +} +#menu_unsortedBookmarks { +} +#menu_mobileBookmarks { +} + +/*= 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-enable { +} +#sync-unverifieditem { +} +#sync-syncnowitem { + --menuitem-image: url("chrome://browser/skin/sync.svg"); +} +#sync-reauthitem { +} + +#webDeveloperMenu, /* Legacy */ + #browserToolsMenu { + --menuitem-image: url("../icons/developer.svg"); +} +#menu_pageInfo { + --menuitem-image: url("../icons/document-endnote.svg"); +} + +/* menuWebDeveloperPopup sub menu */ +#enableDeveloperTools { +} +#menu_devToolbox { +} +#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 { +} +#menu_eyedropper { +} +#menu_pageSource { + --menuitem-image: url("../icons/document-search.svg"); +} +#extensionsForDevelopers { + --menuitem-image: url("chrome://devtools/skin/images/debugging-addons.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 { +} + +#aboutName { + --menuitem-image: url("chrome://global/skin/icons/info.svg"); +} + +#helpPolicySupport { +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_global_menubar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_global_menubar.scss new file mode 100644 index 00000000..33b26c77 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_global_menubar.scss @@ -0,0 +1,22 @@ +/*= 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"); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_bookmark_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_bookmark_menu.scss new file mode 100644 index 00000000..4faa1999 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_bookmark_menu.scss @@ -0,0 +1,93 @@ +/*= Bookmark Menu - Layout ===================================================*/ +/* #goPopup(Legacy of historyMenuPoup), #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 7, 8 */ +@include OS($win7, $win8) { + /* Global Menu */ + menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item { + padding-inline-start: 0 !important; + } + + /* Bookmark Popup - None icon menu */ + #BMB_bookmarksPopup, + #PersonalToolbar { + --arrowpanel-menuicon-padding: 9px; + } + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) 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-padding-inline) !important; + background-position: left calc(var(--arrowpanel-menuicon-padding)) center !important; + } + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic) { + padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding) + 2px) !important; + } + #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), + #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { + padding-inline-start: var(--arrowpanel-menuicon-padding) !important; + } +} + +/* Windows */ +@include OS($win10) { + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) 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-padding-inline) !important; + padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding)) !important; + background-position: left calc(var(--arrowpanel-menuicon-padding)) center !important; + } +} + +/* Linux */ +@include OS($linux) { + /* 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 { + padding-inline-start: 1px !important; + } + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) 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(--arrowpanel-menuitem-padding-inline) + 1px) !important; + } +} + +@include OS($mac) { + /* Bookmark Popup - As Arrow Panel */ + #PersonalToolbar menupopup menuitem, + #PersonalToolbar menupopup menu { + padding-inline: calc(var(--arrowpanel-menuicon-padding) + var(--arrowpanel-menuitem-padding-inline)) !important; + } + + /* Bookmark Popup - None icon menu */ + menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), + menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic) { + padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 3px) !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_menu.scss new file mode 100644 index 00000000..026e88f3 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_menu.scss @@ -0,0 +1,209 @@ +menupopup menuitem:not([type="checkbox"], [type="radio"]), +menupopup menu:not([type="checkbox"], [type="radio"]), +#main-menubar > menu { + -moz-appearance: none !important; /* Linux: menulist */ +} + +/* Icon */ +:not(menu, #ContentSelectDropdown) + > menupopup + > menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +:not(menu, #ContentSelectDropdown) + > menupopup + > menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +#main-menubar > menu, +menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, +menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, +.openintabs-menuitem, +#blockedPopupDontShowMessage { + /* Color */ + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); +} + +/* For native context menus on macOS */ +@supports -moz-bool-pref("widget.macos.native-context-menus") { + :not(menu, #ContentSelectDropdown) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")) !important; + } +} + +/* Padding */ +:root { + --context-menu-background-padding-default: 5px; + --context-menu-background-padding: var(--context-menu-background-padding-default); +} +:not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem:not(.menuitem-iconic), +:not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic), +menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), +menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, +menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, +.openintabs-menuitem, +#blockedPopupDontShowMessage { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: var(--context-menu-background-padding) !important; +} + +/* Menubar */ +@include Option("userChrome.icon.global_menubar") { + #main-menubar > menu { + background-position: left 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: left 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 */ + } + + @include NotOption("userChrome.padding.global_menubar") { + #main-menubar > menu { + padding-block: 2px !important;; + } + } +} + +/* Padding - Windows */ +@include OS($win) { + /* Checkbox */ + :root { + --context-menu-text-padding: calc(var(--menu-padding) + var(--context-menu-background-padding-default) + 16px); + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem[type="checkbox"]:not([checked="true"]) + > .menu-iconic-left { + padding-inline-start: var(--context-menu-text-padding); + } +} + +@include OS($win7) { + :root { + --context-menu-background-padding-default: 2px; + } +} +@include OS($win8) { + :root { + --context-menu-background-padding-default: 3px; + } +} +@include OS($win7, $win8) { + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } +} +@include OS($win10) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: 24px; /* 16px + 8px */ + --menu-background-padding-default: calc(var(--context-menu-background-padding) + var(--context-menu-text-padding)); + } + + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, + menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, + .openintabs-menuitem, + #blockedPopupDontShowMessage { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } +} + +/* Padding - Linux */ +@include OS($linux) { + :root { + --context-menu-background-padding-default: 6px; + } + + #main-menubar > menu > .menubar-text { + padding-inline-start: 3px; + } +} + +/* Padding - Mac */ +@include OS($mac) { + :root { + --context-menu-background-padding-default: 10px; + --context-menu-mac-padding: 21px; + } + + /* context menu width */ + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), + #blockedPopupDontShowMessage { + padding-inline-end: var(--context-menu-background-padding) !important; + } + + /* text position */ + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem > .menu-text, + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu > menu-text { + padding-inline-start: var(--context-menu-mac-padding) !important; + } + + /* Checkbox menuitem, None iconic menu */ + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem[type="checkbox"], + :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic) { + padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; + } + + /* Global Menu */ + /* Disabled. some icons not appear + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), + menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) + menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) { + list-style-image: var(--menuitem-image, url("../icons/blank.svg")); + } + */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_panel.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_panel.scss new file mode 100644 index 00000000..83e9873a --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_layout_panel.scss @@ -0,0 +1,99 @@ +/*= Padding ==================================================================*/ +:root { + --arrowpanel-menuicon-padding: 8px; + --arrowpanel-menublank-padding: calc(var(--arrowpanel-menuicon-padding) * 2 + var(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; +} + +@include Option("userChrome.icon.panel_photon", "userChrome.icon.panel_sparse") { + :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 > .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; +} + +#appMenu-multiView .subviewbutton::before, +#appMenu-proton-update-banner::before { + display: -moz-inline-box; + margin-inline-end: var(--arrowpanel-menuicon-padding); + width: 16px; + height: 16px; +} +#appMenu-proton-update-banner { + margin-bottom: 2px !important; +} +#appMenu-proton-update-banner::before { + margin-inline-start: var(--arrowpanel-menuitem-padding-inline) !important; +} +#appMenu-fxa-status2, +#appMenu-zoom-controls2 { + align-items: center; + padding-top: var(--arrowpanel-menuimageblank-padding-block) !important; + padding-bottom: var(--arrowpanel-menuimageblank-padding-block) !important; +} +#appMenu-zoom-controls2::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"]) > .toolbarbutton-text { + margin-left: 16px !important; +} + +/* Icons Color */ +#appMenu-multiView .subviewbutton::before, +#appMenu-proton-update-banner::before, +#downloadsHistory .button-icon, +.subviewbutton > image { + fill: currentColor !important; + fill-opacity: var(--toolbarbutton-icon-fill-opacity) !important; + -moz-context-properties: fill !important; +} +#appMenu-zoomReduce-button2 > .toolbarbutton-icon, +#appMenu-zoomEnlarge-button2 > .toolbarbutton-icon { + stroke: var(--zoom-controls-bgcolor, var(--button-bgcolor, ButtonFace)) !important; + -moz-context-properties: fill, stroke !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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_library.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_library.scss new file mode 100644 index 00000000..fc2b57b2 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_library.scss @@ -0,0 +1,66 @@ +/*= organizeButtonPopup ======================================================*/ +#newbookmark { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); +} +#newfolder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + @include Option("userChrome.icon.library") { + --menuitem-image: url("../icons/folder.svg"); + } +} +#newseparator { + --menuitem-image: url("../icons/vertical-line.svg"); +} + +#orgUndo { + --menuitem-image: url("../icons/undo.svg"); +} +#orgRedo { +} + +#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("chrome://devtools/skin/images/datastore.svg"); +} +#fileRestoreMenu { +} + +#fileImport { + --menuitem-image: url("chrome://browser/skin/save.svg"); +} +#fileExport { + --menuitem-image: url("chrome://browser/skin/open.svg"); +} + +#browserImport { + --menuitem-image: url("chrome://browser/skin/import.svg"); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_panel.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_panel.scss new file mode 100644 index 00000000..a299aa49 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_panel.scss @@ -0,0 +1,460 @@ +/*= Panel - Main =============================================================*/ +#appMenu-proton-addon-banners > .addon-banner-item > .toolbarbutton-icon { + display: -moz-inline-box !important; + margin-inline-start: var(--arrowpanel-menuicon-padding); + -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; +} + +@include Option("userChrome.icon.panel_full", "userChrome.icon.panel_photon") { + #appMenu-new-tab-button2 { + list-style-image: url("chrome://browser/skin/new-tab.svg"); + } +} +@include Option("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 { + padding-inline-start: var(--arrowpanel-menuimageblank-padding-horizontal) !important; + } +} +@include Option("userChrome.icon.panel_sparse") { + #appMenu-new-tab-button2, /* Seperate */ + #appMenu-passwords-button, /* Seperate */ + #appMenu-extensions-themes-button, + #appMenu-save-file-button2, /* Seperate */ + #appMenu-find-button2, + #appMenu-more-button2, /* Seperate */ + #appMenu-help-button2, + #appMenu-quit-button2 /* Seperate */ { + padding-top: var(--arrowpanel-menuitemblank-padding-block) !important; + padding-bottom: var(--arrowpanel-menuitemblank-padding-block) !important; + } + #appMenu-zoom-controls2 { + 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"); +} +@include Option("userChrome.icon.panel_full", "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"); +} +@include Option("userChrome.icon.panel_full") { + #appMenu-save-file-button2 { + list-style-image: url("chrome://browser/skin/save.svg"); + } + #appMenu-find-button2 { + list-style-image: url("chrome://global/skin/icons/search-glass.svg"); + } + #appMenu-zoom-controls2::before { + content: url("../icons/screenshot.svg"); + } +} + +#appMenu-settings-button { + list-style-image: url("chrome://global/skin/icons/settings.svg"); +} +@include Option("userChrome.icon.panel_full") { + #appMenu-more-button2 { + list-style-image: url("chrome://browser/skin/ion.svg"); + } +} +@include Option("userChrome.icon.panel_full", "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: -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); + + @include Option("userChrome.icon.account_image_to_right") { + -moz-box-ordinal-group: 2 !important; + } +} +@include Option("userChrome.icon.account_label_to_right") { + #fxa-menu-header-title, #fxa-menu-header-description { + text-align: right; + } +} + +.syncNowBtn { + visibility: visible !important; + -moz-box-ordinal-group: 1 !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("chrome://browser/skin/fxa/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; + + 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: -moz-box; + border-bottom: 1px solid var(--panel-separator-color); + margin: var(--panel-separator-margin); + padding: 0; +} +#PanelUI-fxa-menu > :first-child { + -moz-box-ordinal-group: 0; +} +#PanelUI-sign-out-separator { + display: none; +} +.pageAction-sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target[clientType=""], /* Legacy */ + .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]), /* Legacy */ + .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"); +} +#appMenuRestoreSession { + 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 Toolbaox - */ +#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_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: -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/password-hide.svg"); +} + +#allTabsMenu-containerTabsView .subviewbutton:last-child { + list-style-image: url("chrome://global/skin/icons/settings.svg"); +} + +/*= BMB_bookmarksPopup =======================================================*/ +#BMB_viewBookmarksSidebar { +} +#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"); +} + +@include OS($mac) { + #BMB_bookmarksShowAllTop { + list-style-image: url("chrome://browser/skin/bookmark-star-on-tray.svg") !important; + } + #BMB_bookmarksShowAllTop > .menu-iconic-left { + display: -moz-box !important; + } +} + +/*= 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: 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 { + list-style-image: url("chrome://global/skin/icons/info.svg"); +} + +#sidebar-switcher-bookmarks { + list-style-image: url("chrome://browser/skin/bookmark.svg"); +} + +#sidebar-switcher-history { + list-style-image: url("chrome://browser/skin/history.svg"); +} + +#sidebar-switcher-tabs { + list-style-image: url("chrome://browser/skin/tab.svg"); +} + +#sidebar-reverse-position { + list-style-image: url("chrome://browser/skin/sidebars-right.svg"); +} +#sidebar-box[positionend="true"] #sidebar-reverse-position { + /* Can't apply this. shadow dom */ + list-style-image: url("chrome://browser/skin/sidebars.svg"); +} + +#sidebarMenu-popup > .subviewbutton[data-l10n-id="sidebar-menu-close"] { + list-style-image: url("chrome://global/skin/icons/close.svg"); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_tor_browser.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_tor_browser.scss new file mode 100644 index 00000000..d2f8471b --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_tor_browser.scss @@ -0,0 +1,23 @@ +@include Option("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"); + } +} + +@include Option("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"); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_waterfox.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_waterfox.scss new file mode 100644 index 00000000..f1bbee15 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/_waterfox.scss @@ -0,0 +1,14 @@ +@include Option("userChrome.icon.panel") { + #appMenu-restart-button { + list-style-image: url("../icons/refresh-cw.svg") !important; + } +} +@include Option("userChrome.icon.menu") { + #menu_FileRestartItem { + --menuitem-image: url("../icons/refresh-cw.svg"); + } + + menuitem.privatetab-icon { + --menuitem-image: url("../icons/private-favicon.svg"); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_content_area.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_content_area.scss new file mode 100644 index 00000000..903bc436 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_content_area.scss @@ -0,0 +1,259 @@ +/*= 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/code.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("chrome://browser/skin/save.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("chrome://browser/skin/save.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"); +} +#context-redo { +} + +#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-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 */ +} +#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"); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_others.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_others.scss new file mode 100644 index 00000000..36973e72 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_others.scss @@ -0,0 +1,248 @@ +/*= 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 */ +} + +#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 */ +} + +/*= 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("chrome://browser/skin/open.svg"); +} +.downloadAlwaysUseSystemDefaultMenuItem { + /* checkbox */ +} +.downloadShowMenuItem { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + @include Option("userChrome.icon.library") { + --menuitem-image: url("../icons/folder.svg"); + } +} + +#downloadsContextMenu > menuitem[command="downloadsCmd_openReferrer"] { + --menuitem-image: url("../icons/link-square.svg"); +} +#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"); +} + +/*= 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"); +} +#urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_redo"] { +} + +#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"); +} +#paste-and-go { +} +#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, Libray's Searchbar, Page Info */ +.textbox-contextmenu > menuitem[data-l10n-id="text-action-undo"] { + --menuitem-image: url("../icons/undo.svg"); +} +.textbox-contextmenu > menuitem[data-l10n-id="text-action-redo"] { +} + +.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 */ +menuitem.searchbar-paste-and-search { +} +menuitem.searchbar-clear-history { + --menuitem-image: url("chrome://browser/skin/forget.svg"); +} + +/*= context_sendTabToDevicePopupMenu =========================================*/ +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="phone"] { + --menuitem-image: url("chrome://browser/skin/device-phone.svg"); +} + +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="tablet"] { + --menuitem-image: url("chrome://browser/skin/device-tablet.svg"); +} + +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="desktop"] { + --menuitem-image: url("chrome://browser/skin/device-desktop.svg"); +} + +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="tv"] { + --menuitem-image: url("chrome://browser/skin/device-tv.svg"); +} + +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType="vr"] { + --menuitem-image: url("chrome://browser/skin/device-vr.svg"); +} + +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target[clientType=""] { + --menuitem-image: url("../icons/send-to-device.svg"); +} + +menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) + > .sync-menuitem.sendtab-target:not([clientType]) { + --menuitem-image: url("chrome://global/skin/icons/settings.svg"); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_place.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_place.scss new file mode 100644 index 00000000..6310fa21 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_place.scss @@ -0,0 +1,79 @@ +/*= 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\: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_new\:folder { + --menuitem-image: url("chrome://global/skin/icons/folder.svg"); + @include Option("userChrome.icon.library") { + --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"); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_tab_toolbar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_tab_toolbar.scss new file mode 100644 index 00000000..112584f0 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/icons/context_menu/_tab_toolbar.scss @@ -0,0 +1,124 @@ +/*= tabContextMenu ===========================================================*/ +#context_openANewTab { + --menuitem-image: url("chrome://browser/skin/new-tab.svg"); +} + +#context_reloadTab, +#context_reloadSelectedTabs { + --menuitem-image: url("../icons/reload.svg"); +} +#context_toggleMuteTab, +#context_toggleMuteSelectedTabs { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-muted-small.svg"); +} +#context_toggleMuteTab[muted], +#context_toggleMuteSelectedTabs[muted] { + --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); +} +#context_pinTab, +#context_pinSelectedTabs { + --menuitem-image: url("../icons/pin-tab.svg"); +} +#context_unpinTab, +#context_unpinSelectedTabs { + --menuitem-image: url("../icons/unpin-tab.svg"); +} +#context_duplicateTab, +#context_duplicateTabs { + --menuitem-image: url("../icons/notebook-subsection.svg"); +} + +#context_bookmarkTab, +#context_bookmarkSelectedTabs { + --menuitem-image: url("chrome://browser/skin/bookmark.svg"); +} +#context_moveTabOptions { + --menuitem-image: url("../icons/arrow-swap.svg"); +} +#context_sendTabToDevice { + --menuitem-image: url("../icons/send-to-device.svg"); +} + +#context_sendTabToDevice:is([disabled="true"]) + #context_shareTabURL, /* Legacy */ + #context_sendTabToDevice:is([disabled="true"]) + menuitem.share-tab-url-item { + /* At windows */ + --menuitem-image: url("../icons/share.svg"); +} +#context_reopenInContainer { + --menuitem-image: url("../icons/container-openin-16.svg"); +} +#context_selectAllTabs { + --menuitem-image: url("../icons/tab-multiple.svg"); +} + +#context_closeTab { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); +} +#context_closeTabOptions { +} +#context_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 { + --menuitem-image: url("../icons/password-hide.svg"); +} +.customize-context-removeFromToolbar { + --menuitem-image: url("chrome://global/skin/icons/delete.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"); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/leptonChrome.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/leptonChrome.scss new file mode 100644 index 00000000..97014227 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/leptonChrome.scss @@ -0,0 +1,112 @@ +@use "utils/os" as *; +@use "utils/option" as *; +@use "utils/color_scheme" as *; +@use "utils/theme" as *; +@use "sass:selector"; + +@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; +@namespace html "http://www.w3.org/1999/xhtml"; + +/** Default Thme - Contrast ***************************************************/ +@include Option("userChrome.theme.built_in_contrast") { + @import "theme/built_in"; +} + +/** Compatibility Fixes *******************************************************/ +@import "compatibility/index"; + +/** System Default Theme ******************************************************/ +@include Option("userChrome.theme.system_default") { + @import "theme/system_default_theme"; +} + +/** Fully Theme Mode **********************************************************/ +/* Default Themes + https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/extensions/default-theme/manifest.json + https://github.com/mozilla/gecko-dev/blob/master/browser/themes/addons/light/manifest.json + https://github.com/mozilla/gecko-dev/blob/master/browser/themes/addons/dark/manifest.json + */ + +@include Option("userChrome.theme.proton_color") { + @import "theme/proton_color"; + @include Option("userChrome.theme.proton_color.dark_blue_accent") { + @import "theme/dark_blue_accent"; + } +} +@include Option("userChrome.theme.fully_color") { + @import "theme/fully_color"; +} + +/* Fully Dark Mode ************************************************************/ +@include Option("userChrome.theme.fully_dark") { + @import "theme/fully_dark"; +} + +/* Proton Theme Mode **********************************************************/ +@include Option("userChrome.theme.proton_chrome") { + @import "theme/proton_chrome"; +} + +/** Decoration ****************************************************************/ +@import "decoration/index"; + +/** Rounding ******************************************************************/ +@import "rounding/index"; + +/** Reduce Padding ************************************************************/ +@import "padding/index"; + +/** Tab Bar UI ****************************************************************/ +@import "tabbar/index"; + +/** Url View UI ***************************************************************/ +@import "urlview/index"; + +/** Panel UI ******************************************************************/ +@import "panel/index"; + +/** Fullscreen - Overlap toolbar **********************************************/ +@import "fullscreen/index"; + +/** Library - Icons Replace ***************************************************/ +@include Option("userChrome.icon.library") { + @import "library/chrome"; +} + +/** Panel - Icons *************************************************************/ +@include Option("userChrome.icon.panel") { + @import "icons/layout_panel"; + @import "icons/panel"; +} + +/** Menu - Icons Layout *******************************************************/ +@include Option("userChrome.icon.menu") { + @import "icons/layout_menu"; + @import "icons/layout_bookmark_menu"; + + @include Option("userChrome.icon.context_menu") { + @import "icons/context_menu"; + } + @include Option("userChrome.icon.global_menubar") { + @import "icons/global_menubar"; + } + @include Option("userChrome.icon.global_menu") { + @import "icons/global_menu"; + } +} + +/** Libray Menu ***************************************************************/ +@include Option("userChrome.icon.library") { + @include Option("userChrome.icon.menu") { + @import "icons/library"; + } +} + +/*= Waterfox =================================================================*/ +@import "icons/waterfox"; +@include Option("userChrome.theme.fully_color") { + @import "theme/waterfox"; +} + +/*= Tor Browser ==============================================================*/ +@import "icons/tor_browser"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/leptonContent.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/leptonContent.scss new file mode 100644 index 00000000..7be87424 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/leptonContent.scss @@ -0,0 +1,31 @@ +@use "utils/os" as *; +@use "utils/option" as *; +@use "utils/color_scheme" as *; + +@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +@namespace html url("http://www.w3.org/1999/xhtml"); + +/** Video player **************************************************************/ +@import "contents/video_player"; + +/** Activity Stream ***********************************************************/ +@import "contents/activity_stream"; + +/** Error Page - Restore illustrations ****************************************/ +@include Option("userContent.page.illustration") { + @import "contents/error_page"; +} + +/** Fully Dark Mode ***********************************************************/ +/*= Fully Dark Mode - Dark Mode Colors =======================================*/ +@include Option("userContent.page.proton_color") { + @import "contents/proton_color"; +} +@include Option("userContent.page.dark_mode") { + @import "contents/dark_mode"; +} + +/** Fully Proton Mode *********************************************************/ +@include Option("userContent.page.proton") { + @import "contents/proton_contents"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_chrome.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_chrome.scss new file mode 100644 index 00000000..ef6931b0 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_chrome.scss @@ -0,0 +1,11 @@ +@import "standard_folder"; +@import "inbox"; +@import "default_override"; +@import "default_open"; + +@-moz-document url("chrome://browser/content/places/places.xhtml") +{ + @include OS($linux) { + @import "menubar"; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_contents.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_contents.scss new file mode 100644 index 00000000..0e1dda31 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_contents.scss @@ -0,0 +1,35 @@ +@-moz-document url("chrome://browser/content/places/places.xhtml") +{ + /** Library - Icons Replace *************************************************/ + @include Option("userChrome.icon.library") { + @import "standard_folder"; + @import "inbox"; + @import "default_override"; + @import "default_open"; + @import "menubar"; + } + + /*= Context Menu ===========================================================*/ + @include Option("userChrome.icon.context_menu") { + @import "contents_menu"; + } + + @include OS($linux) { + /*= 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 ===============================================================*/ + @include Option("userContent.page.proton") { + @import "proton"; + @import "proton_contents"; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_contents_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_contents_menu.scss new file mode 100644 index 00000000..a089f46c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_contents_menu.scss @@ -0,0 +1,132 @@ +menupopup menuitem:not([type="checkbox"], [type="radio"]), +menupopup menu:not([type="checkbox"], [type="radio"]), +#main-menubar > menu { + -moz-appearance: none !important; /* Linux: menulist */ +} + +#placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +#placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, +menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + /* Color */ + -moz-context-properties: fill, fill-opacity !important; + fill: currentColor !important; + + /* Layout */ + background-size: 16px !important; + background-repeat: no-repeat !important; + background-image: var(--menuitem-image); +} + +/* For native context menus on macOS */ +@supports -moz-bool-pref("widget.macos.native-context-menus") { + :not(menu, #ContentSelectDropdown) + > menupopup + > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), + :not(menu, #ContentSelectDropdown) + > menupopup + > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist) { + list-style-image: var(--menuitem-image) !important; + } +} + +/* Padding */ +:root { + --context-menu-background-padding-default: 5px; + --context-menu-background-padding: var(--context-menu-background-padding-default); +} +#placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +#placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), +menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, +menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: var(--context-menu-background-padding) !important; +} + +/* Padding - Windows */ +@include OS($win) { + /* Checkbox */ + :root { + --context-menu-text-padding: calc(var(--menu-padding) + var(--context-menu-background-padding-default) + 16px); + } + :not(menu, #ContentSelectDropdown, #context-navigation) + > menupopup + > menuitem[type="checkbox"][checked="false"] + > .menu-iconic-left { + padding-inline-start: var(--context-menu-text-padding); + } +} + +@include OS($win7) { + :root { + --context-menu-background-padding-default: 2px; + } +} +@include OS($win8) { + :root { + --context-menu-background-padding-default: 3px; + } +} +@include OS($win7, $win8) { + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + background-position: left var(--context-menu-background-padding) center !important; + padding-inline-start: 0 !important; + } +} +@include OS($win10) { + :root { + --context-menu-background-padding: 1em; + --context-menu-text-padding: 24px; /* 16px + 8px */ + --menu-background-padding-default: calc( + var(--context-menu-background-padding) + var(--context-menu-text-padding) + ); + } + + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, + menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { + padding-inline-start: var(--menu-background-padding-default) !important; + margin-left: 0 !important; + } +} + +/* Padding - Linux */ +@include OS($linux) { + :root { + --context-menu-background-padding-default: 6px; + } +} + +/* Padding - Mac */ +@include OS($mac) { + :root { + --context-menu-background-padding-default: 10px; + --context-menu-mac-padding: 21px; + } + + /* context menu width */ + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) { + padding-inline-end: var(--context-menu-background-padding) !important; + } + + /* text position */ + #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]) > .menu-text, + #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) > .menu-text { + padding-inline-start: var(--context-menu-mac-padding) !important; + } + + /* Checkbox menuitem, None iconic menu */ + #placesContext menuitem[type="checkbox"], + #placesContext menu:not(.menu-iconic) { + padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; + } +} + +/* Icon lists */ +@import "../icons/context_menu/place"; +@import "../icons/library"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_default_open.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_default_open.scss new file mode 100644 index 00000000..5fb2e31e --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_default_open.scss @@ -0,0 +1,42 @@ +/*= 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; +} + +/* Boomark */ +:-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" */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_default_override.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_default_override.scss new file mode 100644 index 00000000..0d662b9c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_default_override.scss @@ -0,0 +1,42 @@ +/*= 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; +} + +/* Boomark */ +:-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, /* Original: Default folder icon */ + #bookmarksMenuPopup #bookmarksToolbarFolderMenu, /* Original: Default folder icon */ + :-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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_inbox.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_inbox.scss new file mode 100644 index 00000000..7bd8040f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_inbox.scss @@ -0,0 +1,23 @@ +/*= Other Folder - Inbox Icon ================================================*/ +/* on Menus */ +#PlacesToolbar #OtherBookmarks, + #BMB_bookmarksPopup #BMB_unsortedBookmarks, + #bookmarksMenuPopup #menu_unsortedBookmarks, + /* Other Bookmarks -- in Sidebar, Library, Add/Edit Bookmark dialog */ + :-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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_menubar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_menubar.scss new file mode 100644 index 00000000..c9624a54 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_menubar.scss @@ -0,0 +1,45 @@ +/*= Menubar - Icons ==========================================================*/ +#organizeButton, +#viewMenu, +#maintenanceButton, +#back-button, +#forward-button, +#clearDownloadsButton { + fill: currentColor !important; + -moz-context-properties: fill !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: -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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_proton.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_proton.scss new file mode 100644 index 00000000..4d4b05cc --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_proton.scss @@ -0,0 +1,386 @@ +: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; +} + +@include NotContrast { + :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); + } + + @include 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; +} + +#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; + border-radius: 4px !important; + padding-block: 5px !important; + padding-inline-start: 5px !important; + margin-inline-end: 2px !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; +} + +#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, /* Legacy - FF v98 */ +#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; +} + +/*- 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; + list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); + -moz-context-properties: fill !important; + fill: currentColor !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 { + list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); +} + +#editBookmarkPanelRows .expander-up > .button-box, +#editBookmarkPanelRows .expander-down > .button-box { + padding: 0 !important; +} + +#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; +} + +#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; +} + +#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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_proton_contents.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_proton_contents.scss new file mode 100644 index 00000000..dc62bbb9 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_proton_contents.scss @@ -0,0 +1,182 @@ +/*- 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; + padding: 0 !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 100% !important; + margin-block: 2px !important; /* extend the vertical clicktarget */ + margin-inline: 0 6px !important; + background-color: var(--in-content-button-background) !important; + background-position: center !important; + flex-shrink: 0 !important; /* avoid shrinking inside flex container */ +} + +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"] > .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"])[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; +} + +menuitem[type="radio"][disabled="true"], +menuitem[type="checkbox"][disabled="true"] { + opacity: 0.5 !important; +} + +/*- Check Box ------------------------------------------------------------*/ +/* From checkbox.css */ +menuitem[type="checkbox"] { + appearance: none !important; + -moz-box-align: center !important; + margin: 0px 2px !important; +} + +menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + margin-inline-end: 2px !important; +} +menuitem[type="checkbox"] > .menu-iconic-text { + margin: 1px 0 !important; +} + +menuitem[type="checkbox"][disabled="true"] { + opacity: 0.4 !important; +} + +menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + appearance: none !important; + color: var(--checkbox-border-color, ThreeDDarkShadow) !important; + background-color: var(--checkbox-unchecked-bgcolor, Field) !important; + border: 1px solid currentColor !important; + border-radius: 2px !important; + margin-inline-end: 6px !important; +} + +menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + height: 16px !important; + width: 16px !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, -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, -moz-accent-color 8%, Field) + ) !important; +} + +menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { + border-color: var(--checkbox-checked-border-color, transparent) !important; + background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !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, -moz-accent-color-foreground) !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !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%, -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%, -moz-accent-color) + ) !important; +} + +menuitem[type="checkbox"]:focus > .menu-iconic-left > .menu-iconic-icon { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; +} + +@include 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, -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, -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, -moz-accent-color-foreground) !important; + fill: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; + } +} + +/* From common.css */ +menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { + margin-block: 2px !important; +} + +/*- Menu Separtor --------------------------------------------------------*/ +menuseparator { + appearance: none !important; + min-width: 2px; + min-height: 0; + border-top: 1px solid var(--in-content-box-border-color, ThreeDDarkShadow); + border-bottom: none; + margin: var(--panel-separator-margin, 6px); + padding: 0; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/library/_standard_folder.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_standard_folder.scss new file mode 100644 index 00000000..87b88f06 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/library/_standard_folder.scss @@ -0,0 +1,21 @@ +/*= Standard Folder - More Visible ===========================================*/ +/* on Toolbar and Menus */ +:-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer]), + /* in Sidebar, Library, Add/Edit Bookmark dialog */ + /* https://github.com/rillian/firefox/blob/1f88437d263f56bdede4f20f69ba9c7b62f57001/layout/style/nsCSSAnonBoxList.h#L85-L98 */ + /* Need to overide!!, can not use :not() */ + :-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]), + /* Download Popup */ + .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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_bookmark_bar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_bookmark_bar.scss new file mode 100644 index 00000000..aee9f5e8 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_bookmark_bar.scss @@ -0,0 +1,3 @@ +:root[uidensity="compact"] #PersonalToolbar toolbarbutton { + margin-top: 0px; /* Original: 2px */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_bookmark_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_bookmark_menu.scss new file mode 100644 index 00000000..adb088b3 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_bookmark_menu.scss @@ -0,0 +1,27 @@ +:root { + --bookmark-menu-padding: 3px; +} +:root[uidensity="compact"] { + --bookmark-menu-padding: 1.5px; +} +@include Option("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; +} + +@include Option("userChrome.padding.menu_compact", "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 */ + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_drag_space.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_drag_space.scss new file mode 100644 index 00000000..76026226 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_drag_space.scss @@ -0,0 +1,57 @@ +/* for Extra Drag Space */ +// https://searchfox.org/mozilla-esr78/search?q=--space-above-tabbar&path=&case=false®exp=false +:root { + --space-above-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ +} + +@mixin dragSpaceHeight { + :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + @content; + } + @include Option("userChrome.padding.drag_space.maximized") { + :root[tabsintitlebar][sizemode="maximized"] #toolbar-menubar[autohide="true"] { + @content; + } + } +} +@mixin dragSpacePadding { + /* 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 { + @content; + } + @include Option("userChrome.padding.drag_space.maximized") { + :root[sizemode="maximized"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, + :root[sizemode="maximized"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { + @content; + } + } +} + +@include OS($win10) { + @include dragSpaceHeight { + height: calc(var(--tab-min-height) + var(--space-above-tabbar) - var(--tabs-navbar-shadow-size)); + } +} +@include OS($win7, $win8, $linux) { + @include dragSpaceHeight { + height: calc(var(--tab-min-height) + var(--space-above-tabbar)); + } +} + +@include OS($mac) { + #TabsToolbar > .toolbar-items { + padding-top: var(--space-above-tabbar) !important; + } +} +@include OS($win7) { + /* Add 4px extra margin on top of the tabs toolbar on Windows 7. */ + @include dragSpacePadding { + padding-top: calc(var(--space-above-tabbar) + 4px) !important; + } +} +@include OS($win8, $win10, $linux) { + @include dragSpacePadding { + padding-top: var(--space-above-tabbar) !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_first_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_first_tab.scss new file mode 100644 index 00000000..64c30331 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_first_tab.scss @@ -0,0 +1,9 @@ +/* for First Tab Space */ +:root { + --space-left-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ +} + +:root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), +:root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { + padding-inline-start: var(--space-left-tabbar) !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_global_menubar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_global_menubar.scss new file mode 100644 index 00000000..2cd1c941 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_global_menubar.scss @@ -0,0 +1,29 @@ +/* Vertical Align - Center & Height: 100% */ +#main-menubar { + -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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_index.scss new file mode 100644 index 00000000..b4872dc9 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_index.scss @@ -0,0 +1,79 @@ +/*= Tab Bar - Distribution padding, radius ===================================*/ +@import "tab_padding"; + +/*= Tab Bar - Reduce Width, Show more tabs ===================================*/ +@include Option("userChrome.padding.first_tab") { + @import "first_tab"; +} + +@include Option("userChrome.padding.tabbar_width") { + @import "tabbar_width"; +} + +/*= Tab Bar - Reduce Height, Show more contents ==============================*/ +@include Option("userChrome.padding.drag_space") { + @import "drag_space"; +} + +@include Option("userChrome.padding.tabbar_height") { + @import "tabbar_height"; +} + +/*= Tool Bar - Button Padding ================================================*/ +@include Option("userChrome.padding.toolbar_button") { + @import "toolbar_button"; +} + +/*= Nav Bar - Reduce Width ===================================================*/ +@include Option("userChrome.padding.navbar_width") { + @import "nav_bar"; +} + +/*= URL Bar - Reduce Padding =================================================*/ +@include Option("userChrome.padding.urlbar") { + @import "url_bar"; +} +@include Option("userChrome.padding.urlView_expanding") { + @import "urlview_expanding"; +} +@include Option("userChrome.padding.urlView_result") { + @import "urlview_result"; +} + +/*= BookMark Bar - Reduce Height =============================================*/ +@include Option("userChrome.padding.bookmarkbar") { + @import "bookmark_bar"; +} + +/*= Info Bar - Reduce Padding ================================================*/ +@include Option("userChrome.padding.infobar") { + @import "info_bar"; +} + +/*= Menu - Reduce Padding ====================================================*/ +@include Option("userChrome.padding.menu") { + @import "menu"; +} + +/*= Bookmark Menu - Reduce Padding ===========================================*/ +@include Option("userChrome.padding.bookmark_menu") { + @import "bookmark_menu"; +} + +/*= Global Menu - Set Padding ================================================*/ +@include Option("userChrome.padding.global_menubar") { + @import "global_menubar"; +} + +/*= Panel - Reduce padding ===================================================*/ +@include Option("userChrome.padding.panel") { + @import "panel"; +} +@include Option("userChrome.padding.panel_header") { + @import "panel_header"; +} + +/*= Popup Panel - Reduce padding =============================================*/ +@include Option("userChrome.padding.popup_panel") { + @import "popup_panel"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_info_bar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_info_bar.scss new file mode 100644 index 00000000..409550cd --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_info_bar.scss @@ -0,0 +1,44 @@ +:root:not([uidensity]) #tab-notification-deck { + --infobar-message-margin: 0 4px 3px; +} +:root[uidensity="compact"] #tab-notification-deck { + --infobar-message-margin: 0 4px 2px; +} +#tab-notification-deck notification-message[message-bar-type="infobar"]:not([style*="margin-top"]) { + margin: var(--infobar-message-margin, 0 4px 4px) !important; +} + +:root:not([uidensity]) notification-message[message-bar-type="infobar"] { + --infobar-vertical-margin: 7px; + --infobar-button-vertical-margin: 3px; +} +:root[uidensity="compact"] notification-message[message-bar-type="infobar"] { + --infobar-vertical-margin: 6px; + --infobar-button-vertical-margin: 2px; +} +.infobar > .icon { + margin-block: var(--infobar-vertical-margin, 8px) !important; /* Original: 8px */ +} +.notification-message { + padding-block: var(--infobar-vertical-margin, 8px) !important; /* Original: 8px */ +} +.notification-button-container > .notification-button { + margin-block: var(--infobar-button-vertical-margin, 4px) !important; /* Original: 4px */ +} +.notification-close { + margin: var(--infobar-button-vertical-margin, 4px) 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(0, #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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_menu.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_menu.scss new file mode 100644 index 00000000..677e1e0a --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_menu.scss @@ -0,0 +1,69 @@ +:root { + --menu-padding: 0.35em; /* Win7, 8: 0px */ +} +:root[uidensity="compact"] { + --menu-padding: 0.25em; +} +:root[uidensity="touch"] { + --menu-padding: 0.5em; +} +@include Option("userChrome.padding.menu_compact") { + :root { + --menu-padding: 2px; + } + :root[uidensity=compact] { + --menu-padding: 0px; + } +} + +menupopup:not(.in-menulist) > menuitem, +menupopup > menu { + /* Original: 0.5em */ + padding-block: var(--menu-padding) !important; +} + +#ContentSelectDropdown > menupopup > menucaption, +#ContentSelectDropdown > menupopup > menuitem { + padding-block: 0 !important; +} + +@include OS($mac) { + :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 */ + } +} + +@include OS($win7, $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; + } +} + +@include OS($linux) { + menupopup > menu { + padding-inline-start: 0.5em; + } +} + +/* Arrow Icon Align to Right */ +.bookmark-item.subviewbutton > .menu-right { + margin-inline-end: 0 !important; +} + diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_nav_bar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_nav_bar.scss new file mode 100644 index 00000000..fb95e5ab --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_nav_bar.scss @@ -0,0 +1,4 @@ +#nav-bar:not([customizing]) toolbarspring { + min-width: 1px !important; + max-width: 100px !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_panel.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_panel.scss new file mode 100644 index 00000000..f8c4e763 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_panel.scss @@ -0,0 +1,16 @@ +:root { + --arrowpanel-menuitem-margin: 0 var(--arrowpanel-menuicon-padding) !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-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 */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_panel_header.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_panel_header.scss new file mode 100644 index 00000000..12510c01 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_panel_header.scss @@ -0,0 +1,4 @@ +.panel-header{ + padding: unset !important; + padding-top: 4px !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_popup_panel.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_popup_panel.scss new file mode 100644 index 00000000..00b44476 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_popup_panel.scss @@ -0,0 +1,51 @@ +#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 */ +/* Footer Button Height */ +:root[uidensity="compact"] .panel-footer.panel-footer-menulike > button { + padding: 3px 8px !important; +} +/* Footer Button Height */ +:root[uidensity="compact"] #protections-popup-trackersView-settings-button { + margin: 4px 8px 0 !important; +} +/* not cut off for Protection popup Footer on windows */ +:root[uidensity="compact"] #protections-popup-multiView #protections-popup-footer { + padding: 3px 0 10px !important; +} +/* Button and disabled category in Protection popup */ +:root[uidensity="compact"] #protections-popup-multiView .protections-popup-footer-button, +:root[uidensity="compact"] #protections-popup-multiView .protections-popup-category { + height: 20px !important; + min-height: 20px !important; +} +/* Footer Button in Tracking Content Panel */ +:root[uidensity="compact"] #protections-popup-multiView .panel-footer.panel-footer-menulike { + margin: 0 0 3px !important; +} +/* Identity popup header padding */ +:root[uidensity="compact"] #identity-popup-multiView #identity-popup-mainView-panel-header { + padding: 2px 5px !important; +} +/* Text When There is no trackers */ +:root[uidensity="compact"] #protections-popup-no-trackers-found-description { + margin: 2em 4em !important; +} +/* Download Item margin */ +:root[uidensity="compact"] #downloadsListBox { + margin: 0 !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tab_padding.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tab_padding.scss new file mode 100644 index 00000000..363aa959 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tab_padding.scss @@ -0,0 +1,21 @@ +@include Option("userChrome.tab.lepton_like_padding", "userChrome.tab.photon_like_padding") { + :root { + // --tab-block-margin: New version of --proton-tab-block-margin + --proton-tab-block-margin: var(--tab-block-margin) !important; /* Original: 4px, Legacy */ + } + :root[uidensity="touch"] { + /* Like Original */ + --tab-block-margin: 4px !important; + } +} + +@include Option("userChrome.tab.lepton_like_padding") { + :root { + --tab-block-margin: 2px !important; /* New version of --proton-tab-block-margin */ + } +} +@include Option("userChrome.tab.photon_like_padding") { + :root { + --tab-block-margin: 0px !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tabbar_height.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tabbar_height.scss new file mode 100644 index 00000000..71fc4bef --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tabbar_height.scss @@ -0,0 +1,80 @@ +/* Toolbar Height */ +@include Option("userChrome.tab.lepton_like_padding") { + :root:not([uidensity]) #TabsToolbar { + --tab-min-height: 36px; + } + :root[uidensity="compact"] #TabsToolbar { + --tab-min-height: 32px; + } + :root[uidensity="touch"] #TabsToolbar { + --tab-min-height: 41px; + } +} +@include Option("userChrome.tab.photon_like_padding") { + :root:not([uidensity]) #TabsToolbar { + --tab-min-height: 32px; + } + :root[uidensity="compact"] #TabsToolbar { + --tab-min-height: 29px; + } + :root[uidensity="touch"] #TabsToolbar { + --tab-min-height: 41px; + } + + /* Top Margin */ + .tab-background, + .tab-content { + margin-top: 0 !important; + } +} +@include NotOption("userChrome.tab.lepton_like_padding") { + @include NotOption("userChrome.tab.photon_like_padding") { + :root:not([uidensity]) #TabsToolbar { + --tab-min-height: 36px; /* 38px -> 36px */ + } + :root[uidensity="compact"] #TabsToolbar { + --tab-min-height: 29px; /* 36px -> 29px */ + } + } +} +@include Option("userChrome.tab.connect_to_window") { + #TabsToolbar { + --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 18px) / 2) !important; /* Prevent overflow pinned tab bottom margin */ + } + + :root:not([uidensity="compact"]) #tabbrowser-arrowscrollbox, + #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], + #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-stack, + #tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-content { + max-height: var(--tab-min-height) !important; /* Force apply height */ + } + :root[uidensity="compact"] #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 */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tabbar_width.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tabbar_width.scss new file mode 100644 index 00000000..52b2b7ec --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_tabbar_width.scss @@ -0,0 +1,87 @@ +/* Titlebar Space */ +.titlebar-spacer[type="pre-tabs"] { + width: 30px !important; /* Original: 40px */ +} +.titlebar-spacer[type="post-tabs"] { + width: 25px !important; /* Original: 40px */ +} + +/* Tabbar Buttons */ +:root { + --newtab-button-minus-width-padding: 2px; + --newtab-button-width-padding: calc(var(--toolbarbutton-inner-padding) - var(--newtab-button-minus-width-padding)); +} +#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; +} + +@include NotOption("userChrome.tab.photon_like_padding") { + #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab[first-visible-unpinned-tab] { + margin-inline-start: 1px !important; + } +} +@include Option("userChrome.tab.photon_like_padding") { + #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab[first-visible-unpinned-tab] { + 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 */ +@include NotOption("userChrome.tab.photon_like_padding") { + :root { + --tab-max-width: 240px; + } +} +@include Option("userChrome.tab.photon_like_padding") { + :root { + --tab-max-width: 225px; + } +} +.tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { + max-width: var(--tab-max-width) !important; /* Original: 225px */ +} + +/* neighbouring tabs should "pinch" together */ +@include NotOption("userChrome.tab.photon_like_padding") { + @include Option("userChrome.tab.lepton_like_padding") { + .tabbrowser-tab { + padding-inline: 1px !important; + } + } + .tabbrowser-tab:not([last-visible-tab]) { + margin-inline-end: -0.5px !important; + } +} +@include Option("userChrome.tab.photon_like_padding") { + .tabbrowser-tab { + padding-inline: 0 !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_toolbar_button.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_toolbar_button.scss new file mode 100644 index 00000000..928fb059 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_toolbar_button.scss @@ -0,0 +1,3 @@ +:root[uidensity="compact"] { + --toolbarbutton-outer-padding: 2px !important; /* Original: 3px, General is 2px */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_url_bar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_url_bar.scss new file mode 100644 index 00000000..b5cd2bc3 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_url_bar.scss @@ -0,0 +1,24 @@ +:root:not([uidensity="touch"]) #urlbar-container, +:root:not([uidensity="touch"]) #search-container { + padding-block: 3px !important; /* Original: 4px */ + margin-inline: 5px !important; /* Original: 5px */ +} +: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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_urlview_expanding.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_urlview_expanding.scss new file mode 100644 index 00000000..b2481ebb --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_urlview_expanding.scss @@ -0,0 +1,16 @@ +#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: 0 !important; +} + +#urlbar[breakout][breakout-extend] > #urlbar-background { + animation-name: none !important; + box-shadow: 0 1px 4px rgba(0, 0, 0, .05) !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_urlview_result.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_urlview_result.scss new file mode 100644 index 00000000..55f6920f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/padding/_urlview_result.scss @@ -0,0 +1,8 @@ +.urlbarView { + margin-inline: 0 !important; + width: 100% !important; +} + +.urlbarView-row { + padding-block: 0 !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_full_width_padding.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_full_width_padding.scss new file mode 100644 index 00000000..70a60195 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_full_width_padding.scss @@ -0,0 +1,12 @@ +/* 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-padding-inline: calc(var(--arrowpanel-menuitem-padding-block) + 8px) !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_full_width_separator.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_full_width_separator.scss new file mode 100644 index 00000000..0af8ac0d --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_full_width_separator.scss @@ -0,0 +1,9 @@ +/* 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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_index.scss new file mode 100644 index 00000000..59f3a3e4 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_index.scss @@ -0,0 +1,11 @@ +@include Option("userChrome.panel.remove_strip") { + @import "remove_strip"; +} + +@include Option("userChrome.panel.full_width_separator") { + @import "full_width_separator"; +} + +@include Option("userChrome.panel.full_width_padding") { + @import "full_width_padding"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_remove_strip.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_remove_strip.scss new file mode 100644 index 00000000..9a958c03 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/panel/_remove_strip.scss @@ -0,0 +1,3 @@ +#appMenu-fxa-separator { + --panel-separator-zap-gradient: none; /* Original: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%) */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/rounding/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/rounding/_index.scss new file mode 100644 index 00000000..a46fa88e --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/rounding/_index.scss @@ -0,0 +1,6 @@ +/** Rounding ******************************************************************/ +@import "square"; + +/* +--toolbarbutton-border-radius: 4px; +*/ diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/rounding/_square.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/rounding/_square.scss new file mode 100644 index 00000000..5ca97b2c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/rounding/_square.scss @@ -0,0 +1,63 @@ +@include Option("userChrome.rounding.square_tab") { + :root { + --tab-border-radius: 0 !important; /* Original: 4px */ + } +} +@include Option("userChrome.rounding.square_button") { + :root { + --toolbarbutton-border-radius: 0 !important; /* Original: 4px */ + } + button { + border-radius: 0 !important; + } +} +@include Option("userChrome.rounding.square_tab", "userChrome.round.square_button") { + /* Fix Tab bar button radious */ + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button) > .toolbarbutton-icon, + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button) > .toolbarbutton-text, + #TabsToolbar .toolbarbutton-1:not(#tabs-newtab-button) > .toolbarbutton-badge-stack, + .tab-close-button { + --tab-border-radius: var(--toolbarbutton-border-radius) !important; + } +} + +@include Option("userChrome.rounding.square_panel") { + :root { + --arrowpanel-border-radius: 0 !important; + } +} +@include Option("userChrome.rounding.square_panelitem") { + :root { + --arrowpanel-menuitem-border-radius: 0 !important; + --subviewbutton-border-radius: 0 !important; + } +} + +@include Option("userChrome.rounding.square_menupopup") { + xul|menupopup { + border-radius: 0 !important; + } +} +@include Option("userChrome.rounding.square_menuitem") { + xul|menulist:not([native]), + xul|menulist > xul|menupopup xul|menu, + xul|menulist > xul|menupopup xul|menuitem { + border-radius: 0 !important; + } +} + +@include Option("userChrome.rounding.square_field") { + html|select[size][multiple], + xul|listheader, + xul|richlistbox, + html|input { + border-radius: 0 !important; + } +} + +@include Option("userChrome.rounding.square_checklabel") { + .checkbox-check, + xul|*.radio-check { + border-radius: 0 !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_centered_label.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_centered_label.scss new file mode 100644 index 00000000..c7ebae40 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_centered_label.scss @@ -0,0 +1,24 @@ +/* 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: hidden; +} + +.tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]), +.tabbrowser-tab:not(:hover,[pinned]) .tab-label-container:not([textoverflow]) { + margin-inline-end: 5px; +} + +@include Option("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:not([textoverflow]) { + margin-inline-end: 19px; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_clipped_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_clipped_tab.scss new file mode 100644 index 00000000..8b237a84 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_clipped_tab.scss @@ -0,0 +1,19 @@ +/** Clipped tabs - Letters cleary *********************************************/ +@include Option("userChrome.tab.letters_cleary") { + @import "clipped_tab/letters_cleary"; +} + +/** Clipped tabs - Show close button at hover *********************************/ +@include Option("userChrome.tab.close_button_at_hover") { + @import "clipped_tab/show_close_button_at_hover"; +} + +/** Clipped tabs - Show close button at pinned tab ****************************/ +@include Option("userChrome.tab.close_button_at_pinned") { + @import "clipped_tab/pinned_close_button"; +} + +/** Clipped tabs - Always show tab icon ***************************************/ +@include Option("userChrome.tab.always_show_tab_icon") { + @import "clipped_tab/always_show_tab_icon"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_connect_to_window.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_connect_to_window.scss new file mode 100644 index 00000000..e163495c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_connect_to_window.scss @@ -0,0 +1,26 @@ +.tab-background { + border-radius: var(--tab-border-radius) var(--tab-border-radius) 0px 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; +} +#TabsToolbar { + overflow: hidden; /* Prevent toolbar area over */ +} + +/* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ +#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { + z-index: 0 !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_container_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_container_tab.scss new file mode 100644 index 00000000..b3a966dd --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_container_tab.scss @@ -0,0 +1,105 @@ +@include NotOption("userChrome.tab.photon_like_contextline") { + .tab-context-line { + display: none; + } +} + +.tabbrowser-tab { + --container-position-y: 11px; +} +:root[uidensity="compact"] .tabbrowser-tab { + --container-position-y: 10px; +} +:root[uidensity="touch"] .tabbrowser-tab { + --container-position-y: 12px; +} +.tab-content:not([titlechanged])::before { + /* Box Model */ + content: ""; + display: block; + position: absolute !important; + transform: translate(9px, var(--container-position-y)) !important; + + /* 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 */ +@include Animate { + .tab-content:not([titlechanged])::before { + transition: 0.15s var(--animation-easing-function) !important; + transition-property: width, opacity; + } +} + +/* Pinned Tab */ +.tabbrowser-tab[pinned] .tab-content::before { + transform: translateY(var(--container-position-y)) !important; + width: 16px; +} +@include Option("userChrome.tab.close_button_at_pinned") { + .tabbrowser-tab[pinned][visuallyselected]:not([busy]):hover .tab-content::before { + opacity: 0; + } + // 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: 32%, 50%, 70% !important; +} +:root[uidensity="compact"] + .tabbrowser-tab:is([image], [pinned])[usercontextid] + > .tab-stack + > .tab-content[attention]:not([selected="true"]), +:root[uidensity="compact"] + .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); */ + background-position-x: 30%, 50%, 70% !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 calc(0.5px + 50% + var(--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"]) { + background-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px) !important; +} +: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"]) { + background-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px) !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_crashed_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_crashed_tab.scss new file mode 100644 index 00000000..5640f5e4 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_crashed_tab.scss @@ -0,0 +1,3 @@ +.tab-icon-image[crashed] { + display: none !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_index.scss new file mode 100644 index 00000000..4b180550 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_index.scss @@ -0,0 +1,69 @@ +/*= Tabs on Bottom ===========================================================*/ +@include Option("userChrome.tab.on_bottom", "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 */ + flex-wrap: wrap; + } + :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; + } +} + +@include Option("userChrome.tab.on_bottom") { + @import "tabs_on_bottom"; +} + +/*= Tab Bar - Connect to window ==============================================*/ +@include Option("userChrome.tab.connect_to_window") { + @import "connect_to_window"; +} + +/*= Selected Tab =============================================================*/ +@import "selected_tab"; + +/*= Unselected Tab - Divide line =============================================*/ +@import "unselected_tab"; + +/*= New tab button ============================================================*/ +@import "newtab_button"; + +/*= Unloaded Tab - Contents Opacity ===========================================*/ +@include Option("userChrome.tab.unloaded") { + @import "unload_tab"; +} + +/*= Clipped tabs =============================================================*/ +@import "clipped_tab"; + +/*= Sound Tab ================================================================*/ +@import "sound_tab"; + +/*= PictureInPicture Tab - Show PIP Icon =====================================*/ +@include Option("userChrome.tab.pip") { + @import "picture_in_picture_tab"; +} + +/*= Container Tab - Color line at icon's bottom ==============================*/ +@include Option("userChrome.tab.container") { + @import "container_tab"; +} + +/*= Crashed Tab - Don't show Favicons ========================================*/ +@include Option("userChrome.tab.crashed") { + @import "crashed_tab"; +} + +/*= Tab Label - Make to Center ===============================================*/ +@include Option("userChrome.tab.centered_label") { + @import "centered_label"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_newtab_button.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_newtab_button.scss new file mode 100644 index 00000000..b6970ea9 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_newtab_button.scss @@ -0,0 +1,14 @@ +/*= New tab button - Looks like tab ==========================================*/ +@include Option("userChrome.tab.newtab_button_like_tab") { + @import "newtab_button/looks_like_tab"; +} + +/*= New tab button - Smaller button ==========================================*/ +@include Option("userChrome.tab.newtab_button_smaller") { + @import "newtab_button/smaller_button"; +} + +/*= New tab button - Proton like button ======================================*/ +@include Option("userChrome.tab.newtab_button_proton") { + @import "newtab_button/proton_like_button"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_picture_in_picture_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_picture_in_picture_tab.scss new file mode 100644 index 00000000..9ae0581c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_picture_in_picture_tab.scss @@ -0,0 +1,36 @@ +#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: -moz-inline-box !important; + width: 14px; + height: 14px; + background-size: 14px; + -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 { + -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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_selected_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_selected_tab.scss new file mode 100644 index 00000000..8ef7dd80 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_selected_tab.scss @@ -0,0 +1,24 @@ +/*= Selected Tab - Color like toolbar ========================================*/ +@include Option("userChrome.tab.color_like_toolbar") { + @import "selected_tab/color_like_toolbar"; +} + +/*= Multi Selected Color - More Contrast =====================================*/ +@include Option("userChrome.tab.multi_selected") { + @import "selected_tab/multi_selected"; +} + +/*= Selected Tab - Box Shadow ================================================*/ +@include Option("userChrome.tab.box_shadow") { + @import "selected_tab/box_shadow"; +} + +/*= Selected Tab - Bottom Rounded Corner =====================================*/ +@include Option("userChrome.tab.bottom_rounded_corner") { + @import "selected_tab/bottom_rounded_corner"; +} + +/*= Selected Tab - Photon like contextline ===================================*/ +@include Option("userChrome.tab.photon_like_contextline") { + @import "selected_tab/photon_like_contextline"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_sound_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_sound_tab.scss new file mode 100644 index 00000000..23ca831d --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_sound_tab.scss @@ -0,0 +1,14 @@ +/*= Sound Tab - Hide Label ===================================================*/ +@include Option("userChrome.tab.sound_hide_label") { + @import "sound_tab/hide_label"; +} + +/*= Sound Tab - Show Label ===================================================*/ +@include Option("userChrome.tab.sound_show_label") { + @import "sound_tab/show_label"; +} + +/*= Sound Tab - Show with Favicons ===========================================*/ +@include Option("userChrome.tab.sound_with_favicons") { + @import "sound_tab/show_with_favicons"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_tabs_on_bottom.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_tabs_on_bottom.scss new file mode 100644 index 00000000..f197f8aa --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_tabs_on_bottom.scss @@ -0,0 +1,237 @@ +/* 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; /* When userChrome.fullscreen.overlap */ + -moz-box-ordinal-group: 2; + --tabs-navbar-shadow-size: 0px; +} +#tab-notification-deck { + order: 2; /* When userChrome.fullscreen.overlap */ + -moz-box-ordinal-group: 2; +} + +#TabsToolbar .titlebar-spacer { + display: none; +} + +@include Option("userChrome.tab.on_bottom.above_bookmark") { + #PersonalToolbar { + order: 2; /* When userChrome.fullscreen.overlap */ + -moz-box-ordinal-group: 2; + } +} +@include NotOption("userChrome.tab.on_bottom.above_bookmark") { + @include Option("userChrome.tab.connect_to_window") { + @include Option("userChrome.tab.color_like_toolbar") { + #navigator-toolbox { + border-bottom-color: var(--toolbar-bgcolor) !important; /* Original: 1px solid var(--chrome-content-separator-color); */ + } + } + } +} + +/*= Windows Control - Move to toolbar ========================================*/ +:root { + --uc-titlebar-padding: 0px; +} + +@include OS($win) { + :root[sizemode="maximized"][tabsintitlebar]{ + --uc-titlebar-padding: 8px; + } +} + +#toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, +#TabsToolbar > .titlebar-buttonbox-container{ + position: fixed; + display: block; + top: var(--uc-titlebar-padding); + right:0; + height: 40px; +} + +/* where window controls are on left */ +@include OS($mac) { + :root{ + --uc-titlebar-padding: 0px !important; + } + .titlebar-buttonbox-container{ + left:0; + right: unset !important; + } +} + +#navigator-toolbox { + padding-top: var(--uc-titlebar-padding) !important; +} + +:root[uidensity="compact"] #TabsToolbar > .titlebar-buttonbox-container { + height: 32px; +} + +#toolbar-menubar[inactive] > .titlebar-buttonbox-container { + opacity: 0; +} + +.titlebar-buttonbox-container > .titlebar-buttonbox { + height: 100%; + @include OS($mac) { + margin-block: 10px; + } +} + +/* At Full Screen */ +:root[sizemode="fullscreen"] #window-controls { + position: fixed; + display: flex; + top: 0; + right: 0; + height: 40px; +} +:root[uidensity="compact"][sizemode="fullscreen"] #window-controls { + height: 32px; +} + +@include Option("browser.fullscreen.autohide") { + :root[sizemode="fullscreen"] #navigator-toolbox:not(:hover) .titlebar-buttonbox-container { + visibility: hidden; + } +} + +/* At Activated Menubar */ +:root:not([chromehidden~="menubar"], [sizemode="fullscreen"]) #toolbar-menubar:not([autohide="true"]) + #TabsToolbar > .titlebar-buttonbox-container { + display: block !important; +} +:root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container { + visibility: hidden; +} + +/*= Navbar - Padding for window controls =====================================*/ +/* Customized https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/window_control_placeholder_support.css */ +: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"] */ +} +:root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 84px; /* 84px is default value of linux */ + --uc-window-drag-space-pre: 30px; + --uc-window-drag-space-post: 25px; +} +:root:is([tabsintitlebar][sizemode="maximized"], [sizemode="fullscreen"]) { + --uc-window-drag-space-pre: 0px; /* Remove pre space */ +} + +#nav-bar { + border-inline-start-width: var(--uc-window-drag-space-pre); + border-inline-end-width: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); + + border-inline-style: solid !important; + border-inline-color: var(--toolbar-bgcolor); +} + +/* Windows */ +@include OS($win7, $win8) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 105px; + } +} + +@include OS($win10) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 138px; + } +} + +/* Use this pref to check Mac OS where window controls are on left */ +/* This pref defaults to true on Mac and doesn't actually do anything on other platforms. So if your system has window controls on LEFT side you can set the pref to true */ +@include OS($mac) { + :root:is([tabsintitlebar], [sizemode="fullscreen"]) { + --uc-window-control-width: 72px; + } + :root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar { + border-inline-start-width: calc(var(--uc-window-control-width) + var(--uc-window-drag-space-post)); + border-inline-end-width: var(--uc-window-drag-space-pre); + } + :root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container:last-child, + :root[sizemode="fullscreen"] #window-controls { + right: unset; + } +} + +/*= Menubar - Always on top ==================================================*/ +@include Option("userChrome.tab.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. */ + + :root { + /* height if native titlebar is enabled, assumes empty menubar */ + --uc-menubar-height: 20px; + --uc-menubar-padding: 1px; /* FF's menubar padding */ + --uc-menubar-container-height: calc(var(--uc-menubar-height) - (2 * var(--uc-menubar-padding))); + } + :root[tabsintitlebar] { + /* height when native titlebar is disabled, more roomy so can fit buttons etc. */ + --uc-menubar-height: 30px; + } + + /* 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; + padding-top: calc(var(--uc-menubar-height) + var(--uc-titlebar-padding)) !important; + } + :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; + } + + #toolbar-menubar[autohide="true"] > .titlebar-buttonbox-container, + #TabsToolbar > .titlebar-buttonbox-container { + height: var(--uc-menubar-container-height); + } + :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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_unload_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_unload_tab.scss new file mode 100644 index 00000000..8b918f20 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_unload_tab.scss @@ -0,0 +1,3 @@ +#tabbrowser-tabs .tabbrowser-tab[pending] .tab-content { + opacity: 0.7; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_unselected_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_unselected_tab.scss new file mode 100644 index 00000000..df326bbc --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/_unselected_tab.scss @@ -0,0 +1,9 @@ +/*= Unselected Tab - Dynamic Separator =======================================*/ +@include Option("userChrome.tab.dynamic_separtor") { + @import "unselected_tab/dynamic_separator"; +} + +/*= Unselected Tab - Static Separator ========================================*/ +@include Option("userChrome.tab.static_separator") { + @import "unselected_tab/static_separator"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_always_show_tab_icon.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_always_show_tab_icon.scss new file mode 100644 index 00000000..3fb4c291 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_always_show_tab_icon.scss @@ -0,0 +1,3 @@ +.tab-icon-image:not([src], [pinned], [crashed], [busy]) { + display: -moz-inline-box !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_letters_cleary.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_letters_cleary.scss new file mode 100644 index 00000000..a4b4446f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_letters_cleary.scss @@ -0,0 +1,26 @@ +#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-tabs[closebuttons="activetab"] .tab-label-container[textoverflow][labeldirection="ltr"]:not([pinned]), +#tabbrowser-tabs[closebuttons="activetab"] + .tab-label-container[textoverflow]:not([labeldirection]):-moz-locale-dir(ltr):not([pinned]) { + mask-image: linear-gradient(to right, black 70%, transparent) !important; +} + +#tabbrowser-tabs[closebuttons="activetab"] .tab-label-container[textoverflow][labeldirection="rtl"]:not([pinned]), +#tabbrowser-tabs[closebuttons="activetab"] + .tab-label-container[textoverflow]:not([labeldirection]):-moz-locale-dir(rtl):not([pinned]) { + mask-image: linear-gradient(to left, black 70%, transparent) !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_pinned_close_button.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_pinned_close_button.scss new file mode 100644 index 00000000..e5f2b1d4 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_pinned_close_button.scss @@ -0,0 +1,54 @@ +#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; +} + +@mixin pinnedCloseButtonShow($prefix: "") { + #{$prefix}:not([busy]) .tab-close-button { + display: -moz-box !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; + } +} +@mixin pinnedIconStackLayout($prefix: "") { + #{$prefix}:not([busy]) .tab-icon-stack { + width: 0 !important; + position: absolute; + bottom: 8px; + } +} +@mixin pinnedIconHide($prefix: "") { + #{$prefix} .tab-icon-image { + display: none !important; + } +} + +.tabbrowser-tab[pinned] { + @include pinnedCloseButtonShow("&[visuallyselected]:not([style*='transform: translateX']):hover"); + @include pinnedIconStackLayout("&[visuallyselected]:not([style*='transform: translateX']):hover"); + @include pinnedIconHide("&[visuallyselected]:not([style*='transform: translateX']):hover"); + + @include Option("userChrome.tab.close_button_at_pinned.always") { + @include pinnedCloseButtonShow("&[visuallyselected]"); + @include pinnedIconStackLayout("&[visuallyselected]"); + @include pinnedIconHide("&[visuallyselected]"); + } + @include Option("userChrome.tab.close_button_at_pinned.background") { + @include pinnedCloseButtonShow("&:not([style*='transform: translateX']):hover"); + @include pinnedIconStackLayout("&:not([style*='transform: translateX']):hover"); + @include pinnedIconHide("&:not([style*='transform: translateX']):hover"); + } +} +#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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_show_close_button_at_hover.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_show_close_button_at_hover.scss new file mode 100644 index 00000000..87515280 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/clipped_tab/_show_close_button_at_hover.scss @@ -0,0 +1,80 @@ +#tabbrowser-tabs[closebuttons="activetab"] + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab:not([pinned]) + > .tab-stack + > .tab-content + > .tab-close-button:not([selected="true"]) { + 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; +} +@include Option("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; + } +} + +/* Animate */ +@include Animate { + /* Fade out */ + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([visuallyselected]) .tab-close-button { + transition: opacity 0.1s var(--animation-easing-function) !important; + } + + /* Fade in */ + #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:hover .tab-close-button { + transition: opacity 0.25s var(--animation-easing-function) !important; + } + + @include Option("userChrome.tab.close_button_at_hover.always") { + /* Fade out */ + .tabbrowser-tab:not([visuallyselected]) .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) */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_looks_like_tab.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_looks_like_tab.scss new file mode 100644 index 00000000..94a0f8eb --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_looks_like_tab.scss @@ -0,0 +1,62 @@ +#tabs-newtab-button { + /* Original: + margin: 0 0 var(--tabs-navbar-shadow-size) !important + => Can't ovrride style. Therefore, we should approach it by bypass. + */ + --tabs-navbar-shadow-size: -1px; /* Original: 1px */ + --tabs-navbar-original-shadow-size: 1px; + --tab-corner-rounding: 4px; /* Hardcorded */ + + /* Size */ + -moz-box-align: stretch !important; + padding-top: var(--tab-block-margin) !important; + + /* Corner Rounding Image */ + --newtab-position: calc((var(--tab-corner-rounding) / 2) * -1); + background-image: url("../icons/tab-bottom-corner-left.svg"), url("../icons/tab-bottom-corner-right.svg"); + background-repeat: no-repeat; + background-position: left var(--newtab-position) bottom var(--tabs-navbar-original-shadow-size), + right var(--newtab-position) bottom var(--tabs-navbar-original-shadow-size); + background-size: var(--tab-corner-rounding); + + /* Corner Rounding Color */ + fill: transparent !important; + -moz-context-properties: fill !important; +} + +/* Corner Rounding Color */ +#tabs-newtab-button:hover { + fill: var(--toolbarbutton-hover-background) !important; +} +#tabs-newtab-button:hover:active { + fill: var(--toolbarbutton-active-background) !important; +} +@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, + -moz-accent-color-foreground 10%, + transparent + ) !important; /* Hardcorded 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; /* Hardcorded for compatibility */ + } +} + +/* '+'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(--tabs-navbar-original-shadow-size)) !important; + -moz-context-properties: fill, fill-opacity; + fill: var(--toolbarbutton-icon-fill); + fill-opacity: var(--toolbarbutton-icon-fill-opacity); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_proton_like_button.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_proton_like_button.scss new file mode 100644 index 00000000..3fd1017e --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_proton_like_button.scss @@ -0,0 +1,10 @@ +:root:not([uidensity="touch"]) #tabs-newtab-button > .toolbarbutton-icon { + --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 1px); +} + +:root:not([uidensity="compact"]) #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 2px; +} +:root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + margin-left: 1px; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_smaller_button.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_smaller_button.scss new file mode 100644 index 00000000..e9923730 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/newtab_button/_smaller_button.scss @@ -0,0 +1,12 @@ +#tabs-newtab-button > .toolbarbutton-icon { + margin-left: 1px; + + /* Origianl: calc((var(--tab-min-height) - 16px) / 2) = 10px */ + --toolbarbutton-inner-padding: 6px; +} +:root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { + --toolbarbutton-inner-padding: 4px; /* Photon: 6px */ +} +:root[uidensity="touch"] #tabs-newtab-button > .toolbarbutton-icon { + --toolbarbutton-inner-padding: 9px; /* Photon: 9px */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_bottom_rounded_corner.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_bottom_rounded_corner.scss new file mode 100644 index 00000000..ff0bec3f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_bottom_rounded_corner.scss @@ -0,0 +1,86 @@ +#tabbrowser-tabs { + --tab-corner-rounding: 3px; /* 10px looks about like chromium - 17px looks close to Australis tabs */ + --tab-corner-padding: 0px; + --tab-corner-position: calc(var(--tab-corner-padding) - var(--tab-corner-rounding)); +} + +:root:not([customizing="true"]) tab[visuallyselected] > stack::before, +:root:not([customizing="true"]) tab[visuallyselected] > stack::after { + content: "" !important; + + /* Box */ + display: block !important; + position: absolute !important; + z-index: 1 !important; + + /* Shape */ + width: var(--tab-corner-rounding) !important; + height: 100% !important; + + /* Color */ + fill: var(--toolbar-bgcolor) !important; + stroke: var( + --tab-line-color, + var(--tabs-border-color, rgba(128, 128, 142, 0.9)) + ) !important; + -moz-context-properties: fill, stroke !important; + + /* Image */ + background-size: var(--tab-corner-rounding); + background-repeat: no-repeat; + background-position-y: bottom; +} +: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]) + tab[visuallyselected] + > stack:-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]) + tab[visuallyselected] + > stack:-moz-lwtheme::after { + /* As Selected Tab - Box Shadow */ + stroke: var(--toolbar-color) !important; +} + +tab[visuallyselected] > stack::before { + left: var(--tab-corner-position) !important; + background-image: url("../icons/tab-bottom-corner-left.svg"); +} +tab[visuallyselected] > stack::after { + left: auto; + right: var(--tab-corner-position); + background-image: url("../icons/tab-bottom-corner-right.svg"); +} + +@include OS($linux) { + /* Fill color for GTK */ + :root:not([customizing="true"]):not([lwtheme="true"]) tab[visuallyselected] > stack::before, + :root:not([customizing="true"]):not([lwtheme="true"]) tab[visuallyselected] > stack::after { + /* As GTK Toolbar's background-color + backround-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) !important; + stroke: transparent !important; + } + :root:not([customizing="true"]):not([lwtheme="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::before, + :root:not([customizing="true"]):not([lwtheme="true"]) #TabsToolbar[brighttext] tab[visuallyselected] > stack::after { + stroke: transparent !important; + } +} + +@include NotOption("userChrome.tab.color_like_toolbar") { + :root:not([customizing="true"]) tab[visuallyselected] > stack::before, + :root:not([customizing="true"]) tab[visuallyselected] > stack::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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_box_shadow.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_box_shadow.scss new file mode 100644 index 00000000..00d28d21 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_box_shadow.scss @@ -0,0 +1,57 @@ +#TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[visuallyselected="true"]:not(:focus) + > .tab-stack + > .tab-background:-moz-lwtheme { + /* Origina: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)) + Bright: 0 0 1px var(--tab-line-color, rgba(128,128,142,0.9)), 0 0 4px rgba(128,128,142,0.5) */ + box-shadow: 0 0 1px var(--toolbar-color) !important; +} +#TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab[multiselected]:not([visuallyselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + box-shadow: 0 0 1px color-mix(in srgb, var(--toolbar-color) 80%, transparent) !important; +} + +/* Consider 0 0 4px rgba(128,128,142,0.9) -> 0 0 4px rgba(0,0,0,.4) new default */ +#TabsToolbar:not([brighttext]) + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: 0 0 1px var(--tab-line-color, var(--lwt-tab-line-color, rgba(128, 128, 142, 0.9))), + 0 0 4px rgba(128, 128, 142, 0.5) !important; +} + +#TabsToolbar[brighttext] + #tabbrowser-tabs:not([noshadowfortests]) + .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { + box-shadow: 0 0 1px var(--tab-line-color, var(--lwt-tab-line-color, rgba(128, 128, 142, 0.9))) !important; +} + +/* 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 { + box-shadow: 0 0 0 1px + var(--tab-line-color, var(--lwt-tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9)))), + 0 0 4px rgba(128, 128, 142, 0.5) !important; +} + +: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 { + box-shadow: 0 0 0 1px + var(--tab-line-color, var(--lwt-tab-line-color, var(--tabs-border-color, rgba(128, 128, 142, 0.9)))) !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_color_like_toolbar.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_color_like_toolbar.scss new file mode 100644 index 00000000..24950254 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_color_like_toolbar.scss @@ -0,0 +1,15 @@ +: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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_multi_selected.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_multi_selected.scss new file mode 100644 index 00000000..12c93c4d --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_multi_selected.scss @@ -0,0 +1,37 @@ + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]):-moz-lwtheme { + background-image: linear-gradient(var(--toolbar-bgcolor, transparent), var(--toolbar-bgcolor, transparent)), + linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; +} + +.tab-background[multiselected="true"]:not([selected="true"]) > .tab-loading-burst:not([bursting]) { + background: color-mix(in srgb, currentColor 65%, transparent); + opacity: 0.3; +} +#TabsToolbar[brighttext] + .tab-background[multiselected="true"]:not([selected="true"]) + > .tab-loading-burst:not([bursting]) { + opacity: 0.15; +} + + +@include Option("userChrome.tab.connect_to_window") { + .tab-background[multiselected=true] { + outline: none !important; + } +} +@include NotOption("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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_photon_like_contextline.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_photon_like_contextline.scss new file mode 100644 index 00000000..68639969 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/selected_tab/_photon_like_contextline.scss @@ -0,0 +1,81 @@ +:root[lwtheme-mozlightdark] #tabbrowser-tabs, /* Legacy: v96 */ +: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 */ + } +} + +.tab-context-line { + 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 identitiy 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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_hide_label.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_hide_label.scss new file mode 100644 index 00000000..528c84fd --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_hide_label.scss @@ -0,0 +1,3 @@ +.tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { + display: none !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_show_label.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_show_label.scss new file mode 100644 index 00000000..e2880207 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_show_label.scss @@ -0,0 +1,3 @@ +.tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]){ + display: -moz-box !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_show_with_favicons.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_show_with_favicons.scss new file mode 100644 index 00000000..bfbb5651 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/sound_tab/_show_with_favicons.scss @@ -0,0 +1,96 @@ +/* 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) */ +.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(-0.5px) translateY(-6px); + + /* 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; +} +.tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label { + transform: translateX(4px); +} + +/* Animate */ +@include Animate { + .tab-icon-overlay:not([crashed]), + .tab-icon-overlay[pinned][crashed][selected] { + transition: 0.1s var(--animation-easing-function); + } + + .tab-label-container > .tab-label { + transition: transform 0.25s var(--animation-easing-function); + } +} + +/* None exist favicon - Size bigger */ +@include NotOption("userChrome.tab.always_show_tab_icon") { + .tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) { + transform: translateX(-0.5px) 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([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) + .tab-label { + transform: translateX(3px); + } +} + +/* 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(-0.5px) 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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/unselected_tab/_dynamic_separator.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/unselected_tab/_dynamic_separator.scss new file mode 100644 index 00000000..e80c7ef6 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/unselected_tab/_dynamic_separator.scss @@ -0,0 +1,125 @@ +@mixin separatorShape() { + /* 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); + + @include Option("userChrome.compatibility.dynamic_separator") { + background-color: var(--tabs-border-color); + } +} + +@include Option("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-arrowscrollbox { + position: absolute; + } + + .tab-background::before, + #tabs-newtab-button::before { + @include separatorShape; + + /* More position */ + transform: translateX(-2.5px) translateY(calc(-50% + 1px)); + } +} + +@include NotOption("userChrome.tab.newtab_button_like_tab") { + .tab-background::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover)[last-visible-tab] + .tab-background::after { + @include separatorShape; + } + + .tab-background::before { + transform: translateX(-2.5px) translateY(calc(-50% + 1px)) !important; + } + .tabbrowser-tab[last-visible-tab] .tab-background::after { + right: 0; + transform: translateX(1.5px) translateY(calc(-50% + 1px)) !important; + } +} + +.tabbrowser-tab:not([visuallyselected], [multiselected], :hover, :first-child) .tab-background::before { + opacity: var(--tab-separator-opacity); +} +@include Option("userChrome.tab.newtab_button_like_tab") { + #tabs-newtab-button:not(:hover, [open])::before { + opacity: var(--tab-separator-opacity); + } +} +@include NotOption("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-arrowscrollbox:not([overflowing]) .tabbrowser-tab[first-visible-unpinned-tab] .tab-background::before, + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover)[last-visible-tab] + .tab-background::after { + opacity: var(--tab-separator-opacity); + } +} + +#navigator-toolbox:not([movingtab]) + .tabbrowser-tab[first-visible-unpinned-tab]:is([visuallyselected], [multiselected], :hover) + .tab-background::before, +#navigator-toolbox:not([movingtab]) + #tabbrowser-arrowscrollbox[overflowing] + tab.tabbrowser-tab[first-visible-unpinned-tab] + .tab-background::before { + opacity: 0 !important; +} +@include Option("userChrome.tab.newtab_button_like_tab") { + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + + .tabbrowser-tab + .tab-background::before, + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + ~ .tabbrowser-tab[afterhovered] + .tab-background::before, + #navigator-toolbox:not([movingtab]) + .tabbrowser-tab[last-visible-tab]:is([visuallyselected], [multiselected], :hover) + ~ #tabs-newtab-button::before { + opacity: 0 !important; + } +} +@include NotOption("userChrome.tab.newtab_button_like_tab") { + .tabbrowser-tab:is([visuallyselected], [multiselected], :hover) + + .tabbrowser-tab:not([visuallyselected]) + .tab-background::before { + opacity: 0 !important; + } +} + +/* Animate */ +@include Animate { + .tab-background::before { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + @include Option("userChrome.tab.newtab_button_like_tab") { + #tabs-newtab-button::before { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } + } + @include NotOption("userChrome.tab.newtab_button_like_tab") { + #tabbrowser-arrowscrollbox:not([overflowing]) + .tabbrowser-tab:not([visuallyselected], [multiselected], :hover)[last-visible-tab] + .tab-background::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-visible-tab] { + margin-inline-end: 1px !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/unselected_tab/_static_separator.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/unselected_tab/_static_separator.scss new file mode 100644 index 00000000..1bfe6cf4 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/tabbar/unselected_tab/_static_separator.scss @@ -0,0 +1,45 @@ +.tabbrowser-tab[first-visible-tab="true"] .tab-background::before, +.tab-background::after { + content: ""; +} + +.tab-background::before, +.tab-background::after { + /* Box Model */ + display: block; + position: absolute; + + /* Position */ + top: 50%; + transform: translateY(calc(-50% + 1px)) !important; + + /* Bar shape */ + width: 0px; + height: 100%; + + /* Bar Color */ + opacity: 0.3; + border-right: 1px solid var(--lwt-background-tab-separator-color, currentColor) !important; +} +.tab-background::after { + right: 0; +} + +.tabbrowser-tab[visuallyselected] .tab-background::before, +.tabbrowser-tab[visuallyselected] .tab-background::after, +.tabbrowser-tab[beforeselected-visible] .tab-background::after { + @include Option("userChrome.tab.static_separator.selected_accent") { + --lwt-background-tab-separator-color: var(--tab-line-color, var(--lwt-tab-line-color, rgb(10, 132, 255))); + } + @include NotOption("userChrome.tab.static_separator.selected_accent") { + opacity: 0; + } +} + +/* Animate */ +@include Animate { + .tab-background::before, + .tab-background::after { + transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_built_in.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_built_in.scss new file mode 100644 index 00000000..421433ff --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_built_in.scss @@ -0,0 +1,16 @@ +// lwtheme-mozlightdark: Legacy - v96 + +/*= Lightmode - Color darker =================================================*/ +#{built-in-light-theme()} { + --lwt-accent-color: rgb(229, 229, 235) !important; /* Original: rgb(240, 240, 244) */ +} +@include OS($win10, $mac) { + #{selector.nest(built-in-light-theme(), "#navigator-toolbox")} { + background-color: var(--lwt-accent-color) !important; + } +} + +/*= Darkmode - Color lighter =================================================*/ +#{built-in-dark-theme()} { + --toolbar-bgcolor: rgba(43, 42, 51, 5) !important; /* Original: rgba(43, 42, 51, 1) */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_dark_blue_accent.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_dark_blue_accent.scss new file mode 100644 index 00000000..56aeb01f --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_dark_blue_accent.scss @@ -0,0 +1,30 @@ +@include Dark { + @import "dark_blue_color"; + + :host, :root, dialog { + // button, select, input, menulist, radio + @include DarkBlueContent; + } + + #{built-in-dark-theme()} { + --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 */ + } + + @include Option("userChrome.decoration.download_panel") { + #{selector.nest(built-in-dark-theme(), "#downloadsListBox")} { + --button-primary-bgcolor: var(--blue-30); + --button-primary-hover-bgcolor: var(--blue-20); + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_dark_blue_color.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_dark_blue_color.scss new file mode 100644 index 00000000..a38d5475 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_dark_blue_color.scss @@ -0,0 +1,54 @@ +: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 */ +} + +@mixin DarkBlueContent() { + --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; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_fully_color.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_fully_color.scss new file mode 100644 index 00000000..3a9f23f5 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_fully_color.scss @@ -0,0 +1,184 @@ +/*== 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( + --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; +} + +// TODO: `OS` not covered case +@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. + */ + } + + /* Fallback background */ + 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"]), /* Legacy */ +:root[lwtheme-mozlightdark] menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup), /* Legacy */ +: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, /* Default Light Mode */ + 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) !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; + border-radius: 4px; + + 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: -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 { + 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(0, 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(0, 0%, 80%, 0.5) + ) !important; /* Original: hsla(0,0%,80%,.5), match arrowpanel-dimmed-further */ +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_fully_dark.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_fully_dark.scss new file mode 100644 index 00000000..f13463d0 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_fully_dark.scss @@ -0,0 +1,72 @@ +/*= 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; + } + @include 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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_proton_chrome.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_proton_chrome.scss new file mode 100644 index 00000000..1babec16 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_proton_chrome.scss @@ -0,0 +1,4 @@ +@import "proton_chrome/proton_commons"; +@import "proton_chrome/cert"; +@import "proton_chrome/page_info"; +@import "proton_chrome/library_popup"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_proton_color.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_proton_color.scss new file mode 100644 index 00000000..cd69e708 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_proton_color.scss @@ -0,0 +1,159 @@ +/*= 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 radiobuttons */ + --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); +} + +@include 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); + } +} + diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_system_default_theme.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_system_default_theme.scss new file mode 100644 index 00000000..dcb3ef6b --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_system_default_theme.scss @@ -0,0 +1,5 @@ +@import "system_default_theme/urlbar_focus_color"; +@import "system_default_theme/win7"; +@import "system_default_theme/win10"; +@import "system_default_theme/gtk"; +@import "system_default_theme/mac"; diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_waterfox.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_waterfox.scss new file mode 100644 index 00000000..699d13a6 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/_waterfox.scss @@ -0,0 +1,26 @@ +/* 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); +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_cert.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_cert.scss new file mode 100644 index 00000000..a0e6ffdd --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_cert.scss @@ -0,0 +1,52 @@ +/*= 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 Exeption 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 antialising 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 antialising 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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_library_popup.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_library_popup.scss new file mode 100644 index 00000000..f7e2aa69 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_library_popup.scss @@ -0,0 +1,7 @@ +/*= Library Popup ============================================================*/ +@-moz-document url("chrome://browser/content/places/places.xhtml") +{ + @include OS($linux) { + @import "../../library/proton"; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_page_info.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_page_info.scss new file mode 100644 index 00000000..e9e80bc0 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_page_info.scss @@ -0,0 +1,146 @@ +/*= 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 { + border-radius: 8px !important; + padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; + margin: 4px !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; */ + } + #viewGroup > radio { + color: var(--in-content-deemphasized-text) !important; /* FieldText */ + } + + #viewGroup > radio { + 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; + } + #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; + } + @include OS($mac) { + #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; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_proton_commons.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_proton_commons.scss new file mode 100644 index 00000000..2fe65efb --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/proton_chrome/_proton_commons.scss @@ -0,0 +1,590 @@ +/*= 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 --------------------------------------------------------------*/ + @include Dark { + :root { + --in-content-page-background: #42414d; + } + } + + #{system-default-theme()} { + --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, /* #topBar, #mainDeck: Page Info */ + #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; + } + + /* Medium and small buttons get sized to 7/14 and 6/12px padding (when adding + * the 1px border): */ + button.medium { + 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:-moz-focusring, + xul|menulist:-moz-focusring, + xul|checkbox:-moz-focusring > .checkbox-check, /* :not([native]) to win specificity over checkbox.css */ + xul|radio[focused="true"]:-moz-focusring { + box-shadow: none !important; + outline: 2px solid var(--in-content-focus-outline-color) !important; + outline-offset: 2px !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; + } + + @include 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; + } + } + + /*- Radio Button -----------------------------------------------------------*/ + xul|radio { + /* margin-inline-start: 0 !important; */ + appearance: none !important; + } + + xul|*.radio-check { + appearance: none !important; + width: 16px !important; + height: 16px !important; + padding: 0 !important; + border: 1px solid var(--in-content-box-border-color) !important; + border-radius: 100% !important; + margin-block: 2px !important; /* extend the vertical clicktarget */ + margin-inline: 0 6px !important; + background-color: var(--in-content-button-background) !important; + background-position: center !important; + flex-shrink: 0 !important; /* avoid shrinking inside flex container */ + } + + 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-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"])[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; + } + + xul|checkbox[disabled="true"], + xul|radio[disabled="true"], + xul|label[disabled="true"] { + opacity: 0.5 !important; + } + + /*- Check Box --------------------------------------------------------------*/ + /* From checkbox.css */ + checkbox { + appearance: none !important; + -moz-box-align: center !important; + margin: 4px 2px !important; + } + + .checkbox-icon[src] { + margin-inline-end: 2px !important; + } + .checkbox-label { + margin: 1px 0 !important; + } + + checkbox[disabled="true"] { + opacity: 0.4 !important; + } + + .checkbox-check { + appearance: none !important; + color: var(--checkbox-border-color, ThreeDDarkShadow) !important; + background-color: var(--checkbox-unchecked-bgcolor, Field) !important; + border: 1px solid currentColor !important; + border-radius: 2px !important; + margin-inline-end: 6px !important; + } + + .checkbox-check { + height: 16px !important; + width: 16px !important; + } + + 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, -moz-accent-color 8%, Field) + ) !important; + } + + .checkbox-check[checked] { + border-color: var(--checkbox-checked-border-color, transparent) !important; + background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !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, -moz-accent-color-foreground) !important; + /* Style the button also when printing with "Print Backgrounds" unchecked */ + color-adjust: exact !important; + } + + 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%, -moz-accent-color) + ) !important; + } + + checkbox:-moz-focusring > .checkbox-check { + outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + + @include 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, -moz-accent-color 4%, Field)) !important; + } + + .checkbox-check[checked] { + color: var(--checkbox-checked-border-color, currentColor) !important; + fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; + } + + checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked], + checkbox:not([disabled="true"]):hover > .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; + } + } + + /* From common.css */ + xul|*.checkbox-check { + margin-block: 2px !important; + } + 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, -moz-accent-color) !important; + outline-offset: var(--focus-outline-offset, 2px) !important; + } + + #label-box { + -moz-box-align: center !important; + -moz-box-pack: center !important; + font-weight: 600 !important; + } + + dropmarker { + display: -moz-box !important; + appearance: none !important; + width: 12px !important; + height: 12px !important; + } + + /* dropmarker::part(icon) + * ::part is not apply chrome + */ + dropmarker[exportparts="icon: dropmarker-icon"] { + 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 */ + @include 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 ----------------------------------------------------------------*/ + @include OS($win) { + 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; + } + } + + @include OS($linux) { + /* 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: -moz-box; + margin-block: 6px !important; + } + xul|menulist:-moz-focusring::part(label-box) { + outline: none !important; + } + } + + @include OS($mac) { + 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: -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; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_gtk.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_gtk.scss new file mode 100644 index 00000000..1fde0850 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_gtk.scss @@ -0,0 +1,12 @@ +/*= GTK - URL View url accent color ==========================================*/ +@include OS($linux) { + :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 */ + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_mac.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_mac.scss new file mode 100644 index 00000000..17efe8c9 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_mac.scss @@ -0,0 +1,252 @@ +/*= Mac - Default like color =================================================*/ +@include OS($mac) { + #{system-default-theme()} { + /* 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: -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 */ + + /* 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 Backround 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 Backround 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 Forground */ + --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; + } + @include 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 ----------------------------------------------------*/ + @include NotOption("userChrome.tab.color_like_toolbar") { + #{system-default-theme()} { + --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 ----------------------------------------------------------------*/ + #{selector.nest(system-default-theme(), "#navigator-toolbox")} { + background-color: var(--mac-bgcolor) !important; + } + + :root:not(:-moz-lwtheme) #titlebar { + --mac-hover-bgcolor: ButtonFace; + } + #{selector.nest(system-default-theme(), "#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; + } + #{selector.nest(system-default-theme(), "#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; */ + } + @include 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);"], /* Nightly */ + 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 */ + @include 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 */ + @include Option("userChrome.tab.color_like_toolbar") { + :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] /* Legacy */ + #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; + } + } + + #{selector.append(system-default-theme(), ":not([customizing=true]) tab[visuallyselected] > stack", "::before, ::after")} { + fill: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog) !important; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_urlbar_focus_color.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_urlbar_focus_color.scss new file mode 100644 index 00000000..947b6b95 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_urlbar_focus_color.scss @@ -0,0 +1,18 @@ +/*= Common - URL Bar focus color =============================================*/ +// TODO: `OS` Not covered case +@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: -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 */ + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_win10.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_win10.scss new file mode 100644 index 00000000..b45fa9d0 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_win10.scss @@ -0,0 +1,324 @@ +/*= Windows10 - UWP like color ===============================================*/ +@include OS($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-seperator-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-shorcut-text-color: #757575; + --win-error-color: #b31616; + --win-red-border-color: #ff4343; + --win-accent-forground-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; + } + @include Dark { + #{system-default-theme()} { + --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-seperator-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-shorcut-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%, -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; + } + } + + #{system-default-theme()} { + /* 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-shorcut-text-color) !important; + --panel-description-color: var(--win-shorcut-text-color) !important; + + /* Title Background, Border Color */ + --menu-border-color: var(--win-bgcolor) !important; + --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; + + /* Seperator */ + --toolbarseparator-color: var(--win-tab-seperator-color) !important; + + /* Field Backround 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 Forground Color */ + --button-primary-color: var(--win-accent-forground-color) !important; + --checkbox-checked-color: var(--win-accent-forground-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; + } + #navigator-toolbox:not(:-moz-lwtheme) { + background: var(--lwt-accent-color) !important; + } + + /*- Separator --------------------------------------------------------------*/ + :root:not(:-moz-lwtheme) { + --arrowpanel-border-color: var(--win-bgcolor) !important; + --panel-separator-color: var(--win-bgcolor) !important; + } + :root[lwt-default-theme-in-dark-mode] { + --arrowpanel-border-color: var(--win-border-color) !important; + --panel-separator-color: var(--win-border-color) !important; + } + + @include Option("userChrome.theme.system_default") { + @media (-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 */ + } + } + } + + /*- Proton Tab Selected ----------------------------------------------------*/ + @include NotOption("userChrome.tab.color_like_toolbar") { + #{system-default-theme()} { + --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; + } + } + + /*- Menu -------------------------------------------------------------------*/ + 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; + } + + /*- Toolbar ----------------------------------------------------------------*/ + #{selector.nest(system-default-theme(), "#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); + } + + /*- Sidebar ----------------------------------------------------------------*/ + #sidebar-box:not([lwt-sidebar]) { + appearance: none !important; + } + #{selector.nest(system-default-theme(), "#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; + } + @include 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);"], /* Nightly */ + 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(--win-text-color) !important; + } + } + + /*- Panel ------------------------------------------------------------------*/ + #{selector.nest(system-default-theme(), ".subviewbutton")} { + --button-hover-bgcolor: var(--win-hover-active-bgcolor) !important; + --button-active-bgcolor: var(--win-button-active-bgcolor) !important; + } + + $panelZoomButtons: "#appMenu-fxa-label2, #appMenu-zoomReduce-button2, #appMenu-zoomReset-button2, #appMenu-zoomEnlarge-button2, #appMenu-fullscreen-button2"; + #{selector.nest(system-default-theme(), "toolbarbutton.subviewbutton:not([disabled], [open], :active, #{$panelZoomButtons}):is(:hover)")} { + background-color: var(--win-hover-bgcolor) !important; + } + #{selector.nest(system-default-theme(), "toolbarbutton.subviewbutton:not([disabled], #{$panelZoomButtons}):is([open], :hover:active)")} { + background-color: var(--win-hover-active-bgcolor) !important; + } + + /*- Others -----------------------------------------------------------------*/ + /* For overwrite */ + :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]):not(:-moz-lwtheme), /* Legacy */ + :root:not(:-moz-lwtheme) { + /* Light Theme */ + --lwt-accent-color: var(--win-bgcolor) !important; + } + @include Dark { + :root[lwt-default-theme-in-dark-mode][lwthemetextcolor="bright"] { + --toolbar-bgcolor: var(--win-component-bgcolor) !important; /* Original: rgba(43, 42, 51, 1) */ + } + } + + #tabbrowser-tabs:not([movingtab]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab + > .tab-stack + > .tab-background[multiselected]:not([selected]):not(:-moz-lwtheme), + :root[lwtheme-mozlightdark] /* Legacy */ + #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: -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, -moz-accent-color-foreground 10%, transparent); + --toolbarbutton-active-background: color-mix(in srgb, -moz-accent-color-foreground 15%, transparent); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_win7.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_win7.scss new file mode 100644 index 00000000..b2f4cf33 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/theme/system_default_theme/_win7.scss @@ -0,0 +1,31 @@ +/*= Windows7 - Aero Based Theme ==============================================*/ +@include OS($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); + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_always_show_page_actions.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_always_show_page_actions.scss new file mode 100644 index 00000000..11ba6c6b --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_always_show_page_actions.scss @@ -0,0 +1,3 @@ +#pageActionButton { + display: block !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_go_button_when_typing.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_go_button_when_typing.scss new file mode 100644 index 00000000..9358205e --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_go_button_when_typing.scss @@ -0,0 +1,3 @@ +#urlbar-input-container[pageproxystate="invalid"] #urlbar-go-button { + display: block !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_index.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_index.scss new file mode 100644 index 00000000..bfb69225 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_index.scss @@ -0,0 +1,14 @@ +/*= Url View - Move icon to left =============================================*/ +@include Option("userChrome.urlView.move_icon_to_left") { + @import "move_icon_to_left"; +} + +/*= Url View - Go button when typing =========================================*/ +@include Option("userChrome.urlView.go_button_when_typing") { + @import "go_button_when_typing"; +} + +/*= Url View - Always show page actions ======================================*/ +@include Option("userChrome.urlView.always_show_page_actions") { + @import "always_show_page_actions"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_move_icon_to_left.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_move_icon_to_left.scss new file mode 100644 index 00000000..27ddfb3c --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/urlview/_move_icon_to_left.scss @@ -0,0 +1,10 @@ +.urlbarView-type-icon { + min-width: 16px !important; + height: 16px !important; + margin-bottom: 0 !important; + margin-inline-start: 0 !important; +} + +.urlbarView-favicon { + margin-inline-start: 20px !important; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_color_scheme.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_color_scheme.scss new file mode 100644 index 00000000..b271b537 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_color_scheme.scss @@ -0,0 +1,30 @@ +// -moz-toolbar-prefers-color-scheme is removed at v95, #250 + +@mixin Dark() { + @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { + @content; + } +} +@mixin Light() { + @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { + @content; + } +} + +@mixin Contrast() { + @media (prefers-contrast) { + @content; + } +} + +@mixin NotContrast() { + @media not all and (prefers-contrast) { + @content; + } +} + +@mixin Animate() { + @media (prefers-reduced-motion: no-preference) { + @content; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_each.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_each.scss new file mode 100644 index 00000000..06d7b449 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_each.scss @@ -0,0 +1,33 @@ +@use "sass:map"; +@use "sass:list"; +@use "list" as list-utils; + +$_defaultOption: ( + "seperator": ", ", + "quoted": false +); + +@mixin AtEach($name, $list, $prefix: null, $option: $_defaultOption) { + $option: map.merge($_defaultOption, $option); + $seperator: map.get($option, "seperator"); + $quoted: map.get($option, "quoted"); + $quoted: if($quoted, "\"", null); + + $listL: list.length($list); + @if $listL >= 1 { + $first: list.nth($list, 1); + @if $first != null and $first != () { + $blocks: "#{$prefix}(#{$quoted}#{$first}#{$quoted})"; + @if $listL > 1 { + @for $i from 2 through ($listL) { + $nextBlock: list.nth($list, $i); + $nextBlock: "#{$seperator}#{$prefix}(#{$quoted}#{$nextBlock}#{$quoted})"; + $blocks: "#{$blocks}#{$nextBlock}"; + } + } + @#{$name} #{"#{$blocks}"} { + @content; + } + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_list.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_list.scss new file mode 100644 index 00000000..933f9233 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_list.scss @@ -0,0 +1,36 @@ +// https://kittygiraudel.com/2013/08/08/advanced-sass-list-functions/ +// https://gist.github.com/Jakobud/ec056b52f3673cc369dc97f2c2428424 + +@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)); + } + } + + @return $result; +} + +@function to-string($list, $glue: '', $is-nested: false) { + $result: null; + + @for $i from 1 through length($list) { + $e: nth($list, $i); + + @if type-of($e) == list { + $result: $result#{to-string($e, $glue, true)}; + } @else { + $result: if( + $i != length($list) or $is-nested, + $result#{$e}#{$glue}, + $result#{$e} + ); + } + } + + @return $result; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_media.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_media.scss new file mode 100644 index 00000000..2a879559 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_media.scss @@ -0,0 +1,7 @@ +@use "each"; + +@mixin each($list...) { + @include each.AtEach("media", $list) { + @content; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_option.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_option.scss new file mode 100644 index 00000000..33114645 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_option.scss @@ -0,0 +1,13 @@ +@use "each"; + +@mixin Option($optionNames...) { + @include each.AtEach("supports", $optionNames, "-moz-bool-pref", ("seperator": " or ", "quoted": true)) { + @content; + } +} + +@mixin NotOption($optionNames...) { + @include each.AtEach("supports", $optionNames, "not -moz-bool-pref", ("seperator": " or ", "quoted": true)) { + @content; + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_os.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_os.scss new file mode 100644 index 00000000..f326f1e9 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_os.scss @@ -0,0 +1,66 @@ +@use "sass:list"; +@use "sass:map"; +@use "list" as list-utils; +@use "media"; + +//== Args ====================================================================== +$win: "win"; +$mac: "mac"; +$linux: "linux"; + +$win7: "win7"; +$win8: "win8"; +$win10: "win10"; +$bigsur: "bigsur"; + +//== Privated Variables ======================================================== +$_win-template: "-moz-os-version: windows-" "-moz-platform: windows-"; +$_win-media: ( + #{$win7}: "win7", + #{$win8}: "win8", + #{$win10}: "win10", +); +@each $_win-key in map.keys($_win-media) { + $_win-value: map.get($_win-media, $_win-key); + + $result-template: (); + @for $i from 1 through list.length($_win-template) { + $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); +} + +$_others-media: ( + #{$linux}: "-moz-gtk-csd-available", + #{$bigsur}: "-moz-mac-big-sur-theme: 0", +); +$_os-media: map.merge( + $_win-media, $_others-media +); + +//== 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); + @if $osMedia != null { + $osMedias: list.join($osMedias, $osMedia); + } + } + + @include media.each($osMedias...) { + @content; + } + + @if list.index($osNames, $mac) { + @supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { + @content; + } + } +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_theme.scss b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_theme.scss new file mode 100644 index 00000000..661954d5 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/src/utils/_theme.scss @@ -0,0 +1,41 @@ +@use "sass:selector"; + +//== Privated Variables ======================================================== +$_lwTheme: ":-moz-lwtheme"; + +$_lightdark: "[lwtheme-mozlightdark]"; // Legacy - FF v96 +$_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);"]'; +$_darkStyle: '[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]'; + +//== Mixin ===================================================================== +@function built-in-default-theme() { + $oldDefault: selector.append(":root", $_lightdark); + $newDefault: selector.append(":root", ":is(#{$_lightStyle}, #{$_darkStyle})"); + + @return "#{$oldDefault}, #{$newDefault}"; +} + +@function system-default-theme() { + $sysLight: selector.append(":root", ":not(#{$_lwTheme})"); + $sysDark: selector.append(":root", $_sysDark); + + @return "#{$sysLight}, #{$sysDark}"; +} + +@function built-in-light-theme() { + $oldLight: selector.append(":root", $_lightdark, $_darkText); + $newLight: selector.append(":root", $_lightStyle); + + @return "#{$oldLight}, #{$newLight}"; +} + +@function built-in-dark-theme() { + $oldDark: selector.append(":root", $_lightdark, $_lightText); + $newDark: selector.append(":root", $_darkStyle); + + @return "#{$oldDark}, #{$newDark}"; +} diff --git a/arch-config/.mozilla/firefox/default-release/chrome/userChrome.css b/arch-config/.mozilla/firefox/default-release/chrome/userChrome.css index e3e72489..7abbaff6 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/userChrome.css +++ b/arch-config/.mozilla/firefox/default-release/chrome/userChrome.css @@ -1,5920 +1,23 @@ -@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; -@namespace html "http://www.w3.org/1999/xhtml"; +/** Import Lepton stylesheet (Chrome) *****************************************/ +@import url("css/leptonChrome.css"); + +/** Add your custom styles below **********************************************/ #tabbrowser-tabs .tabbrowser-tab .tab-close-button { display:none!important; } -/** Default Thme - Contrast ***************************************************/ -/*= Lightmode - Color darker =================================================*/ -:root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]), /* Legacy - v96 */ -: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), /* Legacy - v99 */ - (-moz-platform: windows-win10) { - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]) #navigator-toolbox, /* Legacy - v96 */ - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { - 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, /* Legacy - v96 */ - :root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"] { - background-color: var(--lwt-accent-color) !important; - } -} - -/*= Darkmode - Color lighter =================================================*/ -:root[lwtheme-mozlightdark][lwthemetextcolor="bright"], /* Legacy - v96 */ -: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) */ -} - -/** Theme - Compatibility *****************************************************/ -/*= 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; -} - -/*= 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 ========================================================*/ -/* Light Theme */ -#TabsToolbar:not([brighttext]) - #tabbrowser-tabs:not([noshadowfortests]) - .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) - > .tab-stack - > .tab-background { - border: unset !important; /* Nigtly 96: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)); */ -} - -/* Dark Theme */ -#TabsToolbar[brighttext] - #tabbrowser-tabs:not([noshadowfortests]) - .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) - > .tab-stack - > .tab-background:-moz-lwtheme { - border: unset !important; /* Nigtly 96: 1px solid var(--tab-line-color, rgba(128,128,142,0.9)) */ -} - -/*= 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; - } -} -: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.3); /* Legacy: v96 */ - --lwt-tabs-border-color: rgba(0, 0, 0, 0.3); -} - -/** OS - Compatibility ********************************************************/ -/*= Windows 7, 8 - Tab Bar Background *****************************************/ -@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8) { - /* Header Color */ - :root:not([lwtheme-image]):-moz-lwtheme { - background-color: var(--lwt-accent-color) !important; - } -} -@media (-moz-os-version: windows-win7), /* Legacy - v99 */ - (-moz-platform: windows-win7) { - #TabsToolbar:-moz-lwtheme { - color: var(--lwt-text-color) !important; - } - - /* Remove Aero */ - #TabsToolbar { - /* Original: radial-gradient(eclipse at bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.5) 80%, transparent) */ - background-image: unset !important; - } -} -@media (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win8) { - #navigator-toolbox:-moz-lwtheme { - color: var(--lwt-text-color) !important; - } -} - -/*= Windows 7, 8 - Menu Active Color =========================================*/ -@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-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 */ - } - - 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), /* Legacy - v99 */ - (-moz-platform: windows-win7) { - 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="disabled"], - 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 (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-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="disabled"], - 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; - } -} - -/*= Windows 10 - Top border of accent color at ESR #358 ======================*/ -@media (-moz-os-version: windows-win10), /* Legacy - v99 */ - (-moz-platform: windows-win10) { - :root[sizemode=normal][tabsintitlebar] #navigator-toolbox { - border-top: .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-windows-accent-color-in-titlebar) { - :root[sizemode=normal][tabsintitlebar] #navigator-toolbox { - border-top-color: -moz-accent-color !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 =====================================*/ - .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; - } -} - -/** System Default Theme ******************************************************/ -/*= 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: -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), /* Legacy - v99 */ - (-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), /* Legacy - v99 */ - (-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-seperator-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-shorcut-text-color: #757575; - --win-error-color: #b31616; - --win-red-border-color: #ff4343; - --win-accent-forground-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; - } - @media (-moz-toolbar-prefers-color-scheme: dark), (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-seperator-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-shorcut-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%, -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; - } - } - - :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-shorcut-text-color) !important; - --panel-description-color: var(--win-shorcut-text-color) !important; - - /* Title Background, Border Color */ - --menu-border-color: var(--win-bgcolor) !important; - --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; - - /* Seperator */ - --toolbarseparator-color: var(--win-tab-seperator-color) !important; - - /* Field Backround 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 Forground Color */ - --button-primary-color: var(--win-accent-forground-color) !important; - --checkbox-checked-color: var(--win-accent-forground-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; - } - #navigator-toolbox:not(:-moz-lwtheme) { - background: var(--lwt-accent-color) !important; - } - - /*- Separator --------------------------------------------------------------*/ - :root:not(:-moz-lwtheme) { - --arrowpanel-border-color: var(--win-bgcolor) !important; - --panel-separator-color: var(--win-bgcolor) !important; - } - :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-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 */ - } - } - - /*- Menu -------------------------------------------------------------------*/ - 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; - } - - /*- Toolbar ----------------------------------------------------------------*/ - :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); - } - - /*- 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(--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);"], /* Nightly */ - 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(--win-text-color) !important; - } - } - - /*- Panel ------------------------------------------------------------------*/ - :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; - } - - :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; - } - :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; - } - - /*- Others -----------------------------------------------------------------*/ - /* For overwrite */ - :root[lwtheme-mozlightdark]:not([lwthemetextcolor="bright"]):not(:-moz-lwtheme), /* Legacy - lwtheme-mozlightdark at v96 */ - :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) */ - } - } - - #tabbrowser-tabs:not([movingtab]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab - > .tab-stack - > .tab-background[multiselected]:not([selected]):not(:-moz-lwtheme), - :root[lwtheme-mozlightdark] /* Legacy - lwtheme-mozlightdark at v96 */ - #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: -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, -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: -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: -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 */ - - /* 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 Backround 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 Backround 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 Forground */ - --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; - } - @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; - } - } - - /*- 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);"], /* Nightly */ - 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 */ - :root[lwtheme-mozlightdark][lwt-default-theme-in-dark-mode] /* Legacy - lwtheme-mozlightdark at v96 */ - #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([customizing="true"]):not(:-moz-lwtheme) tab[visuallyselected] > stack::before, - :root:not([customizing="true"]):not(:-moz-lwtheme) tab[visuallyselected] > stack::after, - :root:not([customizing="true"])[lwt-default-theme-in-dark-mode] tab[visuallyselected] > stack::before, - :root:not([customizing="true"])[lwt-default-theme-in-dark-mode] tab[visuallyselected] > stack::after { - fill: color-mix(in srgb, rgb(255, 255, 255) 15%, -moz-dialog) !important; - } -} - -/** Fully Theme Mode **********************************************************/ -/* Default Themes - https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/extensions/default-theme/manifest.json - https://github.com/mozilla/gecko-dev/blob/master/browser/themes/addons/light/manifest.json - https://github.com/mozilla/gecko-dev/blob/master/browser/themes/addons/dark/manifest.json - */ - -/*= 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 radiobuttons */ - --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-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); -} - -@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); - } -} - -/*== Menu color =============================================================*/ -html#main-window menupopup { - /* 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( - --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 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. - */ - } - - /* Fallback background */ - 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"]), /* Legacy - lwtheme-mozlightdark at v96 */ -:root[lwtheme-mozlightdark] menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup), /* Legacy - lwtheme-mozlightdark at v96 */ -: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, /* Default Light Mode */ - 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) !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; - border-radius: 4px; - - 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: -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 { - 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(0, 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(0, 0%, 80%, 0.5) - ) !important; /* Original: hsla(0,0%,80%,.5), match arrowpanel-dimmed-further */ -} - -/* Fully Dark Mode ************************************************************/ -/*= 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; - } -} - -/*= 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, /* #topBar, #mainDeck: Page Info */ - #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; - } - - /* Medium and small buttons get sized to 7/14 and 6/12px padding (when adding - * the 1px border): */ - button.medium { - 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:-moz-focusring, - xul|menulist:-moz-focusring, - xul|checkbox:-moz-focusring > .checkbox-check, /* :not([native]) to win specificity over checkbox.css */ - xul|radio[focused="true"]:-moz-focusring { - box-shadow: none !important; - outline: 2px solid var(--in-content-focus-outline-color) !important; - outline-offset: 2px !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; - } - } - - /*- Radio Button -----------------------------------------------------------*/ - xul|radio { - /* margin-inline-start: 0 !important; */ - appearance: none !important; - } - - xul|*.radio-check { - appearance: none !important; - width: 16px !important; - height: 16px !important; - padding: 0 !important; - border: 1px solid var(--in-content-box-border-color) !important; - border-radius: 100% !important; - margin-block: 2px !important; /* extend the vertical clicktarget */ - margin-inline: 0 6px !important; - background-color: var(--in-content-button-background) !important; - background-position: center !important; - flex-shrink: 0 !important; /* avoid shrinking inside flex container */ - } - - 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-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"])[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; - } - - xul|checkbox[disabled="true"], - xul|radio[disabled="true"], - xul|label[disabled="true"] { - opacity: 0.5 !important; - } - - /*- Check Box --------------------------------------------------------------*/ - /* From checkbox.css */ - checkbox { - appearance: none !important; - -moz-box-align: center !important; - margin: 4px 2px !important; - } - - .checkbox-icon[src] { - margin-inline-end: 2px !important; - } - .checkbox-label { - margin: 1px 0 !important; - } - - checkbox[disabled="true"] { - opacity: 0.4 !important; - } - - .checkbox-check { - appearance: none !important; - color: var(--checkbox-border-color, ThreeDDarkShadow) !important; - background-color: var(--checkbox-unchecked-bgcolor, Field) !important; - border: 1px solid currentColor !important; - border-radius: 2px !important; - margin-inline-end: 6px !important; - } - - .checkbox-check { - height: 16px !important; - width: 16px !important; - } - - 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, -moz-accent-color 8%, Field) - ) !important; - } - - .checkbox-check[checked] { - border-color: var(--checkbox-checked-border-color, transparent) !important; - background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !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, -moz-accent-color-foreground) !important; - /* Style the button also when printing with "Print Backgrounds" unchecked */ - color-adjust: exact !important; - } - - 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%, -moz-accent-color) - ) !important; - } - - checkbox:-moz-focusring > .checkbox-check { - outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; - outline-offset: var(--focus-outline-offset, 2px) !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, -moz-accent-color 4%, Field)) !important; - } - - .checkbox-check[checked] { - color: var(--checkbox-checked-border-color, currentColor) !important; - fill: var(--checkbox-checked-color, -moz-accent-color-foreground) !important; - } - - checkbox:not([disabled="true"]):hover:active > .checkbox-check[checked], - checkbox:not([disabled="true"]):hover > .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; - } - } - - /* From common.css */ - xul|*.checkbox-check { - margin-block: 2px !important; - } - 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, -moz-accent-color) !important; - outline-offset: var(--focus-outline-offset, 2px) !important; - } - - #label-box { - -moz-box-align: center !important; - -moz-box-pack: center !important; - font-weight: 600 !important; - } - - dropmarker { - display: -moz-box !important; - appearance: none !important; - width: 12px !important; - height: 12px !important; - } - - /* dropmarker::part(icon) - * ::part is not apply chrome - */ - dropmarker[exportparts="icon: dropmarker-icon"] { - 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), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8), (-moz-platform: windows-win10) { - 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: -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: -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 Exeption 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 antialising 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 antialising 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 { - border-radius: 8px !important; - padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; - margin: 4px !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; */ - } - #viewGroup > radio { - color: var(--in-content-deemphasized-text) !important; /* FieldText */ - } - - #viewGroup > radio { - 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; - } - #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 6 !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-primary-button-background); - - --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-outline-color: rgb(0, 221, 255); - - --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; - } - - #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; - border-radius: 4px !important; - padding-block: 5px !important; - padding-inline-start: 5px !important; - margin-inline-end: 2px !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; - } - - #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 { - 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; - } - - /*- 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; - list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); - -moz-context-properties: fill !important; - fill: currentColor !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 { - list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); - } - - #editBookmarkPanelRows .expander-up > .button-box, - #editBookmarkPanelRows .expander-down > .button-box { - padding: 0 !important; - } - - #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; - } - - #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; - } - - #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; - } - } -} - -/** Decoration ****************************************************************/ -@media (prefers-reduced-motion: no-preference) { - /*= 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); - } - - /*= 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: -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, -moz-accent-color) 50%, transparent); - } - - /*= Downloads 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"]) .downloadTypeIcon { - filter: grayscale(100%) !important; - } -} - -/*= Cursor Types =============================================================*/ -#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 { - cursor: pointer !important; -} - -/* TODO: For now, fxa-menu doesn't show any status. - (JS required, observe .syncNowBtn status) - #PanelUI-fxa-menu-syncnow-button[syncstatus="active"] { - cursor: progress !important; - } - */ - -/*= Animate ==================================================================*/ -@media (prefers-reduced-motion: no-preference) { - /*- 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 (-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), - 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: -moz-box-flex 0.2s var(--animation-easing-function), - margin-inline-start 0.2s var(--animation-easing-function) !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; - } - - /*- Border - Other Fields --------------------------------------------------*/ - #search-box:hover, - xul|search-textbox.tabsFilter:hover, - #editBMPanel_namePicker:hover, - #editBMPanel_tagsField:hover, - .findbar-container .findbar-textbox:hover { - 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 ----------------------------------------------------------------*/ - #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; - } - #sidebar-box[hidden="true"] { - 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 0.3s var(--animation-easing-function) 50ms; - } - #navigator-toolbox[inFullscreen="true"]:hover { - transition-duration: 1.5s; - transition-delay: 0.1s; - } - - @keyframes fullscreen { - from { - margin-top: 0; - } - /* Dont' 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); - background-image: url("chrome://global/skin/icons/arrow-down-12.svg") !important; - } - } - - /*- 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); - } -} - -/** Reduce Padding ************************************************************/ -/*= Tab Bar - Distribution padding, radius ===================================*/ -:root { - --tab-border-radius: 0px !important; /* Original: 4px */ - - --tab-block-margin: 0px !important; /* New version of --proton-tab-block-margin */ - --proton-tab-block-margin: var(--tab-block-margin) !important; /* Original: 4px, Legacy */ -} - -:root[uidensity="touch"] { - /* Like Original */ - --tab-block-margin: 4px !important; /* New version of --proton-tab-block-margin */ -} - -/* Fix Tab bar button radious */ -#TabsToolbar .toolbarbutton-1 > .toolbarbutton-icon, -#TabsToolbar .toolbarbutton-1 > .toolbarbutton-text, -#TabsToolbar .toolbarbutton-1 > .toolbarbutton-badge-stack, -.tab-close-button { - --tab-border-radius: 4px !important; -} - -/*= Tab Bar - Reduce Width, Show more tabs ===================================*/ -/* for First Tab Space */ -:root { - --space-left-tabbar: 0px; /* If you want drag space, set to 8px */ -} -:root:not([tabsintitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), -:root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { - padding-inline-start: var(--space-left-tabbar) !important; -} - -/* Titlebar Space */ -.titlebar-spacer[type="pre-tabs"] { - width: 30px !important; /* Original: 40px */ -} -.titlebar-spacer[type="post-tabs"] { - width: 25px !important; /* Original: 40px */ -} - -/* Tabbar Buttons */ -:root { - --newtab-button-minus-width-padding: 2px; - --newtab-button-width-padding: calc(var(--toolbarbutton-inner-padding) - var(--newtab-button-minus-width-padding)); -} -#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; -} - -#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab[first-visible-unpinned-tab] { - 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 */ -:root { - --tab-max-width: 225px; -} -.tabbrowser-tab[fadein]:not([pinned]):not([style*="max-width"]) { - max-width: var(--tab-max-width) !important; /* Original: 225px */ -} - -/* neighbouring tabs should "pinch" together */ -.tabbrowser-tab { - padding-inline: 0 !important; -} - -/*= Tab Bar - Reduce Height, Show more contents ==============================*/ -/* for Extra Drag Space */ -:root { - --space-above-tabbar: 0px; /* If you want drag space, set to 8px */ -} -:root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { - height: calc(var(--tab-min-height) + var(--space-above-tabbar)); -} -:root[sizemode="normal"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, -:root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { - padding-top: var(--space-above-tabbar) !important; -} - -/* Toolbar Height */ -#TabsToolbar { - --tab-min-height: 33px; - --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 18px) / 2) !important; /* Prevent overflow pinned tab bottom margin */ -} -:root[uidensity="compact"] #TabsToolbar { - --tab-min-height: 29px; -} -:root[uidensity="touch"] #TabsToolbar { - --tab-min-height: 41px; -} - -:root:not([uidensity="compact"]) #tabbrowser-arrowscrollbox, -#tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"], -#tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-stack, -#tabbrowser-arrowscrollbox[overflowing="true"] > .tabbrowser-tab[pinned="true"] .tab-content { - max-height: var(--tab-min-height) !important; /* Force apply height */ -} -:root[uidensity="compact"] #tabbrowser-arrowscrollbox { - height: var(--tab-min-height) !important; -} - -/* Top Margin */ -.tab-background, -.tab-content { - margin-top: 0 !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 ================================================*/ -:root[uidensity="compact"] { - --toolbarbutton-outer-padding: 2px !important; /* Original: 3px, General is 2px */ -} - -/*= Nav Bar - Reduce Width ===================================================*/ -#nav-bar:not([customizing]) toolbarspring { - min-width: 1px !important; - max-width: 100px !important; -} - -/*= URL Bar - Reduce Padding =================================================*/ -:root:not([uidensity="touch"]) #urlbar-container, -:root:not([uidensity="touch"]) #search-container { - padding-block: 3px !important; /* Original: 4px */ - margin-inline: 5px !important; /* Original: 5px */ -} -: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; -} - -/*= BookMark Bar - Reduce Height =============================================*/ -:root[uidensity="compact"] #PersonalToolbar toolbarbutton { - margin-top: 0px; /* Original: 2px */ -} - -/*= Info Bar - Reduce Padding ================================================*/ -:root:not([uidensity]) #tab-notification-deck { - --infobar-message-margin: 0 4px 3px; -} -:root[uidensity="compact"] #tab-notification-deck { - --infobar-message-margin: 0 4px 2px; -} -#tab-notification-deck notification-message[message-bar-type="infobar"]:not([style*="margin-top"]) { - margin: var(--infobar-message-margin, 0 4px 4px) !important; -} - -:root:not([uidensity]) notification-message[message-bar-type="infobar"] { - --infobar-vertical-margin: 7px; - --infobar-button-vertical-margin: 3px; -} -:root[uidensity="compact"] notification-message[message-bar-type="infobar"] { - --infobar-vertical-margin: 6px; - --infobar-button-vertical-margin: 2px; -} -.infobar > .icon { - margin-block: var(--infobar-vertical-margin, 8px) !important; /* Original: 8px */ -} -.notification-message { - padding-block: var(--infobar-vertical-margin, 8px) !important; /* Original: 8px */ -} -.notification-button-container > .notification-button { - margin-block: var(--infobar-button-vertical-margin, 4px) !important; /* Original: 4px */ -} -.notification-close { - margin: var(--infobar-button-vertical-margin, 4px) 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(0, #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 ====================================================*/ -:root { - --menu-padding: 0.35em; /* Win7, 8: 0px */ -} -:root[uidensity="compact"] { - --menu-padding: 0.25em; -} -:root[uidensity="touch"] { - --menu-padding: 0.5em; -} -menupopup:not(.in-menulist) > menuitem, -menupopup > menu { - /* Original: 0.5em */ - padding-block: var(--menu-padding) !important; -} - -#ContentSelectDropdown > menupopup > menucaption, -#ContentSelectDropdown > menupopup > menuitem { - padding-block: 0 !important; -} - -@supports not -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-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-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 ===========================================*/ -:root { - --bookmark-menu-padding: 3px; -} -:root[uidensity="compact"] { - --bookmark-menu-padding: 1.5px; -} - -:root:not([uidensity="touch"]) #BMB_bookmarksPopup .subviewbutton, -: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; -} - -/*= Global Menu - Set Padding ================================================*/ -/* Vertical Align - Center & Height: 100% */ -#main-menubar { - -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; -} - -/*= Panel - Reduce padding ===================================================*/ -:root { - --arrowpanel-menuicon-padding: 8px; - --arrowpanel-menuitem-margin: 0 var(--arrowpanel-menuicon-padding) !important; /* Original: 0 8px */ - --arrowpanel-menuitem-padding: 5px !important; /* Original: 8px */ - --arrowpanel-padding: 0.8em !important; /* Original: 16px or .cui-widget-panel, .cui-widget-panel::part(arrowcontent) => 4px 0 */ -} - -:root[uidensity="compact"] { - --arrowpanel-menuitem-padding: 3px !important; /* Original: 8px */ -} -:root[uidensity="touch"] { - --arrowpanel-menuitem-padding: 8px !important; /* Original: 8px */ -} - -/*= Popup Panel - Reduce padding =============================================*/ -#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 */ -/* Footer Button Height */ -:root[uidensity="compact"] .panel-footer.panel-footer-menulike > button { - padding: 3px 8px !important; -} -/* Footer Button Height */ -:root[uidensity="compact"] #protections-popup-trackersView-settings-button { - margin: 4px 8px 0 !important; -} -/* not cut off for Protection popup Footer on windows */ -:root[uidensity="compact"] #protections-popup-multiView #protections-popup-footer { - padding: 3px 0 10px !important; -} -/* Button and disabled category in Protection popup */ -:root[uidensity="compact"] #protections-popup-multiView .protections-popup-footer-button, -:root[uidensity="compact"] #protections-popup-multiView .protections-popup-category { - height: 20px !important; - min-height: 20px !important; -} -/* Footer Button in Tracking Content Panel */ -:root[uidensity="compact"] #protections-popup-multiView .panel-footer.panel-footer-menulike { - margin: 0 0 3px !important; -} -/* Identity popup header padding */ -:root[uidensity="compact"] #identity-popup-multiView #identity-popup-mainView-panel-header { - padding: 2px 5px !important; -} -/* Text When There is no trackers */ -:root[uidensity="compact"] #protections-popup-no-trackers-found-description { - margin: 2em 4em !important; -} -/* Download Item margin */ -:root[uidensity="compact"] #downloadsListBox { - margin: 0 !important; -} - -/** Tab Bar - Connect to window ***********************************************/ -.tab-background { - border-radius: var(--tab-border-radius) var(--tab-border-radius) 0px 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; -} -#TabsToolbar { - overflow: hidden; /* Prevent toolbar area over */ -} - -/* Pinned Tab - tabbrowser-arrowscrollbox overflowing */ -#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] { - z-index: 0 !important; -} - -/** Selected Tab - Color like toolbar *****************************************/ -:root:not(:-moz-lwtheme) { - /* Fix for windows's system default theme. Using --toolbar-bgcolor fallback */ - --tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */ -} -#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; -} - -/* Multi Selected Color */ -#tabbrowser-tabs:not([movingtab]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab - > .tab-stack - > .tab-background[multiselected]:not([selected]):-moz-lwtheme { - background-image: linear-gradient(var(--toolbar-bgcolor, transparent), var(--toolbar-bgcolor, transparent)), - linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)), var(--lwt-header-image, none) !important; -} - -.tab-background[multiselected="true"]:not([selected="true"]) > .tab-loading-burst:not([bursting]) { - background: color-mix(in srgb, currentColor 65%, transparent); - opacity: 0.3; -} -#TabsToolbar[brighttext] - .tab-background[multiselected="true"]:not([selected="true"]) - > .tab-loading-burst:not([bursting]) { - opacity: 0.15; -} - -/** Selected Tab - Photon like contextline ************************************/ -:root[lwtheme-mozlightdark] #tabbrowser-tabs, /* Legacy: v96 */ -: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 */ - } -} - -.tab-context-line { - 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 identitiy color flashing */ -.tabbrowser-tab[usercontextid] .tab-context-line { - --identity-icon-color: none; -} - -:root:not([customizing="true"]):is([lwtheme-mozlightdark], [style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"]) /* Legacy - lwtheme-mozlightdark at v96 */ - #TabsToolbar[brighttext] - #tabbrowser-tabs:not([noshadowfortests]) - tab[visuallyselected] - > stack:-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);"]) /* Legacy - lwtheme-mozlightdark at v96 */ - #TabsToolbar[brighttext] - #tabbrowser-tabs:not([noshadowfortests]) - tab[visuallyselected] - > stack:-moz-lwtheme::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 **********************************************/ -.tabbrowser-tab[first-visible-tab="true"] .tab-background::before, -.tab-background::after { - content: ""; -} - -.tab-background::before, -.tab-background::after { - /* Box Model */ - display: block; - position: absolute; - - /* Position */ - top: 50%; - transform: translateY(calc(-50% + 1px)) !important; - - /* Bar shape */ - width: 0px; - height: 100%; - - /* Bar Color */ - opacity: 0.3; - border-right: 1px solid var(--lwt-background-tab-separator-color, currentColor) !important; -} -.tab-background::after { - right: 0; -} - -.tabbrowser-tab[visuallyselected] .tab-background::before, -.tabbrowser-tab[visuallyselected] .tab-background::after, -.tabbrowser-tab[beforeselected-visible] .tab-background::after { - opacity: 0; -} - -/* Animate */ -@media (prefers-reduced-motion: no-preference) { - .tab-background::before, - .tab-background::after { - transition: opacity 0.2s var(--animation-easing-function); /* cubic-bezier(.07, .95, 0, 1) */ - } -} - -/** New tab button - Smaller button *******************************************/ -#tabs-newtab-button > .toolbarbutton-icon { - margin-left: 1px; - - /* Origianl: calc((var(--tab-min-height) - 16px) / 2) = 10px */ - --toolbarbutton-inner-padding: 6px; -} -:root[uidensity="compact"] #tabs-newtab-button > .toolbarbutton-icon { - --toolbarbutton-inner-padding: 4px; /* Photon: 6px */ -} -:root[uidensity="touch"] #tabs-newtab-button > .toolbarbutton-icon { - --toolbarbutton-inner-padding: 9px; /* Photon: 9px */ -} - -/* Unloaded Tab - Contents Opacity ********************************************/ -#tabbrowser-tabs .tabbrowser-tab[pending] .tab-content { - opacity: 0.7; -} - -/** Clipped tabs - 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-tabs[closebuttons="activetab"] .tab-label-container[textoverflow][labeldirection="ltr"]:not([pinned]), -#tabbrowser-tabs[closebuttons="activetab"] - .tab-label-container[textoverflow]:not([labeldirection]):-moz-locale-dir(ltr):not([pinned]) { - mask-image: linear-gradient(to right, black 70%, transparent) !important; -} - -#tabbrowser-tabs[closebuttons="activetab"] .tab-label-container[textoverflow][labeldirection="rtl"]:not([pinned]), -#tabbrowser-tabs[closebuttons="activetab"] - .tab-label-container[textoverflow]:not([labeldirection]):-moz-locale-dir(rtl):not([pinned]) { - mask-image: linear-gradient(to left, black 70%, transparent) !important; -} - -/** Clipped tabs - Show 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: -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; -} - -/* Animate */ -@media (prefers-reduced-motion: no-preference) { - /* Fade out */ - #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([visuallyselected]) .tab-close-button { - transition: opacity 0.1s var(--animation-easing-function) !important; - } - - /* Fade in */ - #tabbrowser-tabs[closebuttons="activetab"] .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) > .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) */ -} - -/** Sound Tab - Hide Label ****************************************************/ -.tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { - display: none !important; -} - -/** Sound Tab - Show 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) */ -.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(-0.5px) translateY(-6px); - - /* 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; -} -.tabbrowser-tab:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) .tab-label { - transform: translateX(4px); -} - -/* 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 > .tab-label { - transition: transform 0.25s var(--animation-easing-function); - } -} - -/* None exist favicon - Size bigger */ -.tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) { - transform: translateX(-0.5px) 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([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) - .tab-label { - transform: translateX(3px); -} - -/* 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(-0.5px) 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 **************************************/ -#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: -moz-inline-box !important; - width: 14px; - height: 14px; - background-size: 14px; - -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 { - -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 *******************************/ -.tabbrowser-tab { - --container-position-y: 11px; -} -:root[uidensity="compact"] .tabbrowser-tab { - --container-position-y: 10px; -} -:root[uidensity="touch"] .tabbrowser-tab { - --container-position-y: 12px; -} -.tab-content:not([titlechanged])::before { - /* Box Model */ - content: ""; - display: block; - position: absolute !important; - transform: translate(9px, var(--container-position-y)) !important; - - /* 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) !important; - transition-property: width, opacity; - } -} - -/* Pinned Tab */ -.tabbrowser-tab[pinned] .tab-content::before { - transform: translateY(var(--container-position-y)) !important; - width: 16px; -} - -/* 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: 32%, 50%, 70% !important; -} -:root[uidensity="compact"] - .tabbrowser-tab:is([image], [pinned])[usercontextid] - > .tab-stack - > .tab-content[attention]:not([selected="true"]), -:root[uidensity="compact"] - .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); */ - background-position-x: 30%, 50%, 70% !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 calc(0.5px + 50% + var(--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"]) { - background-position-x: calc(32% - 1px), calc(50% - 1px), calc(70% - 1px) !important; -} -: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"]) { - background-position-x: calc(30% - 1px), calc(50% - 1px), calc(70% - 1px) !important; -} - -/** Crashed Tab - Don't show Favicons *****************************************/ -.tab-icon-image[crashed] { - display: none !important; -} - -/** Fullscreen - Overlap toolbar **********************************************/ -@supports -moz-bool-pref("browser.fullscreen.autohide") { - :root[sizemode="fullscreen"] #navigator-toolbox { - position: fixed !important; /* Needed for content to take up entire height */ - display: block !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 */ - } - - :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 */ - } -} - -/** Library - Icons Replace ***************************************************/ -/*= Standard Folder - More Visible ===========================================*/ -/* on Toolbar and Menus */ -:-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer]), - /* in Sidebar, Library, Add/Edit Bookmark dialog */ - /* https://github.com/rillian/firefox/blob/1f88437d263f56bdede4f20f69ba9c7b62f57001/layout/style/nsCSSAnonBoxList.h#L85-L98 */ - /* Need to overide!!, can not use :not() */ - :-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]), - /* Download Popup */ - .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, - /* Other Bookmarks -- in Sidebar, Library, Add/Edit Bookmark dialog */ - :-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 - Overide ===================================================*/ -/* 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; -} - -/* Boomark */ -:-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, /* Original: Default folder icon */ - #bookmarksMenuPopup #bookmarksToolbarFolderMenu, /* Original: Default folder icon */ - :-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; -} - -/* Boomark */ -:-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 ===========================================*/ -@-moz-document url("chrome://browser/content/places/places.xhtml") -{ - @media (-moz-gtk-csd-available) { - #organizeButton, - #viewMenu, - #maintenanceButton, - #back-button, - #forward-button, - #clearDownloadsButton { - fill: currentColor !important; - -moz-context-properties: fill !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: -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 *************************************************************/ -/*= Padding ==================================================================*/ -:root { - --arrowpanel-menublank-padding: calc(var(--arrowpanel-menuicon-padding) * 2 + 8px) !important; - --arrowpanel-menuimageblank-padding: calc(var(--arrowpanel-menuitem-padding) - 2px) !important; - - /* Blank Menu Left Padding */ - --arrowpanel-menuimageblank-padding-horizontal: calc(var(--arrowpanel-menublank-padding) - 3px); - --arrowpanel-menuitemblank-padding: calc(var(--arrowpanel-menuitem-padding) + 1px); -} -:root[uidensity="compact"] { - --arrowpanel-menuimageblank-padding-horizontal: calc(var(--arrowpanel-menublank-padding) - 5px); -} -:root[uidensity="touch"] { - --arrowpanel-menuimageblank-padding-horizontal: calc(var(--arrowpanel-menublank-padding)); -} -: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) - 2px) !important; - - /* Blank Menu Left Padding */ - --arrowpanel-menuimageblank-padding-horizontal: calc( - var(--arrowpanel-menuicon-paddingx2) + var(--arrowpanel-menuitem-padding) - ); - --arrowpanel-menuitemblank-padding: calc(var(--arrowpanel-menuitem-padding) + 1px); -} -.subviewbutton > .toolbarbutton-icon { - width: 16px; -} - -#downloadsHistory .button-text, -.subviewbutton > .toolbarbutton-text { - padding-inline-start: var(--arrowpanel-menuicon-padding) !important; -} -.toolbaritem-combined-buttons > .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; -} - -#appMenu-multiView .subviewbutton::before, -#appMenu-proton-update-banner::before { - display: -moz-inline-box; - margin-inline-end: var(--arrowpanel-menuicon-padding); - width: 16px; - height: 16px; -} -#appMenu-proton-update-banner { - margin-bottom: 2px !important; -} -#appMenu-proton-update-banner::before { - margin-inline-start: var(--arrowpanel-menuitem-padding) !important; -} -#appMenu-fxa-status2, -#appMenu-zoom-controls2 { - align-items: center; - padding-top: var(--arrowpanel-menuimageblank-padding) !important; - padding-bottom: var(--arrowpanel-menuimageblank-padding) !important; -} -#appMenu-zoom-controls2::before { - margin-inline-end: 0 !important; -} - -.subviewbutton[type="checkbox"]:not([checked="true"]) > .toolbarbutton-text { - margin-left: 16px !important; -} - -/* Icons Color */ -#appMenu-multiView .subviewbutton::before, -#appMenu-proton-update-banner::before, -#downloadsHistory .button-icon, -.subviewbutton > image { - fill: currentColor !important; - fill-opacity: var(--toolbarbutton-icon-fill-opacity) !important; - -moz-context-properties: fill !important; -} -#appMenu-zoomReduce-button2 > .toolbarbutton-icon, -#appMenu-zoomEnlarge-button2 > .toolbarbutton-icon { - stroke: var(--zoom-controls-bgcolor, var(--button-bgcolor, ButtonFace)) !important; - -moz-context-properties: fill, stroke !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: -moz-inline-box !important; - margin-inline-start: var(--arrowpanel-menuicon-padding); - -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; -} - -#appMenu-new-tab-button2, /* Seperate */ - #appMenu-passwords-button, /* Seperate */ - #appMenu-extensions-themes-button, - #appMenu-save-file-button2, /* Seperate */ - #appMenu-find-button2, - #appMenu-more-button2, /* Seperate */ - #appMenu-help-button2, - #appMenu-quit-button2 /* Seperate */ { - padding-top: var(--arrowpanel-menuitemblank-padding) !important; - padding-bottom: var(--arrowpanel-menuitemblank-padding) !important; -} -#appMenu-zoom-controls2 { - 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"); -} - -#appMenu-print-button2 { - list-style-image: url("chrome://global/skin/icons/print.svg"); -} - -#appMenu-settings-button { - list-style-image: url("chrome://global/skin/icons/settings.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: -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); -} - -.syncNowBtn { - visibility: visible !important; - -moz-box-ordinal-group: 1 !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("chrome://browser/skin/fxa/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; - - 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)) !important; - padding-inline-start: var(--arrowpanel-menublank-padding) !important; -} - -/* Change Separator */ -#PanelUI-fxa-menu::before { - content: ""; - display: -moz-box; - border-bottom: 1px solid var(--panel-separator-color); - margin: var(--panel-separator-margin); - padding: 0; -} -#PanelUI-fxa-menu > :first-child { - -moz-box-ordinal-group: 0; -} -#PanelUI-sign-out-separator { - display: none; -} -.pageAction-sendToDevice-device.subviewbutton.sync-menuitem.sendtab-target[clientType=""], /* Legacy */ - .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]), /* Legacy */ - .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"); -} -#appMenuRestoreSession { - 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 Toolbaox - */ -#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_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: -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/password-hide.svg"); -} - -#allTabsMenu-containerTabsView .subviewbutton:last-child { - list-style-image: url("chrome://global/skin/icons/settings.svg"); -} - -/*= BMB_bookmarksPopup =======================================================*/ -#BMB_viewBookmarksSidebar { -} -#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: -moz-box !important; - } -} - -/*= 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: 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 { - list-style-image: url("chrome://global/skin/icons/info.svg"); -} - -#sidebar-switcher-bookmarks { - list-style-image: url("chrome://browser/skin/bookmark.svg"); -} - -#sidebar-switcher-history { - list-style-image: url("chrome://browser/skin/history.svg"); -} - -#sidebar-switcher-tabs { - list-style-image: url("chrome://browser/skin/tab.svg"); -} - -#sidebar-reverse-position { - list-style-image: url("chrome://browser/skin/sidebars-right.svg"); -} -#sidebar-box[positionend="true"] #sidebar-reverse-position { - /* Can't apply this. shadow dom */ - list-style-image: url("chrome://browser/skin/sidebars.svg"); -} - -#sidebarMenu-popup > .subviewbutton[data-l10n-id="sidebar-menu-close"] { - list-style-image: url("chrome://global/skin/icons/close.svg"); -} - -/** Menu - Icons Layout *******************************************************/ -menupopup menuitem:not([type="checkbox"], [type="radio"]), -menupopup menu:not([type="checkbox"], [type="radio"]), -#main-menubar > menu { - -moz-appearance: none !important; /* Linux: menulist */ -} - -/* Icon */ -:not(menu, #ContentSelectDropdown) - > menupopup - > menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), -:not(menu, #ContentSelectDropdown) - > menupopup - > menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), -#main-menubar > menu, -menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), -menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), -menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, -menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, -.openintabs-menuitem, -#blockedPopupDontShowMessage { - /* Color */ - -moz-context-properties: fill, fill-opacity !important; - fill: currentColor !important; - - /* Layout */ - background-size: 16px !important; - background-repeat: no-repeat !important; - background-image: var(--menuitem-image); -} - -/* For native context menus on macOS */ -@supports -moz-bool-pref("widget.macos.native-context-menus") { - :not(menu, #ContentSelectDropdown) - > menupopup - > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), - :not(menu, #ContentSelectDropdown) - > menupopup - > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist) { - list-style-image: var(--menuitem-image, url("./icons/blank.svg")) !important; - } -} - -/* Padding */ -:root { - --context-menu-background-padding-default: 5px; - --context-menu-background-padding: var(--context-menu-background-padding-default); -} -:not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem:not(.menuitem-iconic), -:not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic), -menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), -menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), -menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, -menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, -.openintabs-menuitem, -#blockedPopupDontShowMessage { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: var(--context-menu-background-padding) !important; -} - -/* Menubar */ -#main-menubar > menu { - background-position: left 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: left 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 */ -} - -/* Padding - Windows */ -@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8), (-moz-platform: windows-win10) { - /* Checkbox */ - :root { - --context-menu-text-padding: calc(var(--menu-padding) + var(--context-menu-background-padding-default) + 16px); - } - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menuitem[type="checkbox"][checked="false"] - > .menu-iconic-left { - padding-inline-start: var(--context-menu-text-padding); - } -} - -@media (-moz-os-version: windows-win7), /* Legacy - v99 */ - (-moz-platform: windows-win7) { - :root { - --context-menu-background-padding-default: 2px; - } -} -@media (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win8) { - :root { - --context-menu-background-padding-default: 3px; - } -} -@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8) { - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, - menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, - .openintabs-menuitem, - #blockedPopupDontShowMessage { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: 0 !important; - } -} -@media (-moz-os-version: windows-win10), /* Legacy - v99 */ - (-moz-platform: windows-win10) { - :root { - --context-menu-background-padding: 1em; - --context-menu-text-padding: 24px; /* 16px + 8px */ - --menu-background-padding-default: calc(var(--context-menu-background-padding) + var(--context-menu-text-padding)); - } - - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu, - menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) > menuitem, - .openintabs-menuitem, - #blockedPopupDontShowMessage { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } -} - -/* Padding - Linux */ -@media (-moz-gtk-csd-available) { - :root { - --context-menu-background-padding-default: 6px; - } - - #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 - > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist), - #blockedPopupDontShowMessage { - padding-inline-end: var(--context-menu-background-padding) !important; - } - - /* text position */ - :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem > .menu-text, - :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu > menu-text { - padding-inline-start: var(--context-menu-mac-padding) !important; - } - - /* Checkbox menuitem, None iconic menu */ - :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menuitem[type="checkbox"], - :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup > menu:not(.menu-iconic) { - padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; - } - - /* Global Menu */ - /* Disabled. some icons not appear - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"], .bookmark-item), - menupopup:is(#menu_FilePopup, #menu_EditPopup, #menu_viewPopup, #goPopup, #historyMenuPopup, #bookmarksMenuPopup, #menu_ToolsPopup, #menu_HelpPopup) - menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) { - list-style-image: var(--menuitem-image, url("./icons/blank.svg")); - } - */ -} - -/*= Bookmark Menu - Layout ===================================================*/ -/* #goPopup(Legacy of historyMenuPoup), #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); -} - -/* Windows 7, 8 */ -@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8) { - /* Global Menu */ - menupopup:is(#goPopup, #historyMenuPopup, #bookmarksMenuPopup) .bookmark-item { - padding-inline-start: 0 !important; - } - - /* Bookmark Popup - None icon menu */ - #BMB_bookmarksPopup, - #PersonalToolbar { - --arrowpanel-menuicon-padding: 9px; - } - menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup) 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-padding) !important; - background-position: left calc(var(--arrowpanel-menuicon-padding)) center !important; - } - menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic) { - padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding) + 2px) !important; - } - #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), - #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { - padding-inline-start: var(--arrowpanel-menuicon-padding) !important; - } -} - -/* Windows */ -@media (-moz-os-version: windows-win10), /* Legacy - v99 */ - (-moz-platform: windows-win10) { - /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup) 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-padding) !important; - padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding)) !important; - background-position: left calc(var(--arrowpanel-menuicon-padding)) center !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 { - padding-inline-start: 1px !important; - } - /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup) 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(--arrowpanel-menuitem-padding) + 1px) !important; - } -} - -@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") { - /* Bookmark Popup - As Arrow Panel */ - #PersonalToolbar menupopup menuitem, - #PersonalToolbar menupopup menu { - padding-inline: calc(var(--arrowpanel-menuicon-padding) + var(--arrowpanel-menuitem-padding)) !important; - } - - /* Bookmark Popup - None icon menu */ - menupopup:is(#BMB_bookmarksPopup) menuitem:not(.menuitem-iconic, [disabled="true"]), - menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic) { - padding-inline-start: calc(var(--arrowpanel-menuitem-padding) + 3px) !important; - } -} - -/** Context Menu - Icons ******************************************************/ -/*= tabContextMenu ===========================================================*/ -#context_openANewTab { - --menuitem-image: url("chrome://browser/skin/new-tab.svg"); -} - -#context_reloadTab, -#context_reloadSelectedTabs { - --menuitem-image: url("./icons/reload.svg"); -} -#context_toggleMuteTab, -#context_toggleMuteSelectedTabs { - --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-muted-small.svg"); -} -#context_toggleMuteTab[muted], -#context_toggleMuteSelectedTabs[muted] { - --menuitem-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); -} -#context_pinTab, -#context_pinSelectedTabs { - --menuitem-image: url("./icons/pin-tab.svg"); -} -#context_unpinTab, -#context_unpinSelectedTabs { - --menuitem-image: url("./icons/unpin-tab.svg"); -} -#context_duplicateTab, -#context_duplicateTabs { - --menuitem-image: url("./icons/notebook-subsection.svg"); -} - -#context_bookmarkTab, -#context_bookmarkSelectedTabs { - --menuitem-image: url("chrome://browser/skin/bookmark.svg"); -} -#context_moveTabOptions { - --menuitem-image: url("./icons/arrow-swap.svg"); -} -#context_sendTabToDevice { - --menuitem-image: url("./icons/send-to-device.svg"); -} - -#context_sendTabToDevice:is([disabled="true"]) + #context_shareTabURL, /* Legacy */ - #context_sendTabToDevice:is([disabled="true"]) + menuitem.share-tab-url-item { - /* At windows */ - --menuitem-image: url("./icons/share.svg"); -} -#context_reopenInContainer { - --menuitem-image: url("./icons/container-openin-16.svg"); -} -#context_selectAllTabs { - --menuitem-image: url("./icons/tab-multiple.svg"); -} - -#context_closeTab { - --menuitem-image: url("chrome://global/skin/icons/close.svg"); -} -#context_closeTabOptions { -} -#context_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 { - --menuitem-image: url("./icons/password-hide.svg"); -} -.customize-context-removeFromToolbar { - --menuitem-image: url("chrome://global/skin/icons/delete.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"); -} - -/*= 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 */ -} - -#autohide-context > menuitem[data-l10n-id="full-screen-exit"] { - --menuitem-image: url("chrome://browser/skin/fullscreen-exit.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/code.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("chrome://browser/skin/save.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("chrome://browser/skin/save.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"); -} -#context-redo { -} - -#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-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 */ -} -#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"); - } -} - -/*= pictureInPictureToggleContextMenu ========================================*/ -#pictureInPictureToggleContextMenu > menuitem[oncommand="PictureInPicture.hideToggle();"] { - --menuitem-image: url("./icons/eye-hide.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\: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_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"); -} - -/*= 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 */ -} - -/*= 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("chrome://browser/skin/open.svg"); -} -.downloadAlwaysUseSystemDefaultMenuItem { - /* checkbox */ -} -.downloadShowMenuItem { - --menuitem-image: url("./icons/folder.svg"); -} - -#downloadsContextMenu > menuitem[command="downloadsCmd_openReferrer"] { - --menuitem-image: url("./icons/link-square.svg"); -} -#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"); -} - -/*= 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"); -} -#urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_redo"] { -} - -#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"); -} -#paste-and-go { -} -#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, Libray's Searchbar, Page Info */ -.textbox-contextmenu > menuitem[data-l10n-id="text-action-undo"] { - --menuitem-image: url("./icons/undo.svg"); -} -.textbox-contextmenu > menuitem[data-l10n-id="text-action-redo"] { -} - -.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 */ -menuitem.searchbar-paste-and-search { -} -menuitem.searchbar-clear-history { - --menuitem-image: url("chrome://browser/skin/forget.svg"); -} - -/*= context_sendTabToDevicePopupMenu =========================================*/ -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target[clientType="phone"] { - --menuitem-image: url("chrome://browser/skin/device-phone.svg"); -} - -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target[clientType="tablet"] { - --menuitem-image: url("chrome://browser/skin/device-tablet.svg"); -} - -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target[clientType="desktop"] { - --menuitem-image: url("chrome://browser/skin/device-desktop.svg"); -} - -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target[clientType="tv"] { - --menuitem-image: url("chrome://browser/skin/device-tv.svg"); -} - -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target[clientType="vr"] { - --menuitem-image: url("chrome://browser/skin/device-vr.svg"); -} - -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target[clientType=""] { - --menuitem-image: url("./icons/send-to-device.svg"); -} - -menupopup:is(#context_sendTabToDevicePopupMenu, #context-sendpagetodevice-popup) - > .sync-menuitem.sendtab-target:not([clientType]) { - --menuitem-image: url("chrome://global/skin/icons/settings.svg"); -} - -/** Global Menu ***************************************************************/ -/*= 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"); -} - -/*= menu_FilePopup ===========================================================*/ -#menu_newNavigatorTab { - --menuitem-image: url("chrome://browser/skin/new-tab.svg"); -} -#menu_newUserContext { -} -#menu_newNavigator { - --menuitem-image: url("chrome://browser/skin/window.svg"); -} -#menu_newPrivateWindow { - --menuitem-image: url("chrome://browser/skin/privateBrowsing.svg"); -} -#menu_newFissionWindow { -} -#menu_newNonFissionWindow { -} -#menu_openLocation { -} -#menu_openFile { - --menuitem-image: url("chrome://browser/skin/open.svg"); -} -#menu_close { -} -#menu_closeWindow { -} - -#menu_savePage { - --menuitem-image: url("chrome://browser/skin/save.svg"); -} -#menu_sendLink { - --menuitem-image: url("chrome://browser/skin/mail.svg"); -} - -#menu_printPreview { -} -#menu_print { - --menuitem-image: url("chrome://global/skin/icons/print.svg"); -} - -#menu_importFromAnotherBrowser { - --menuitem-image: url("chrome://browser/skin/import.svg"); -} - -#goOfflineMenuitem { -} -#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"); -} -#menu_redo { -} - -#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_findAgain { -} - -#textfieldDirection-swap { -} - -#menu_preferences { - --menuitem-image: url("chrome://global/skin/icons/settings.svg"); -} - -/*= menu_viewPopup ===========================================================*/ -#viewToolbarsMenu { - --menuitem-image: url("./icons/toolbar.svg"); -} -#viewSidebarMenuMenu { - --menuitem-image: url("chrome://browser/skin/sidebars.svg"); -} - -#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"); -} - -#fullScreenItem { - --menuitem-image: url("chrome://browser/skin/fullscreen.svg"); -} -#menu_readerModeItem { - --menuitem-image: url("chrome://browser/skin/reader-mode.svg"); -} -#menu_showAllTabs { -} - -#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"); -} - -/* viewFullZoomMenu sub menu */ -#menu_zoomEnlarge { - --menuitem-image: url("chrome://browser/skin/add-circle-fill.svg"); -} -#menu_zoomReduce { - --menuitem-image: url("chrome://browser/skin/subtract-circle-fill.svg"); -} -#menu_zoomReset { - --menuitem-image: url("./icons/resize.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 { -} -#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"); -} - -#bookmarksToolbarFolderMenu { -} -#menu_unsortedBookmarks { -} -#menu_mobileBookmarks { -} - -/*= 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-enable { -} -#sync-unverifieditem { -} -#sync-syncnowitem { - --menuitem-image: url("chrome://browser/skin/sync.svg"); -} -#sync-reauthitem { -} - -#webDeveloperMenu, /* Legacy */ - #browserToolsMenu { - --menuitem-image: url("./icons/developer.svg"); -} -#menu_pageInfo { - --menuitem-image: url("./icons/document-endnote.svg"); -} - -/* menuWebDeveloperPopup sub menu */ -#enableDeveloperTools { -} -#menu_devToolbox { -} -#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 { -} -#menu_eyedropper { -} -#menu_pageSource { - --menuitem-image: url("./icons/document-search.svg"); -} -#extensionsForDevelopers { - --menuitem-image: url("chrome://devtools/skin/images/debugging-addons.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 { -} - -#aboutName { - --menuitem-image: url("chrome://global/skin/icons/info.svg"); -} - -#helpPolicySupport { -} - -/** Libray Menu ***************************************************************/ -/*= organizeButtonPopup ======================================================*/ -#newbookmark { - --menuitem-image: url("chrome://browser/skin/bookmark.svg"); -} -#newfolder { - --menuitem-image: url("./icons/folder.svg"); -} -#newseparator { - --menuitem-image: url("./icons/vertical-line.svg"); -} - -#orgUndo { - --menuitem-image: url("./icons/undo.svg"); -} -#orgRedo { -} - -#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("chrome://devtools/skin/images/datastore.svg"); -} -#fileRestoreMenu { -} - -#fileImport { - --menuitem-image: url("chrome://browser/skin/save.svg"); -} -#fileExport { - --menuitem-image: url("chrome://browser/skin/open.svg"); -} - -#browserImport { - --menuitem-image: url("chrome://browser/skin/import.svg"); -} - -/*= Waterfox =================================================================*/ -/* Icons */ -#appMenu-restart-button { - list-style-image: url("./icons/refresh-cw.svg") !important; -} -#menu_FileRestartItem { - --menuitem-image: url("./icons/refresh-cw.svg"); -} - -menuitem.privatetab-icon { - --menuitem-image: url("./icons/private-favicon.svg"); -} - -/* 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); -} - -/*= Tor Browser ==============================================================*/ -#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"); -} - -#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"); -} +/* Enable option to edit bookmark URLs under Add Bookmark (blue star) menu */ +/* + * #editBMPanel_locationRow { + * visibility: visible !important; + * } +*/ + +/* Disable Email Image/Audio/Video and Set as Desktop Background context menu items */ +/* + * #context-sendimage, + * #context-sendvideo, + * #context-sendaudio, + * #context-setDesktopBackground { + * display: none !important; + * } +*/ diff --git a/arch-config/.mozilla/firefox/default-release/chrome/userContent.css b/arch-config/.mozilla/firefox/default-release/chrome/userContent.css index c6af7103..2fe02a60 100644 --- a/arch-config/.mozilla/firefox/default-release/chrome/userContent.css +++ b/arch-config/.mozilla/firefox/default-release/chrome/userContent.css @@ -1,2500 +1,4 @@ -@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); -@namespace html url("http://www.w3.org/1999/xhtml"); +/** Import Lepton stylesheet (Content) ****************************************/ +@import url("css/leptonContent.css"); -/** Video player **************************************************************/ -/* Control Bar UI */ -audio { - --duration-color: #929292; /* Like Original */ - --media-background: rgba(26,26,26,.8); /* Like Original */ - - border-radius: 8px; - --box-shadow1: rgba(14,13,26,.12); - --box-shadow2: rgba(7,48,114,.12); - --box-shadow3: rgba(34,0,51,.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); */ -} -video { - --duration-color: #eee; - --media-background: linear-gradient(transparent, rgba(26,26,26,.85)); -} - -@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); - } -} -@media (prefers-contrast) { - video { - --duration-color: #929292; /* Like Original */ - --media-background: rgba(26,26,26,.8); /* Like Original */ - } -} -#controlsContainer .controlBar { - background: var(--media-background) !important; -} -#controlsContainer .duration { - color: var(--duration-color) !important; /* Original: #929292 */ -} -#controlsContainer .fullscreenButton { - background-image: url("./icons/enter-fullscreen.svg") !important; -} -#controlsContainer .fullscreenButton[fullscreened] { - background-image: url("./icons/exit-fullscreen.svg") !important; -} - -#controlsContainer .muteButton[noAudio] { - /* Remove volume button at noAudio */ - display: none !important; -} - -/* Control Bar Size */ -#controlsContainer { - --button-size: 32px !important; /* Original: 30px */ - --controlBar-height: 40px; /* Original: 40px, Replace to this value */ -} -#controlsContainer .touch { - --button-size: 48px !important; /* Original: 40px */ - --controlBar-height: 52px; /* Original: 52px */ -} -.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 */ -} -#controlsContainer .controlBar { - height: var(--controlBar-height) !important; /* Original: 40px */ -} -.videocontrols[inDOMFullscreen] #controlsContainer .controlBar { - padding-bottom: 8px !important; -} - -/* Click to play UI */ -#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 */ -@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; - } - - /* Click to play */ - #controlsContainer .clickToPlay { - transition: opacity 150ms ease-in-out, fill 150ms ease-in-out; - } -} - -@-moz-document url("about:home"), url("about:newtab") { - /** Activity Stream - Search Focus Border: like URL *************************/ - /* 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);"] { - /* 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: rgba(0, 221, 255, 0.5) !important; /* Original: #B5D3FF */ - - /* For Nightly */ - --newtab-primary-action-background: var(--newtab-focus-border) !important; - } - - /** Activity Stream - Web Site Icon: full size ******************************/ - .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 ***********************************************/ - @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-inner-wrapper input { - transition: 1s var(--animation-easing-function); - transition-property: border-color, box-shadow; - } - .search-wrapper .search-inner-wrapper:active input, - .search-wrapper input:focus { - transition: border-color 0.5s var(--animation-easing-function), box-shadow 1s var(--animation-easing-function); - } - .search-wrapper .search-inner-wrapper:hover input { - border-color: var(--newtab-primary-action-background) !important; - transition: border-color 0.5s var(--animation-easing-function); - } - } - - /** Activity Stream - Home Search Bar looks like proton *********************/ - /* 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: -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; - } -} - -/** Error Page - Restore illustrations ****************************************/ -@-moz-document url-prefix("about:neterror"), - url("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml"), - url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") -{ - /* Illustrations Position */ - #errorPageContainer, - .description-wrapper { - min-height: 300px; - background-position: left center; - background-repeat: no-repeat; - background-size: 38%; - } - - #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=netTimeout"), - url-prefix("about:neterror?e=netReset"), - url-prefix("about:neterror?e=netOffline"), - url("about:restartrequired"), url("chrome://browser/content/aboutRestartRequired.xhtml") -{ - #errorPageContainer { - background-image: url("./icons/error-connection-failure.svg"); - } -} -@-moz-document url-prefix("about:neterror?e=dnsNotFound") { - #errorPageContainer { - background-image: url("./icons/error-server-not-found.svg"); - } -} -@-moz-document url-prefix("about:neterror?e=malformedURI") { - #errorPageContainer { - background-image: url("chrome://browser/skin/illustrations/error-malformed-url.svg"); - } -} -@-moz-document url-prefix("about:neterror?e=clockSkewError"), - url-prefix("about:neterror?e=nssFailure") { - #errorPageContainer { - background-image: url("./icons/blue-berror.svg"); - background-size: 18.5em; - } -} - -@-moz-document url("about:sessionrestore"), url("chrome://browser/content/aboutSessionRestore.xhtml") -{ - .description-wrapper { - background-image: 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; - } - } -} - -/** Fully Dark Mode ***********************************************************/ -/*= Fully Dark Mode - Dark Mode Colors =======================================*/ -/* 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 radiobuttons */ - --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-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); -} - -@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); - } - - /*= 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 */ - .AutoSearchInput-query, - .AutoSearchInput-suggestions-list, - .Page-content h1, - .Page-content h2, - .SearchResult-link, - .Home-SubjectShelf-link:link, - .Home-SubjectShelf-link:visited, - .DropdownMenuItem-link a, - .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), - .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, - .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 { - color: var(--in-content-primary-button-text-color) !important; - background: var(--in-content-primary-button-background) !important; - } - .Select, - .Button--neutral, - .Button--neutral:link, - .Notice-button, - .AMInstallButton .AMInstallButton-loading-button { - background-color: var(--in-content-button-background) !important; - } - .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 { - background: var(--in-content-primary-button-background-hover) !important; - } - .ShowMoreCard-contents::after { - background: linear-gradient(hsla(0, 0%, 100%, 0), var(--in-content-table-background)) !important; - } - .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; - } - - .AutoSearchInput-query { - border: 1px solid var(--in-content-table-background) !important; - } - .AutoSearchInput-query:is(:hover, :focus) { - border-color: var(--in-content-primary-button-background) !important; - } - .AutoSearchInput-query:focus { - 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 { - background: var(--in-content-page-background) !important; - } - .DevHub-Navigation.scheme-light ul li a, - .DevHub-content-copy h2, - .content p { - color: var(--in-content-page-color) !important; - } - .DevHub-callout-box { - background: var(--in-content-box-background) !important; - color: var(--in-content-page-color) !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, - .mzp-c-modal-close .mzp-c-modal-button-close { - /*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: none !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 (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, - .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"], - header, - .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; - } - } -} - -/** Fully Proton Mode *********************************************************/ -/*= abouts' common ===========================================================*/ -@-moz-document url-prefix("about:plugins"), - url-prefix("about:cache"), - url-prefix("about:checkerboard"), - url-prefix("about:sync-log"), - url-prefix("about:memory"), - regexp("^((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; - } - 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 */ - } - 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 antialising 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 antialising 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; - } -} - -/*= 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("^((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; - } -} - -/*= chrome://browser/content/places/places.xhtml =============================*/ -@-moz-document url("chrome://browser/content/places/places.xhtml") -{ - /** Library - Icons Replace *************************************************/ - /*= Standard Folder - More Visible =========================================*/ - /* on Toolbar and Menus */ - :-moz-any(#PlacesToolbar, #BMB_bookmarksPopup, #bookmarksMenu) .bookmark-item[container="true"]:not([query="true"], [tagContainer], [dayContainer]), - /* in Sidebar, Library, Add/Edit Bookmark dialog */ - /* https://github.com/rillian/firefox/blob/1f88437d263f56bdede4f20f69ba9c7b62f57001/layout/style/nsCSSAnonBoxList.h#L85-L98 */ - /* Need to overide!!, can not use :not() */ - :-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]), - /* Download Popup */ - .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, - /* Other Bookmarks -- in Sidebar, Library, Add/Edit Bookmark dialog */ - :-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 - Overide =================================================*/ - /* 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; - } - - /* Boomark */ - :-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, /* Original: Default folder icon */ - #bookmarksMenuPopup #bookmarksToolbarFolderMenu, /* Original: Default folder icon */ - :-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; - } - - /* Boomark */ - :-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 !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: -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; - } - - /*= Context Menu ===========================================================*/ - menupopup menuitem:not([type="checkbox"], [type="radio"]), - menupopup menu:not([type="checkbox"], [type="radio"]), - #main-menubar > menu { - -moz-appearance: none !important; /* Linux: menulist */ - } - - #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { - /* Color */ - -moz-context-properties: fill, fill-opacity !important; - fill: currentColor !important; - - /* Layout */ - background-size: 16px !important; - background-repeat: no-repeat !important; - background-image: var(--menuitem-image); - } - - /* For native context menus on macOS */ - @supports -moz-bool-pref("widget.macos.native-context-menus") { - :not(menu, #ContentSelectDropdown) - > menupopup - > menuitem:not(.menuitem-iconic, [type="checkbox"], [checked="true"], .in-menulist), - :not(menu, #ContentSelectDropdown) - > menupopup - > menu:not(.menu-iconic, [type="checkbox"], [checked="true"], .in-menulist) { - list-style-image: var(--menuitem-image) !important; - } - } - - /* Padding */ - :root { - --context-menu-background-padding-default: 5px; - --context-menu-background-padding: var(--context-menu-background-padding-default); - } - #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: var(--context-menu-background-padding) !important; - } - - /* Padding - Windows */ - @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), (-moz-os-version: windows-win10), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8), (-moz-platform: windows-win10) { - /* Checkbox */ - :root { - --context-menu-text-padding: calc(var(--menu-padding) + var(--context-menu-background-padding-default) + 16px); - } - :not(menu, #ContentSelectDropdown, #context-navigation) - > menupopup - > menuitem[type="checkbox"][checked="false"] - > .menu-iconic-left { - padding-inline-start: var(--context-menu-text-padding); - } - } - - @media (-moz-os-version: windows-win7), /* Legacy - v99 */ - (-moz-platform: windows-win7) { - :root { - --context-menu-background-padding-default: 2px; - } - } - @media (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win8) { - :root { - --context-menu-background-padding-default: 3px; - } - } - @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8), /* Legacy - v99 */ - (-moz-platform: windows-win7), (-moz-platform: windows-win8) { - #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { - background-position: left var(--context-menu-background-padding) center !important; - padding-inline-start: 0 !important; - } - } - @media (-moz-os-version: windows-win10), /* Legacy - v99 */ - (-moz-platform: windows-win10) { - :root { - --context-menu-background-padding: 1em; - --context-menu-text-padding: 24px; /* 16px + 8px */ - --menu-background-padding-default: calc( - var(--context-menu-background-padding) + var(--context-menu-text-padding) - ); - } - - #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - menupopup:is(#organizeButtonPopup, #maintenanceButtonPopup) > menuitem, - menupopup:is(#viewMenuPopup, #maintenanceButtonPopup) > menu { - padding-inline-start: var(--menu-background-padding-default) !important; - margin-left: 0 !important; - } - } - - /* Padding - Linux */ - @media (-moz-gtk-csd-available) { - :root { - --context-menu-background-padding-default: 6px; - } - } - - /* 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 */ - #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]), - #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) { - padding-inline-end: var(--context-menu-background-padding) !important; - } - - /* text position */ - #placesContext menuitem:not(.menuitem-iconic, .in-menulist, [type="checkbox"], [checked="true"]) > .menu-text, - #placesContext menu:not(.menu-iconic, .in-menulist, [type="checkbox"], [checked="true"]) > .menu-text { - padding-inline-start: var(--context-menu-mac-padding) !important; - } - - /* Checkbox menuitem, None iconic menu */ - #placesContext menuitem[type="checkbox"], - #placesContext menu:not(.menu-iconic) { - padding-inline-start: calc(var(--context-menu-background-padding) + var(--context-menu-mac-padding)) !important; - } - } - - /* Icon lists */ - #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\: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_new\:folder { - --menuitem-image: url("chrome://global/skin/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"); - } - - /*= organizeButtonPopup ====================================================*/ - #newbookmark { - --menuitem-image: url("chrome://browser/skin/bookmark.svg"); - } - #newfolder { - --menuitem-image: url("./icons/folder.svg"); - } - #newseparator { - --menuitem-image: url("./icons/vertical-line.svg"); - } - - #orgUndo { - --menuitem-image: url("./icons/undo.svg"); - } - #orgRedo { - } - - #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("chrome://devtools/skin/images/datastore.svg"); - } - #fileRestoreMenu { - } - - #fileImport { - --menuitem-image: url("chrome://browser/skin/save.svg"); - } - #fileExport { - --menuitem-image: url("chrome://browser/skin/open.svg"); - } - - #browserImport { - --menuitem-image: url("chrome://browser/skin/import.svg"); - } - - @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 ===============================================================*/ - :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-primary-button-background); - - --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-outline-color: rgb(0, 221, 255); - - --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; - } - - #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; - border-radius: 4px !important; - padding-block: 5px !important; - padding-inline-start: 5px !important; - margin-inline-end: 2px !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; - } - - #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 { - 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; - } - - /*- 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; - list-style-image: url("chrome://global/skin/icons/arrow-down-12.svg"); - -moz-context-properties: fill !important; - fill: currentColor !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 { - list-style-image: url("chrome://global/skin/icons/arrow-up-12.svg"); - } - - #editBookmarkPanelRows .expander-up > .button-box, - #editBookmarkPanelRows .expander-down > .button-box { - padding: 0 !important; - } - - #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; - } - - #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; - } - - #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; - padding: 0 !important; - border: 1px solid var(--in-content-box-border-color) !important; - border-radius: 100% !important; - margin-block: 2px !important; /* extend the vertical clicktarget */ - margin-inline: 0 6px !important; - background-color: var(--in-content-button-background) !important; - background-position: center !important; - flex-shrink: 0 !important; /* avoid shrinking inside flex container */ - } - - 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"] > .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"])[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; - } - - menuitem[type="radio"][disabled="true"], - menuitem[type="checkbox"][disabled="true"] { - opacity: 0.5 !important; - } - - /*- Check Box ------------------------------------------------------------*/ - /* From checkbox.css */ - menuitem[type="checkbox"] { - appearance: none !important; - -moz-box-align: center !important; - margin: 0px 2px !important; - } - - menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { - margin-inline-end: 2px !important; - } - menuitem[type="checkbox"] > .menu-iconic-text { - margin: 1px 0 !important; - } - - menuitem[type="checkbox"][disabled="true"] { - opacity: 0.4 !important; - } - - menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { - appearance: none !important; - color: var(--checkbox-border-color, ThreeDDarkShadow) !important; - background-color: var(--checkbox-unchecked-bgcolor, Field) !important; - border: 1px solid currentColor !important; - border-radius: 2px !important; - margin-inline-end: 6px !important; - } - - menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { - height: 16px !important; - width: 16px !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, -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, -moz-accent-color 8%, Field) - ) !important; - } - - menuitem[type="checkbox"] > .menu-iconic-left[checked="true"] > .menu-iconic-icon { - border-color: var(--checkbox-checked-border-color, transparent) !important; - background-color: var(--checkbox-checked-bgcolor, -moz-accent-color) !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, -moz-accent-color-foreground) !important; - /* Style the button also when printing with "Print Backgrounds" unchecked */ - color-adjust: exact !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%, -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%, -moz-accent-color) - ) !important; - } - - menuitem[type="checkbox"]:focus > .menu-iconic-left > .menu-iconic-icon { - outline: 2px solid var(--focus-outline-color, -moz-accent-color) !important; - outline-offset: var(--focus-outline-offset, 2px) !important; - } - - @media (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, -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, -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, -moz-accent-color-foreground) !important; - fill: var(--checkbox-checked-border-color-hover, -moz-accent-color-foreground) !important; - } - } - - /* From common.css */ - menuitem[type="checkbox"] > .menu-iconic-left > .menu-iconic-icon { - margin-block: 2px !important; - } - - /*- Menu Separtor --------------------------------------------------------*/ - menuseparator { - appearance: none !important; - min-width: 2px; - min-height: 0; - border-top: 1px solid var(--in-content-box-border-color, ThreeDDarkShadow); - border-bottom: none; - margin: var(--panel-separator-margin, 6px); - padding: 0; - } - } -} +/** Add your custom styles below **********************************************/ diff --git a/arch-config/.mozilla/firefox/default-release/chrome/waterfox.sh b/arch-config/.mozilla/firefox/default-release/chrome/waterfox.sh index cad57a64..b9f79293 100755 --- a/arch-config/.mozilla/firefox/default-release/chrome/waterfox.sh +++ b/arch-config/.mozilla/firefox/default-release/chrome/waterfox.sh @@ -5,7 +5,7 @@ # `./icons/` to `chrome://browser/skin/lepton/` replace_icon_path() { file=$1 - sed -i "s/\.\/icons\//chrome:\/\/browser\/skin\/lepton\//g" "${file}" + sed -i "s/\.\.\/icons\//chrome:\/\/browser\/skin\/lepton\//g" "${file}" } -replace_icon_path userChrome.css -replace_icon_path userContent.css +replace_icon_path css/leptonChrome.css +replace_icon_path css/leptonContent.css diff --git a/arch-config/.mozilla/firefox/default-release/chrome/yarn.lock b/arch-config/.mozilla/firefox/default-release/chrome/yarn.lock new file mode 100644 index 00000000..2e2759c0 --- /dev/null +++ b/arch-config/.mozilla/firefox/default-release/chrome/yarn.lock @@ -0,0 +1,2929 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + +"@babel/compat-data@^7.16.0": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== + +"@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" + integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.5" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-module-transforms" "^7.16.5" + "@babel/helpers" "^7.16.5" + "@babel/parser" "^7.16.5" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.5" + "@babel/types" "^7.16.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.8.0": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.7.tgz#f7c28228c83cdf2dbd1b9baa06eaf9df07f0c2f9" + integrity sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.7" + "@babel/parser" "^7.17.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + +"@babel/generator@^7.16.5", "@babel/generator@^7.7.2": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" + integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== + dependencies: + "@babel/types" "^7.16.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-compilation-targets@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" + integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-environment-visitor@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" + integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== + dependencies: + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" + integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" + integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== + dependencies: + "@babel/helper-environment-visitor" "^7.16.5" + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.5" + "@babel/types" "^7.16.0" + +"@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + +"@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.16.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" + integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== + +"@babel/helper-simple-access@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" + integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helpers@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" + integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== + dependencies: + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.5" + "@babel/types" "^7.16.0" + +"@babel/helpers@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.7.tgz#6fc0a24280fd00026e85424bbfed4650e76d7127" + integrity sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5": + version "7.16.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" + integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== + +"@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.7.tgz#fc19b645a5456c8d6fdb6cecd3c66c0173902800" + integrity sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz#f47a33e4eee38554f00fb6b2f894fa1f5649b0b3" + integrity sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.5" + +"@babel/template@^7.16.0", "@babel/template@^7.3.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.16.5", "@babel/traverse@^7.7.2": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" + integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.5" + "@babel/helper-environment-visitor" "^7.16.5" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.5" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.16.7", "@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.1.17" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.17.tgz#f50ac9d20d64153b510578d84f9643f9a3afbe64" + integrity sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/css@^0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/css/-/css-0.0.33.tgz#d0b49c4090c09c8e5dc01364560627e5ebb770f2" + integrity sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ== + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/node@*": + version "16.11.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.13.tgz#6b71641b81a98c6a538d89892440c06f147edddc" + integrity sha512-eUXZzHLHoZqj1frtUetNkUetYoJ6X55UmrVnFD4DMhVeAmwLjniZhtBmsRiemQh4uq4G3vUra/Ws/hs9vEvL3Q== + +"@types/prettier@^2.1.5": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" + integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4: + version "8.6.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" + integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + 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== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.17.5: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" + integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== + +caniuse-lite@^1.0.30001286: + version "1.0.30001286" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz#3e9debad420419618cfdf52dc9b6572b28a8fff6" + integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +"chokidar@>=3.0.0 <4.0.0": + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +ci-info@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +clap@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/clap/-/clap-3.1.1.tgz#c2d2688f89eb90a68e7b8a6619ed2303b43c2c04" + integrity sha512-vp42956Ax06WwaaheYEqEOgXZ3VKJxgccZ0gJL0HpyiupkIS9RVJFo5eDU1BPeQAOqz+cclndZg4DCqG1sJReQ== + dependencies: + ansi-colors "^4.1.1" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-tree@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.1.0.tgz#170e27ccf94e7c5facb183765c25898be843d1d2" + integrity sha512-PcysZRzToBbrpoUrZ9qfblRIRf8zbEAkU0AIpQFtgkFK0vSbzOmBCvdSAx2Zg7Xx5wiYJKUKk0NMP7kxevie/A== + dependencies: + mdn-data "2.0.27" + source-map-js "^1.0.1" + +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstree-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/csstree-validator/-/csstree-validator-3.0.0.tgz#041579bf815d88b0a72452453605b32b2a1f422f" + integrity sha512-Y5OSq3wI0Xz6L7DCgJQtQ97U+v99SkX9r663VjpvUMJPhEr0A149OxiAGqcnokB5bt81irgnMudspBzujzqn0w== + dependencies: + clap "^3.0.0" + css-tree "^2.0.2" + resolve "^1.20.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +detect-newline@^3.0.0: + version "3.1.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== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +electron-to-chromium@^1.4.17: + version "1.4.18" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.18.tgz#2fb282213937986a20a653315963070e8321b3f3" + integrity sha512-i7nKjGGBE1+YUIbfLObA1EZPmN7J1ITEllbhusDk+KIk6V6gUxN9PFe36v+Sd+8Cg0k3cgUv9lQhQZalr8rggw== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +fast-glob@^3.2.11: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +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== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +import-local@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" + integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.2.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.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-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.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-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" + import-local "^3.0.2" + jest-cli "^27.5.1" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +mdn-data@2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.27.tgz#1710baa7b0db8176d3b3d565ccb7915fc69525ab" + integrity sha512-kwqO0I0jtWr25KcfLm9pia8vLZ8qoAKhWZuZMbneJq3jjBD3gl5nZs8l8Tu3ZBlBAHVQtDur9rdDGyvtfVraHQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@^2.1.12: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prettier@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" + integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== + +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" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +queue-microtask@^1.2.2: + version "1.2.3" + 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== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +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== + dependencies: + "@types/css" "^0.0.33" + css "^3.0.0" + jest-diff "^27.5.1" + lodash "^4.17.21" + +sass@^1.49.0: + version "1.49.9" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" + integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +"source-map-js@>=0.6.2 <2.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== + +source-map-js@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +v8-to-istanbul@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" + integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.4.6: + version "7.5.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" diff --git a/arch-config/.mozilla/firefox/default-release/prefs.js b/arch-config/.mozilla/firefox/default-release/prefs.js index 3bf8c089..b0606fe7 100644 --- a/arch-config/.mozilla/firefox/default-release/prefs.js +++ b/arch-config/.mozilla/firefox/default-release/prefs.js @@ -22,16 +22,16 @@ user_pref("app.normandy.startupRolloutPrefs.pdfjs.renderInteractiveForms", true) user_pref("app.normandy.startupRolloutPrefs.security.bad_cert_domain_error.url_fix_enabled", true); user_pref("app.normandy.startupRolloutPrefs.security.remote_settings.intermediates.downloads_per_poll", 3000); user_pref("app.normandy.user_id", "e43b400f-0f20-4ae3-9dfa-ee00b787e18a"); -user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1651688058); +user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1652291619); user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1588944333); -user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1651769232); -user_pref("app.update.lastUpdateTime.recipe-client-addon-run", 1651688658); -user_pref("app.update.lastUpdateTime.region-update-timer", 1651413462); -user_pref("app.update.lastUpdateTime.rs-experiment-loader-timer", 1651769204); -user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1651688538); -user_pref("app.update.lastUpdateTime.services-settings-poll-changes", 1651687938); -user_pref("app.update.lastUpdateTime.telemetry_modules_ping", 1651413582); -user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1651688178); +user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1652294739); +user_pref("app.update.lastUpdateTime.recipe-client-addon-run", 1652291259); +user_pref("app.update.lastUpdateTime.region-update-timer", 1652114369); +user_pref("app.update.lastUpdateTime.rs-experiment-loader-timer", 1652291379); +user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1652291019); +user_pref("app.update.lastUpdateTime.services-settings-poll-changes", 1652291499); +user_pref("app.update.lastUpdateTime.telemetry_modules_ping", 1652114489); +user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1652291739); user_pref("browser.aboutConfig.showWarning", false); user_pref("browser.bookmarks.defaultLocation", "Sf1F8MX-syPh"); user_pref("browser.bookmarks.editDialog.confirmationHintShowCount", 3); @@ -71,22 +71,22 @@ user_pref("browser.protections_panel.infoMessage.seen", true); user_pref("browser.proton.enabled", true); user_pref("browser.proton.places-tooltip.enabled", true); user_pref("browser.proton.toolbar.version", 3); -user_pref("browser.region.update.updated", 1651413464); +user_pref("browser.region.update.updated", 1652114369); user_pref("browser.rights.3.shown", true); -user_pref("browser.safebrowsing.provider.google4.lastupdatetime", "1651769209410"); -user_pref("browser.safebrowsing.provider.google4.nextupdatetime", "1651771007410"); -user_pref("browser.safebrowsing.provider.mozilla.lastupdatetime", "1651769210118"); -user_pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1651790810118"); +user_pref("browser.safebrowsing.provider.google4.lastupdatetime", "1652296359413"); +user_pref("browser.safebrowsing.provider.google4.nextupdatetime", "1652298150413"); +user_pref("browser.safebrowsing.provider.mozilla.lastupdatetime", "1652290998236"); +user_pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1652312598236"); user_pref("browser.search.region", "CH"); user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20211121002925"); user_pref("browser.shell.checkDefaultBrowser", true); -user_pref("browser.shell.mostRecentDateSetAsDefault", "1651769206"); +user_pref("browser.shell.mostRecentDateSetAsDefault", "1652290993"); user_pref("browser.slowStartup.averageTime", 614); user_pref("browser.slowStartup.samples", 2); user_pref("browser.startup.couldRestoreSession.count", 1); user_pref("browser.startup.homepage_override.buildID", "20220503101757"); user_pref("browser.startup.homepage_override.mstone", "100.0"); -user_pref("browser.startup.lastColdStartupCheck", 1651769205); +user_pref("browser.startup.lastColdStartupCheck", 1652290992); user_pref("browser.startup.upgradeDialog.version", 100); user_pref("browser.theme.content-theme", 0); user_pref("browser.theme.toolbar-theme", 0); @@ -109,10 +109,16 @@ user_pref("devtools.debugger.prefs-schema-version", 11); user_pref("devtools.debugger.start-panel-size", 494); user_pref("devtools.everOpened", true); user_pref("devtools.netmonitor.columnsData", "[{\"name\":\"status\",\"minWidth\":30,\"width\":6.67},{\"name\":\"method\",\"minWidth\":30,\"width\":6.67},{\"name\":\"domain\",\"minWidth\":30,\"width\":13.33},{\"name\":\"file\",\"minWidth\":30,\"width\":33.33},{\"name\":\"url\",\"minWidth\":30,\"width\":25},{\"name\":\"cause\",\"minWidth\":30,\"width\":13.33},{\"name\":\"type\",\"minWidth\":30,\"width\":6.67},{\"name\":\"transferred\",\"minWidth\":30,\"width\":13.33},{\"name\":\"contentSize\",\"minWidth\":30,\"width\":6.67},{\"name\":\"waterfall\",\"minWidth\":150,\"width\":25}]"); +user_pref("devtools.netmonitor.msg.visibleColumns", "[\"data\",\"time\"]"); +user_pref("devtools.performance.recording.entries", 134217728); +user_pref("devtools.performance.recording.features", "[\"screenshots\",\"js\",\"cpu\"]"); +user_pref("devtools.performance.recording.threads", "[\"GeckoMain\",\"Compositor\",\"Renderer\",\"DOM Worker\"]"); user_pref("devtools.theme.show-auto-theme-info", false); user_pref("devtools.toolbox.footer.height", 382); user_pref("devtools.toolbox.host", "right"); user_pref("devtools.toolbox.previousHost", "bottom"); +user_pref("devtools.toolbox.selectedTool", "webconsole"); +user_pref("devtools.toolbox.sidebar.width", 637); user_pref("devtools.toolbox.splitconsoleEnabled", true); user_pref("devtools.toolsidebar-height.inspector", 350); user_pref("devtools.toolsidebar-width.inspector", 700); @@ -136,7 +142,7 @@ user_pref("extensions.blocklist.pingCountVersion", -1); user_pref("extensions.databaseSchema", 35); user_pref("extensions.fxmonitor.enabled", false); user_pref("extensions.fxmonitor.firstAlertShown", true); -user_pref("extensions.getAddons.cache.lastUpdate", 1651688058); +user_pref("extensions.getAddons.cache.lastUpdate", 1652291620); user_pref("extensions.getAddons.databaseSchema", 6); user_pref("extensions.incognito.migrated", true); user_pref("extensions.lastAppBuildId", "20220503101757"); @@ -146,7 +152,7 @@ user_pref("extensions.pendingOperations", false); user_pref("extensions.pictureinpicture.enable_picture_in_picture_overrides", true); user_pref("extensions.reset_default_search.runonce.3", true); user_pref("extensions.reset_default_search.runonce.reason", "previousRun"); -user_pref("extensions.systemAddonSet", "{\"schema\":1,\"addons\":{}}"); +user_pref("extensions.systemAddonSet", "{\"schema\":1,\"directory\":\"{e922249f-06f4-4b21-8432-b88d086efe04}\",\"addons\":{\"webcompat@mozilla.org\":{\"version\":\"100.2.1buildid20220504.194401\"}}}"); user_pref("extensions.ui.dictionary.hidden", true); user_pref("extensions.ui.extension.hidden", false); user_pref("extensions.ui.lastCategory", "addons://list/extension"); @@ -180,10 +186,9 @@ user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{529b261b-df0b- user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{6706d386-2d33-4e1e-bbf1-51b9e1ce47e1}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{73a6fe31-595d-460b-a920-fcc0f8843232}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{884679b9-5d6b-48b2-90a7-15ae26ce568a}", true); -user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{9a41dee2-b924-4161-a971-7fb35c053a4a}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{b86e4813-687a-43e6-ab65-0bde4ab75758}", true); -user_pref("extensions.webextensions.uuids", "{\"doh-rollout@mozilla.org\":\"946257eb-c1c3-4490-a34d-f99988aa0ef4\",\"formautofill@mozilla.org\":\"fda477fb-fa39-4a5e-9b39-ad7c2dbc21b6\",\"screenshots@mozilla.org\":\"c3731a22-38f4-4020-b831-748aaf4e885c\",\"webcompat-reporter@mozilla.org\":\"3b0b67d7-a376-4bef-bd35-72667423201c\",\"webcompat@mozilla.org\":\"0a7d9067-bcfe-497e-9a73-d3cdfc35f1ad\",\"default-theme@mozilla.org\":\"75d80d13-a640-4fa4-a9a7-4e40994ecfcb\",\"google@search.mozilla.org\":\"64646f90-cdbd-4953-8645-a938d19d385a\",\"amazondotcom@search.mozilla.org\":\"4e301f5d-d015-48b1-872a-5fe674d37c97\",\"bing@search.mozilla.org\":\"07a4e3d3-08f8-4711-8629-3a9b0c20d065\",\"ddg@search.mozilla.org\":\"ac7e84a4-e12e-4740-a28e-a25b6a2c7732\",\"ebay@search.mozilla.org\":\"fc65b37c-f1ef-4795-9b26-6d2101e7886b\",\"twitter@search.mozilla.org\":\"f4ae5772-f6fc-4f1b-9a3c-06be3e4e6bfc\",\"wikipedia@search.mozilla.org\":\"a40f7749-837a-4ed9-86ca-d94589a888cb\",\"firefox-compact-dark@mozilla.org\":\"d37f1bd5-0d34-4810-89d2-a5d2801d3237\",\"enhancerforyoutube@maximerf.addons.mozilla.org\":\"4db84fe2-753b-47eb-895a-1896e3843a51\",\"CookieAutoDelete@kennydo.com\":\"bc93ebe3-0486-41a9-bff7-5041fc95d7ec\",\"jid1-MnnxcxisBPnSXQ@jetpack\":\"3b66fcbb-2540-49bb-8a59-af7872dd9a27\",\"https-everywhere@eff.org\":\"409abe36-7e59-4334-a9fb-ad95ff8bbc46\",\"{73a6fe31-595d-460b-a920-fcc0f8843232}\":\"43d9308d-3fb6-48da-9ac1-13833f64d5d9\",\"uBlock0@raymondhill.net\":\"22cba72f-3105-445e-9609-10a6e318b49d\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\":\"3e76ff93-a4cc-4e9d-9bdb-40487f4f9d95\",\"{9a41dee2-b924-4161-a971-7fb35c053a4a}\":\"871394e5-2280-488c-b958-c0f8fd46a32c\",\"firefox-compact-light@mozilla.org\":\"02b120c7-ce82-4969-84ff-50c8aeffb99a\",\"{b743f56d-1cc1-4048-8ba6-f9c2ab7aa54d}\":\"46d076b2-4d1f-4a94-af48-98098bf6d1ed\",\"jid1-CikLKKPVkw6ipw@jetpack\":\"45886005-f608-462e-b99b-09a85dff5346\",\"{1be309c5-3e4f-4b99-927d-bb500eb4fa88}\":\"3ad23b35-5c56-44dd-a4a2-fc52ab5489df\",\"tridactyl.vim@cmcaine.co.uk\":\"b04e0832-b8b7-42ce-a11d-18b8322949a8\",\"jid0-3GUEt1r69sQNSrca5p8kx9Ezc3U@jetpack\":\"9acf76e7-e965-4f68-ad9a-26c86889bfc1\",\"jid1-KKzOGWgsW3Ao4Q@jetpack\":\"1772b194-a6f8-4d0a-961f-3ed16ca13f1d\",\"languagetool-webextension@languagetool.org\":\"9e00252e-8da9-45cd-89fc-6761bcc145ff\",\"pictureinpicture@mozilla.org\":\"927666b6-4218-4378-9948-bcf32a9cb065\",\"amazon@search.mozilla.org\":\"bf61dd00-234d-427d-a10a-fa37de8bf4e9\",\"sponsorBlocker@ajay.app\":\"aca61cf3-9cdd-47e7-898d-9122b9619125\",\"wayback_machine@mozilla.org\":\"865e8f8e-1bb3-48ad-8b35-39f7655e5d91\",\"{12cf650b-1822-40aa-bff0-996df6948878}\":\"1b69c98a-d3c5-4923-aa02-5d436481c74d\",\"{529b261b-df0b-4e3b-bf42-07b462da0ee8}\":\"643d8767-295e-430c-bee4-a9de6e5861ea\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\":\"95bf6dcd-2a80-4ff6-a755-db2d898e3dfe\",\"{b86e4813-687a-43e6-ab65-0bde4ab75758}\":\"985239a4-64cc-4bea-8852-c21dcd055c50\",\"reset-search-defaults@mozilla.com\":\"de62a459-bbd3-4a6f-b581-1f8a38bfd755\",\"addons-search-detection@mozilla.com\":\"d3897d76-eea5-4b48-aed4-4bc4862c8764\",\"proxy-failover@mozilla.com\":\"bab72ded-f85b-4973-ac69-9d463c8dfba6\",\"@testpilot-containers\":\"26e1521b-8857-4a2e-b495-122be4670393\",\"WebToEpub@Baka-tsuki.org\":\"3fc3336e-97a0-48ab-b2b1-d726088bff16\",\"addon@fastforward.team\":\"463e561e-87cf-45d7-a51a-66eab00e27fd\",\"{6706d386-2d33-4e1e-bbf1-51b9e1ce47e1}\":\"2073d74a-2468-4f90-b3ba-e661f9071fe3\",\"nhentaidownloader.ext@gmail.com\":\"8be38d5e-e036-41c2-8e05-53ae2ae1969f\",\"{762f9885-5a13-4abd-9c77-433dcd38b8fd}\":\"be15551e-892a-43b4-af53-cc0c3ffa5ace\",\"{884679b9-5d6b-48b2-90a7-15ae26ce568a}\":\"77ebe5d7-43a8-4ab1-aae0-79c5397f5afe\",\"7esoorv3@alefvanoon.anonaddy.me\":\"c7c324fe-cf04-418b-9687-513e6a05c54a\",\"{f5ffc648-66fb-4aae-bd47-fe9b87b1f408}\":\"b07cd034-85f2-4b15-945b-f10c43fe8a48\",\"{036a55b4-5e72-4d05-a06c-cba2dfcc134a}\":\"20bb1352-3dca-46a0-a1b1-d167117e0335\",\"adnauseam@rednoise.org\":\"453ec669-6875-4e90-a942-9e1e7849db87\"}"); +user_pref("extensions.webextensions.uuids", "{\"doh-rollout@mozilla.org\":\"946257eb-c1c3-4490-a34d-f99988aa0ef4\",\"formautofill@mozilla.org\":\"fda477fb-fa39-4a5e-9b39-ad7c2dbc21b6\",\"screenshots@mozilla.org\":\"c3731a22-38f4-4020-b831-748aaf4e885c\",\"webcompat-reporter@mozilla.org\":\"3b0b67d7-a376-4bef-bd35-72667423201c\",\"webcompat@mozilla.org\":\"0a7d9067-bcfe-497e-9a73-d3cdfc35f1ad\",\"default-theme@mozilla.org\":\"75d80d13-a640-4fa4-a9a7-4e40994ecfcb\",\"google@search.mozilla.org\":\"64646f90-cdbd-4953-8645-a938d19d385a\",\"amazondotcom@search.mozilla.org\":\"4e301f5d-d015-48b1-872a-5fe674d37c97\",\"bing@search.mozilla.org\":\"07a4e3d3-08f8-4711-8629-3a9b0c20d065\",\"ddg@search.mozilla.org\":\"ac7e84a4-e12e-4740-a28e-a25b6a2c7732\",\"ebay@search.mozilla.org\":\"fc65b37c-f1ef-4795-9b26-6d2101e7886b\",\"twitter@search.mozilla.org\":\"f4ae5772-f6fc-4f1b-9a3c-06be3e4e6bfc\",\"wikipedia@search.mozilla.org\":\"a40f7749-837a-4ed9-86ca-d94589a888cb\",\"firefox-compact-dark@mozilla.org\":\"d37f1bd5-0d34-4810-89d2-a5d2801d3237\",\"enhancerforyoutube@maximerf.addons.mozilla.org\":\"4db84fe2-753b-47eb-895a-1896e3843a51\",\"CookieAutoDelete@kennydo.com\":\"bc93ebe3-0486-41a9-bff7-5041fc95d7ec\",\"jid1-MnnxcxisBPnSXQ@jetpack\":\"3b66fcbb-2540-49bb-8a59-af7872dd9a27\",\"https-everywhere@eff.org\":\"409abe36-7e59-4334-a9fb-ad95ff8bbc46\",\"{73a6fe31-595d-460b-a920-fcc0f8843232}\":\"43d9308d-3fb6-48da-9ac1-13833f64d5d9\",\"uBlock0@raymondhill.net\":\"22cba72f-3105-445e-9609-10a6e318b49d\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\":\"3e76ff93-a4cc-4e9d-9bdb-40487f4f9d95\",\"firefox-compact-light@mozilla.org\":\"02b120c7-ce82-4969-84ff-50c8aeffb99a\",\"{b743f56d-1cc1-4048-8ba6-f9c2ab7aa54d}\":\"46d076b2-4d1f-4a94-af48-98098bf6d1ed\",\"jid1-CikLKKPVkw6ipw@jetpack\":\"45886005-f608-462e-b99b-09a85dff5346\",\"{1be309c5-3e4f-4b99-927d-bb500eb4fa88}\":\"3ad23b35-5c56-44dd-a4a2-fc52ab5489df\",\"tridactyl.vim@cmcaine.co.uk\":\"b04e0832-b8b7-42ce-a11d-18b8322949a8\",\"jid0-3GUEt1r69sQNSrca5p8kx9Ezc3U@jetpack\":\"9acf76e7-e965-4f68-ad9a-26c86889bfc1\",\"jid1-KKzOGWgsW3Ao4Q@jetpack\":\"1772b194-a6f8-4d0a-961f-3ed16ca13f1d\",\"languagetool-webextension@languagetool.org\":\"9e00252e-8da9-45cd-89fc-6761bcc145ff\",\"pictureinpicture@mozilla.org\":\"927666b6-4218-4378-9948-bcf32a9cb065\",\"amazon@search.mozilla.org\":\"bf61dd00-234d-427d-a10a-fa37de8bf4e9\",\"sponsorBlocker@ajay.app\":\"aca61cf3-9cdd-47e7-898d-9122b9619125\",\"wayback_machine@mozilla.org\":\"865e8f8e-1bb3-48ad-8b35-39f7655e5d91\",\"{12cf650b-1822-40aa-bff0-996df6948878}\":\"1b69c98a-d3c5-4923-aa02-5d436481c74d\",\"{529b261b-df0b-4e3b-bf42-07b462da0ee8}\":\"643d8767-295e-430c-bee4-a9de6e5861ea\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\":\"95bf6dcd-2a80-4ff6-a755-db2d898e3dfe\",\"{b86e4813-687a-43e6-ab65-0bde4ab75758}\":\"985239a4-64cc-4bea-8852-c21dcd055c50\",\"reset-search-defaults@mozilla.com\":\"de62a459-bbd3-4a6f-b581-1f8a38bfd755\",\"addons-search-detection@mozilla.com\":\"d3897d76-eea5-4b48-aed4-4bc4862c8764\",\"proxy-failover@mozilla.com\":\"bab72ded-f85b-4973-ac69-9d463c8dfba6\",\"@testpilot-containers\":\"26e1521b-8857-4a2e-b495-122be4670393\",\"WebToEpub@Baka-tsuki.org\":\"3fc3336e-97a0-48ab-b2b1-d726088bff16\",\"addon@fastforward.team\":\"463e561e-87cf-45d7-a51a-66eab00e27fd\",\"{6706d386-2d33-4e1e-bbf1-51b9e1ce47e1}\":\"2073d74a-2468-4f90-b3ba-e661f9071fe3\",\"nhentaidownloader.ext@gmail.com\":\"8be38d5e-e036-41c2-8e05-53ae2ae1969f\",\"{762f9885-5a13-4abd-9c77-433dcd38b8fd}\":\"be15551e-892a-43b4-af53-cc0c3ffa5ace\",\"{884679b9-5d6b-48b2-90a7-15ae26ce568a}\":\"77ebe5d7-43a8-4ab1-aae0-79c5397f5afe\",\"7esoorv3@alefvanoon.anonaddy.me\":\"c7c324fe-cf04-418b-9687-513e6a05c54a\",\"{f5ffc648-66fb-4aae-bd47-fe9b87b1f408}\":\"b07cd034-85f2-4b15-945b-f10c43fe8a48\",\"{036a55b4-5e72-4d05-a06c-cba2dfcc134a}\":\"20bb1352-3dca-46a0-a1b1-d167117e0335\",\"adnauseam@rednoise.org\":\"453ec669-6875-4e90-a942-9e1e7849db87\"}"); user_pref("fission.experiment.max-origins.last-disqualified", 0); user_pref("fission.experiment.max-origins.last-qualified", 1626291179); user_pref("fission.experiment.max-origins.qualified", true); @@ -215,10 +220,10 @@ user_pref("general.smoothScroll.stopDecelerationWeighting", "0.6"); user_pref("gfx.blacklist.webrender.failureid", "FEATURE_FAILURE_DDX_INTEL"); user_pref("identity.fxaccounts.account.device.name", "marc’s Firefox on lupusregina"); user_pref("identity.fxaccounts.account.telemetry.sanitized_uid", "7d43bb2e98e00c17c235782ba1e87861"); -user_pref("identity.fxaccounts.commands.missed.last_fetch", 1651688515); +user_pref("identity.fxaccounts.commands.missed.last_fetch", 1652291598); user_pref("identity.fxaccounts.lastSignedInUserHash", "8BRA9+6sRIqGXRuNxzfOnvsueJGliFd7TfEFww9llO8="); user_pref("identity.fxaccounts.toolbar.accessed", true); -user_pref("idle.lastDailyNotification", 1651688292); +user_pref("idle.lastDailyNotification", 1652291242); user_pref("layout.css.backdrop-filter.enabled", true); user_pref("layout.css.color-mix.enabled", true); user_pref("media.benchmark.vp9.fps", 256); @@ -228,7 +233,7 @@ user_pref("media.gmp-gmpopenh264.abi", "x86_64-gcc3"); user_pref("media.gmp-gmpopenh264.lastUpdate", 1582977815); user_pref("media.gmp-gmpopenh264.version", "1.8.1.1"); user_pref("media.gmp-manager.buildID", "20220503101757"); -user_pref("media.gmp-manager.lastCheck", 1651688253); +user_pref("media.gmp-manager.lastCheck", 1652291039); user_pref("media.gmp-widevinecdm.abi", "x86_64-gcc3"); user_pref("media.gmp-widevinecdm.lastUpdate", 1638427846); user_pref("media.gmp-widevinecdm.version", "4.10.2391.0"); @@ -260,6 +265,7 @@ user_pref("pdfjs.previousHandler.preferredAction", 4); user_pref("places.database.lastMaintenance", 1651688292); user_pref("places.history.expiration.transient_current_max_pages", 112348); user_pref("pref.general.disable_button.default_browser", false); +user_pref("pref.privacy.disable_button.cookie_exceptions", false); user_pref("print.print_bgcolor", false); user_pref("print.print_bgimages", false); user_pref("print.print_duplex", 0); @@ -330,54 +336,54 @@ user_pref("privacy.userContext.enabled", true); user_pref("privacy.userContext.extension", "@testpilot-containers"); user_pref("privacy.userContext.longPressBehavior", 2); user_pref("privacy.userContext.ui.enabled", true); -user_pref("security.remote_settings.crlite_filters.checked", 1651590128); -user_pref("security.remote_settings.intermediates.checked", 1651555585); +user_pref("security.remote_settings.crlite_filters.checked", 1652294598); +user_pref("security.remote_settings.intermediates.checked", 1652294598); user_pref("security.sandbox.content.tempDirSuffix", "23a0c268-bdab-44ee-9171-944e4f07b8d5"); user_pref("security.sandbox.plugin.tempDirSuffix", "287fc259-02df-4452-93d7-fb599bb2d04e"); -user_pref("services.blocklist.addons-mlbf.checked", 1651769207); +user_pref("services.blocklist.addons-mlbf.checked", 1652294598); user_pref("services.blocklist.addons.checked", 1591867368); -user_pref("services.blocklist.gfx.checked", 1651769207); +user_pref("services.blocklist.gfx.checked", 1652294598); user_pref("services.blocklist.pinning.checked", 1591805812); user_pref("services.blocklist.plugins.checked", 1591867368); -user_pref("services.settings.clock_skew_seconds", 1); -user_pref("services.settings.last_etag", "\"1651766434434\""); -user_pref("services.settings.last_update_seconds", 1651769207); -user_pref("services.settings.main.addons-manager-settings.last_check", 1651769207); -user_pref("services.settings.main.anti-tracking-url-decoration.last_check", 1651769207); +user_pref("services.settings.clock_skew_seconds", 2); +user_pref("services.settings.last_etag", "\"1652296222697\""); +user_pref("services.settings.last_update_seconds", 1652296398); +user_pref("services.settings.main.addons-manager-settings.last_check", 1652294598); +user_pref("services.settings.main.anti-tracking-url-decoration.last_check", 1652294598); user_pref("services.settings.main.cfr-fxa.last_check", 1629621510); -user_pref("services.settings.main.cfr.last_check", 1651769207); -user_pref("services.settings.main.devtools-compatibility-browsers.last_check", 1651769207); -user_pref("services.settings.main.doh-config.last_check", 1651769207); -user_pref("services.settings.main.doh-providers.last_check", 1651769207); -user_pref("services.settings.main.fxmonitor-breaches.last_check", 1651769207); -user_pref("services.settings.main.hijack-blocklists.last_check", 1651769207); -user_pref("services.settings.main.language-dictionaries.last_check", 1651769207); -user_pref("services.settings.main.message-groups.last_check", 1651769207); +user_pref("services.settings.main.cfr.last_check", 1652294598); +user_pref("services.settings.main.devtools-compatibility-browsers.last_check", 1652294598); +user_pref("services.settings.main.doh-config.last_check", 1652294598); +user_pref("services.settings.main.doh-providers.last_check", 1652294598); +user_pref("services.settings.main.fxmonitor-breaches.last_check", 1652294598); +user_pref("services.settings.main.hijack-blocklists.last_check", 1652294598); +user_pref("services.settings.main.language-dictionaries.last_check", 1652294598); +user_pref("services.settings.main.message-groups.last_check", 1652294598); user_pref("services.settings.main.messaging-experiments.last_check", 1591867368); -user_pref("services.settings.main.nimbus-desktop-defaults.last_check", 1651769207); -user_pref("services.settings.main.nimbus-desktop-experiments.last_check", 1651769207); -user_pref("services.settings.main.normandy-recipes-capabilities.last_check", 1651769207); -user_pref("services.settings.main.partitioning-exempt-urls.last_check", 1651769207); -user_pref("services.settings.main.password-recipes.last_check", 1651769207); -user_pref("services.settings.main.password-rules.last_check", 1651769207); -user_pref("services.settings.main.personality-provider-models.last_check", 1651769207); -user_pref("services.settings.main.personality-provider-recipe.last_check", 1651769207); -user_pref("services.settings.main.pioneer-study-addons-v1.last_check", 1651769207); -user_pref("services.settings.main.pioneer-study-addons.last_check", 1651769207); -user_pref("services.settings.main.public-suffix-list.last_check", 1651769207); -user_pref("services.settings.main.query-stripping.last_check", 1651769207); -user_pref("services.settings.main.search-config.last_check", 1651769207); -user_pref("services.settings.main.search-default-override-allowlist.last_check", 1651769207); -user_pref("services.settings.main.search-telemetry-v2.last_check", 1651769207); -user_pref("services.settings.main.search-telemetry.last_check", 1651769207); -user_pref("services.settings.main.sites-classification.last_check", 1651769207); -user_pref("services.settings.main.tippytop.last_check", 1651769207); -user_pref("services.settings.main.top-sites.last_check", 1651769207); -user_pref("services.settings.main.url-classifier-skip-urls.last_check", 1651769207); -user_pref("services.settings.main.websites-with-shared-credential-backends.last_check", 1651769207); -user_pref("services.settings.main.whats-new-panel.last_check", 1651769207); -user_pref("services.settings.security.onecrl.checked", 1651555585); -user_pref("services.sync.addons.lastSync", "1651575024.27"); +user_pref("services.settings.main.nimbus-desktop-defaults.last_check", 1652294598); +user_pref("services.settings.main.nimbus-desktop-experiments.last_check", 1652294598); +user_pref("services.settings.main.normandy-recipes-capabilities.last_check", 1652294598); +user_pref("services.settings.main.partitioning-exempt-urls.last_check", 1652294598); +user_pref("services.settings.main.password-recipes.last_check", 1652294598); +user_pref("services.settings.main.password-rules.last_check", 1652294598); +user_pref("services.settings.main.personality-provider-models.last_check", 1652294598); +user_pref("services.settings.main.personality-provider-recipe.last_check", 1652294598); +user_pref("services.settings.main.pioneer-study-addons-v1.last_check", 1652294598); +user_pref("services.settings.main.pioneer-study-addons.last_check", 1652294598); +user_pref("services.settings.main.public-suffix-list.last_check", 1652294598); +user_pref("services.settings.main.query-stripping.last_check", 1652294598); +user_pref("services.settings.main.search-config.last_check", 1652294598); +user_pref("services.settings.main.search-default-override-allowlist.last_check", 1652294598); +user_pref("services.settings.main.search-telemetry-v2.last_check", 1652294598); +user_pref("services.settings.main.search-telemetry.last_check", 1652294598); +user_pref("services.settings.main.sites-classification.last_check", 1652294598); +user_pref("services.settings.main.tippytop.last_check", 1652294598); +user_pref("services.settings.main.top-sites.last_check", 1652294598); +user_pref("services.settings.main.url-classifier-skip-urls.last_check", 1652294598); +user_pref("services.settings.main.websites-with-shared-credential-backends.last_check", 1652294598); +user_pref("services.settings.main.whats-new-panel.last_check", 1652294598); +user_pref("services.settings.security.onecrl.checked", 1652294598); +user_pref("services.sync.addons.lastSync", "1652171915.62"); user_pref("services.sync.addons.syncID", "L7k31iPXEMk6"); user_pref("services.sync.bookmarks.lastSync", "1591894790.66"); user_pref("services.sync.bookmarks.syncID", "3C9StXXGztPe"); @@ -385,8 +391,8 @@ user_pref("services.sync.client.GUID", "-S_pn8VT4ZCp"); user_pref("services.sync.client.syncID", "MtJM9DyW2j2m"); user_pref("services.sync.clients.devices.desktop", 2); user_pref("services.sync.clients.devices.mobile", 1); -user_pref("services.sync.clients.lastRecordUpload", 1651769209); -user_pref("services.sync.clients.lastSync", "1651769209.7"); +user_pref("services.sync.clients.lastRecordUpload", 1652290997); +user_pref("services.sync.clients.lastSync", "1652290997.54"); user_pref("services.sync.clients.syncID", "-UKRQIkr1Rru"); user_pref("services.sync.creditcards.lastSync", "0"); user_pref("services.sync.creditcards.syncID", "yp8F-l4YaopB"); @@ -401,12 +407,12 @@ user_pref("services.sync.extension-storage.lastSync", "0"); user_pref("services.sync.forms.lastSync", "0"); user_pref("services.sync.globalScore", 0); user_pref("services.sync.history.lastSync", "0"); -user_pref("services.sync.lastPing", 1651687912); -user_pref("services.sync.lastSync", "Thu May 05 2022 18:48:21 GMT+0200 (Central European Summer Time)"); +user_pref("services.sync.lastPing", 1652290996); +user_pref("services.sync.lastSync", "Wed May 11 2022 21:12:34 GMT+0200 (Central European Summer Time)"); user_pref("services.sync.lastTabFetch", 1586120826); user_pref("services.sync.nextSync", 0); user_pref("services.sync.passwords.syncID", "-WeMPm6W3NJC"); -user_pref("services.sync.prefs.lastSync", "1649938251.22"); +user_pref("services.sync.prefs.lastSync", "1652115368.40"); user_pref("services.sync.prefs.syncID", "SMCLZI5bvGCx"); user_pref("services.sync.syncInterval", 600000); user_pref("services.sync.syncThreshold", 300); @@ -416,11 +422,11 @@ user_pref("services.sync.username", "mrcfrm01@protonmail.com"); user_pref("signon.importedFromSqlite", true); user_pref("signon.rememberSignons", false); user_pref("storage.vacuum.last.index", 1); -user_pref("storage.vacuum.last.places.sqlite", 1649583945); +user_pref("storage.vacuum.last.places.sqlite", 1652201016); user_pref("svg.context-properties.content.enabled", true); user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); user_pref("toolkit.scrollbox.horizontalScrollDistance", 4); -user_pref("toolkit.startup.last_success", 1651769199); +user_pref("toolkit.startup.last_success", 1652290985); user_pref("toolkit.telemetry.cachedClientID", "27215ebf-b618-4b9c-bd32-ceb6347e229a"); user_pref("toolkit.telemetry.previousBuildID", "20220503101757"); user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); diff --git a/arch-config/.mozilla/firefox/default-release/user.js b/arch-config/.mozilla/firefox/default-release/user.js index 64f7ad5a..83330982 100644 --- a/arch-config/.mozilla/firefox/default-release/user.js +++ b/arch-config/.mozilla/firefox/default-release/user.js @@ -1,4 +1,4 @@ -// ** Theme Related Options **************************************************** +// ** Theme Default Options **************************************************** // userchrome.css usercontent.css activate user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); @@ -26,6 +26,164 @@ user_pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar" // Browser Theme Based Scheme - Will be activate 95 Above // user_pref("layout.css.prefers-color-scheme.content-override", 3); +// ** Theme Related Options **************************************************** +// == Theme Distribution Settings ============================================== +user_pref("userChrome.tab.connect_to_window", true); // Original, Photon +user_pref("userChrome.tab.color_like_toolbar", true); // Original, Photon + +// user_pref("userChrome.tab.lepton_like_padding", true); // Original +user_pref("userChrome.tab.photon_like_padding", true); // Photon + +// user_pref("userChrome.tab.dynamic_separtor", true); // Original, Proton +user_pref("userChrome.tab.static_separator", true); // Photon +// user_pref("userChrome.tab.static_separator.selected_accent", true); // Just option + +// user_pref("userChrome.tab.newtab_button_like_tab", true); // Original +user_pref("userChrome.tab.newtab_button_smaller", true); // Photon +// user_pref("userChrome.tab.newtab_button_proton", true); // Proton + +// user_pref("userChrome.icon.panel_full", true); // Original, Proton +user_pref("userChrome.icon.panel_photon", true); // Photon +// user_pref("userChrome.icon.panel_sparse", true); // Just option + +// Original Only +// user_pref("userChrome.tab.box_shadow", true); +// user_pref("userChrome.tab.bottom_rounded_corner", true); + +// Photon Only +user_pref("userChrome.tab.photon_like_contextline", true); +user_pref("userChrome.rounding.square_tab", true); + +// == Theme Compatibility Settings ============================================= +// user_pref("userChrome.compatibility.covered_header_image", true); +// user_pref("userChrome.compatibility.panel_cutoff", true); +// user_pref("userChrome.compatibility.navbar_top_border", true); +// user_pref("userChrome.compatibility.dynamic_separator", true); // Need dynamic_seperator + +// user_pref("userChrome.compatiblity.os.linux_non_native_titlebar_button", true); + +// == Theme Custom Settings ==================================================== +// -- User Chrome -------------------------------------------------------------- +// user_pref("userChrome.decoration.disable_panel_animate", true); +// user_pref("userChrome.decoration.disable_sidebar_animate", true); + +// user_pref("userChrome.theme.proton_color.dark_blue_accent", true); + +// user_pref("userChrome.rounding.square_button", true); +// user_pref("userChrome.rounding.square_panel", true); +// user_pref("userChrome.rounding.square_panelitem", true); +// user_pref("userChrome.rounding.square_menupopup", true); +// user_pref("userChrome.rounding.square_menuitem", true); +// user_pref("userChrome.rounding.square_field", true); +// user_pref("userChrome.rounding.square_checklabel", true); + +// user_pref("userChrome.padding.first_tab", true); +// user_pref("userChrome.padding.drag_space", true); +// user_pref("userChrome.padding.drag_space.maximized", true); + +// user_pref("userChrome.padding.menu_compact", true); +// user_pref("userChrome.padding.bookmark_menu.compact", true); +// user_pref("userChrome.padding.urlView_expanding", true); +// user_pref("userChrome.padding.urlView_result", true); +// user_pref("userChrome.padding.panel_header", true); + +// user_pref("userChrome.urlView.move_icon_to_left", true); +// user_pref("userChrome.urlView.go_button_when_typing", true); +// user_pref("userChrome.urlView.always_show_page_actions", true); + +// user_pref("userChrome.tab.on_bottom", true); +// user_pref("userChrome.tab.on_bottom.above_bookmark", true); // Need on_bottom +// user_pref("userChrome.tab.on_bottom.menubar_on_top", true); // Need on_bottom +// user_pref("userChrome.tab.always_show_tab_icon", true); +// user_pref("userChrome.tab.close_button_at_pinned", true); +// user_pref("userChrome.tab.close_button_at_pinned.always", true); +// user_pref("userChrome.tab.close_button_at_pinned.background", true); +// user_pref("userChrome.tab.close_button_at_hover.always", true); // Need close_button_at_hover +// user_pref("userChrome.tab.sound_show_label", true); // Need remove sound_hide_label +// user_pref("userChrome.tab.centered_label", true); + +// user_pref("userChrome.panel.remove_strip", true); +// user_pref("userChrome.panel.full_width_separator", true); +// user_pref("userChrome.panel.full_width_padding", true); + +// user_pref("userChrome.icon.account_image_to_right", true); +// user_pref("userChrome.icon.account_label_to_right", true); + +// -- User Content ------------------------------------------------------------- +// user_pref("userContent.player.ui.twoline", true); + +// user_pref("userContent.page.proton_color.dark_blue_accent", true); +// user_pref("userContent.page.proton_color.system_accent", true); + +// == Theme Default Settings =================================================== +// -- User Chrome -------------------------------------------------------------- +user_pref("userChrome.compatibility.theme", true); +user_pref("userChrome.compatibility.os", true); + +user_pref("userChrome.theme.built_in_contrast", true); +user_pref("userChrome.theme.system_default", true); +user_pref("userChrome.theme.proton_color", true); +user_pref("userChrome.theme.proton_chrome", true); // Need proton_color +user_pref("userChrome.theme.fully_color", true); // Need proton_color +user_pref("userChrome.theme.fully_dark", true); // Need proton_color + +user_pref("userChrome.decoration.cursor", true); +user_pref("userChrome.decoration.field_border", true); +user_pref("userChrome.decoration.download_panel", true); +user_pref("userChrome.decoration.animate", true); + +user_pref("userChrome.padding.tabbar_width", true); +user_pref("userChrome.padding.tabbar_height", true); +user_pref("userChrome.padding.toolbar_button", true); +user_pref("userChrome.padding.navbar_width", true); +user_pref("userChrome.padding.urlbar", true); +user_pref("userChrome.padding.bookmarkbar", true); +user_pref("userChrome.padding.infobar", true); +user_pref("userChrome.padding.menu", true); +user_pref("userChrome.padding.bookmark_menu", true); +user_pref("userChrome.padding.global_menubar", true); +user_pref("userChrome.padding.panel", true); +user_pref("userChrome.padding.popup_panel", true); + +user_pref("userChrome.tab.multi_selected", true); +user_pref("userChrome.tab.unloaded", true); +user_pref("userChrome.tab.letters_cleary", true); +user_pref("userChrome.tab.close_button_at_hover", true); +user_pref("userChrome.tab.sound_hide_label", true); +user_pref("userChrome.tab.sound_with_favicons", true); +user_pref("userChrome.tab.pip", true); +user_pref("userChrome.tab.container", true); +user_pref("userChrome.tab.crashed", true); + +user_pref("userChrome.fullscreen.overlap", true); +user_pref("userChrome.fullscreen.show_bookmarkbar", true); + +user_pref("userChrome.icon.library", true); +user_pref("userChrome.icon.panel", true); +user_pref("userChrome.icon.menu", true); +user_pref("userChrome.icon.context_menu", true); +user_pref("userChrome.icon.global_menu", true); +user_pref("userChrome.icon.global_menubar", true); + +// -- User Content ------------------------------------------------------------- +user_pref("userContent.player.ui", true); +user_pref("userContent.player.icon", true); +user_pref("userContent.player.noaudio", true); +user_pref("userContent.player.size", true); +user_pref("userContent.player.click_to_play", true); +user_pref("userContent.player.animate", true); + +user_pref("userContent.newTab.field_border", true); +user_pref("userContent.newTab.full_icon", true); +user_pref("userContent.newTab.animate", true); +user_pref("userContent.newTab.pocket_to_last", true); +user_pref("userContent.newTab.searchbar", true); + +user_pref("userContent.page.illustration", true); +user_pref("userContent.page.proton_color", true); +user_pref("userContent.page.dark_mode", true); // Need proton_color +user_pref("userContent.page.proton", true); // Need proton_color + // ** Useful Options *********************************************************** // Integrated calculator at urlbar user_pref("browser.urlbar.suggest.calculator", true); @@ -36,3 +194,62 @@ user_pref("browser.urlbar.suggest.calculator", true); // Draw in Titlebar // user_pref("browser.tabs.drawInTitlebar", true); // user_pref("browser.tabs.inTitlebar", 1); // Nightly, 96 Above + +// ** Scrolling Settings ******************************************************* +// == Only Sharpen Scrolling =================================================== +// Pref Value Original +/* +user_pref("mousewheel.min_line_scroll_amount", 10); // 5 +user_pref("general.smoothScroll.mouseWheel.durationMinMS", 80); // 50 +user_pref("general.smoothScroll.currentVelocityWeighting", "0.15"); // "0.25" +user_pref("general.smoothScroll.stopDecelerationWeighting", "0.6"); // "0.4" +*/ + +// == Smooth Scroling ========================================================== +// ** Scrolling Options ******************************************************** +// based on natural smooth scrolling v2 by aveyo +// this preset will reset couple extra variables for consistency +// Pref Value Original +/* +user_pref("apz.allow_zooming", true); /// true +user_pref("apz.force_disable_desktop_zooming_scrollbars", false); /// false +user_pref("apz.paint_skipping.enabled", true); /// true +user_pref("apz.windows.use_direct_manipulation", true); /// true +user_pref("dom.event.wheel-deltaMode-lines.always-disabled", true); /// false +user_pref("general.smoothScroll.currentVelocityWeighting", "0.12"); /// "0.25" <- 1. If scroll too slow, set to "0.15" +user_pref("general.smoothScroll.durationToIntervalRatio", 1000); /// 200 +user_pref("general.smoothScroll.lines.durationMaxMS", 100); /// 150 +user_pref("general.smoothScroll.lines.durationMinMS", 0); /// 150 +user_pref("general.smoothScroll.mouseWheel.durationMaxMS", 100); /// 200 +user_pref("general.smoothScroll.mouseWheel.durationMinMS", 0); /// 50 +user_pref("general.smoothScroll.mouseWheel.migrationPercent", 100); /// 100 +user_pref("general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS", 12); /// 120 +user_pref("general.smoothScroll.msdPhysics.enabled", true); /// false +user_pref("general.smoothScroll.msdPhysics.motionBeginSpringConstant", 200); /// 1250 +user_pref("general.smoothScroll.msdPhysics.regularSpringConstant", 200); /// 1000 +user_pref("general.smoothScroll.msdPhysics.slowdownMinDeltaMS", 10); /// 12 +user_pref("general.smoothScroll.msdPhysics.slowdownMinDeltaRatio", "1.20"); /// "1.3" +user_pref("general.smoothScroll.msdPhysics.slowdownSpringConstant", 1000); /// 2000 +user_pref("general.smoothScroll.other.durationMaxMS", 100); /// 150 +user_pref("general.smoothScroll.other.durationMinMS", 0); /// 150 +user_pref("general.smoothScroll.pages.durationMaxMS", 100); /// 150 +user_pref("general.smoothScroll.pages.durationMinMS", 0); /// 150 +user_pref("general.smoothScroll.pixels.durationMaxMS", 100); /// 150 +user_pref("general.smoothScroll.pixels.durationMinMS", 0); /// 150 +user_pref("general.smoothScroll.scrollbars.durationMaxMS", 100); /// 150 +user_pref("general.smoothScroll.scrollbars.durationMinMS", 0); /// 150 +user_pref("general.smoothScroll.stopDecelerationWeighting", "0.6"); /// "0.4" +user_pref("layers.async-pan-zoom.enabled", true); /// true +user_pref("layout.css.scroll-behavior.spring-constant", "250.0"); /// "250.0" +user_pref("mousewheel.acceleration.factor", 3); /// 10 +user_pref("mousewheel.acceleration.start", -1); /// -1 +user_pref("mousewheel.default.delta_multiplier_x", 100); /// 100 +user_pref("mousewheel.default.delta_multiplier_y", 100); /// 100 +user_pref("mousewheel.default.delta_multiplier_z", 100); /// 100 +user_pref("mousewheel.min_line_scroll_amount", 0); /// 5 +user_pref("mousewheel.system_scroll_override.enabled", true); /// true <- 2. If scroll too fast, set to false +user_pref("mousewheel.system_scroll_override_on_root_content.enabled", false); /// true +user_pref("mousewheel.transaction.timeout", 1500); /// 1500 +user_pref("toolkit.scrollbox.horizontalScrollDistance", 4); /// 5 +user_pref("toolkit.scrollbox.verticalScrollDistance", 3); /// 3 +*/